html,body,#root{background:#0b0d10;min-height:100%;margin:0}.app{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bl-bg:#0b0d10;--bl-card:#14181d;--bl-text:#e8ecf1;--bl-muted:#8a94a3;--bl-green:#3ddc84;--bl-amber:#ffb020;--bl-red:#ff5d5d;--bl-brown:#62361b;--bl-purple:#522398;--bl-line:#292e35;--bl-go-bg:#2a2113;--bl-font:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bl-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;background:var(--bl-bg);width:100%;max-width:390px;height:auto;min-height:100dvh;color:var(--bl-text);font-family:var(--bl-font);margin:auto;position:relative;overflow:visible}.app,.app *{box-sizing:border-box}.app button,.app summary{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.app button:disabled{cursor:default;opacity:.5}.app :is(button,a,summary):focus-visible{outline:2px solid var(--bl-amber);outline-offset:3px;border-radius:4px}.app a{color:inherit;text-underline-offset:3px}.app svg{flex-shrink:0;width:18px;height:18px;display:block}.app .mono{font-family:var(--bl-mono);font-variant-numeric:tabular-nums}.app .sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app .app-shell{height:auto;min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px max(12px, env(safe-area-inset-bottom));flex-direction:column;display:flex;overflow:visible}.app .app-topbar{justify-content:space-between;align-items:center;min-height:30px;display:flex}.app .app-brand{letter-spacing:-.4px;align-items:center;gap:8px;font-size:15px;font-weight:650;display:flex}.app .brand-mark{background:var(--bl-brown);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:25px;height:25px;font-size:14px;font-weight:750;display:inline-grid}.app .current-clock,.app .local-time-note{color:var(--bl-muted);font-size:12px}.app .board-topline{border-top:1px solid var(--bl-line);letter-spacing:1.2px;justify-content:space-between;align-items:center;gap:8px;min-height:52px;font-size:11px;display:flex}.app .board{flex-direction:column;gap:9px;display:flex}.app .train-row{background:var(--bl-card);border:1px solid #30363e;border-radius:12px;padding:14px 12px}.app .count-label{color:#a9b2bf;margin-bottom:5px;font-size:12px;line-height:1.4;display:block}.app .count-value{letter-spacing:-1.8px;font-size:36px;font-weight:650;line-height:1.1;display:block}.app .count-value small{letter-spacing:0;font-size:14px;font-weight:500}.app .window-label{color:#a9b2bf;margin-bottom:5px;font-size:12px}.app .window-time{letter-spacing:-.5px;font-size:16px}.app .arrival{color:#a9b2bf;margin-top:8px;font-size:12px;line-height:1.5}.app .arrival .mono{color:var(--bl-text)}.app .route-chip{background:var(--bl-brown);color:#fff;border-radius:4px;place-items:center;min-width:32px;min-height:22px;padding:2px 7px;font-size:12px;font-weight:650;display:inline-grid}.app .route-chip.purple{background:var(--bl-purple)}.app .walk-controls{align-items:center;gap:8px;display:flex}.app .stepper,.app .icon-button{width:44px;height:44px;color:var(--bl-text);background:#20262e;border:0;border-radius:6px;flex-shrink:0;place-items:center;display:grid}.app .banner{color:#f4c46f;overflow-wrap:anywhere;background:#292214;border-radius:8px;align-items:flex-start;gap:9px;margin:0 0 10px;padding:10px 11px;font-size:13px;line-height:1.5;display:flex}.app .banner .banner-copy{flex:1}.app .banner strong{font-weight:600;display:block}.app .banner button{color:inherit;background:0 0;border:0;min-width:44px;min-height:44px;padding:0 3px;text-decoration:underline}.app .skeleton{border:1px solid var(--bl-line);background:var(--bl-card);color:#a9b2bf;border-radius:12px;min-height:122px;padding:19px}.app .skeleton-line{background:#252b34;border-radius:4px;width:70%;height:12px;margin:12px 0}.app .skeleton-line.large{width:45%;height:25px}.public-app .profile-choices{grid-template-columns:1fr 1fr;gap:6px;margin:16px 0 14px;display:grid}.public-app .profile-choices button{border:1px solid var(--bl-line);color:#a9b2bf;background:0 0;border-radius:8px;min-height:44px;padding:9px 6px;font-size:14px;font-weight:600}.public-app .profile-choices button[aria-pressed=true]{color:#ffcb80;background:#292117;border-color:#86603a}.public-app .station-title{letter-spacing:-.6px;align-items:center;gap:7px;margin:0;font-size:23px;line-height:1.25;display:flex}.public-app .station-title svg{color:#a9b2bf;width:16px}.public-app .station-direction{color:#a9b2bf;margin:5px 0 14px;font-size:13px;line-height:1.5}.public-app .public-source{font-size:13px}.public-app .public-source>p{color:#ffcb80;margin:0;font-weight:600}.public-app .source-actions{flex-wrap:wrap;align-items:flex-start;gap:0 12px;display:flex}.public-app .source-actions>a{flex:1;align-items:center;gap:4px;min-height:44px;font-size:13px;display:inline-flex}.public-app .source-actions>a svg{width:14px}.public-app summary{color:#bec6d0;min-height:44px;padding:12px 0;font-size:13px;line-height:20px}.public-app .source-actions details{min-width:72px}.public-app .source-actions details[open]{flex-basis:100%}.public-app .source-details-copy{color:#a9b2bf;overflow-wrap:anywhere;padding:0 0 10px;font-size:13px;line-height:1.6}.public-app .source-details-copy p{margin:0 0 10px}.public-app .refresh-button{color:#d1d8e1;text-underline-offset:4px;letter-spacing:0;background:0 0;border:0;min-width:68px;min-height:44px;padding:8px 0 8px 8px;font-size:13px;text-decoration:underline}.public-app .public-route{color:#a9b2bf;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.public-app .public-timing{grid-template-columns:minmax(92px,.85fr) minmax(0,1.15fr);align-items:center;gap:10px;display:grid}.public-app .arrival strong{font-size:15px;font-weight:550;display:block}.public-app .primary-estimate{border-left:3px solid var(--bl-amber);background:#1c1b18}.public-app .primary-estimate .count-value{color:#ffcb80;font-size:40px}.public-app .primary-estimate .count-label{color:#e8c394}.public-app .compact-estimate .count-value{letter-spacing:-.8px;font-size:26px}.public-app .row-context{border-top:1px solid var(--bl-line);color:#a9b2bf;margin:12px 0 0;padding-top:10px;font-size:12px;line-height:1.5}.public-app .walk-assumptions{margin:10px 0 12px;padding:0 2px}.public-app .assumptions-line{color:#a9b2bf;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;line-height:1.5;display:flex}.public-app .assumptions-line>span:first-child{align-items:center;gap:5px;display:inline-flex}.public-app .assumptions-line svg{width:15px}.public-app .assumptions-line strong{color:#d3dae3;font-size:13px;font-weight:550}.public-app .assumptions-line small{font-size:12px}.public-app .walk-edit{color:#a9b2bf;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font-size:13px;display:flex}.public-app .walk-assumptions details p{color:#a9b2bf;margin:8px 0;font-size:13px;line-height:1.5}.public-app .later-trains h2{color:#a9b2bf;margin:0 0 2px;font-size:13px;font-weight:550}.public-app .earlier-trains{border-top:1px solid var(--bl-line);margin-top:12px}.public-app .earlier-trains summary span{font-variant-numeric:tabular-nums}.public-app .planning-state,.public-app .recovery-state{border:1px solid var(--bl-line);background:var(--bl-card);border-radius:10px;margin:0 0 12px;padding:14px}.public-app .recovery-state{border-color:#765137}.public-app :is(.planning-state,.recovery-state) h2{margin:0 0 6px;font-size:17px;font-weight:600;line-height:1.35}.public-app :is(.planning-state,.recovery-state) p,.public-app .settings-warning{color:#a9b2bf;margin:0;font-size:13px;line-height:1.6}.public-app .settings-warning{margin-bottom:10px}.public-app .public-footer{color:var(--bl-muted);margin-top:auto;padding-top:12px;font-size:12px}.public-app .public-footer a{align-items:center;gap:4px;min-height:44px;display:inline-flex}.public-app .public-footer svg{width:14px}.app .journey{padding:22px 0 18px}.app .profile-switch{min-height:44px;color:var(--bl-text);letter-spacing:-.7px;background:0 0;border:0;align-items:center;gap:12px;padding:0;font-size:25px;font-weight:620;display:flex}.app .station-line{color:var(--bl-muted);align-items:center;gap:6px;margin-top:3px;font-size:12px;display:flex}.app .freshness{letter-spacing:0;color:var(--bl-muted);flex-wrap:wrap;align-items:center;gap:5px;font-size:11px;display:flex}.app .freshness.problem{color:var(--bl-amber)}.app .row-main{grid-template-columns:87px minmax(0,1fr) 44px;align-items:center;column-gap:8px;display:grid}.app .bell{color:#b0b9c6;background:#20252c;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.app .row-footer{border-top:1px solid var(--bl-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px;min-height:27px;margin-top:12px;padding-top:9px;display:flex}.app .route-gap{align-items:center;gap:9px;display:flex}.app .gap,.app .row-reason{color:var(--bl-muted);font-size:12px;line-height:1.5}.app .row-flags{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.app .flag{color:var(--bl-muted);background:#ffffff0a;border-radius:4px;padding:3px 5px;font-size:11px}.app .flag.delayed{color:var(--bl-red)}.app .flag.jumpy{color:#dfab67}.app .train-row.is-go{background:var(--bl-go-bg);border-color:#77521c}.app .is-go .count-label,.app .is-go .count-value{color:var(--bl-amber)}.app .walk-limit,.app .board-help{color:var(--bl-muted);margin:8px 0;font-size:12px}.app .board-help{text-align:center}.app .bottom-area{margin-top:auto;padding-top:15px}.app .footer{border-top:1px solid var(--bl-line);padding-top:9px}.app .footer-controls{justify-content:space-between;align-items:center;gap:5px;display:flex}.app .walk-label{color:var(--bl-muted);align-items:center;gap:6px;font-size:12px;display:flex}.app .trips-button{color:#c0c8d3;background:0 0;border:0;align-items:center;gap:7px;min-height:44px;padding:0 1px 0 10px;font-size:12px;display:flex}.app .buffer-note{color:var(--bl-muted);flex-wrap:wrap;justify-content:space-between;gap:4px;padding:3px 0 1px;font-size:12px;display:flex}.app .poll-note{color:var(--bl-muted);text-align:center;font-size:12px;line-height:1.6}.app .poll-note a{color:inherit;align-items:center;min-height:44px;display:inline-flex}.app .empty-state{text-align:center;padding:44px 10px}.app .empty-state>svg{width:35px;height:35px;color:var(--bl-muted);margin:0 auto 20px}.app .empty-state h2{font-size:18px;font-weight:550}.app .empty-state p,.app .sheet p{color:var(--bl-muted);font-size:13px;line-height:1.7}.app .secondary-button,.app .primary-button{border-radius:8px;min-height:44px;padding:11px 15px;font-size:13px;font-weight:550}.app .secondary-button{color:var(--bl-text);background:#20262e;border:1px solid #353d48}.app .primary-button{background:var(--bl-amber);color:#201506;border:1px solid #0000}.app .full-width{width:100%}.app .sheet-backdrop{z-index:20;background:#0009;align-items:flex-end;max-width:390px;margin:auto;display:flex;position:fixed;inset:0}.app .sheet{background:var(--bl-card);border:1px solid var(--bl-line);width:100%;max-height:calc(100dvh - 35px);padding:12px 20px max(26px, env(safe-area-inset-bottom));border-radius:18px 18px 0 0;overflow:auto}.app .sheet-handle{background:#46505e;border-radius:3px;width:34px;height:4px;margin:0 auto 18px}.app .sheet-kicker{color:var(--bl-muted);font-size:12px}.app .sheet-header{justify-content:space-between;align-items:center;display:flex}.app .sheet h2{margin:6px 0;font-size:23px}@media (height<=750px){.app .app-shell{padding-top:max(10px, env(safe-area-inset-top))}.app .journey{padding:9px 0 11px}.public-app .profile-choices{margin:10px 0}}@media (width<=360px){.app .app-shell{padding-left:12px;padding-right:12px}.app .row-main{grid-template-columns:72px minmax(0,1fr) 44px;column-gap:5px}.public-app .public-timing{grid-template-columns:minmax(88px,.8fr) minmax(0,1.2fr);gap:8px}.public-app .window-time{font-size:14px}.public-app .primary-estimate .count-value{font-size:36px}}@media (width<=19rem){.app .row-main,.public-app .public-timing{grid-template-columns:minmax(0,1fr);row-gap:10px}.app .footer-controls,.app .walk-controls{flex-wrap:wrap}.app .count-value{overflow-wrap:anywhere}.public-app .profile-choices{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.app *{transition:none!important;animation:none!important}}
