:root{--brand-25:#f2f7ff;--brand-50:#ecf3ff;--brand-100:#dde9ff;--brand-200:#c2d6ff;--brand-300:#9cb9ff;--brand-400:#7592ff;--brand-500:#465fff;--brand-600:#3641f5;--brand-700:#2a31d8;--gray-25:#fcfcfd;--gray-50:#f9fafb;--gray-100:#f2f4f7;--gray-200:#e4e7ec;--gray-300:#d0d5dd;--gray-400:#98a2b3;--gray-500:#667085;--gray-600:#475467;--gray-700:#344054;--gray-800:#1d2939;--gray-900:#101828;--gray-dark:#1a2231;--success-50:#ecfdf3;--success-500:#12b76a;--success-700:#027a48;--warning-50:#fffaeb;--warning-500:#f79009;--warning-700:#b54708;--error-50:#fef3f2;--error-500:#f04438;--error-700:#b42318;--color-primary:var(--brand-500);--color-on-primary:#ffffff;--color-secondary:var(--brand-300);--color-accent:var(--brand-600);--color-on-accent:#ffffff;--color-background:var(--gray-50);--color-foreground:var(--gray-800);--color-card:#ffffff;--color-card-solid:#ffffff;--color-muted:var(--gray-100);--color-muted-foreground:var(--gray-500);--color-border:var(--gray-200);--color-destructive:var(--error-500);--color-ring:var(--brand-500);--color-ok:var(--success-700);--color-ok-bg:var(--success-50);--color-warn:var(--warning-700);--color-warn-bg:var(--warning-50);--sidebar:290px;--header-h:72px;--radius:16px;--radius-sm:10px;--shadow:0 1px 2px rgba(16,24,40,0.04);--font-display:"Outfit","Segoe UI",sans-serif;--font-body:"Outfit","Segoe UI",sans-serif;--ease:cubic-bezier(0.22,1,0.36,1)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;color:var(--color-foreground);font-family:var(--font-body);line-height:1.5;background:var(--gray-50);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}.app{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) 1fr}@media (max-width:1024px){.app{grid-template-columns:1fr}}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.5rem;background:var(--gray-dark);border-right:1px solid rgba(255,255,255,.04);overflow-y:auto}@media (max-width:1024px){.sidebar{position:relative;height:auto;border-right:none;border-bottom:1px solid rgba(255,255,255,.06)}}.brand{display:flex;gap:.75rem;align-items:center;padding:.35rem .55rem}.brand-mark{width:2.4rem;height:2.4rem;border-radius:.75rem;background:linear-gradient(145deg,var(--brand-500),var(--brand-700));color:#fff;display:grid;place-items:center;font-weight:700;letter-spacing:-.04em;box-shadow:0 8px 18px rgba(70,95,255,.35)}.brand-copy strong{display:block;font-size:1rem;font-weight:650;color:#fff;letter-spacing:-.01em}.brand-copy span{color:var(--gray-400);font-size:.75rem}.nav-section-label{margin:.35rem .7rem .45rem;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-500)}.side-nav{display:flex;flex-direction:column;gap:.25rem}.side-nav a{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;border-radius:12px;color:var(--gray-400);font-weight:500;font-size:.92rem;transition:background .16s var(--ease),color .16s var(--ease)}.side-nav a:hover{background:rgba(255,255,255,.04);color:#fff}.side-nav a[aria-current=page]{background:var(--brand-500);color:#fff;box-shadow:0 8px 18px rgba(70,95,255,.28)}.side-nav .nav-icon{width:1.35rem;height:1.35rem;display:grid;place-items:center;flex-shrink:0;opacity:.9}.side-nav .nav-hint{display:block;font-size:.72rem;font-weight:400;opacity:.75;margin-top:.1rem}.side-foot{margin-top:auto;padding:.95rem;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06)}.side-foot p{margin:0;font-size:.75rem;color:var(--gray-400);line-height:1.45}.content-shell{min-width:0;display:flex;flex-direction:column;min-height:100vh}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.5rem;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--gray-200)}.topbar-title{font-size:.95rem;font-weight:600;color:var(--gray-800)}.topbar-meta{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.main{min-width:0;padding:1.5rem 1.5rem 2.75rem}.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:flex-end;margin-bottom:1.25rem}.page-head h1{margin:0;font-size:clamp(1.55rem,2vw,1.9rem);letter-spacing:-.02em;font-weight:700;color:var(--gray-800)}.page-head p{margin:.4rem 0 0;color:var(--gray-500);max-width:44rem;font-size:.92rem}.toolbar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.field{display:flex;flex-direction:column;gap:.28rem}.field label{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gray-500)}.field input,.field select{background:#fff;border:1px solid var(--gray-300);border-radius:var(--radius-sm);padding:.55rem .75rem;min-width:9.5rem;color:var(--gray-700);box-shadow:var(--shadow)}.field input:focus,.field select:focus{border-color:var(--brand-300);box-shadow:0 0 0 3px var(--brand-100);outline:none}.btn{border:none;border-radius:var(--radius-sm);padding:.62rem 1rem;font-weight:600;cursor:pointer;transition:filter .16s var(--ease),opacity .16s var(--ease),transform .16s var(--ease)}.btn:hover{filter:brightness(1.03)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand-500);color:#fff;box-shadow:0 8px 18px rgba(70,95,255,.25)}.btn-ghost{background:#fff;border:1px solid var(--gray-300);color:var(--gray-600);cursor:pointer}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.1rem}@media (max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.kpi-grid{grid-template-columns:1fr}}.card,.kpi{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi{padding:1.15rem 1.2rem}.kpi .k-icon{width:2.75rem;height:2.75rem;border-radius:12px;background:var(--gray-100);color:var(--gray-700);display:grid;place-items:center;margin-bottom:1rem;font-size:1.05rem;font-weight:700}.kpi .k-label{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start;color:var(--gray-500);font-size:.84rem;font-weight:500}.kpi .k-value{margin-top:.45rem;font-size:clamp(1.55rem,2vw,1.85rem);font-weight:700;letter-spacing:-.02em;color:var(--gray-800)}.kpi .k-hint{margin-top:.35rem;color:var(--gray-400);font-size:.8rem}.pill{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:600}.pill-ok{background:var(--success-50);color:var(--success-700)}.pill-warn{background:var(--warning-50);color:var(--warning-700)}.pill-danger{background:var(--error-50);color:var(--error-700)}.pill-muted{background:var(--gray-100);color:var(--gray-600)}.layout-2{grid-template-columns:1.45fr 1fr;grid-gap:1rem}.layout-2,.layout-3{display:grid;gap:1rem}.layout-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem}@media (max-width:1100px){.layout-2,.layout-3{grid-template-columns:1fr}}.card{padding:1.2rem 1.25rem}.card h2{margin:0;font-size:1.05rem;font-weight:650;color:var(--gray-800)}.card .lede{margin:.35rem 0 1rem;color:var(--gray-500);font-size:.88rem}.banner{border-radius:12px;padding:.85rem 1rem;margin-bottom:1rem;border:1px solid var(--gray-200);font-size:.9rem;background:#fff}.banner-info{background:var(--brand-25);border-color:var(--brand-100);color:var(--brand-700)}.banner-warn{background:var(--warning-50);border-color:#fef0c7;color:var(--warning-700)}.banner-error{background:var(--error-50);border-color:#fecdca;color:var(--error-700)}.bar-list{display:flex;flex-direction:column;gap:.7rem}.bar-item{display:grid;grid-template-columns:minmax(5.5rem,8rem) 1fr auto;grid-gap:.65rem;gap:.65rem;align-items:center}.bar-item .name{font-size:.86rem;color:var(--gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track{height:.48rem;border-radius:999px;background:var(--gray-100);overflow:hidden}.fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand-600),var(--brand-400));transition:width .42s var(--ease)}.bar-item strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.9rem}.table-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--gray-200);background:#fff}table.data{width:100%;border-collapse:collapse;font-size:.88rem}table.data td,table.data th{text-align:left;padding:.8rem .9rem;border-bottom:1px solid var(--gray-100);white-space:nowrap}table.data th{color:var(--gray-500);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600}table.data th,table.data tr:hover td{background:var(--gray-25)}table.data td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--gray-500);font-size:.86rem}.decision{display:flex;flex-wrap:wrap;gap:.55rem;margin:.85rem 0 .2rem}.chart-card .lede{margin-bottom:.75rem}.chart-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.chart-box{width:100%;height:280px}.chart-box-lg{height:340px}.recharts-default-legend{font-size:.78rem!important}.recharts-default-legend,.recharts-legend-item-text{color:var(--gray-500)!important}.state-block{border-radius:var(--radius);border:1px solid var(--gray-200);background:#fff;padding:1.25rem;color:var(--gray-500);margin-bottom:1rem}.state-block.error{border-color:#fecdca;background:var(--error-50);color:var(--error-700)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}