@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&display=swap";:root{--paper: oklch(.985 .005 80);--paper-2: oklch(.975 .005 80);--paper-3: oklch(.955 .006 80);--ink: oklch(.18 .01 80);--ink-2: oklch(.32 .008 80);--ink-3: oklch(.5 .008 80);--ink-4: oklch(.68 .006 80);--ink-5: oklch(.82 .005 80);--rule: oklch(.18 .01 80 / .08);--rule-2: oklch(.18 .01 80 / .14);--amber: oklch(.72 .14 70);--amber-soft: oklch(.72 .14 70 / .12);--amber-ink: oklch(.45 .14 60);--sage: oklch(.72 .1 155);--sage-soft: oklch(.72 .1 155 / .12);--sage-ink: oklch(.42 .09 155);--rose: oklch(.62 .17 25);--rose-soft: oklch(.62 .17 25 / .12);--blue: oklch(.62 .12 245);--blue-soft: oklch(.62 .12 245 / .1);--fs-xs: 10.5px;--fs-sm: 11.5px;--fs-base: 13px;--fs-md: 15px;--fs-lg: 20px;--fs-xl: 32px;--fs-xxl: 56px;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}[data-theme=dark]{--paper: oklch(.16 .008 80);--paper-2: oklch(.19 .008 80);--paper-3: oklch(.22 .008 80);--ink: oklch(.96 .005 80);--ink-2: oklch(.86 .005 80);--ink-3: oklch(.7 .006 80);--ink-4: oklch(.52 .006 80);--ink-5: oklch(.35 .006 80);--rule: oklch(.96 .005 80 / .09);--rule-2: oklch(.96 .005 80 / .16)}.app[data-accent=rose]{--amber: oklch(.62 .17 25);--amber-soft: oklch(.62 .17 25 / .14);--amber-ink: oklch(.45 .17 25)}.app[data-accent=blue]{--amber: oklch(.62 .12 245);--amber-soft: oklch(.62 .12 245 / .14);--amber-ink: oklch(.4 .12 245)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--mono);font-size:var(--fs-base);font-feature-settings:"ss01","ss02","cv11","tnum";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;font-size:inherit;color:inherit}::selection{background:var(--ink);color:var(--paper)}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--rule);padding:22px 18px;display:flex;flex-direction:column;gap:28px;position:sticky;top:0;height:100vh;background:var(--paper)}.brand{display:flex;flex-direction:column;gap:4px;line-height:1.15}.brand .mark{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase}.brand .mark .dot{width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px var(--amber-soft);animation:pulse 2.4s ease-in-out infinite}.brand h1{margin:6px 0 0;font-size:var(--fs-md);font-weight:600;letter-spacing:-.01em}.brand .sub{font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.02em}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--amber-soft)}50%{box-shadow:0 0 0 6px var(--amber-soft)}}.nav{display:flex;flex-direction:column;gap:2px}.nav .section-label{font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.08em;text-transform:uppercase;padding:10px 8px 6px}.nav button{display:flex;align-items:center;gap:10px;padding:8px 10px;background:transparent;border:none;border-radius:6px;text-align:left;color:var(--ink-2);cursor:pointer;font-size:var(--fs-base);letter-spacing:-.005em}.nav button:hover{background:var(--paper-3);color:var(--ink)}.nav button.active{background:var(--ink);color:var(--paper)}.nav button .num{font-size:var(--fs-xs);color:var(--ink-4);min-width:18px}.nav button.active .num{color:var(--paper);opacity:.55}.sidebar-foot{margin-top:auto;font-size:var(--fs-xs);color:var(--ink-4);display:flex;flex-direction:column;gap:3px}.sidebar-foot .row{display:flex;justify-content:space-between}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--rule);gap:24px;background:var(--paper);position:sticky;top:0;z-index:5}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.topbar .crumbs{display:flex;gap:0;align-items:baseline;font-size:var(--fs-sm);color:var(--ink-4);letter-spacing:.02em;min-width:0}.topbar .crumbs>span{display:inline-flex;align-items:baseline}.topbar .crumbs .crumb-sep{margin:0 6px;color:var(--ink-5)}.topbar .crumbs strong{color:var(--ink);font-weight:500;letter-spacing:-.01em}.topbar .status{display:flex;gap:12px;align-items:center;font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.02em;flex-wrap:wrap;justify-content:flex-end}.hamburger{display:none;width:40px;height:40px;align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:0;background:transparent;border:1px solid var(--rule-2);border-radius:4px;cursor:pointer}.hamburger span{display:block;width:18px;height:1.5px;background:var(--ink-2);border-radius:1px;transition:transform .15s ease,opacity .15s ease}.app.sidebar-open .hamburger span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.app.sidebar-open .hamburger span:nth-child(2){opacity:0}.app.sidebar-open .hamburger span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}.sidebar-scrim,.route-menu-scrim{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0d0b0766;z-index:40;opacity:0;transition:opacity .2s ease}.sidebar-scrim.open{opacity:1}.route-menu-scrim{z-index:49}.topbar .status .chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--rule-2);border-radius:999px}.topbar .status .dot-live{width:6px;height:6px;border-radius:50%;background:var(--sage);animation:pulse-sage 1.8s ease-in-out infinite}@keyframes pulse-sage{0%,to{opacity:1}50%{opacity:.4}}.view{padding:32px 28px 80px}.view-head{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:18px;margin-bottom:28px;border-bottom:1px solid var(--rule);gap:24px}.view-head h2{margin:0;font-size:var(--fs-xl);font-weight:500;letter-spacing:-.02em}.view-head .lead{margin-top:6px;font-size:var(--fs-sm);color:var(--ink-3);max-width:520px;line-height:1.55}.view-head .meta{text-align:right;font-size:var(--fs-xs);color:var(--ink-4);line-height:1.6;letter-spacing:.02em}.view-head .meta .big{display:block;color:var(--ink);font-size:var(--fs-lg);letter-spacing:-.02em;margin-bottom:2px}.tag{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;padding:3px 7px;border-radius:3px;background:var(--paper-3);color:var(--ink-2)}.tag.amber{background:var(--amber-soft);color:var(--amber-ink)}.tag.sage{background:var(--sage-soft);color:var(--sage-ink)}.tag.rose{background:var(--rose-soft);color:var(--rose)}.tag.blue{background:var(--blue-soft);color:var(--blue)}.tag.ghost{background:transparent;border:1px solid var(--rule-2)}.grid-relations{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}.grid-relations.density-compact{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.rcard{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:18px 20px 16px;background:var(--paper);cursor:pointer;position:relative;transition:background .2s ease}.rcard:hover{background:var(--paper-2)}.rcard .top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.rcard .label{font-size:var(--fs-xs);letter-spacing:.06em;color:var(--ink-4);text-transform:uppercase}.rcard .route{margin-top:2px;font-size:var(--fs-md);font-weight:500;letter-spacing:-.01em;color:var(--ink)}.rcard .trend{font-size:var(--fs-xs);color:var(--ink-3);display:inline-flex;align-items:center;gap:4px}.rcard .trend.up{color:var(--amber-ink)}.rcard .trend.down{color:var(--sage-ink)}.rcard .mid{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.rcard .mid .v{font-size:var(--fs-xxl);font-weight:300;letter-spacing:-.04em;line-height:.9;font-variant-numeric:tabular-nums;color:var(--ink)}.rcard.congested .mid .v{color:var(--amber-ink)}.rcard .mid .u{font-size:var(--fs-sm);color:var(--ink-4);letter-spacing:.02em}.rcard .mid .delta{margin-left:auto;font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.02em}.rcard.congested .mid .delta{color:var(--amber-ink)}.rcard .spark{height:42px;width:100%;display:block}.rcard .foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.02em}.rcard .foot .pin{display:inline-flex;gap:6px;align-items:center}.rcard .foot .pulse-dot{width:5px;height:5px;border-radius:50%;background:var(--sage)}.rcard.just-updated .foot .pulse-dot{animation:ping 1.4s ease-out}@keyframes ping{0%{box-shadow:0 0 0 0 var(--sage-soft)}70%{box-shadow:0 0 0 9px transparent}to{box-shadow:0 0 0 0 transparent}}.legend-band{display:flex;gap:24px;align-items:center;padding:12px 0;font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase}.legend-band .key{display:inline-flex;align-items:center;gap:6px}.legend-band .sw{width:10px;height:10px;border-radius:2px;background:var(--ink-5)}.legend-band .sw.amber{background:var(--amber)}.legend-band .sw.sage{background:var(--sage)}.dd-layout{display:grid;grid-template-columns:1fr 320px;gap:0;border-top:1px solid var(--rule)}.dd-main{padding:24px 28px 24px 0;border-right:1px solid var(--rule)}.dd-side{padding:24px 0 24px 28px}.dd-hero{display:flex;align-items:baseline;gap:20px;margin-bottom:8px}.dd-hero .now{font-size:96px;line-height:.86;letter-spacing:-.05em;font-weight:300;font-variant-numeric:tabular-nums}.dd-hero .now-meta{display:flex;flex-direction:column;gap:4px}.dd-hero .now-meta .u{color:var(--ink-3);font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase}.dd-hero .now-meta .cmp{font-size:var(--fs-sm);color:var(--ink-3)}.dd-hero .now-meta .cmp strong{color:var(--amber-ink);font-weight:500}.dd-hero .now-meta.down .cmp strong{color:var(--sage-ink)}.dd-sub{display:flex;gap:16px;margin-bottom:28px;font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.04em;text-transform:uppercase}.dd-sub .pipe{color:var(--ink-5)}.horizon-wrap{background:var(--paper-2);border:1px solid var(--rule);border-radius:6px;padding:22px 20px 12px;position:relative}.horizon-wrap .axes{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.02em;padding-top:8px}.horizon-wrap .y-axis{position:absolute;left:8px;top:22px;bottom:32px;display:flex;flex-direction:column;justify-content:space-between;font-size:var(--fs-xs);color:var(--ink-4)}.range-toggle{display:inline-flex;gap:0;border:1px solid var(--rule-2);border-radius:5px;overflow:hidden}.range-toggle button{border:none;background:transparent;padding:6px 10px;font-size:var(--fs-xs);color:var(--ink-3);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;border-right:1px solid var(--rule)}.range-toggle button:last-child{border-right:none}.range-toggle button.active{background:var(--ink);color:var(--paper)}.range-toggle button:hover:not(.active){background:var(--paper-3)}.chart-legend{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin:14px 0 4px;padding:10px 0;border-top:1px dashed var(--rule);font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.02em}.chart-legend .key{display:inline-flex;align-items:center;gap:6px}.chart-legend .sw{display:inline-block}.chart-legend .sw.dot{width:8px;height:8px;border-radius:50%;background:var(--ink)}.chart-legend .sw.ff{width:18px;height:0;border-top:1px dashed var(--sage-ink)}.chart-legend .sw.amber-band{width:10px;height:10px;background:var(--amber-soft);border-left:1px dashed var(--amber)}.chart-legend code{background:var(--paper-3);padding:1px 5px;font-size:10.5px;border-radius:2px;color:var(--ink-2)}.stat-stack{display:flex;flex-direction:column;gap:0}.stat-stack .row{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--rule)}.stat-stack .row:last-child{border-bottom:none}.stat-stack .k{font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.04em;text-transform:uppercase}.stat-stack .v{font-size:var(--fs-md);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat-stack .v.s{font-size:var(--fs-base)}.side-h{font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.08em;text-transform:uppercase;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--rule)}.side-block{margin-bottom:32px}.event-item{padding:12px 0;border-bottom:1px solid var(--rule);display:flex;gap:10px}.event-item:last-child{border-bottom:none}.event-item .icon{width:24px;flex-shrink:0;font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.04em;padding-top:2px}.event-item .body{flex:1;min-width:0}.event-item .title{font-size:var(--fs-base);color:var(--ink);letter-spacing:-.005em;margin-bottom:3px}.event-item .desc{font-size:var(--fs-xs);color:var(--ink-3);line-height:1.5;margin:3px 0;white-space:normal}.event-item .loc{font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.02em;margin-top:2px}.event-item .time{font-size:var(--fs-xs);color:var(--ink-4);margin-top:4px;letter-spacing:.02em}.flt-mini{padding:2px 7px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--rule-2);border-radius:3px;background:transparent;color:var(--ink-3);cursor:pointer}.flt-mini:hover{background:var(--paper-3);color:var(--ink-2)}.flt-mini.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.events-list{border-top:1px solid var(--rule)}.events-row{display:grid;grid-template-columns:140px 100px 1fr 160px 80px;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule);align-items:flex-start;font-size:var(--fs-base)}.events-row .time{color:var(--ink-3);font-size:var(--fs-xs);letter-spacing:.02em;padding-top:2px}.events-row .type{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;padding-top:2px}.events-row .title{color:var(--ink);letter-spacing:-.005em}.events-row .desc{color:var(--ink-3);font-size:var(--fs-xs);margin-top:4px;line-height:1.55}.events-row .road{color:var(--ink-2);font-size:var(--fs-sm);padding-top:2px}.events-row .window{color:var(--ink-3);font-size:var(--fs-xs);padding-top:2px;text-align:right}.events-filters{display:flex;gap:8px;align-items:center;margin-bottom:20px}.events-filters .flt{padding:5px 10px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--rule-2);border-radius:3px;background:transparent;color:var(--ink-3);cursor:pointer}.events-filters .flt.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.events-filters .count{margin-left:auto;color:var(--ink-4);font-size:var(--fs-xs);letter-spacing:.04em}.events-filters .flt .flt-n{display:inline-block;margin-left:6px;min-width:18px;padding:0 5px;border-radius:10px;background:var(--paper-3);color:var(--ink-3);font-size:10px;line-height:14px;text-align:center;font-variant-numeric:tabular-nums}.events-filters .flt.active .flt-n{background:var(--paper);color:var(--ink)}.events-filters .long-toggle{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:3px;cursor:pointer;border:1px dashed var(--rule-2)}.events-filters .long-toggle.on{background:var(--paper-3);color:var(--ink);border-style:solid}.events-filters .long-toggle input{accent-color:var(--ink)}.events-routes{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:14px;padding-bottom:14px;border-bottom:1px dashed var(--rule)}.events-routes-label{font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.08em;text-transform:uppercase;margin-right:4px}.route-chip{padding:4px 9px;font-size:var(--fs-xs);border:1px solid var(--rule-2);border-radius:20px;background:transparent;color:var(--ink-3);cursor:pointer;letter-spacing:.02em}.route-chip:hover{background:var(--paper-3);color:var(--ink-2)}.route-chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.route-chip.clear{border-style:dashed;color:var(--rose);margin-left:4px}.events-row.is-new{background:#da534f0d;box-shadow:inset 3px 0 0 0 var(--rose);padding-left:10px;margin-left:-10px}.chip-wrap{position:relative;display:inline-block}.chip.chip-active{letter-spacing:.06em}.route-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:50;background:var(--paper);border:1px solid var(--rule-2);border-radius:4px;box-shadow:0 6px 24px #14110d1f;min-width:280px;max-height:60vh;overflow:auto;padding:6px 0}.route-menu-head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px 6px;font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--rule)}.route-menu-clear{background:transparent;border:none;color:var(--rose);font-size:var(--fs-xs);letter-spacing:.06em;cursor:pointer}.route-menu-row{display:grid;grid-template-columns:18px 56px 1fr;gap:8px;align-items:center;padding:8px 12px;cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2)}.route-menu-row:hover{background:var(--paper-3)}.route-menu-row.on{color:var(--ink)}.route-menu-row .r-road{color:var(--ink-4);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase}.route-menu-row .r-label{color:inherit}.route-menu-row input{accent-color:var(--ink)}.route-menu-empty{padding:16px;color:var(--ink-4);text-align:center;font-size:var(--fs-xs)}.health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--rule);border-left:1px solid var(--rule);margin-bottom:32px}.health-cell{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:20px 22px}.health-cell .k{font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}.health-cell .v{font-size:36px;letter-spacing:-.03em;font-weight:300;font-variant-numeric:tabular-nums;line-height:1}.health-cell .n{margin-top:6px;font-size:var(--fs-xs);color:var(--ink-4)}.health-cell.ok .v{color:var(--ink)}.health-cell.warn .v{color:var(--amber-ink)}.scan-log{border-top:1px solid var(--rule);margin-top:16px}.scan-row{display:grid;grid-template-columns:140px 80px 80px 80px 80px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:var(--fs-xs);align-items:center;color:var(--ink-3)}.scan-row .ok{color:var(--sage-ink)}.scan-row .err{color:var(--rose)}.scan-row .ts{color:var(--ink-2)}.scan-row.header{color:var(--ink-4);letter-spacing:.06em;text-transform:uppercase;padding:8px 0}.uptime-strip{display:flex;gap:2px;height:28px;margin:18px 0 8px}.uptime-strip .tick{flex:1;background:var(--sage);border-radius:1px;opacity:.85}.uptime-strip .tick.warn{background:var(--amber)}.uptime-strip .tick.err{background:var(--rose)}.uptime-strip .tick.off{background:var(--ink-5);opacity:.3}.map-layout{display:grid;grid-template-columns:1fr 340px;gap:0;border-top:1px solid var(--rule)}.map-wrap{padding:24px;border-right:1px solid var(--rule);position:relative;min-height:560px}.map-side{padding:24px 0 24px 24px}.map-svg{width:100%;height:auto;display:block}.map-node-label{font-family:var(--mono);font-size:10.5px;fill:var(--ink-3);letter-spacing:.04em}.map-city{font-family:var(--mono);font-size:11.5px;fill:var(--ink);font-weight:500;letter-spacing:-.005em}.pred-layout{display:grid;grid-template-columns:260px 1fr;gap:0;border-top:1px solid var(--rule)}.pred-controls{padding:24px 28px 24px 0;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:24px}.pred-main{padding:24px 0 24px 28px}.ctrl-group{display:flex;flex-direction:column;gap:8px}.ctrl-group .k{font-size:var(--fs-xs);color:var(--ink-4);letter-spacing:.06em;text-transform:uppercase}.ctrl-seg{display:inline-flex;border:1px solid var(--rule-2);border-radius:4px;overflow:hidden;flex-wrap:wrap}.ctrl-seg button{border:none;background:transparent;padding:6px 10px;font-size:var(--fs-xs);letter-spacing:.04em;border-right:1px solid var(--rule);cursor:pointer;color:var(--ink-2)}.ctrl-seg button:last-child{border-right:none}.ctrl-seg button.active{background:var(--ink);color:var(--paper)}input[type=range]{width:100%;accent-color:var(--ink)}.pred-bands-legend{display:flex;gap:16px;font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;margin-top:6px}.pred-bands-legend .k{display:inline-flex;gap:6px;align-items:center}.pred-bands-legend .sw{width:16px;height:6px;border-radius:1px}.pred-bands-legend .sw.median{background:var(--ink)}.pred-bands-legend .sw.p90{background:var(--ink-5)}.pred-bands-legend .sw.now{background:var(--amber)}.tweaks{position:fixed;bottom:20px;right:20px;width:280px;background:var(--paper);border:1px solid var(--rule-2);border-radius:8px;box-shadow:0 4px 24px #06030014;padding:0;z-index:100;font-size:var(--fs-xs)}.tweaks.hidden{display:none}.tweaks header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--rule)}.tweaks header .title{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.tweaks header .close{border:none;background:transparent;color:var(--ink-4);cursor:pointer;font-size:14px}.tweaks .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:12px}.tweaks .row{display:flex;flex-direction:column;gap:6px}.tweaks .row .k{color:var(--ink-4);letter-spacing:.04em;text-transform:uppercase}.tweaks .opts{display:flex;gap:0;border:1px solid var(--rule-2);border-radius:4px;overflow:hidden}.tweaks .opts button{flex:1;border:none;background:transparent;padding:5px 6px;font-size:var(--fs-xs);color:var(--ink-2);cursor:pointer;border-right:1px solid var(--rule);letter-spacing:.02em}.tweaks .opts button:last-child{border-right:none}.tweaks .opts button.active{background:var(--ink);color:var(--paper)}.tweaks .switch{display:flex;justify-content:space-between;align-items:center}.tweaks .switch .toggle{width:28px;height:16px;border-radius:999px;background:var(--rule-2);position:relative;cursor:pointer;transition:background .15s ease}.tweaks .switch .toggle:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--paper);transition:transform .15s ease}.tweaks .switch.on .toggle{background:var(--ink)}.tweaks .switch.on .toggle:after{transform:translate(12px)}svg text{font-family:var(--mono)}.main::-webkit-scrollbar{width:0}html,body{scroll-behavior:smooth}.muted{color:var(--ink-4)}.hairline{border-top:1px solid var(--rule)}.flex{display:flex}.gap-8{gap:8px}.gap-16{gap:16px}.gap-24{gap:24px}.tnum{font-variant-numeric:tabular-nums}@media (max-width: 860px){.app{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;height:100vh;height:100dvh;width:78vw;max-width:280px;z-index:50;transform:translate(-100%);transition:transform .22s ease;box-shadow:2px 0 24px #0d0b0700;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar.open{transform:translate(0);box-shadow:2px 0 24px #0d0b072e}.sidebar-scrim{display:block;pointer-events:none}.sidebar-scrim.open{pointer-events:auto}.nav button{padding:12px;font-size:var(--fs-md)}.nav button .num{min-width:22px}.topbar{padding:10px 14px;gap:10px}.hamburger{display:inline-flex}.topbar .crumbs .crumb-mid{display:none}.topbar .status{gap:8px}.topbar .status .chip{padding:4px 7px}.topbar .status .chip-hide-sm{display:none}.view{padding:20px 14px 80px}.view-head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:20px}.view-head .meta{text-align:left}.view-head h2{font-size:26px}.view-head .lead{font-size:var(--fs-sm);max-width:none}.grid-relations,.grid-relations.density-compact{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.dd-layout{grid-template-columns:1fr}.dd-main{padding:0 0 20px;border-right:none;border-bottom:1px solid var(--rule)}.dd-side{padding:20px 0 0}.dd-sub{flex-wrap:wrap;gap:8px;margin-bottom:18px}.chart-legend{gap:10px}.stat-stack .row{padding:10px 0}.view .stat-stack[style*="grid-template-columns: repeat(4"]{grid-template-columns:1fr 1fr!important}.view .stat-stack[style*="grid-template-columns: repeat(4"]>.row{border-left:1px solid var(--rule)!important;border-bottom:1px solid var(--rule)}.view .stat-stack[style*="grid-template-columns: repeat(4"]>.row:nth-child(-n+2){border-top:1px solid var(--rule)}.map-layout{grid-template-columns:1fr}.map-wrap{padding:14px;min-height:320px;border-right:none;border-bottom:1px solid var(--rule)}.map-side{padding:16px 0 0}.pred-layout{grid-template-columns:1fr}.pred-controls{padding:0 0 18px;border-right:none;border-bottom:1px solid var(--rule)}.pred-main{padding:18px 0 0}.ctrl-seg{width:100%}.ctrl-seg button{flex:1;min-width:0;padding:8px 6px}.health-grid{grid-template-columns:1fr 1fr}.health-cell{padding:16px 14px}.health-cell .v{font-size:28px}.view>div[style*="grid-template-columns: 1fr 340px"]{grid-template-columns:1fr!important;gap:24px!important}.events-row,.events-row.header{grid-template-columns:1fr;gap:6px;padding:14px 0}.events-row.header{display:none}.events-row .time,.events-row .road,.events-row .window{padding-top:0}.events-row .window{text-align:left}.events-row .window button{text-align:left!important}.events-row .type{padding-top:0}.events-filters{flex-wrap:wrap;gap:6px;margin-bottom:16px}.events-filters .flt{padding:7px 10px}.events-filters .count{margin-left:0;width:100%;text-align:right;margin-top:4px}.events-filters .long-toggle{padding:6px 10px}.events-routes{gap:5px}.route-chip{padding:6px 10px;font-size:var(--fs-xs)}.scan-row,.scan-row.header{grid-template-columns:1fr auto auto;grid-template-areas:"ts   status dur" "pt   ev     ev" "note note   note";row-gap:3px;column-gap:10px;padding:10px 0}.scan-row.header{display:none}.scan-row>:nth-child(1){grid-area:ts}.scan-row>:nth-child(2){grid-area:status;justify-self:end}.scan-row>:nth-child(3){grid-area:dur;justify-self:end}.scan-row>:nth-child(4){grid-area:pt;color:var(--ink-4)}.scan-row>:nth-child(5){grid-area:ev;color:var(--ink-4);justify-self:start}.scan-row>:nth-child(6){grid-area:note;font-size:10px}.scan-row>:nth-child(4):before{content:"PT ";color:var(--ink-5)}.scan-row>:nth-child(5):before{content:"EV ";color:var(--ink-5)}.route-menu{position:fixed;left:0;right:0;bottom:0;top:auto;margin:0;min-width:0;max-height:70vh;border-radius:12px 12px 0 0;box-shadow:0 -8px 32px #0d0b073d;z-index:60;padding:8px 0 max(10px,env(safe-area-inset-bottom))}.route-menu-scrim{display:block}.route-menu-row{padding:12px 16px}.tweaks{left:10px;right:10px;bottom:10px;width:auto}.tweaks .opts button{padding:8px 6px}.tweaks .switch .toggle{width:34px;height:20px}.tweaks .switch .toggle:after{width:16px;height:16px}.tweaks .switch.on .toggle:after{transform:translate(14px)}}@media (max-width: 480px){.topbar .status .chip-hide-xs,.topbar .crumbs .crumb-root,.topbar .crumbs .crumb-leaf .crumb-sep{display:none}.view{padding:16px 12px 80px}.view-head h2{font-size:22px}.view-head .meta .big{font-size:var(--fs-md)}.grid-relations,.grid-relations.density-compact,.health-grid{grid-template-columns:1fr}.rcard{padding:14px 14px 12px}.rcard .mid .v{font-size:44px}}@media (max-width: 860px){.dd-main svg,.pred-main svg,.map-wrap svg{max-width:100%;height:auto}}
