:root{--ink:#001035;--ink-alt:#00143f;--surface:#f1f4ff;--surface-card:#fff;--surface-overlay:#ffffffd9;--fill-subtle:#e3efff;--accent:#2365ff;--accent-soft:#64a7ff;--accent-deep:#1d36b6;--accent-glow:#8dc1ff;--live:#2db2ff;--text-muted:#515b79;--text-tertiary:#626c88;--dot-inactive:#cbd2ea;--success-bg:#e2fbea;--success:#74d184;--success-text:#2a7d45;--warning-bg:#fffae9;--warning:#efc42c;--warning-text:#7e6309;--danger-bg:#fff5f6;--danger:#fe566b;--danger-text:#c93147;--info-bg:#e3efff;--info:#2db2ff;--info-text:#1d36b6;--card-grad:linear-gradient(178deg, #fff 0%, #fff9 100%);--brand-grad:linear-gradient(135deg, #001035 0%, #1d36b6 45%, #2365ff 72%, #2db2ff 100%);--shadow-card:0 2px 8px #9ac4ff0f;--shadow-pill:0 4px 16px #1f2f5414;--shadow-sheet:0 -8px 32px #1f2f541a;--r-sm:12px;--r-md:20px;--r-lg:24px;--r-sheet:32px;--r-pill:999px;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--dur-press:.12s;--dur-hover:.16s;--dur-pop:.2s;--dur-drawer:.32s;--dur-micro:.35s;--dur-normal:.6s;--dur-macro:1.8s;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-12:48px;--sidebar-w:240px;--content-max:1240px;--z-sticky:1;--z-sidebar:10;--z-scrim:40;--z-drawer:50;--z-palette:60;--z-skip:100}.t-stat{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font:600 28px/32px Figtree,system-ui,sans-serif}.t-stat-lg{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font:600 36px/40px Figtree,system-ui,sans-serif}.t-page{letter-spacing:-.03em;font:600 24px/30px Figtree,system-ui,sans-serif}.t-h2{letter-spacing:-.03em;font:500 20px/25px Figtree,system-ui,sans-serif}.t-h3{letter-spacing:-.03em;font:600 18px/25px Figtree,system-ui,sans-serif}.t-body{letter-spacing:-.02em;font:500 16px/22px Figtree,system-ui,sans-serif}.t-cell,.t-small{font:500 14px/18px Figtree,system-ui,sans-serif}.t-label,.t-caption{font:600 13px/16px Figtree,system-ui,sans-serif}.t-micro{letter-spacing:.04em;font:600 10px/12px Figtree,system-ui,sans-serif}.t-mono{font:400 13px/18px JetBrains Mono,ui-monospace,monospace}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);background:var(--surface);min-height:100%;display:grid}.sidebar{z-index:var(--z-sidebar);align-self:start;gap:var(--s-5);height:100vh;padding:var(--s-5) var(--s-4);background:var(--surface-card);color:var(--ink);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.wordmark{align-items:center;gap:var(--s-2);padding:0 var(--s-2);display:flex}.wordmark-glyph{border-radius:var(--r-sm);background:var(--brand-grad);color:#fff;flex:0 0 32px;place-items:center;width:32px;height:32px;display:grid}.school-switch{align-items:center;gap:var(--s-2);width:100%;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--surface);color:var(--ink);text-align:left;transition:background-color var(--dur-hover) ease, transform var(--dur-press) var(--ease-out-expo);display:flex}.school-switch:active{transform:scale(.98)}.school-switch:hover{background:var(--fill-subtle)}.nav-group-label{padding:var(--s-3) var(--s-3) var(--s-1);color:var(--text-tertiary)}.nav-item{align-items:center;gap:var(--s-3);padding:10px var(--s-3);border-radius:var(--r-sm);color:var(--text-muted);transition:background-color var(--dur-hover) ease, color var(--dur-hover) ease;display:flex;position:relative}.nav-item:hover{background:var(--surface);color:var(--ink)}.nav-item.is-active{background:var(--fill-subtle);color:var(--accent-deep);font-weight:600}.nav-item.is-active:before{content:"";border-radius:var(--r-pill);background:var(--accent);width:3px;position:absolute;top:8px;bottom:8px;left:-4px}.nav-item .nav-count{border-radius:var(--r-pill);background:var(--fill-subtle);color:var(--accent-deep);margin-left:auto;padding:2px 8px}.nav-item.is-active .nav-count{background:var(--accent);color:#fff}.subnav{margin:2px 0 var(--s-2) 26px;padding-left:var(--s-3);box-shadow:inset 2px 0 0 var(--fill-subtle);flex-direction:column;display:flex}.subnav-item{padding:7px var(--s-3);border-radius:var(--r-sm);color:var(--text-muted);transition:background-color var(--dur-hover) ease, color var(--dur-hover) ease}.subnav-item:hover{background:var(--surface);color:var(--ink)}.subnav-item.is-active{color:var(--accent);font-weight:600}.sidebar-promo{gap:var(--s-2);padding:var(--s-4);border-radius:var(--r-md);background:var(--brand-grad);color:#fff;flex-direction:column;margin-top:auto;display:flex}.sidebar-promo .promo-glyph{border-radius:var(--r-sm);background:#ffffff2e;place-items:center;width:32px;height:32px;display:grid}.sidebar-promo .btn{margin-top:var(--s-1);background:var(--surface-card);color:var(--accent-deep)}.main{min-width:0;padding:var(--s-6) var(--s-8) var(--s-12)}.main-inner{max-width:var(--content-max);gap:var(--s-6);flex-direction:column;margin:0 auto;display:flex}.topbar{justify-content:space-between;align-items:flex-start;gap:var(--s-4);flex-wrap:wrap;display:flex}.search-pill{align-items:center;gap:var(--s-2);min-width:220px;padding:var(--s-3) var(--s-4);border-radius:var(--r-pill);background:var(--surface-card);box-shadow:var(--shadow-card);color:var(--text-muted);display:flex}.search-pill input{width:100%;color:var(--ink);background:0 0}.search-pill input::placeholder{color:var(--text-tertiary)}.icon-circle{border-radius:var(--r-pill);background:var(--surface-card);width:44px;height:44px;box-shadow:var(--shadow-card);color:var(--ink);transition:transform var(--dur-press) var(--ease-out-expo), background-color var(--dur-hover) ease;flex:0 0 44px;place-items:center;display:grid;position:relative}@media (hover:hover) and (pointer:fine){.icon-circle:hover{transform:translateY(-1px)}}.icon-circle:active{transform:scale(.94)}.icon-circle .dot{border-radius:var(--r-pill);background:var(--accent);width:8px;height:8px;position:absolute;top:10px;right:11px}.avatar{border-radius:var(--r-pill);background:var(--ink);color:#fff;flex:0 0 44px;place-items:center;width:44px;height:44px;display:grid}.avatar-sm{background:var(--fill-subtle);width:32px;height:32px;color:var(--ink);flex-basis:32px}.kbd{background:var(--fill-subtle);color:var(--text-muted);border-radius:6px;padding:2px 6px}.toolbar{justify-content:space-between;align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.toolbar-controls{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.kebab{border-radius:var(--r-sm);width:28px;height:28px;color:var(--text-tertiary);transition:background-color var(--dur-hover) ease, transform var(--dur-press) var(--ease-out-expo);place-items:center;display:grid}.kebab:active{transform:scale(.92)}.kebab:hover{background:var(--fill-subtle);color:var(--ink)}.stat-icon{border-radius:var(--r-sm);background:var(--fill-subtle);width:32px;height:32px;color:var(--accent);flex:0 0 32px;place-items:center;display:grid}.delta{border-radius:var(--r-pill);background:var(--success-bg);color:var(--success-text);align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.delta-down{background:var(--danger-bg);color:var(--danger-text)}.delta-flat{background:var(--fill-subtle);color:var(--text-muted)}.tabs{align-items:center;gap:var(--s-1);padding:var(--s-1);border-radius:var(--r-pill);background:var(--surface-card);box-shadow:var(--shadow-card);flex-wrap:wrap;width:fit-content;max-width:100%;display:flex}.tab{padding:var(--s-2) var(--s-4);border-radius:var(--r-pill);color:var(--text-muted);transition:background-color var(--dur-hover) ease, color var(--dur-hover) ease}.tab:hover{background:var(--fill-subtle);color:var(--ink)}.tab.is-active{background:var(--ink);color:#fff}.card{padding:var(--s-5);border-radius:var(--r-lg);background:var(--card-grad);background-color:var(--surface-card);box-shadow:var(--shadow-card)}.card-head{justify-content:space-between;align-items:center;gap:var(--s-4);margin-bottom:var(--s-4);display:flex}.card-dark{background:var(--ink);color:#fff}.card-dark .muted{color:#ffffffb3}.card-brand{background:linear-gradient(180deg, #00103500 35%, #00103599 100%), var(--brand-grad);color:#fff}.hero-glow{isolation:isolate;position:relative}.hero-glow:before{content:"";inset:calc(var(--s-6) * -1) 0 auto;z-index:-1;pointer-events:none;background:radial-gradient(38% 150% at 34% 0,#8dc1ff73,#8dc1ff00 72%);height:260px;position:absolute}.stat-card{gap:var(--s-2);padding:var(--s-5);border-radius:var(--r-lg);background:var(--card-grad);background-color:var(--surface-card);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.stat-card .stat-head{justify-content:space-between;align-items:center;gap:var(--s-2);color:var(--text-muted);display:flex}.pill{align-items:center;gap:var(--s-2);border-radius:var(--r-pill);background:var(--fill-subtle);color:var(--ink);white-space:nowrap;padding:6px 12px;display:inline-flex}.pill .pill-dot{border-radius:var(--r-pill);flex:0 0 8px;width:8px;height:8px}.pill-success{background:var(--success-bg)}.pill-success .pill-dot{background:var(--success)}.pill-warning{background:var(--warning-bg)}.pill-warning .pill-dot{background:var(--warning)}.pill-danger{background:var(--danger-bg)}.pill-danger .pill-dot{background:var(--danger)}.pill-info{background:var(--info-bg)}.pill-info .pill-dot{background:var(--info)}.pill-neutral{background:var(--fill-subtle)}.pill-neutral .pill-dot{background:var(--dot-inactive)}.pill-live{border-radius:var(--r-pill);color:var(--info-text);background:#2db2ff24;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.pill-live .live-dot{border-radius:var(--r-pill);background:var(--live);width:6px;height:6px;animation:1.6s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}.chip{align-items:center;gap:var(--s-2);min-height:32px;transition:background-color var(--dur-hover) ease, color var(--dur-hover) ease, transform var(--dur-press) var(--ease-out-expo);border-radius:var(--r-pill);background:var(--fill-subtle);box-shadow:var(--shadow-card);color:var(--text-muted);padding:6px 12px;display:inline-flex}.chip.is-selected{background:var(--ink);color:#fff}button.chip:active{transform:scale(.96)}.btn{justify-content:center;align-items:center;gap:var(--s-2);height:44px;padding:0 var(--s-5);border-radius:var(--r-md);background:var(--fill-subtle);color:var(--ink);white-space:nowrap;transition:transform var(--dur-press) var(--ease-out-expo), background-color var(--dur-hover) ease, box-shadow var(--dur-hover) ease;display:inline-flex}@media (hover:hover) and (pointer:fine){.btn:hover{transform:translateY(-1px)}}.btn:active{transform:scale(.97)}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:var(--ink-alt)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-deep)}.btn-sm{height:36px;padding:0 var(--s-4)}.btn-danger{background:var(--danger-bg);color:var(--danger-text)}.btn:disabled{background:var(--fill-subtle);color:var(--text-tertiary);cursor:not-allowed;transform:none}.icon-btn{border-radius:var(--r-sm);width:36px;height:36px;color:var(--text-muted);transition:background-color var(--dur-hover) ease, transform var(--dur-press) var(--ease-out-expo);place-items:center;display:grid}.icon-btn:active{transform:scale(.92)}.icon-btn:hover{background:var(--fill-subtle);color:var(--ink)}.field{flex-direction:column;gap:6px;display:flex}.field-control{align-items:center;gap:var(--s-2);height:44px;padding:0 var(--s-4);border-radius:var(--r-md);background:var(--fill-subtle);color:var(--ink);display:flex}.field-control input,.field-control select,.field-control textarea{background:0 0;width:100%}textarea.field-control{height:auto;min-height:96px;padding:var(--s-3) var(--s-4);resize:vertical;align-items:flex-start}.toggle{border-radius:var(--r-pill);background:var(--dot-inactive);width:44px;height:26px;transition:background-color var(--dur-hover) ease;flex:0 0 44px;position:relative}.toggle:after{content:"";border-radius:var(--r-pill);width:20px;height:20px;transition:transform var(--dur-pop) var(--ease-out-expo);background:#fff;position:absolute;top:3px;left:3px}.toggle.is-on{background:var(--accent)}.toggle.is-on:after{transform:translate(18px)}.table-wrap{width:100%;overflow-x:auto}table.data{border-collapse:separate;border-spacing:0;width:100%}table.data th{padding:var(--s-3) var(--s-4);text-align:left;color:var(--text-muted);white-space:nowrap;font:600 13px/16px Figtree,system-ui,sans-serif}table.data td{padding:var(--s-3) var(--s-4);vertical-align:middle;height:56px;color:var(--ink);white-space:nowrap;font:500 14px/18px Figtree,system-ui,sans-serif}table.data td>span.muted{white-space:normal;vertical-align:middle;max-width:360px;display:inline-block}table.data tbody tr{transition:background-color var(--dur-hover) ease}table.data tbody tr:hover td:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}table.data tbody tr:hover td:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}table.data td.right,table.data th.right{text-align:right}.list-row{align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3);border-radius:var(--r-md);text-align:left;transition:background-color var(--dur-hover) ease, transform var(--dur-press) var(--ease-out-expo);display:flex}button.list-row:active,a.list-row:active{transform:scale(.995)}.row-icon{border-radius:var(--r-sm);background:var(--fill-subtle);width:40px;height:40px;color:var(--accent);flex:0 0 40px;place-items:center;display:grid}.row-icon-success{background:var(--success-bg);color:var(--success-text)}.row-icon-warning{background:var(--warning-bg);color:var(--warning-text)}.row-icon-danger{background:var(--danger-bg);color:var(--danger-text)}.track{border-radius:var(--r-pill);background:var(--fill-subtle);height:8px;position:relative;overflow:hidden}.track-fill{transform-origin:0;transform:scaleX(var(--fill,0));border-radius:var(--r-pill);background:var(--accent);transition:transform var(--dur-macro) cubic-bezier(0, 0, .2, 1);position:absolute;inset:0}.track-fill.is-warning{background:var(--warning)}.track-fill.is-danger{background:var(--danger)}.column-fill{transform-origin:bottom;width:100%;transform:scaleY(var(--fill,0));border-radius:var(--r-sm);transition:transform var(--dur-macro) cubic-bezier(0, 0, .2, 1);display:block}.track-fill.is-success{background:var(--success)}.map-frame{border-radius:var(--r-lg);background:var(--map-ground);position:relative;overflow:hidden}.map-callout{align-items:center;gap:var(--s-2);border-radius:var(--r-pill);background:var(--surface-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-pill);color:var(--ink);white-space:nowrap;padding:8px 12px;display:inline-flex;position:absolute}.map-overlay{z-index:2;position:absolute}.empty{align-items:center;gap:var(--s-3);padding:var(--s-12) var(--s-6);text-align:center;color:var(--text-muted);flex-direction:column;display:flex}.divider-space{height:var(--s-2)}.scroll-y{overflow-y:auto}.timeline{flex-direction:column;display:flex}.timeline-item{gap:var(--s-3);padding-bottom:var(--s-5);grid-template-columns:24px minmax(0,1fr);display:grid}.timeline-rail{justify-content:center;display:flex;position:relative}.timeline-rail:before{content:"";background:var(--fill-subtle);width:2px;position:absolute;top:14px;bottom:-20px}.timeline-item:last-child .timeline-rail:before{display:none}.timeline-dot{z-index:1;border-radius:var(--r-pill);background:var(--accent);width:12px;height:12px;margin-top:4px;position:relative}.shell-scrim{z-index:var(--z-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity var(--dur-drawer) var(--ease-drawer);background:#00103552;position:fixed;inset:0}.menu-button{display:none}@media (width<=900px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:var(--z-drawer);border-radius:0 var(--r-lg) var(--r-lg) 0;visibility:hidden;width:min(288px,86vw);height:100dvh;transition:transform var(--dur-drawer) var(--ease-drawer), visibility 0s linear var(--dur-drawer);position:fixed;top:0;left:0;transform:translate(-104%);box-shadow:8px 0 32px #1f2f541f}.shell.is-drawer-open .sidebar{visibility:visible;transition:transform var(--dur-drawer) var(--ease-drawer), visibility 0s;transform:none}.shell.is-drawer-open .shell-scrim{opacity:1;pointer-events:auto}.menu-button{display:grid}.main{padding:var(--s-4) var(--s-4) var(--s-12)}.topbar{align-items:center;gap:var(--s-2);flex-wrap:nowrap}.search-pill{min-width:0;padding:10px var(--s-3)}.search-pill .kbd,.topbar .avatar{display:none}.toolbar-controls{width:100%}.toolbar-controls .btn{flex:auto}.card:not(.card-flush),.stat-card{padding:var(--s-4)}.hero-glow:before{display:none}}@media (width<=900px) and (prefers-reduced-motion:reduce){.sidebar{transition:none}}@media (pointer:coarse){.kebab,.icon-btn{width:44px;height:44px}.chip,.tab{min-height:44px}.subnav-item{padding:12px var(--s-3)}}.table-wrap{scrollbar-gutter:stable;max-height:min(70vh,720px)}.table-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--r-sm)}table.data thead th{z-index:var(--z-sticky);background:var(--surface-card);position:sticky;top:0}.palette-backdrop{z-index:var(--z-palette);padding:12vh var(--s-4) var(--s-4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00103552;justify-content:center;display:flex;position:fixed;inset:0}.palette{border-radius:var(--r-lg);background:var(--surface-card);flex-direction:column;width:min(640px,100%);max-height:60vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #1f2f543d}.palette-search{align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);color:var(--text-muted);display:flex}.palette-search input{width:100%;color:var(--ink);background:0 0;font:500 16px/22px Figtree,system-ui,sans-serif}.palette-search input::placeholder{color:var(--text-tertiary)}.palette-results{padding:0 var(--s-3) var(--s-3);overflow-y:auto}.palette-group-label{padding:var(--s-3) var(--s-3) var(--s-1);color:var(--text-tertiary)}.palette-item{align-items:center;gap:var(--s-3);width:100%;padding:10px var(--s-3);border-radius:var(--r-sm);text-align:left;color:var(--ink);display:flex}.palette-item .palette-hint{color:var(--text-tertiary);margin-left:auto}.palette-footer{align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-5);background:var(--surface);color:var(--text-muted);display:flex}.skeleton{border-radius:var(--r-sm);background:var(--fill-subtle);position:relative;overflow:hidden}.skeleton:after{content:"";animation:skeleton-sweep 1.2s var(--ease-in-out) infinite;background:linear-gradient(90deg,#fff0 0%,#ffffffa6 50%,#fff0 100%);position:absolute;inset:0;transform:translate(-100%)}@keyframes skeleton-sweep{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.bus-marker{transition:transform 9.4s var(--ease-out-expo)}@media (prefers-reduced-motion:reduce){.bus-marker{transition:none}}@media (hover:hover) and (pointer:fine){.card,.stat-card{transition:box-shadow var(--dur-hover) ease, transform var(--dur-hover) var(--ease-out-expo)}.card:hover,.stat-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #9ac4ff38}.card-dark:hover,.card-brand:hover{box-shadow:0 8px 24px #1f2f542e}.stat-card .stat-icon{transition:background-color var(--dur-hover) ease, color var(--dur-hover) ease, transform var(--dur-hover) var(--ease-out-expo)}.stat-card:hover .stat-icon{background:var(--accent);color:#fff;transform:rotate(-4deg)scale(1.06)}.kebab{opacity:0}.card:hover .kebab,.card:focus-within .kebab,.kebab:focus-visible{opacity:1}.nav-item,.subnav-item{transition:background-color var(--dur-hover) ease, color var(--dur-hover) ease, transform var(--dur-hover) var(--ease-out-expo)}.nav-item:hover,.subnav-item:hover{transform:translate(2px)}.nav-item.is-active:hover{transform:none}a.list-row:hover,button.list-row:hover{transform:translate(2px)}.list-row .row-icon{transition:transform var(--dur-hover) var(--ease-out-expo)}a.list-row:hover .row-icon,button.list-row:hover .row-icon{transform:scale(1.06)}.btn:hover{box-shadow:var(--shadow-pill)}.chip:hover{background:var(--dot-inactive);color:var(--ink)}.chip.is-selected:hover{background:var(--ink-alt);color:#fff}.tab:hover{transform:translateY(-1px)}.avatar,.school-switch,.sidebar-promo .btn{transition:transform var(--dur-hover) var(--ease-out-expo), background-color var(--dur-hover) ease, box-shadow var(--dur-hover) ease}.avatar:hover{transform:scale(1.04)}.link-arrow svg{transition:transform var(--dur-hover) var(--ease-out-expo)}.link-arrow:hover svg{transform:translate(2px,-2px)}.link-arrow:hover{color:var(--accent-deep)}.map-callout{transition:transform var(--dur-hover) var(--ease-out-expo), box-shadow var(--dur-hover) ease}.map-callout:hover{transform:translateY(-2px);box-shadow:0 8px 22px #1f2f5429}.bar-row .track-fill,.column-fill{transition:transform var(--dur-macro) cubic-bezier(0, 0, .2, 1), filter var(--dur-hover) ease}.bar-row:hover .track-fill,.column:hover .column-fill{filter:saturate(1.15)brightness(1.04)}.bar-row:hover .bar-label,.bar-row:hover .bar-value{color:var(--ink)}.column{transition:transform var(--dur-hover) var(--ease-out-expo)}.column:hover{transform:translateY(-2px)}.toggle{transition:background-color var(--dur-hover) ease, box-shadow var(--dur-hover) ease}.toggle:hover{box-shadow:0 0 0 4px #2365ff1f}.palette-item{transition:background-color var(--dur-hover) ease, transform var(--dur-press) var(--ease-out-expo)}.palette-item:hover{transform:translate(2px)}.search-pill{transition:box-shadow var(--dur-hover) ease, transform var(--dur-press) var(--ease-out-expo)}.search-pill:hover{box-shadow:var(--shadow-pill)}.search-pill:active{transform:scale(.995)}.timeline-item .timeline-dot{transition:transform var(--dur-hover) var(--ease-out-expo)}.timeline-item:hover .timeline-dot{transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){.card:hover,.stat-card:hover,.nav-item:hover,.subnav-item:hover,a.list-row:hover,button.list-row:hover,.tab:hover,.avatar:hover,.map-callout:hover,.column:hover,.palette-item:hover,.stat-card:hover .stat-icon,.link-arrow:hover svg{transform:none}}.chart-hover{touch-action:pan-y}.chart-readout{border-radius:var(--r-pill);background:var(--ink);color:#fff;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-pill);padding:4px 10px;position:absolute;top:-6px;transform:translate(-50%)}@media (hover:hover) and (pointer:fine){.field-control{transition:background-color var(--dur-hover) ease, box-shadow var(--dur-hover) ease}.field-control:hover{background:var(--info-bg)}.field-control:focus-within{background:var(--surface-card);box-shadow:0 0 0 2px var(--accent)}.sidebar-promo{transition:box-shadow var(--dur-hover) ease}.sidebar-promo:hover{box-shadow:0 10px 28px #1d36b647}}.login-shell{background:var(--surface);grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100dvh;display:grid}.login-hero{justify-content:space-between;gap:var(--s-8);padding:var(--s-12);border-radius:0 var(--r-sheet) var(--r-sheet) 0;flex-direction:column;display:flex}.login-form-pane{padding:var(--s-8);place-items:center;display:grid}@media (width<=900px){.login-shell{grid-template-columns:minmax(0,1fr)}.login-hero{padding:var(--s-6);border-radius:0 0 var(--r-sheet) var(--r-sheet);gap:var(--s-6)}.login-form-pane{padding:var(--s-6) var(--s-4) var(--s-12)}}:root{--ground:#ececea;--surface:var(--ground);--surface-card:#fbfbfa;--surface-well:#f4f4f2;--surface-overlay:#fbfbfadb;--fill-subtle:#f0f0ed;--fill-sunk:#e6e6e3;--ink:#141414;--ink-alt:#000;--text-muted:#5c5a55;--text-tertiary:#69675f;--dot-inactive:#d9d8d4;--success-bg:#e4f3e6;--success-text:#26713e;--warning-bg:#f8efd9;--warning-text:#755c08;--danger-bg:#f9e4e4;--danger-text:#b92b40;--info-bg:#e6edf9;--info-text:#1d36b6;--sh-card:0 1px 2px #14141408, 0 12px 32px -8px #1c191717;--sh-raise:0 6px 14px #14141424, inset 0 2px 2px #ffffffe6, inset 0 -2px 4px #1414140d;--sh-well:inset 0 2px 6px #1414141a, inset 0 -1px 1px #ffffffb3;--sh-chip:0 2px 8px #14141414, inset 0 1px 1px #ffffffe6;--sh-brand:0 6px 16px -4px #2365ff73;--shadow-card:var(--sh-card);--shadow-pill:var(--sh-chip);--shadow-sheet:0 -8px 32px #1414141f;--line:#14141412;--r-md:16px;--r-lg:28px;--pad:clamp(20px, 1.9vw, 28px);--dur-press:.14s;--dur-hover:.18s;--dur-pop:.22s;--ease-out-expo:cubic-bezier(.23, 1, .32, 1)}.card,.stat-card{background:var(--surface-card);border-radius:var(--r-lg);box-shadow:var(--sh-card);padding:var(--pad)}.card-flush{padding:0;overflow:hidden}.sidebar{background:var(--surface-card);box-shadow:var(--sh-card)}.btn,.icon-circle,.kebab,.avatar,.school-switch{background:var(--surface-card);box-shadow:var(--sh-raise)}.btn-primary{background:var(--ink);color:#fff;box-shadow:0 6px 14px #14141438,inset 0 1px 1px #ffffff2e}.btn-accent{background:var(--accent);color:#fff;box-shadow:var(--sh-brand), inset 0 1px 1px #ffffff47}.btn-quiet{background:var(--surface-card);box-shadow:var(--sh-chip)}.btn-danger{background:var(--danger-bg);color:var(--danger-text);box-shadow:var(--sh-chip)}.btn:disabled{background:var(--fill-subtle);color:var(--text-tertiary);box-shadow:none}.btn:active,.icon-circle:active,.kebab:active,.school-switch:active{box-shadow:var(--sh-well);transform:translateY(1px)}.btn-primary:active,.btn-accent:active{transform:translateY(1px);box-shadow:inset 0 3px 8px #00000047}.chip{background:var(--surface-card);box-shadow:var(--sh-chip)}.chip.is-selected{background:var(--accent);color:#fff;box-shadow:var(--sh-brand)}.search-pill,.field-control,.palette-search,.track,.tabs{background:var(--surface-well);box-shadow:var(--sh-well)}.search-pill:focus-within,.field-control:focus-within{box-shadow:var(--sh-well), 0 0 0 2px #2365ff47}.tab.is-active{background:var(--surface-card);color:var(--ink);box-shadow:var(--sh-raise)}.tab:hover{color:var(--ink);background:#fff9}.toggle{background:var(--fill-sunk);box-shadow:var(--sh-well)}.toggle:after{box-shadow:var(--sh-raise)}.toggle.is-on{background:var(--accent);box-shadow:var(--sh-brand), inset 0 2px 4px #0003}.stat-icon{background:var(--fill-subtle);box-shadow:var(--sh-chip);border-radius:50%}.row-icon{box-shadow:var(--sh-chip);border-radius:50%}.wordmark-glyph,.promo-glyph{border-radius:50%}.nav-item.is-active{background:var(--surface-card);color:var(--accent-deep);box-shadow:var(--sh-chip)}.nav-item:hover,.subnav-item:hover,.nav-item .nav-count{background:var(--fill-subtle)}.subnav{box-shadow:inset 2px 0 0 var(--fill-sunk)}.hero-glow:before{background:radial-gradient(38% 150% at 34% 0,#2f7cf629,#2f7cf600 72%)}.card-brand{background:radial-gradient(80% 95% at 12% 18%, #2f7cf657, transparent 62%), radial-gradient(80% 95% at 88% 28%, #8fe3de7a, transparent 62%), var(--surface-card);color:var(--ink);box-shadow:var(--sh-card)}.sidebar-promo{z-index:2;background:radial-gradient(90% 120% at 15% 10%, #2f7cf642, transparent 64%), radial-gradient(90% 120% at 90% 90%, #8fe3de6b, transparent 64%), var(--surface-card);color:var(--ink);box-shadow:var(--sh-chip);position:relative}.sidebar-promo .promo-glyph{background:var(--accent);color:#fff;box-shadow:var(--sh-brand)}.sidebar-promo .btn{background:var(--ink);color:#fff;box-shadow:var(--sh-raise)}.card-dark{background:var(--ink);color:#fff;box-shadow:var(--sh-card)}table.data th{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);font-size:12px;font-weight:600}table.data tbody td{border-top:1px solid var(--line)}table.data tbody tr:first-child td{border-top:0}table.data tbody tr:hover{background:var(--surface-well)}table.data tr.is-selected{background:var(--info-bg)}.list-row:hover{background:var(--surface-well)}.palette{background:var(--surface-card);box-shadow:var(--sh-card)}.palette-item[aria-selected=true]{background:var(--fill-subtle)}.map-frame,.empty{background:var(--surface-well);box-shadow:var(--sh-well)}.kbd{background:var(--surface-card);box-shadow:var(--sh-chip)}.skeleton{background:var(--fill-sunk)}::selection{color:var(--ink);background:#2f7cf62e}:root{scrollbar-color:var(--dot-inactive) transparent}@media (prefers-reduced-motion:reduce){.btn:active,.icon-circle:active,.kebab:active,.school-switch:active,.btn-primary:active,.btn-accent:active{transform:none}}:root{--mint:#8fe3de;--mint-ink:#10554f;--orange:#f2600c}.pill-live{color:var(--mint-ink);box-shadow:var(--sh-chip);background:#8fe3de6b}.pill-live .live-dot{background:var(--orange)}.login-shell{gap:clamp(16px,1.6vw,24px);padding:clamp(16px,2vw,28px)}.login-hero{border-radius:var(--r-lg);padding:clamp(28px,3.4vw,48px)}@media (width<=900px){.login-hero{border-radius:var(--r-lg)}}.login-hero,.sidebar-promo{--text-muted:#3d3b37;--text-tertiary:#4a4843}:root{--map-ground:#f0f0ed;--map-water:#d9d8d4;--map-block:#e6e6e3}@media (hover:hover) and (pointer:fine){.card:hover,.stat-card:hover{box-shadow:0 2px 4px #1414140a,0 18px 42px -10px #1c191724}.card-dark:hover,.card-brand:hover{box-shadow:0 18px 44px -12px #1414143d}.btn:hover,.icon-circle:hover,.school-switch:hover,.kebab:hover{box-shadow:0 9px 20px #1414142b,inset 0 2px 2px #ffffffe6,inset 0 -2px 4px #1414140d}.btn-accent:hover{box-shadow:0 10px 22px -4px #2365ff80,inset 0 1px 1px #ffffff47}button.chip:hover{box-shadow:0 4px 12px #1414141f,inset 0 1px 1px #ffffffe6}}.sidebar{scrollbar-width:none;overscroll-behavior:contain}.sidebar::-webkit-scrollbar{width:0;height:0}.sidebar:after{content:"";z-index:1;height:36px;margin-top:calc((36px + var(--s-5)) * -1);background:linear-gradient(to top, var(--surface-card) 12%, #fbfbfa00);opacity:0;pointer-events:none;flex:none;position:sticky;bottom:-1px}@supports (animation-timeline:scroll()){.sidebar:after{animation:linear both sidebar-more;animation-timeline:scroll()}@keyframes sidebar-more{0%,86%{opacity:1}to{opacity:0}}}@media (width<=900px){.sidebar{box-shadow:10px 0 40px -6px #1c191738}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--surface);color:var(--ink);letter-spacing:-.02em;-webkit-font-smoothing:antialiased;margin:0;font:500 16px/22px Figtree,system-ui,-apple-system,sans-serif}h1,h2,h3,h4,p,figure{margin:0}ul,ol{margin:0;padding:0;list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit;text-decoration:none}input,select,textarea{font:inherit;color:inherit;border:0;outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}#page-title:focus,#page-title:focus-visible{outline:none}.stack{gap:var(--s-6);flex-direction:column;display:flex}.stack-sm{gap:var(--s-3);flex-direction:column;display:flex}.stack-xs{gap:var(--s-1);flex-direction:column;display:flex}.row{align-items:center;gap:var(--s-3);display:flex}.row-tight{align-items:center;gap:var(--s-2);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--s-4);display:flex}.wrap{flex-wrap:wrap}.grow{flex:auto;min-width:0}.grid-4{gap:var(--s-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.grid-3{gap:var(--s-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.grid-2{gap:var(--s-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-8-4{gap:var(--s-4);grid-template-columns:minmax(0,8fr) minmax(0,4fr);align-items:start;display:grid}.grid-7-5{gap:var(--s-4);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;display:grid}@media (width<=1180px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-8-4,.grid-7-5,.grid-3{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.grid-4,.grid-2{grid-template-columns:minmax(0,1fr)}}.muted{color:var(--text-muted)}.tertiary{color:var(--text-tertiary)}.accent{color:var(--accent)}.num{font-variant-numeric:tabular-nums}.right{text-align:right}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.rise{animation:rise var(--dur-normal) var(--ease-out-expo) both}.rise-1{animation-delay:60ms}.rise-2{animation-delay:.16s}.rise-3{animation-delay:.26s}.rise-4{animation-delay:.36s}@media (prefers-reduced-motion:reduce){.rise{animation:fade-in var(--dur-pop) ease both;animation-delay:0s!important}.live-dot{animation:none}*,:before,:after{transition-property:opacity,background-color,color,box-shadow,outline-color;transition-duration:var(--dur-pop)}.track-fill,.column-fill{transition-duration:1ms}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}::selection{background:var(--fill-subtle);color:var(--ink)}:root{caret-color:var(--accent);accent-color:var(--accent);scrollbar-color:var(--dot-inactive) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--r-pill);background:var(--dot-inactive);background-clip:content-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary);background-clip:content-box}.skip-link{top:var(--s-3);left:var(--s-3);z-index:var(--z-skip);padding:var(--s-3) var(--s-5);border-radius:var(--r-md);background:var(--ink);color:#fff;transition:transform var(--dur-pop) var(--ease-out-expo);position:fixed;transform:translateY(-200%)}.skip-link:focus,.skip-link:focus-visible{transform:none}
