:root{color:#26343e;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#f5f7f9;--surface:#fff;--text:#26343e;--muted:#6d7c87;--line:#e3e9ed;--accent:#197a79;--accent-strong:#126360;--soft:#eaf5f3;--soft-text:#216561;--warning:#956317;--warning-bg:#fbf4e8;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#f5f7f9;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:0;margin:0}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button,a{touch-action:manipulation}a,button{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}svg{flex-shrink:0}button{border:0}a{text-decoration:none}.skip-link{background:var(--surface);z-index:10;padding:12px;position:absolute;top:-80px;left:16px}.skip-link:focus{top:10px}.application{width:100%;min-height:100vh;margin:0}.app-header{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;height:76px;padding:0 36px;display:flex}.brand{white-space:nowrap;align-items:center;gap:12px;font-size:15px;font-weight:600;display:flex}.brand-symbol{width:34px;height:34px;color:var(--accent);background:var(--soft);border-radius:10px;place-items:center;display:grid}.brand-divider{color:var(--line);margin:0 14px;font-weight:400}.brand-description{color:var(--muted);font-weight:400}.header-end{align-items:center;gap:20px;display:flex}.development-label{color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:3px 6px;font-size:11px}.mode-switch{background:var(--bg);border:1px solid var(--line);border-radius:9px;gap:2px;padding:3px;display:flex}.mode-switch button{color:var(--muted);background:0 0;border-radius:6px;padding:6px 11px;font-size:12px}.mode-switch button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #15252b10}.app-shell{grid-template-columns:minmax(0,1fr);min-height:calc(100vh - 76px);display:grid}.eyebrow{letter-spacing:.14em;color:var(--muted);font-size:11px;font-weight:500}.main-content{width:100%;min-width:0;max-width:none;margin:auto;padding:32px 40px}.page-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:27px;display:flex}.breadcrumb{color:var(--muted);margin-bottom:11px;font-size:11px}.breadcrumb>span{color:var(--muted);opacity:.5;margin:0 8px}h1{letter-spacing:-.045em;font-size:27px;line-height:1.5}.page-description{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.7}.route-endpoints{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:8px;align-items:center;gap:9px;padding:9px 12px;font-size:11px;display:flex}.sample-banner{background:var(--soft);border:1px solid color-mix(in srgb, var(--accent) 16%, transparent);color:var(--soft-text);border-radius:10px;align-items:center;gap:12px;padding:13px 16px;display:flex}.sample-banner>div{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.sample-banner strong{font-size:12px;font-weight:600}.sample-banner>div>span{color:var(--soft-text);font-size:11px;line-height:1.7}.offline-badge{white-space:nowrap;opacity:.85;align-items:center;gap:4px;margin-left:auto;font-size:11px;display:flex}.toolbar{justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}.direction-group{background:var(--surface);border:1px solid var(--line);border-radius:9px;gap:4px;padding:4px;display:flex}.direction-group button{color:var(--muted);background:0 0;border-radius:6px;align-items:center;gap:13px;padding:8px 12px;font-size:12px;display:flex}.direction-group button[aria-pressed=true]{background:var(--accent);color:#fff}.scenario-select{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.scenario-select select{background:var(--surface);border:1px solid var(--line);max-width:135px;color:var(--text);border-radius:7px;padding:7px 28px 7px 10px;font-size:12px}.data-status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin:16px 0 26px;font-size:11px;display:flex}.freshness{color:var(--accent);align-items:center;gap:7px;display:flex}.status-dot{background:currentColor;border-radius:100%;width:6px;height:6px}.freshness.warning{color:var(--warning)}.status-vehicle-count{margin-left:auto}.warning-banner,.neutral-banner{border-radius:8px;align-items:center;gap:8px;margin:-10px 0 20px;padding:11px 14px;font-size:12px;line-height:1.8;display:flex}.warning-banner{background:var(--warning-bg);color:var(--warning)}.neutral-banner{background:var(--surface);color:var(--muted);border:1px solid var(--line)}.workspace-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.workspace-heading h2{flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;font-weight:500;display:flex}.workspace-heading h2>span{color:var(--muted);font-size:11px;font-weight:400}.range-switch{gap:4px;display:flex}.range-switch button{color:var(--muted);white-space:nowrap;background:0 0;border-radius:6px;padding:6px 9px;font-size:11px}.range-switch button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--line)}.workspace{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.panel{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);min-width:0}.route-panel,.detail-panel{min-height:530px;padding:24px}.panel-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.panel-heading h2{letter-spacing:-.02em;margin-top:8px;font-size:16px}.quiet-label{color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:3px 6px;font-size:11px}.section-description{color:var(--muted);margin:12px 0 18px;font-size:11px;line-height:1.7}.route-list{margin:0;padding:0;list-style:none;position:relative}.route-list:before{content:"";background:var(--line);width:1px;position:absolute;top:28px;bottom:28px;left:17px}.route-list>li{margin-bottom:4px;position:relative}.station-button{text-align:left;background:0 0;border-radius:9px;align-items:center;gap:14px;width:100%;min-height:59px;padding:11px 10px;display:flex}.station-button:hover{background:var(--bg)}.station-button.selected{background:var(--soft)}.station-dot{background:var(--surface);border:1.5px solid var(--muted);border-radius:100%;flex-shrink:0;place-items:center;width:9px;height:9px;margin-left:3px;display:grid}.station-dot>span{background:var(--muted);border-radius:100%;width:3px;height:3px}.selected .station-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--soft)}.station-text{gap:4px;min-width:0;display:grid}.station-name{overflow-wrap:anywhere;font-size:13px}.selected .station-name{color:var(--accent);font-weight:500}.station-code{color:var(--muted);font-size:11px}.vehicle-tag{color:var(--accent);white-space:nowrap;border:1px solid var(--line);background:var(--surface);border-radius:5px;align-items:center;gap:5px;margin-left:auto;padding:4px 6px;font-size:11px;display:flex}.selected-arrow{color:var(--accent);margin-left:auto}.route-legend{color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px;padding-top:20px;font-size:11px;display:flex}.legend-dot{background:var(--accent);border-radius:100%;width:6px;height:6px}.route-legend>svg{margin-left:10px}.panel-note{color:var(--muted);overflow-wrap:anywhere;margin-top:12px;font-size:11px;line-height:1.9}.station-heading{justify-content:space-between;align-items:end;gap:12px;margin:22px 0;display:flex}.selected-caption{color:var(--muted);margin-bottom:7px;font-size:11px}.station-heading h2{letter-spacing:-.04em;font-size:25px}.station-heading>.station-code{padding-bottom:3px}.recent-record{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0}.recent-label{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;display:flex}.recent-label>span{margin-left:auto;font-size:11px}.large-time{letter-spacing:-.045em;font-variant-numeric:tabular-nums;margin:9px 0 13px;font-size:44px;font-weight:400;line-height:1.4}.recent-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.vehicle-link{color:var(--accent);white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:3px 0;font-size:11px;display:inline-flex}.vehicle-link:hover{text-underline-offset:4px;text-decoration:underline}.status-tag{background:var(--bg);color:var(--muted);border-radius:4px;padding:3px 6px;font-size:11px}.record-range{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:17px;font-size:11px;line-height:1.8;display:flex}.gap-note{color:var(--warning);background:var(--warning-bg);border-radius:5px;margin-top:12px;padding:7px 9px;font-size:11px;line-height:1.7}.history-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:22px 0 7px;display:flex}.history-heading h3{font-size:12px;font-weight:500}.icon-text-button{color:var(--muted);background:0 0;align-items:center;gap:5px;padding:5px 0;font-size:11px;display:inline-flex}.icon-text-button:hover{color:var(--accent)}.history-list{margin:0;padding:0;list-style:none}.station-history-error{margin:14px 0 0}.preview-hint{color:var(--muted);margin:0 0 10px;font-size:11px;line-height:1.7}.history-preview{overscroll-behavior:contain;border-block:1px solid var(--line);height:260px;padding-right:8px;overflow-y:auto}.history-preview:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.history-list>li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:14px 0;display:flex}.history-time{font-variant-numeric:tabular-nums;gap:5px;font-size:11px;display:grid}.history-date{color:var(--muted);font-size:11px}.detail-footnote{color:var(--muted);align-items:flex-start;gap:8px;margin-top:20px;font-size:11px;line-height:1.9;display:flex}.detail-footnote>svg{margin-top:2px}.vehicle-detail{background:var(--bg);border-radius:8px;margin-top:18px;padding:12px}.vehicle-detail-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.vehicle-detail h3{font-size:11px;font-weight:500}.icon-button{width:28px;height:28px;color:var(--muted);background:0 0;border-radius:5px;place-items:center;display:grid}.icon-button:hover{background:var(--soft)}.vehicle-detail ul{margin:8px 0 0;padding:0;list-style:none}.vehicle-detail li{justify-content:space-between;gap:10px;padding:6px 0;font-size:11px;display:flex}.vehicle-detail time{font-variant-numeric:tabular-nums;color:var(--muted)}.workspace-footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:15px;font-size:11px;display:flex}.workspace-footer>span:first-child{align-items:center;gap:5px;display:flex}.page-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:start;gap:20px;margin-top:35px;padding-top:19px;font-size:11px;display:flex}.about-records{text-align:right;max-width:440px}.about-records summary{cursor:pointer;justify-content:end;align-items:center;gap:6px;list-style:none;display:flex}.about-records summary::-webkit-details-marker{display:none}.about-records p{text-align:left;margin-top:14px;line-height:1.9}.live-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:470px;padding:40px 24px;display:flex}.empty-symbol{background:var(--soft);width:68px;height:68px;color:var(--accent);border-radius:20px;place-items:center;margin-bottom:23px;display:grid}.live-empty h2{margin-top:10px;font-size:23px}.live-empty>p:not(.eyebrow){max-width:380px;color:var(--muted);margin-top:15px;font-size:13px;line-height:1.9}.primary-button{color:#fff;background:var(--accent);border-radius:8px;align-items:center;gap:10px;margin-top:28px;padding:12px 18px;font-size:12px;display:flex}.primary-button:hover{background:var(--accent-strong)}.empty-boundary{color:var(--muted);justify-content:center;align-items:center;gap:7px;margin-top:23px;font-size:11px;line-height:1.7;display:flex}.station-empty{text-align:center;min-height:340px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:13px;display:flex}.station-empty h3{color:var(--text);font-size:15px}.station-empty p{max-width:240px;font-size:12px;line-height:1.9}.empty-inline{color:var(--muted);padding:20px 0;font-size:12px;line-height:1.8}@media (width>=1440px){.main-content{padding:40px 54px}.workspace{gap:26px}.route-panel,.detail-panel{padding:28px}}@media (width<=1150px){.main-content{padding:28px}.route-endpoints{display:none}.route-panel,.detail-panel{padding:20px}.sample-banner>div{gap:3px}.sample-banner>div>span{display:block}.sample-banner>div{display:grid}.offline-badge{display:none}}@media (width<=960px){.app-header{padding:0 26px}.main-content{max-width:none;margin:0 auto}.workspace{gap:16px}.sample-banner>div{gap:10px;display:flex}.offline-badge{display:flex}.route-panel,.detail-panel{min-height:530px}}@media (width<=740px){.app-header{flex-wrap:wrap;gap:14px;height:auto;min-height:70px;padding:16px 20px}.brand{gap:8px;font-size:14px}.brand-divider{margin:0 8px}.brand-symbol{width:30px;height:30px}.header-end{gap:8px}.development-label{display:none}.main-content{padding:24px 20px}.page-heading{margin-bottom:22px}h1{font-size:25px}.workspace{grid-template-columns:minmax(0,1fr);gap:18px}.route-panel,.detail-panel{min-height:0;padding:22px}.sample-banner{align-items:flex-start;gap:10px;padding:13px}.sample-banner>svg{margin-top:1px}.sample-banner>div{gap:3px;display:grid}.offline-badge{display:none}.toolbar{flex-wrap:wrap;align-items:flex-start;margin-top:20px}.scenario-select{align-self:center;margin-left:auto}.direction-group button{gap:10px;padding:8px 10px}.data-status{gap:9px 12px;margin-bottom:22px;line-height:1.7}.status-vehicle-count{margin-left:0}.workspace-heading{align-items:start;gap:10px}.workspace-heading h2{gap:5px;line-height:1.7;display:grid}.range-switch{padding-top:1px}.route-list{margin-top:20px}.station-button{min-height:62px}.detail-panel{scroll-margin-top:18px}.large-time{font-size:44px}.detail-footnote{margin-top:20px}.workspace-footer{gap:8px;padding-top:18px;line-height:1.9}.page-footer{margin-top:25px;line-height:1.8}.about-records{max-width:60%}.route-legend,.panel-note{font-size:11px}.section-description{font-size:12px}.station-name{font-size:14px}.station-code{font-size:11px}.recent-label{font-size:12px}.recent-label>span,.record-range{font-size:11px}.history-time,.vehicle-link{font-size:12px}.history-date,.detail-footnote,.icon-text-button{font-size:11px}}@media (width<=400px){.app-header{padding:14px 16px}.brand-description,.brand-divider{display:none}.mode-switch button{padding:7px 9px}.main-content{padding:24px 16px}.route-panel,.detail-panel{padding:19px}.direction-group{width:100%}.direction-group button{flex:1;justify-content:center}.scenario-select{margin-left:0}.workspace-heading h2{font-size:12px}.range-switch button{padding:6px 7px}.history-heading{gap:4px}.history-list>li{flex-wrap:wrap}.empty-boundary{align-items:flex-start}.workspace-footer{font-size:11px}.page-footer{gap:10px}}@media (pointer:coarse){button,select,summary{min-height:44px}.icon-button{width:44px}.scenario-select select{font-size:16px}.vehicle-link{padding:8px 0}.mode-switch button{padding:8px 11px}}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#151d24;--surface:#1c262f;--text:#e2eaf0;--muted:#a1b2bf;--line:#32414e;--accent:#72c5bd;--accent-strong:#a1d9d3;--soft:#233e40;--soft-text:#a3dcd5;--warning:#edc27c;--warning-bg:#3b3022;color:var(--text);background:var(--bg)}.direction-group button[aria-pressed=true],.primary-button{color:#102b2b}.mode-switch button[aria-pressed=true]{box-shadow:none}.vehicle-tag{background:var(--surface)}}.coverage-note{color:var(--muted);overflow-wrap:anywhere;margin:12px 0 16px;font-size:11px;line-height:1.9}.connection-error{margin:16px 0}.date-filter{flex-wrap:wrap;align-items:end;gap:12px;margin:0 0 16px;display:flex}.date-filter label{color:var(--muted);gap:5px;font-size:11px;display:grid}.date-filter input{border:1px solid var(--line);background:var(--surface);min-width:140px;max-width:100%;color:var(--text);border-radius:7px;padding:8px}.pagination{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;font-size:11px;display:flex}.history-actions{margin-top:16px}button:disabled{opacity:.45}.vehicle-detail li{flex-wrap:wrap}.vehicle-detail time{white-space:nowrap}@media (pointer:coarse){.date-filter input{font-size:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.trip-panel{margin:22px 0 28px;padding:24px}.trip-selectors{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:end;gap:16px;margin:20px 0 10px;display:grid}.trip-selectors label,.reference-filters label{min-width:0;color:var(--muted);flex-direction:column;gap:8px;font-size:13px;display:flex}.trip-selectors select{width:100%;min-width:0}.trip-selectors>svg{align-self:center;margin-top:20px}.trip-live{background:var(--surface-soft,#f4f8f8);border-radius:12px;margin:22px 0;padding:18px}.trip-live h3,.reference-heading h3{margin:0 0 12px;font-size:16px}.trip-vehicles,.reference-days,.reference-events,.route-vehicles,.vehicle-records{margin:0;padding:0;list-style:none}.trip-vehicles li{flex-wrap:wrap;align-items:center;gap:16px;padding:8px 0;font-size:13px;display:flex}.reference-heading,.reference-day-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.reference-filters{flex-wrap:wrap;align-items:end;gap:14px;margin:16px 0;display:flex}.reference-average{background:var(--surface-soft,#f4f8f8);border-left:3px solid #167e7e;margin:18px 0;padding:12px 16px;font-size:18px}.reference-average span{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.8;display:block}.reference-days>li{border-top:1px solid var(--line);padding:14px 0}.reference-day-heading strong{font-size:14px}.reference-events li{flex-wrap:wrap;align-items:center;gap:16px;margin:10px 0;font-size:14px;display:flex}.route-vehicles{flex-wrap:wrap;gap:6px;padding:0 14px 10px 42px;display:flex}.route-vehicles li{flex:140px}.vehicle-marker{color:#146e6b;background:#eff9f8;border:1px solid #b6d8d6;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;width:100%;padding:9px 10px;font-size:13px;display:flex}.vehicle-marker span{text-align:left;color:var(--muted);flex-basis:100%;padding-left:21px;font-size:11px}.vehicle-marker.marker-stale{background:var(--surface-soft,#f4f8f8);color:var(--muted);border-style:dashed}.vehicle-dialog{border:1px solid var(--line);width:min(640px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--text);padding:24px;overflow:auto}.vehicle-dialog::backdrop{background:#142d3b66}.vehicle-dialog h2{margin:0;font-size:23px}.vehicle-dialog h3{margin-top:22px;font-size:16px}.vehicle-records li{border-bottom:1px solid var(--line);padding:12px 0;font-size:14px}.vehicle-records time{color:var(--muted);margin-top:6px;font-size:12px;display:block}@media (width<=740px){.trip-panel{padding:18px}.trip-selectors{grid-template-columns:minmax(0,1fr);gap:12px}.trip-selectors>svg{display:none}.vehicle-dialog{padding:18px}}@media (prefers-color-scheme:dark){.trip-live,.reference-average{background:#1a3037}.vehicle-marker{color:#a8dcd7;background:#193b3b;border-color:#3d6260}}.journey-column{min-width:0}.journey-column .trip-panel{margin:0 0 18px}.trip-selectors select,.reference-filters select,.reference-filters input{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;min-height:42px;padding:10px 12px}.trip-live .empty-inline{padding:8px 0 12px}.history-disclosure>summary{cursor:pointer;color:var(--accent);padding:14px 0;font-size:13px}.history-disclosure .workspace-heading{margin-top:14px}.history-disclosure .workspace-heading h2{display:none}.history-disclosure .date-filter{margin-bottom:14px}@media (width<=900px){.passenger-workspace{grid-template-columns:minmax(0,1fr)}.passenger-workspace>.route-panel{order:2}.journey-column{order:1}}@media (width>=901px) and (width<=1150px){.trip-selectors{grid-template-columns:minmax(0,1fr)}.trip-selectors>svg{display:none}}.live-route-list:before{display:none}.live-route-list>.route-stop{margin:0}.stop-row{border-radius:10px;align-items:center;min-height:66px;display:flex;position:relative}.stop-row.stop-selected{background:var(--soft)}.stop-row .station-button{flex:1;gap:10px;min-width:0;min-height:66px;padding:8px}.stop-row .station-dot{margin:0}.stop-node{flex:0 0 32px;place-items:center;width:32px;display:grid;position:relative}.station-bus-icon{color:#fff;background:var(--accent);width:32px;height:32px;box-shadow:0 0 0 3px var(--surface);border-radius:7px;padding:4px}.stop-selected .station-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--soft)}.stop-selected .station-name{color:var(--accent);font-weight:600}.station-fleet,.segment-fleet{margin:0;padding:0;list-style:none}.station-fleet{flex-direction:column;flex:none;gap:5px;max-width:43%;padding:6px 8px 6px 0;display:flex}.stop-bus-chip{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));color:var(--accent-strong);background:var(--surface);text-align:left;border-radius:7px;flex-wrap:wrap;align-items:center;gap:7px;padding:7px;font-size:12px;display:flex}.stop-bus-chip span{white-space:nowrap;font-size:10px}.route-segment{min-height:26px;position:relative}.route-segment.segment-occupied{padding:12px 0}.segment-fleet{gap:10px;display:grid}.segment-bus-chip{text-align:left;background:0 0;border-radius:8px;align-items:center;gap:12px;width:100%;padding:5px 8px;display:flex;position:relative}.segment-bus-chip:hover{background:var(--bg)}.moving-bus-icon{color:#fff;background:var(--accent);width:32px;height:36px;box-shadow:0 0 0 4px var(--surface);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.bus-chip-text{min-width:0}.bus-chip-text>strong{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.en-route-badge{color:var(--accent);background:var(--soft);border-radius:5px;padding:3px 6px;font-size:10px;font-weight:400}.bus-chip-text small{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:11px;line-height:1.7;display:block}.bus-direction-arrow{color:var(--accent);flex-shrink:0;margin-left:auto}.route-stale .station-bus-icon,.route-stale .moving-bus-icon{background:var(--muted)}.route-stale .stop-bus-chip,.route-stale .en-route-badge{color:var(--muted)}.unlocated-buses{border-top:1px solid var(--line);gap:10px;margin-top:16px;padding-top:12px;display:grid}.reference-disclosure{border-top:1px solid var(--line);margin-top:18px}.reference-disclosure>summary{cursor:pointer;color:var(--accent);padding:16px 0;font-size:13px}.reference-disclosure .reference-heading{margin-top:10px}.passenger-workspace{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}@media (width<=900px){.passenger-workspace{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:no-preference){.station-bus-icon,.moving-bus-icon{animation:.24s ease-out report-bus-appear}@keyframes report-bus-appear{0%{opacity:.4;transform:scale(.85)}to{opacity:1;transform:scale(1)}}}.stop-bus-chip strong{overflow-wrap:anywhere}.station-select{min-width:0;position:relative}.station-select-label{color:var(--muted);margin-bottom:8px;font-size:13px;display:block}.station-select-trigger{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:44px;padding:11px 12px;font-size:13px;display:flex}.station-select-trigger>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.station-select-trigger>svg{color:var(--muted);flex-shrink:0}.station-select-trigger[aria-expanded=true]{border-color:var(--accent)}.station-select-trigger:disabled{color:var(--muted)}.station-select-options{z-index:40;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);border-radius:9px;width:100%;min-width:0;margin:0;padding:5px;list-style:none;position:absolute;top:calc(100% + 7px);left:0;overflow-y:auto;box-shadow:0 12px 30px #14343b26}.station-select-options li{cursor:pointer;border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.station-select-options li:hover,.station-select-options .option-active{background:var(--soft);color:var(--accent-strong)}.station-select-options [aria-disabled=true]{opacity:.45;cursor:default}.station-select-options li>span{gap:4px;min-width:0;display:grid}.station-select-options strong{overflow-wrap:anywhere;font-size:13px;font-weight:500}.station-select-options small{color:var(--muted);font-size:11px}.station-select-options svg{flex-shrink:0}@media (width>=1600px){.main-content{padding-left:48px;padding-right:48px}}.service-hours{flex-wrap:wrap;align-items:center;gap:10px 18px;margin:16px 0;font-size:12px;line-height:1.8;display:flex}.service-hours strong{color:var(--text);font-weight:500}.service-hours span,.service-hours small{color:var(--muted)}.service-hours a{color:var(--accent)}.demo-controls{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0;display:flex}.route-view-controls{flex-wrap:wrap;justify-content:space-between;gap:12px;margin:12px 0;display:flex}.route-scroller{min-width:0;position:relative}.vehicle-dialog .vehicle-detail-heading{align-items:flex-start;gap:16px;margin-bottom:18px}.vehicle-dialog .vehicle-detail-heading>div{flex:1;min-width:0}.vehicle-dialog .vehicle-detail-heading .icon-button{flex:0 0 36px;width:36px;height:36px}.vehicle-dialog h2{overflow-wrap:anywhere;margin-top:7px;line-height:1.4}.vehicle-dialog .neutral-banner{overflow-wrap:anywhere;margin:0 0 20px;display:block}.route-panel{--stop-height:72px;--segment-height:40px}.live-route-list>.route-stop:not(:last-child):before{content:"";left:23px;top:calc(var(--stop-height) / 2);width:2px;height:calc(var(--stop-height) + var(--segment-height));background:color-mix(in srgb, var(--accent) 35%, var(--line));pointer-events:none;position:absolute}.route-panel:not(.horizontal-route) .stop-row{height:var(--stop-height);min-height:var(--stop-height)}.route-panel:not(.horizontal-route) .station-button{height:var(--stop-height);min-height:var(--stop-height);padding-right:86px}.route-panel:not(.horizontal-route) .station-fleet{max-height:calc(var(--stop-height) - 12px);width:74px;max-width:none;padding:0;position:absolute;top:50%;right:6px;overflow-y:auto;transform:translateY(-50%)}.route-panel:not(.horizontal-route) .station-fleet .stop-bus-chip{padding:5px}.route-panel:not(.horizontal-route) .station-fleet strong{white-space:nowrap;font-size:11px}.route-panel:not(.horizontal-route) .route-segment{height:var(--segment-height);min-height:var(--segment-height);padding:0}.route-panel:not(.horizontal-route) .segment-fleet{height:var(--segment-height);gap:12px;display:flex;position:absolute;top:0;left:8px;right:8px;overflow:auto hidden}.route-panel:not(.horizontal-route) .segment-fleet li{flex:none}.route-panel:not(.horizontal-route) .segment-bus-chip{width:auto;height:var(--segment-height);padding:0}.route-panel:not(.horizontal-route) .moving-bus-icon{height:32px}.horizontal-route .route-scroller{overscroll-behavior-x:contain;margin-top:12px;padding:8px 0 12px;overflow-x:auto}.horizontal-route .live-route-list{align-items:stretch;width:max-content;display:flex}.horizontal-route .live-route-list>.route-stop:not(:last-child):before{width:80px;height:2px;top:94px;left:28px}.horizontal-route .route-stop{height:var(--horizontal-row-height);flex:none;display:flex}.horizontal-route .stop-row{width:56px;height:100%;min-height:0;display:block}.horizontal-route .station-button{flex-direction:column;justify-content:flex-start;align-items:center;width:56px;height:100%;padding:122px 5px 12px;display:flex;position:relative}.horizontal-route .stop-node{height:32px;position:absolute;top:79px;left:12px}.horizontal-route .station-text{text-align:center;justify-items:center;gap:10px;width:100%}.horizontal-route .station-name{writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;letter-spacing:.06em;margin:0 auto;font-size:13px;line-height:1.6}.horizontal-route .station-code{overflow-wrap:anywhere;font-size:10px}.horizontal-route .route-segment,.horizontal-route .route-segment.segment-occupied{width:24px;height:100%;min-height:0;padding:0}.horizontal-route .station-fleet,.horizontal-route .segment-fleet{scrollbar-width:thin;z-index:1;flex-direction:column;gap:4px;width:40px;max-width:none;height:72px;padding:0;display:flex;position:absolute;top:8px;left:8px;overflow-y:auto}.horizontal-route .segment-fleet{left:-8px}.horizontal-route .station-fleet li,.horizontal-route .segment-fleet li{flex:none}.horizontal-route .stop-bus-chip,.horizontal-route .segment-bus-chip{width:100%;min-height:58px;color:var(--accent-strong);background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:5px 1px;display:flex}.horizontal-route .stop-bus-chip>svg{color:#fff;background:var(--accent);border-radius:7px;width:26px;height:26px;padding:4px}.horizontal-route .stop-bus-chip:hover,.horizontal-route .segment-bus-chip:hover{background:var(--soft)}.horizontal-route .stop-bus-chip.vehicle-selected,.horizontal-route .segment-bus-chip.vehicle-selected{background:var(--surface);box-shadow:inset 0 0 0 2px var(--accent)}.horizontal-route .stop-bus-chip.vehicle-selected>svg,.horizontal-route .segment-bus-chip.vehicle-selected .moving-bus-icon{color:var(--accent);background:var(--surface)}.horizontal-route .stop-bus-chip strong,.horizontal-route .bus-number{white-space:nowrap;font-size:10px;line-height:1.2}.horizontal-route .moving-bus-icon{width:26px;height:26px;box-shadow:none;border-radius:7px}.horizontal-route .bus-chip-text>strong{justify-content:center}.horizontal-route .en-route-badge,.horizontal-route .bus-direction-arrow{display:none}.horizontal-route .route-stale .stop-bus-chip{color:var(--muted)}.horizontal-route .route-stale .stop-bus-chip>svg{background:var(--muted)}.trip-live{height:254px;overflow-y:auto}.trip-live .trip-vehicles{max-height:126px;overflow-y:auto}.prediction-panel{border:1px solid var(--line);background:color-mix(in srgb, var(--soft) 58%, var(--surface));border-radius:12px;margin:16px 0;padding:16px}.prediction-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.prediction-heading h3{margin:2px 0 0;font-size:15px}.quality-badge{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));color:var(--accent-strong);background:var(--surface);border-radius:999px;flex:none;padding:4px 7px;font-size:10px}.prediction-value{gap:5px;margin-top:13px;display:grid}.prediction-value strong{font-size:15px;line-height:1.55}.prediction-value span,.candidate-estimate{color:var(--muted);font-size:11px;line-height:1.65}.service-warning{color:#8a5b17;margin:12px 0 0;font-size:11px;line-height:1.65}.terminal-departure{border-top:1px solid color-mix(in srgb, var(--accent) 20%, var(--line));margin-top:14px;padding-top:12px}.terminal-departure h4{color:var(--accent-strong);margin:0 0 7px;font-size:12px}.terminal-departure p,.terminal-departure strong,.terminal-departure span{margin:0;display:block}.terminal-departure strong{font-size:13px;line-height:1.55}.terminal-departure span{color:var(--muted);margin-top:3px;font-size:11px;line-height:1.6}.candidate-estimate{color:var(--accent-strong);flex-basis:100%;padding-left:28px;display:block}.candidate-estimate.muted{color:var(--muted)}.stop-row.stop-selected .station-button,.stop-row.stop-selected .station-button:hover{background:0 0}.stop-row:has(.station-button:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.stop-row .station-button:focus-visible{outline:none}.route-panel:not(.horizontal-route) .bus-chip-text{flex:1}.snapshot-notice,.service-notice{height:68px;overflow-y:auto}.snapshot-notice>span{min-width:0}@media (width<=740px){.route-panel{--stop-height:80px}.data-status{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;display:grid}.data-status>span:nth-child(2){grid-area:2/1/auto/-1}.data-status .status-vehicle-count{grid-area:1/2;margin-left:0}.snapshot-notice,.service-notice{height:110px}}
