:root{--color-bg: #0a0e18;--color-bg-elevated: #0e1422;--color-surface: #131a2c;--color-surface-2: #1a2238;--color-surface-hover: #1f2942;--color-border: #222b46;--color-border-strong: #2d3a5a;--color-text: #eef0f5;--color-text-muted: #9aa5be;--color-text-subtle: #6a7591;--color-accent: #6c8cff;--color-accent-hover: #7d9aff;--color-accent-soft: rgba(108, 140, 255, .14);--color-accent-soft-hover: rgba(108, 140, 255, .22);--color-accent-on: #0a0e18;--color-accent-glow: rgba(108, 140, 255, .4);--color-positive: #4ade80;--color-positive-soft: rgba(74, 222, 128, .12);--color-negative: #fb7185;--color-negative-soft: rgba(251, 113, 133, .12);--color-warning: #fbbf24;--color-warning-soft: rgba(251, 191, 36, .12);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-card: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 12px 24px -8px rgba(0, 0, 0, .5);--shadow-pop: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 16px 32px -8px rgba(0, 0, 0, .6), 0 4px 12px -4px rgba(0, 0, 0, .4);--shadow-glow: 0 0 0 1px var(--color-accent-glow), 0 8px 24px -8px var(--color-accent-glow);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "JetBrains Mono", monospace;--fs-xs: 11px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 28px;--fs-3xl: 36px;--sidebar-width: 220px;--topbar-height: 56px;--content-max: 1480px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(108,140,255,.08),transparent 60%),radial-gradient(ellipse 60% 40% at 100% 0%,rgba(108,140,255,.04),transparent 60%),var(--color-bg);background-attachment:fixed}a{color:var(--color-accent);text-decoration:none;transition:color .12s ease}a:hover{color:var(--color-accent-hover)}h1,h2,h3,h4{color:var(--color-text);letter-spacing:-.015em;font-weight:600}button{font-family:inherit;cursor:pointer}input,button,select,textarea{font:inherit;color:inherit}input,select,textarea{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 10px;color:var(--color-text);transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}input::placeholder{color:var(--color-text-subtle)}input:hover,select:hover,textarea:hover{border-color:var(--color-border-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);background:var(--color-surface)}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7) brightness(1.1);cursor:pointer}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--topbar-height) 1fr;height:100vh}.app-sidebar{grid-row:1 / span 2;background:var(--color-bg-elevated);border-right:1px solid var(--color-border);padding:var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:2px}.app-sidebar h1{font-size:var(--fs-lg);font-weight:600;margin:0 0 var(--space-5);letter-spacing:-.02em;background:linear-gradient(135deg,var(--color-text) 0%,var(--color-accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-sidebar a{display:block;padding:7px var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--fs-sm);font-weight:500;transition:background .12s ease,color .12s ease}.app-sidebar a:hover{background:var(--color-surface-hover);color:var(--color-text)}.app-sidebar a.active{background:var(--color-accent-soft);color:var(--color-accent);font-weight:600}.app-topbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border);padding:0 var(--space-5);background:var(--color-bg-elevated);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-content{padding:var(--space-6) var(--space-5);overflow-y:auto}.card{background:linear-gradient(180deg,rgba(255,255,255,.015),transparent 30%),var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-card);transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}a.card{display:block;color:inherit}a.card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-glow);transform:translateY(-2px);text-decoration:none}a.card:hover h3{color:var(--color-accent)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.kpi-card .label{font-size:var(--fs-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.kpi-card .value{font-size:var(--fs-2xl);font-weight:600;margin-top:var(--space-2);letter-spacing:-.02em;color:var(--color-text)}.kpi-card .delta{font-size:var(--fs-sm);margin-top:var(--space-1);color:var(--color-text-muted)}.kpi-card .delta.positive{color:var(--color-positive)}.kpi-card .delta.negative{color:var(--color-negative)}.form{display:flex;flex-direction:column;gap:var(--space-3)}.field label{display:block;font-size:var(--fs-xs);color:var(--color-text-muted);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.field input,.field select{width:100%}.btn{background:var(--color-accent);color:var(--color-accent-on);border:1px solid transparent;border-radius:var(--radius-sm);padding:6px 14px;font-weight:600;font-size:var(--fs-sm);transition:background .12s ease,transform 80ms ease,box-shadow .12s ease;box-shadow:0 1px #ffffff26 inset}.btn:hover{background:var(--color-accent-hover)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-soft),0 1px #ffffff26 inset}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);box-shadow:none}.btn-ghost:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-strong)}.btn-danger{background:var(--color-negative);color:#2a0006}.btn-danger:hover{background:#fda4af}.error{color:var(--color-negative);background:var(--color-negative-soft);border:1px solid rgba(251,113,133,.25);border-radius:var(--radius-sm);padding:var(--space-3);font-size:var(--fs-sm)}.login-shell{display:grid;place-items:center;height:100vh;padding:var(--space-5);background:radial-gradient(ellipse 60% 50% at 50% 40%,rgba(108,140,255,.12),transparent 60%),var(--color-bg)}.login-card{width:100%;max-width:380px;box-shadow:var(--shadow-pop)}.login-card h1{margin:0 0 var(--space-5);font-size:var(--fs-xl)}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}table.data th,table.data td{text-align:left;padding:10px var(--space-3);border-bottom:1px solid var(--color-border)}table.data th{color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:var(--fs-xs);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-strong);position:sticky;top:0;z-index:1}table.data tbody tr{transition:background .1s ease}table.data tbody tr:hover td{background:var(--color-surface-hover)}table.data tbody tr:last-child td{border-bottom:none}.text-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.text-right{text-align:right}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge.positive{background:var(--color-positive-soft);color:var(--color-positive);border-color:#4ade8040}.badge.accent{background:var(--color-accent-soft);color:var(--color-accent);border-color:#6c8cff4d}.badge.warning{background:var(--color-warning-soft);color:var(--color-warning);border-color:#fbbf2440}.subnav{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-5)}.subnav a{padding:var(--space-2) var(--space-4);color:var(--color-text-muted);font-size:var(--fs-sm);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s ease,border-color .12s ease}.subnav a:hover{color:var(--color-text)}.subnav a.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-pill);border:2px solid var(--color-bg)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.section-head h2{margin:0;font-size:var(--fs-xl)}.section-head .lede{color:var(--color-text-muted);margin:var(--space-1) 0 0;font-size:var(--fs-sm)}.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.dash-grid>.card{min-width:0}@media (max-width: 1100px){.dash-grid{grid-template-columns:1fr}}.scroll-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 calc(var(--space-5) * -1);padding:0 var(--space-5);background:linear-gradient(to right,var(--color-surface) 30%,rgba(19,26,44,0)) left center,linear-gradient(to right,rgba(19,26,44,0),var(--color-surface) 70%) right center,radial-gradient(farthest-side at 0% 50%,#00000059,#0000) left center,radial-gradient(farthest-side at 100% 50%,#00000059,#0000) right center;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}.toolbar{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.toolbar-check{display:flex;gap:var(--space-2);align-items:center;font-size:var(--fs-sm);white-space:nowrap}.toolbar-search{min-width:220px;flex:0 1 auto}.dropdown-anchor{position:relative}.dropdown-panel{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:260px;max-height:70vh;overflow-y:auto;padding:var(--space-3);box-shadow:var(--shadow-pop)}.period-filter{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.period-filter-presets{display:flex;gap:4px;flex-wrap:wrap}.period-filter-presets button{padding:6px 12px;font-size:var(--fs-xs);white-space:nowrap}.period-filter-dates{display:flex;gap:var(--space-2);align-items:center}.period-filter-dates input[type=date]{padding:4px 8px;font-size:var(--fs-sm)}.period-filter-arrow{color:var(--color-text-muted);font-size:var(--fs-sm)}.hamburger{display:none;background:transparent;border:1px solid var(--color-border);color:var(--color-text);padding:6px 10px;border-radius:var(--radius-sm);font-size:18px;line-height:1}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@media (max-width: 800px){:root{--sidebar-width: 0px}html,body{overflow-x:hidden}.app-shell{grid-template-columns:1fr}.app-sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;z-index:60;transform:translate(-100%);transition:transform .22s ease;box-shadow:var(--shadow-pop)}.app-sidebar.open{transform:translate(0)}.app-sidebar a{padding:10px 12px;font-size:var(--fs-md)}.sidebar-backdrop.open{display:block}.hamburger{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:38px}.app-topbar{padding:0 var(--space-3);gap:var(--space-2);height:52px}.app-content{padding:var(--space-4) var(--space-3) calc(var(--space-5) + env(safe-area-inset-bottom,0px));overflow-x:hidden}.section-head{flex-direction:column;align-items:stretch;gap:var(--space-3)}.section-head h2{font-size:var(--fs-lg)}.toolbar{flex-direction:column;align-items:stretch;gap:var(--space-2)}.toolbar>*{width:100%}.toolbar-search{width:100%;min-width:0}.toolbar-check{justify-content:flex-start;padding:6px 0}.dropdown-panel{left:0;right:0;min-width:0;width:100%;max-height:60vh}.card{padding:var(--space-4)}.scroll-wrap{margin:0 calc(var(--space-4) * -1);padding:0 var(--space-4)}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.kpi-card{padding:var(--space-4)}.kpi-card .value{font-size:var(--fs-xl);line-height:1.15}.kpi-card .label{font-size:11px}table.data{font-size:var(--fs-sm)}table.data th,table.data td{padding:10px var(--space-3);white-space:nowrap}.period-filter{width:100%;flex-direction:column;align-items:stretch;gap:var(--space-2)}.period-filter-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible}.period-filter-presets button{padding:9px 6px;font-size:var(--fs-sm);min-height:38px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.period-filter-dates{display:flex;gap:var(--space-2);align-items:center;justify-content:space-between}.period-filter-dates input[type=date]{flex:1 1 0;min-width:0;padding:9px 10px;font-size:16px}.period-filter-arrow{flex:0 0 auto;color:var(--color-text-muted)}input,select,textarea{font-size:16px;min-height:38px}.btn{font-size:var(--fs-sm);min-height:36px}.subnav{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 calc(var(--space-3) * -1);padding:0 var(--space-3) 2px}.subnav::-webkit-scrollbar{display:none}.subnav a{white-space:nowrap;padding:var(--space-2) var(--space-3);min-height:38px;display:inline-flex;align-items:center}.login-card{max-width:none}}@media (max-width: 500px){.app-content{padding:var(--space-3) var(--space-3) var(--space-5)}.kpi-grid{grid-template-columns:1fr 1fr;gap:var(--space-2)}.kpi-card{padding:var(--space-3)}.kpi-card .value{font-size:var(--fs-lg);margin-top:4px}.card{padding:var(--space-3)}.scroll-wrap{margin:0 calc(var(--space-3) * -1);padding:0 var(--space-3)}.section-head h2{font-size:var(--fs-md);font-weight:700;letter-spacing:-.01em}.section-head .lede{font-size:var(--fs-xs)}.app-sidebar{width:80vw;max-width:280px}table.data th,table.data td{padding:9px var(--space-2)}}
