/* MNYPA IMS Premium Design Layer
   Visual-only overrides: preserves existing React/JS functionality and routes. */
:root{
  --background:#f5f7fb;
  --foreground:#172033;
  --card:#ffffff;
  --card-foreground:#172033;
  --popover:#ffffff;
  --popover-foreground:#172033;
  --muted:#f3f5f8;
  --muted-foreground:#667085;
  --accent:#f3f5f8;
  --accent-foreground:#172033;
  --border:#e5e9f0;
  --input:#dfe5ee;
  --ring:#1f6ea8;
  --sidebar:#0b2039;
  --sidebar-foreground:#d8e2ee;
  --sidebar-accent:#ffffff0d;
  --sidebar-border:#ffffff12;
  --sidebar-active-bg:#f59e0b;
  --sidebar-active-fg:#ffffff;
  --radius:0.9rem;
}
.dark{
  --background:#0b1220;
  --foreground:#e8edf5;
  --card:#121c2d;
  --card-foreground:#e8edf5;
  --popover:#121c2d;
  --popover-foreground:#e8edf5;
  --muted:#172235;
  --muted-foreground:#91a0b5;
  --accent:#172235;
  --accent-foreground:#e8edf5;
  --border:#223047;
  --input:#29374d;
  --sidebar:#071525;
  --sidebar-border:#ffffff12;
}

html{scroll-behavior:smooth}
body{background:var(--background);letter-spacing:-.006em}
::selection{background:#f59e0b33;color:inherit}

/* App shell */
main{min-width:0}
header.sticky{height:72px!important;background:color-mix(in srgb,var(--background) 88%,transparent)!important;border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent);box-shadow:0 1px 0 rgba(16,24,40,.02)}
@supports not (background:color-mix(in srgb,white,black)){header.sticky{background:var(--background)!important}}

/* Sidebar */
aside.bg-sidebar{background:linear-gradient(180deg,#0b2039 0%,#0a1b30 100%)!important;box-shadow:10px 0 35px rgba(15,35,60,.08)}
aside.bg-sidebar .border-b, aside.bg-sidebar .border-t{border-color:#ffffff12!important}
aside.bg-sidebar nav a, aside.bg-sidebar nav button{transition:background .18s ease,color .18s ease,transform .18s ease}
aside.bg-sidebar nav a:hover, aside.bg-sidebar nav button:hover{background:rgba(255,255,255,.065)!important}
aside.bg-sidebar nav a.bg-sidebar-active-bg{background:linear-gradient(135deg,#f59e0b,#e88905)!important;box-shadow:0 6px 18px rgba(245,158,11,.18);font-weight:700}
aside.bg-sidebar .group.relative.flex.items-center{background:rgba(255,255,255,.045)!important;border-color:rgba(255,255,255,.08)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}

/* Content rhythm */
main, [role="main"]{line-height:1.5}
main .space-y-6>*+*, main .space-y-5>*+*{margin-top:1.25rem}
main h1{letter-spacing:-.035em;font-weight:800}
main h2,main h3{letter-spacing:-.02em}

/* Cards / panels */
.bg-card,.bg-white:not(aside *),[class*="bg-card"]{
  background:var(--card)!important;
}
.border-border,.border-input{border-color:var(--border)!important}
.shadow-sm{box-shadow:0 1px 2px rgba(16,24,40,.035),0 4px 14px rgba(16,24,40,.025)!important}
.shadow-md{box-shadow:0 8px 26px rgba(16,24,40,.07)!important}
.shadow-lg{box-shadow:0 16px 42px rgba(16,24,40,.10)!important}

/* Common rounded panels: premium but not inflated */
main .rounded-2xl.border, main .rounded-xl.border, main .rounded-lg.border{
  border-color:var(--border)!important;
  box-shadow:0 1px 2px rgba(16,24,40,.025),0 8px 24px rgba(16,24,40,.025);
}
main .rounded-2xl.border:hover, main .rounded-xl.border:hover{
  box-shadow:0 3px 4px rgba(16,24,40,.025),0 12px 28px rgba(16,24,40,.045);
  transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease;
}

/* KPI cards */
main .grid > .rounded-2xl:has(.text-3xl), main .grid > .rounded-xl:has(.text-3xl){position:relative;overflow:hidden}
main .grid > .rounded-2xl:has(.text-3xl)::after, main .grid > .rounded-xl:has(.text-3xl)::after{
  content:"";position:absolute;inset:auto -20px -28px auto;width:110px;height:110px;border-radius:999px;background:#f59e0b0a;pointer-events:none
}

/* Buttons */
button:not([disabled]),a[role="button"]{transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}
main button.bg-primary,main a.bg-primary{background:linear-gradient(135deg,#216fa8,#185d8f)!important;box-shadow:0 5px 14px rgba(32,119,190,.16)}
main button.bg-\[\#F59E0B\],main a.bg-\[\#F59E0B\]{background:linear-gradient(135deg,#f59e0b,#df8506)!important;box-shadow:0 5px 14px rgba(245,158,11,.18)}
main button:hover:not([disabled]),main a[role="button"]:hover{transform:translateY(-1px)}

/* Inputs / selects */
input:not([type="checkbox"]):not([type="radio"]),textarea,select{
  border-radius:11px!important;border-color:var(--input)!important;background:var(--card)!important;
  box-shadow:0 1px 2px rgba(16,24,40,.025)!important;min-height:40px;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
input:focus,textarea:focus,select:focus{
  outline:none!important;border-color:#2b7bb5!important;box-shadow:0 0 0 3px rgba(32,119,190,.11)!important
}
input::placeholder,textarea::placeholder{color:#98a2b3}

/* Tables */
table{border-collapse:separate!important;border-spacing:0!important;width:100%}
thead th{background:#f8fafc;color:#667085;font-size:11px!important;font-weight:700!important;letter-spacing:.055em;text-transform:uppercase;border-bottom:1px solid var(--border)!important}
.dark thead th{background:#101a2a;color:#94a3b8}
tbody tr{transition:background .14s ease}
tbody tr:hover{background:#f8fafc}
.dark tbody tr:hover{background:#172235}
tbody td{border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent)!important}
tbody tr:last-child td{border-bottom:0!important}

/* Status badges */
[class*="rounded-full"][class*="text-xs"], [class*="rounded-full"][class*="text-\[11px\]"]{font-weight:700;letter-spacing:.01em}

/* Tabs / segmented controls */
[role="tablist"]{background:var(--muted);border:1px solid var(--border);border-radius:12px;padding:3px}
[role="tab"]{border-radius:9px;transition:all .16s ease}
[role="tab"][aria-selected="true"]{background:var(--card)!important;box-shadow:0 1px 3px rgba(16,24,40,.08);font-weight:700}

/* Dialogs / sheets */
[role="dialog"]{border:1px solid var(--border)!important;border-radius:18px!important;box-shadow:0 28px 70px rgba(16,24,40,.22)!important}

/* Dropdowns */
[role="menu"],[data-radix-menu-content],[data-radix-select-content]{border:1px solid var(--border)!important;border-radius:13px!important;box-shadow:0 18px 45px rgba(16,24,40,.14)!important;background:var(--popover)!important}

/* Charts and visual panels */
.recharts-wrapper,.recharts-surface{overflow:visible}
.recharts-cartesian-grid line{stroke:var(--border)!important;stroke-opacity:.65}
.recharts-text{font-family:"Plus Jakarta Sans",Inter,sans-serif!important}

/* Empty states */
main .text-muted-foreground:only-child{color:#98a2b3}

/* Scrollbars */
*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
.dark *{scrollbar-color:#334155 transparent}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px;border:2px solid transparent;background-clip:padding-box}
.dark ::-webkit-scrollbar-thumb{background:#334155;border-color:transparent}

/* Full-screen desktop polish */
@media (min-width:1280px){
  main{padding-left:2px;padding-right:2px}
}
@media (min-width:1536px){
  main{max-width:none}
  .max-w-7xl{max-width:1480px}
}

/* Mobile */
@media (max-width:1023px){
  header.sticky{height:64px!important;padding-left:1rem!important;padding-right:1rem!important}
  main{padding-left:1rem!important;padding-right:1rem!important}
  main h1{font-size:1.75rem!important}
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Dark-mode surfaces */
.dark .bg-white,.dark .bg-slate-50,.dark .bg-gray-50{background:var(--card)!important}
.dark thead th{border-color:var(--border)!important}
.dark input,.dark textarea,.dark select{background:#101a2a!important}
