/* Nordvick Admin Console — dedicated UI layer */
:root {
  --admin-ink: #10213f;
  --admin-muted: #6d7d97;
  --admin-subtle: #f5f8fc;
  --admin-line: #dfe7f1;
  --admin-gold: #d79a05;
  --admin-gold-dark: #a96f00;
  --admin-navy: #10213f;
  --admin-danger: #c93645;
  --admin-success: #15805a;
  --admin-radius: 16px;
  --admin-shadow: 0 10px 28px rgba(16, 33, 63, 0.07);
}

/* Tailwind-compatible primitives are intentionally scoped to the admin shell.
   The public site keeps its Bootstrap layout untouched. */
.nv-admin-shell,
.nv-admin-shell * { box-sizing: border-box; }

.nv-admin-shell {
  width: min(100% - 32px, 1232px);
  margin: 0 auto;
  padding: 42px 0 88px;
  color: var(--admin-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.nv-admin-shell .flex { display: flex !important; }
.nv-admin-shell .inline-flex { display: inline-flex !important; }
.nv-admin-shell .grid { display: grid !important; }
.nv-admin-shell .hidden { display: none !important; }
.nv-admin-shell .block { display: block !important; }
.nv-admin-shell .w-full { width: 100% !important; }
.nv-admin-shell .flex-1 { flex: 1 1 0% !important; min-width: 0; }
.nv-admin-shell .min-w-0 { min-width: 0 !important; }
.nv-admin-shell .items-center { align-items: center !important; }
.nv-admin-shell .items-start { align-items: flex-start !important; }
.nv-admin-shell .justify-center { justify-content: center !important; }
.nv-admin-shell .justify-between { justify-content: space-between !important; }
.nv-admin-shell .justify-end { justify-content: flex-end !important; }
.nv-admin-shell .flex-wrap { flex-wrap: wrap !important; }
.nv-admin-shell .flex-col { flex-direction: column !important; }
.nv-admin-shell .shrink-0 { flex-shrink: 0 !important; }
.nv-admin-shell .relative { position: relative !important; }
.nv-admin-shell .absolute { position: absolute !important; }
.nv-admin-shell .overflow-hidden { overflow: hidden !important; }
.nv-admin-shell .overflow-x-auto { overflow-x: auto !important; }
.nv-admin-shell .overflow-y-auto { overflow-y: auto !important; }
.nv-admin-shell .select-none { user-select: none !important; }

.nv-admin-shell [class~="grid-cols-1"] { grid-template-columns: minmax(0, 1fr) !important; }
.nv-admin-shell [class~="grid-cols-2"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.nv-admin-shell [class~="grid-cols-4"] { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.nv-admin-shell [class~="gap-1"] { gap: .25rem !important; }
.nv-admin-shell [class~="gap-2"] { gap: .5rem !important; }
.nv-admin-shell [class~="gap-3"] { gap: .75rem !important; }
.nv-admin-shell [class~="gap-4"] { gap: 1rem !important; }
.nv-admin-shell [class~="gap-5"] { gap: 1.25rem !important; }
.nv-admin-shell [class~="gap-6"] { gap: 1.5rem !important; }
.nv-admin-shell [class~="space-y-2"] > * + * { margin-top: .5rem !important; }
.nv-admin-shell [class~="space-y-3"] > * + * { margin-top: .75rem !important; }
.nv-admin-shell [class~="space-y-4"] > * + * { margin-top: 1rem !important; }
.nv-admin-shell [class~="space-y-5"] > * + * { margin-top: 1.25rem !important; }
.nv-admin-shell [class~="space-y-6"] > * + * { margin-top: 1.5rem !important; }

.nv-admin-shell [class~="max-w-2xl"] { max-width: 42rem !important; }
.nv-admin-shell [class~="max-w-4xl"] { max-width: 56rem !important; }
.nv-admin-shell [class~="max-w-7xl"] { max-width: 80rem !important; }
.nv-admin-shell .mx-auto { margin-left: auto !important; margin-right: auto !important; }
.nv-admin-shell .text-center { text-align: center !important; }
.nv-admin-shell .text-left { text-align: left !important; }
.nv-admin-shell .text-right { text-align: right !important; }
.nv-admin-shell .text-sm { font-size: .875rem !important; }
.nv-admin-shell .text-xs { font-size: .75rem !important; }
.nv-admin-shell .text-\[10px\] { font-size: 10px !important; }
.nv-admin-shell .text-\[11px\] { font-size: 11px !important; }
.nv-admin-shell .text-\[9px\] { font-size: 9px !important; }
.nv-admin-shell .font-medium { font-weight: 500 !important; }
.nv-admin-shell .font-semibold { font-weight: 600 !important; }
.nv-admin-shell .font-bold { font-weight: 700 !important; }
.nv-admin-shell .font-extrabold,
.nv-admin-shell .font-black { font-weight: 800 !important; }
.nv-admin-shell .leading-relaxed { line-height: 1.65 !important; }
.nv-admin-shell .tracking-tight { letter-spacing: -.02em !important; }
.nv-admin-shell .tracking-wider { letter-spacing: .07em !important; }
.nv-admin-shell .tracking-widest { letter-spacing: .12em !important; }

.nv-admin-shell .p-3 { padding: .75rem !important; }
.nv-admin-shell .p-4 { padding: 1rem !important; }
.nv-admin-shell .p-5 { padding: 1.25rem !important; }
.nv-admin-shell .p-6 { padding: 1.5rem !important; }
.nv-admin-shell .p-8 { padding: 2rem !important; }
.nv-admin-shell .px-3 { padding-left: .75rem !important; padding-right: .75rem !important; }
.nv-admin-shell .px-4 { padding-left: 1rem !important; padding-right: 1rem !important; }
.nv-admin-shell .px-5 { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
.nv-admin-shell .px-6 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.nv-admin-shell .py-2 { padding-top: .5rem !important; padding-bottom: .5rem !important; }
.nv-admin-shell .py-3 { padding-top: .75rem !important; padding-bottom: .75rem !important; }
.nv-admin-shell .py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.nv-admin-shell .py-8 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
.nv-admin-shell .pt-4 { padding-top: 1rem !important; }
.nv-admin-shell .pb-6 { padding-bottom: 1.5rem !important; }
.nv-admin-shell .pl-10 { padding-left: 2.5rem !important; }
.nv-admin-shell .pr-4 { padding-right: 1rem !important; }
.nv-admin-shell .mt-1 { margin-top: .25rem !important; }
.nv-admin-shell .mt-2 { margin-top: .5rem !important; }
.nv-admin-shell .mt-4 { margin-top: 1rem !important; }
.nv-admin-shell .mb-1 { margin-bottom: .25rem !important; }
.nv-admin-shell .mb-2 { margin-bottom: .5rem !important; }
.nv-admin-shell .mb-4 { margin-bottom: 1rem !important; }
.nv-admin-shell .mb-6 { margin-bottom: 1.5rem !important; }
.nv-admin-shell .mb-8 { margin-bottom: 2rem !important; }

.nv-admin-shell .border { border: 1px solid var(--admin-line) !important; }
.nv-admin-shell .border-b { border-bottom: 1px solid var(--admin-line) !important; }
.nv-admin-shell .border-t { border-top: 1px solid var(--admin-line) !important; }
.nv-admin-shell .border-slate-100 { border-color: #edf2f7 !important; }
.nv-admin-shell .border-slate-200 { border-color: var(--admin-line) !important; }
.nv-admin-shell .rounded-lg { border-radius: 10px !important; }
.nv-admin-shell .rounded-xl { border-radius: 13px !important; }
.nv-admin-shell .rounded-2xl { border-radius: var(--admin-radius) !important; }
.nv-admin-shell .rounded-3xl { border-radius: 22px !important; }
.nv-admin-shell .shadow-sm { box-shadow: 0 3px 12px rgba(16, 33, 63, .05) !important; }
.nv-admin-shell .shadow-md { box-shadow: 0 8px 18px rgba(16, 33, 63, .09) !important; }
.nv-admin-shell .shadow-lg,
.nv-admin-shell .shadow-2xl { box-shadow: var(--admin-shadow) !important; }

.nv-admin-shell .bg-white { background: #fff !important; }
.nv-admin-shell .bg-slate-50 { background: var(--admin-subtle) !important; }
.nv-admin-shell .bg-slate-100 { background: #edf2f7 !important; }
.nv-admin-shell .bg-cyan-50 { background: #effcff !important; }
.nv-admin-shell .bg-yellow-50 { background: #fff9e7 !important; }
.nv-admin-shell .bg-yellow-100 { background: #fff0bd !important; }
.nv-admin-shell .bg-red-50 { background: #fff1f2 !important; }
.nv-admin-shell .bg-red-100 { background: #ffe1e5 !important; }
.nv-admin-shell .text-slate-900 { color: var(--admin-ink) !important; }
.nv-admin-shell .text-slate-800 { color: #213454 !important; }
.nv-admin-shell .text-slate-700 { color: #3e5271 !important; }
.nv-admin-shell .text-slate-600 { color: #536783 !important; }
.nv-admin-shell .text-slate-500 { color: var(--admin-muted) !important; }
.nv-admin-shell .text-slate-400 { color: #99a8ba !important; }
.nv-admin-shell .text-yellow-600 { color: var(--admin-gold-dark) !important; }
.nv-admin-shell .text-red-600 { color: var(--admin-danger) !important; }
.nv-admin-shell .text-red-700 { color: #a92b38 !important; }
.nv-admin-shell .text-cyan-700 { color: #087f98 !important; }
.nv-admin-shell .text-green-600 { color: var(--admin-success) !important; }

.nv-admin-shell h1,
.nv-admin-shell h2,
.nv-admin-shell h3,
.nv-admin-shell h4,
.nv-admin-shell h5,
.nv-admin-shell p { margin-top: 0; }
.nv-admin-shell h1 { font-size: clamp(1.9rem, 3vw, 2.7rem); line-height: 1.08; letter-spacing: -.04em; }
.nv-admin-shell h2 { font-size: 1.45rem; }
.nv-admin-shell h3 { font-size: 1.05rem; }
.nv-admin-shell p { color: var(--admin-muted); }

.nv-admin-shell button,
.nv-admin-shell input,
.nv-admin-shell select,
.nv-admin-shell textarea { font: inherit; }
.nv-admin-shell button {
  min-height: 42px;
  border: 1px solid transparent;
  border-radius: 11px;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.nv-admin-shell button:hover:not(:disabled) { transform: translateY(-1px); }
.nv-admin-shell button:focus-visible,
.nv-admin-shell input:focus-visible,
.nv-admin-shell select:focus-visible,
.nv-admin-shell textarea:focus-visible { outline: 3px solid rgba(215, 154, 5, .22); outline-offset: 2px; }
.nv-admin-shell button:disabled { opacity: .62; cursor: wait; transform: none; }
.nv-admin-shell input,
.nv-admin-shell select,
.nv-admin-shell textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid #d5dfeb;
  border-radius: 10px;
  background: #fff;
  color: var(--admin-ink);
  padding: .7rem .85rem;
  box-shadow: inset 0 1px 1px rgba(16, 33, 63, .025);
}
.nv-admin-shell textarea { min-height: 108px; resize: vertical; }
.nv-admin-shell input::placeholder,
.nv-admin-shell textarea::placeholder { color: #a2afbf; }
.nv-admin-shell label { color: #526783; }
.nv-admin-shell a { color: var(--admin-gold-dark); }

/* Console-specific surfaces */
.nv-admin-shell > .nv-admin-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--admin-line);
}
.nv-admin-shell > .nv-admin-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 26px 0 32px;
  padding: 0;
  border-bottom: 1px solid var(--admin-line);
}
.nv-admin-shell > .nv-admin-tabs button {
  min-height: 58px;
  border: 1px solid transparent;
  border-bottom: 3px solid transparent;
  border-radius: 12px 12px 0 0;
  background: transparent;
  color: var(--admin-muted);
  font-weight: 700;
}
.nv-admin-shell > .nv-admin-tabs button:hover { background: #f8fafc; color: var(--admin-ink); }
.nv-admin-shell > .nv-admin-tabs button[aria-current="page"],
.nv-admin-shell > .nv-admin-tabs button.active { color: var(--admin-gold-dark); border-bottom-color: var(--admin-gold); background: #fffdf6; }

.nv-admin-status-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.nv-admin-sync-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 6px 11px;
  border: 1px solid #dbe5ef;
  border-radius: 999px;
  background: #f8fbff;
  color: var(--admin-muted);
  font-size: 12px;
  font-weight: 700;
}
.nv-admin-sync-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #9aaabd; }
.nv-admin-sync-status[data-state="ok"] { color: var(--admin-success); background: #effbf5; border-color: #bcebd4; }
.nv-admin-sync-status[data-state="ok"]::before { background: var(--admin-success); }
.nv-admin-sync-status[data-state="error"] { color: var(--admin-danger); background: #fff4f5; border-color: #f3c5cb; }
.nv-admin-sync-status[data-state="error"]::before { background: var(--admin-danger); }
.nv-admin-sync-status[data-state="pending"]::before { background: var(--admin-gold); animation: adminPulse 1.2s infinite; }
@keyframes adminPulse { 50% { opacity: .35; transform: scale(.75); } }

.nv-admin-stat-card {
  min-height: 132px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: 22px !important;
  border: 1px solid var(--admin-line) !important;
  border-radius: var(--admin-radius) !important;
  box-shadow: var(--admin-shadow) !important;
}
.nv-admin-stat-card p { margin-bottom: 8px !important; }
.nv-admin-stat-card p:last-child { margin-bottom: 0 !important; }
.nv-admin-stat-card .text-3xl { font-size: 2rem !important; line-height: 1 !important; }

.nv-admin-action-bar {
  display: grid !important;
  grid-template-columns: minmax(190px, auto) minmax(220px, 1fr) auto;
  align-items: center;
  gap: 12px !important;
}
.nv-admin-action-bar > .flex:last-child { display: flex !important; gap: 8px !important; flex-wrap: wrap; }
.nv-admin-action-bar > .flex:last-child button { min-height: 42px; }
.nv-admin-filter-card { padding: 18px !important; border-radius: var(--admin-radius) !important; }
.nv-admin-filter-card label { display: block; margin-bottom: 7px; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.nv-admin-panel { border-radius: var(--admin-radius) !important; box-shadow: var(--admin-shadow) !important; }
.nv-admin-table-card { border-radius: var(--admin-radius) !important; box-shadow: var(--admin-shadow) !important; }
.nv-admin-table-card table { min-width: 760px; border-collapse: collapse; }
.nv-admin-table-card th { white-space: nowrap; font-size: 11px; letter-spacing: .07em; }
.nv-admin-table-card td,
.nv-admin-table-card th { vertical-align: middle; }
.nv-admin-empty { padding: 56px 20px !important; }

.nv-admin-shell dialog {
  width: min(680px, calc(100vw - 24px));
  max-width: 680px;
  max-height: 92vh;
  margin: auto;
  border: 0;
  border-radius: 20px;
  overflow: hidden;
}
.nv-admin-shell dialog::backdrop { background: rgba(8, 20, 40, .62); backdrop-filter: blur(5px); }
.nv-admin-shell dialog form { min-width: 0; }
.nv-admin-shell dialog .grid-cols-2 { gap: 16px !important; }
.nv-admin-shell .cursor-pointer { cursor: pointer; }
.nv-admin-shell .hover\:bg-slate-200:hover { background: #e6edf5 !important; }
.nv-admin-shell .hover\:bg-yellow-200:hover { background: #ffe99b !important; }
.nv-admin-shell .hover\:bg-red-100:hover { background: #ffd9de !important; }
.nv-admin-shell .transition-all { transition: all .18s ease !important; }

@media (min-width: 640px) {
  .nv-admin-shell [class~="sm:flex-row"] { flex-direction: row !important; }
  .nv-admin-shell [class~="sm:self-auto"] { align-self: auto !important; }
  .nv-admin-shell [class~="sm:grid-cols-4"] { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .nv-admin-shell [class~="sm:grid-cols-3"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (min-width: 768px) {
  .nv-admin-shell [class~="md:grid-cols-2"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .nv-admin-shell [class~="md:grid-cols-3"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .nv-admin-shell [class~="md:grid-cols-4"] { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
@media (min-width: 1024px) {
  .nv-admin-shell [class~="lg:grid-cols-2"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .nv-admin-shell [class~="lg:grid-cols-3"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

@media (max-width: 900px) {
  .nv-admin-shell > .nv-admin-header { align-items: flex-start; flex-direction: column; }
  .nv-admin-action-bar { grid-template-columns: 1fr; }
  .nv-admin-action-bar > .flex:last-child { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nv-admin-action-bar > .flex:last-child button { width: 100%; }
}
@media (max-width: 680px) {
  .nv-admin-shell { width: min(100% - 20px, 1232px); padding-top: 24px; }
  .nv-admin-shell > .nv-admin-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 20px 0 24px; }
  .nv-admin-shell > .nv-admin-tabs button { min-height: 52px; font-size: 11px; }
  .nv-admin-shell [class~="grid-cols-2"] { grid-template-columns: 1fr !important; }
  .nv-admin-shell [class~="sm:grid-cols-4"],
  .nv-admin-shell [class~="sm:grid-cols-3"],
  .nv-admin-shell [class~="md:grid-cols-2"],
  .nv-admin-shell [class~="md:grid-cols-3"],
  .nv-admin-shell [class~="md:grid-cols-4"] { grid-template-columns: 1fr !important; }
  .nv-admin-action-bar > .flex:last-child { grid-template-columns: 1fr 1fr; }
  .nv-admin-stat-card { min-height: 108px !important; }
  .nv-admin-shell dialog { width: calc(100vw - 16px); }
}
@media (max-width: 420px) {
  .nv-admin-action-bar > .flex:last-child { grid-template-columns: 1fr; }
  .nv-admin-shell > .nv-admin-tabs button { font-size: 10px; padding-left: 6px !important; padding-right: 6px !important; }
}

/* Button palette used by the existing admin templates. */
.nv-admin-shell button[class~="bg-gradient-to-r"][class~="from-yellow-500"] {
  background: linear-gradient(135deg, #e7b21b 0%, #b87800 100%) !important;
  color: #172033 !important;
  border-color: #c88908 !important;
  box-shadow: 0 6px 14px rgba(190, 131, 4, .2);
}
.nv-admin-shell button[class~="bg-gradient-to-r"][class~="from-green-500"] {
  background: linear-gradient(135deg, #27a66f 0%, #11734e 100%) !important;
  color: #fff !important;
}
.nv-admin-shell button[class~="bg-gradient-to-r"][class~="from-purple-500"] {
  background: linear-gradient(135deg, #8267d9 0%, #5840a4 100%) !important;
  color: #fff !important;
}
.nv-admin-shell button[class~="bg-gradient-to-r"][class~="from-blue-500"] {
  background: linear-gradient(135deg, #3d8be8 0%, #2360ad 100%) !important;
  color: #fff !important;
}
.nv-admin-shell button[class~="bg-dark"] { background: var(--admin-navy) !important; color: #fff !important; }
.nv-admin-shell button[class~="bg-slate-100"] { background: #edf2f7 !important; color: #3e5271 !important; }
.nv-admin-shell button[class~="bg-white"] { background: #fff !important; color: #3e5271 !important; }
.nv-admin-shell button[class~="bg-red-50"] { background: #fff1f2 !important; color: var(--admin-danger) !important; }
.nv-admin-shell .text-white { color: #fff !important; }
.nv-admin-shell .text-slate-950 { color: #172033 !important; }
.nv-admin-shell .border-transparent { border-color: transparent !important; }
.nv-admin-shell .border-yellow-500 { border-color: var(--admin-gold) !important; }
.nv-admin-shell .border-b-2 { border-bottom-width: 2px !important; }
.nv-admin-shell .list-decimal { list-style: decimal; }
.nv-admin-shell .list-disc { list-style: disc; }
.nv-admin-shell .underline { text-decoration: underline; }
.nv-admin-shell .font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.nv-admin-shell .top-1\/2 { top: 50% !important; }
.nv-admin-shell .left-3 { left: .75rem !important; }
.nv-admin-shell .-translate-y-1\/2 { transform: translateY(-50%) !important; }
.nv-admin-shell .w-4 { width: 1rem !important; }
.nv-admin-shell .h-4 { height: 1rem !important; }
.nv-admin-shell .w-5 { width: 1.25rem !important; }
.nv-admin-shell .h-5 { height: 1.25rem !important; }
.nv-admin-shell .w-6 { width: 1.5rem !important; }
.nv-admin-shell .h-6 { height: 1.5rem !important; }
.nv-admin-shell .w-12 { width: 3rem !important; }
.nv-admin-shell .h-12 { height: 3rem !important; }
.nv-admin-shell .w-20 { width: 5rem !important; }
.nv-admin-shell .h-20 { height: 5rem !important; }
.nv-admin-shell .w-24 { width: 6rem !important; }
.nv-admin-shell .h-24 { height: 6rem !important; }
.nv-admin-shell [class~="max-h-[60vh]"] { max-height: 60vh !important; }
.nv-admin-shell [class~="max-h-[90vh]"] { max-height: 90vh !important; }
