:root{--surface-0: #060810;--surface-1: #0e1116;--surface-2: #11161f;--surface-3: #161c27;--surface-4: #1e2531;--surface-5: #232b38;--surface-6: #2a313c;--surface-7: #2d3340;--text-1: #e6ebf2;--text-2: #d7dde6;--text-3: #9aa4b2;--text-4: #7a8392;--text-5: #5a6372;--text-on-accent: #f5f7fa;--accent: #3b82f6;--accent-strong: #2563eb;--accent-soft: #93c5fd;--accent-faint: #cfe0ff;--accent-dim: #3b5a8f;--status-late: #f87171;--status-late-strong: #ef4444;--status-early: #38bdf8;--status-ontime: #4ade80;--status-ontime-strong: #22c55e;--status-warn: #fbbf24;--status-warn-strong: #f59e0b;--status-scheduled: #9ca3af;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .12s;--dur-base: .18s;--dur-slow: .26s;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 4px 12px -4px rgba(0, 0, 0, .5);--shadow-3: 0 10px 24px -8px rgba(0, 0, 0, .6);--z-base: 1;--z-overlay: 10;--z-panel: 20;--z-fab: 30;--z-modal: 40;--z-toast: 50;--i-link8: #93b4f5;--b-tip: #39445a;--a-btn: #1e3a5f;--a-btn-h: #244a78;--a-head: #0f1420;--a-back-h: #1f2735;--a-warn-row: #2a1d12;--a-ok: #11301f;--a-warn: #3a2410;--a-tick: #262c36;--a-ff-h: #25304a;--a-danger: #2a1418;--a-danger-b: #5b2530;--a-danger-h: #3a1a20;--a-msg: #16202e;--a-msg-b: #243044;--a-badge: #2b3a22;--a-mode-b: #2a3646;--a-mode: #131b26;--a-wp: #3a2e15;--s-chip: #1b212b;--s-hover2: #1f2630;--s-input: #0e1320;--s-input2: #0d1117;--s-strip-h: #202836;--s-toast: #1b2230;--s-toast-e: #24191c;--s-tip: #232b3a;--s-del-h: #991b1b;--b-1: #2b3444;--b-2: #3a4456;--b-3: #2f3846;--b-4: #3a4250;--b-del: #3a2020;--b-retry: #3d2b2b;--b-del2: #5a2d2d;--b-info: #2f5170;--b-crit: #8a2a32;--b-5: #1f242c;--t-icon: #4a5568;--t-badge: #0b0d12;--i-1: #f5f7fa;--i-1b: #f1f5f9;--i-1c: #f0f4fa;--i-2: #e8eaed;--i-2b: #e6edf3;--i-2c: #e7ebf1;--i-2d: #dfe4ec;--i-3: #cbd5e1;--i-3b: #cdd4e0;--i-3c: #c4ccd6;--i-3d: #c3ccd8;--i-4: #b6bfca;--i-4b: #aeb6c2;--i-4c: #a7b0bf;--i-4d: #aab3c0;--i-5: #9fb0c7;--i-5b: #9aa3b2;--i-5c: #98a2b5;--i-5d: #98a2b3;--i-5e: #94a3b8;--i-on: #fff;--i-ok: #34d399;--i-ok2: #86efac;--i-ok3: #a8efbc;--i-warn: #fde047;--i-star: #facc15;--i-warn2: #e0a33a;--i-warn3: #ffd591;--i-warn4: #ffce85;--i-warn5: #ffe1ad;--i-bad: #ff9a9a;--i-bad2: #ff8f8f;--i-bad3: #ffb0c0;--i-bad4: #ff9aae;--i-bad5: #ffc2c6;--i-bad6: #f0a78c;--i-bad7: #f1a4ad;--i-link: #5b9dff;--i-link2: #8fb4f0;--i-link3: #7fa8e0;--i-link4: #a8c6ff;--i-link5: #7fb2ff;--i-link6: #93b1ef;--i-link7: #dbe4f3;--i-info: #d6e6f5;--i-early: #9fe0f5;--o-commute-ink: #eaf0ff;--o-offline-ink: #fde68a;--o-offline-line: #b45309;--o-fab: rgba(17, 21, 28, .92);--o-pill: rgba(22, 27, 34, .85);--o-banner: rgba(22, 27, 34, .96);--o-notice: rgba(22, 27, 34, .97);--o-input: rgba(22, 27, 34, .7);--o-input-f: rgba(22, 27, 34, .92);--o-toggle: rgba(22, 27, 34, .6);--o-toggle-h: rgba(22, 27, 34, .9);--o-drawer: rgba(17, 21, 28, .97);--o-install: rgba(20,24,32,.97);--o-hint: rgba(20,24,32,.95);--o-ann-info: rgba(20,32,46,.96);--o-ann-warn: rgba(46,36,16,.96);--o-ann-crit: rgba(50,20,24,.96);--o-offline: rgba(120, 53, 15, .92);--o-commute: rgba(59, 90, 143, .95);--o-scrim: rgba(6, 9, 14, .7);--p-card-bg1: rgba(255,255,255,.05);--p-card-bg2: rgba(255,255,255,.015);--p-card-line: rgba(255,255,255,.08);--p-row-line: rgba(255,255,255,.06);--p-btn-hover: rgba(255,255,255,.06);--p-panel-shadow: 0 12px 36px rgba(0,0,0,.5);--p-pop-shadow: 0 6px 20px rgba(0,0,0,.5);--p-dim: #6b7480;--p-dim2: #8a93a2;--p-go-disabled: .4;--p-focus: #141b29;--p-armed: #14203a;--p-step: #171d28;--p-del-h: #2a1414;--p-retry-h: #2a1c1c;--p-itin-on: #1a2436;--p-cancel: #4a2020;--p-risky: #4a2230;--p-tight: #3d3320;--p-risky-n: #3a1c26;--p-tight-n: #322a1a;--p-dur: #1b212c;--p-alert: #1d2330;--p-ann: #14181f;--p-ann-btn: #1c2230;--p-seq-cur: #07210f;--p-seq-past: #394150;--p-pick: #232a35;--p-pick2: #323a46;--p-pick-h: #2a323e;--p-focus-b: #3b5b8a;--p-step-h: #1c2433;--p-popup: #1a1a1a;--p-onb-h: #232c3a;--p-onb-dot: #3a434f;--p-misc1: #3f4d63;--p-misc2: #4b5563;--p-misc3: #2d5a8c;--p-danger: #b91c1c;--p-accent2: #1d4ed8;--p-grey: #555;--m-card: #161b22;--m-card2: #161c25;--m-card3: #161c26;--m-card4: #1a1f27;--m-card5: #171c26;--m-well: #11151c;--mode-bus: #4d9fff;--mode-rail: #7c6cf0;--mode-metro: #f0883e;--mode-tram: #3fc9a6;--mode-ferry: #35b9d6;--place-home: #ff9db0;--place-work: #8f7ae6;--m-well2: #0d1017;--m-well3: #0d1220;--m-well4: #0e1219;--m-hover: #1a212c;--m-hover2: #1a2029;--m-hover3: #232c3a;--m-raised: #3a434f;--m-sel: #1c2434;--m-sel2: #1c2330;--m-sel3: #1e2940;--m-sel4: #1e2636;--m-sel5: #243456;--m-sel6: #1e3a6e;--m-accent-fill: #1d4ed8;--m-line: #232a36;--m-line2: #2a3340;--m-line3: #313a48;--m-line4: #383f4c;--m-line-acc: #34507e;--m-ink: #0a0e14;--m-ink2: #1a2028;--m-mute-bg: #475569}:root[data-theme=light]{--surface-0: #ffffff;--surface-1: #eef1f5;--surface-2: #e7ebf1;--surface-3: #ffffff;--surface-4: #e2e7ee;--surface-5: #d9dfe8;--surface-6: #c9d1dd;--surface-7: #b8c2d1;--text-1: #0f141b;--text-2: #1e2631;--text-3: #475263;--text-4: #576272;--text-5: #727f91;--text-on-accent: #ffffff;--accent: #1b57cf;--accent-strong: #1746ad;--accent-soft: #3b82f6;--accent-faint: #1e4fa8;--accent-dim: #9cb8e6;--status-late: #d92626;--status-late-strong: #b91c1c;--status-early: #0277b6;--status-ontime: #15803d;--status-ontime-strong: #166534;--status-warn: #a35a09;--status-warn-strong: #8a4708;--status-scheduled: #556376;--shadow-1: 0 1px 2px rgba(15, 20, 27, .08);--shadow-2: 0 4px 12px -4px rgba(15, 20, 27, .13);--shadow-3: 0 10px 24px -8px rgba(15, 20, 27, .17);--i-link8: #1b57cf;--b-tip: #dbe1e9;--a-btn: #dbe7f8;--a-btn-h: #c9dcf5;--a-head: #f2f4f8;--a-back-h: #e6eaf1;--a-warn-row: #fdf1e3;--a-ok: #dff3e6;--a-warn: #fbeada;--a-tick: #e2e6ec;--a-ff-h: #e0e8f6;--a-danger: #fbe4e6;--a-danger-b: #e8b4bb;--a-danger-h: #f8d5d9;--a-msg: #eef2f7;--a-msg-b: #d5dde8;--a-badge: #e2f0d9;--a-mode-b: #d6dde7;--a-mode: #f0f3f7;--a-wp: #f7ecd6;--s-chip: #eef1f5;--s-hover2: #e9edf3;--s-input: #f6f8fb;--s-input2: #ffffff;--s-strip-h: #e6ebf2;--s-toast: #ffffff;--s-toast-e: #fdeeee;--s-tip: #ffffff;--s-del-h: #b91c1c;--b-1: #dbe1e9;--b-2: #ccd3dd;--b-3: #d7dde5;--b-4: #ccd3dd;--b-del: #f0cccc;--b-retry: #f0d4d4;--b-del2: #e3b4b4;--b-info: #a9c6e6;--b-crit: #e0a3a3;--b-5: #e2e7ee;--t-icon: #6b7686;--t-badge: #0b0d12;--i-1: #0f141b;--i-1b: #0f141b;--i-1c: #0f141b;--i-2: #1e2631;--i-2b: #1e2631;--i-2c: #1e2631;--i-2d: #1e2631;--i-3: #3c4757;--i-3b: #3c4757;--i-3c: #3c4757;--i-3d: #3c4757;--i-4: #4a5565;--i-4b: #4a5565;--i-4c: #4a5565;--i-4d: #4a5565;--i-5: #536072;--i-5b: #536072;--i-5c: #536072;--i-5d: #536072;--i-5e: #536072;--i-on: #ffffff;--i-ok: #15803d;--i-ok2: #15803d;--i-ok3: #15803d;--i-warn: #8a5a00;--i-star: #a16207;--i-warn2: #8a5a00;--i-warn3: #8a5a00;--i-warn4: #8a5a00;--i-warn5: #7c4a08;--i-bad: #b91c1c;--i-bad2: #b91c1c;--i-bad3: #b0203a;--i-bad4: #b0203a;--i-bad5: #a81f28;--i-bad6: #a2432a;--i-bad7: #a82838;--i-link: #1b57cf;--i-link2: #1b57cf;--i-link3: #1b57cf;--i-link4: #1746ad;--i-link5: #1b57cf;--i-link6: #1b57cf;--i-link7: #123a7a;--i-info: #14496e;--i-early: #0277b6;--o-commute-ink: #123a7a;--o-offline-ink: #7c4708;--o-offline-line: #e0b070;--o-fab: rgba(255, 255, 255, .92);--o-pill: rgba(255, 255, 255, .88);--o-banner: rgba(255, 255, 255, .96);--o-notice: rgba(255, 255, 255, .97);--o-input: rgba(255, 255, 255, .78);--o-input-f: rgba(255, 255, 255, .96);--o-toggle: rgba(255, 255, 255, .72);--o-toggle-h: rgba(255, 255, 255, .94);--o-drawer: rgba(250, 251, 253, .97);--o-install: rgba(255, 255, 255, .97);--o-hint: rgba(255, 255, 255, .95);--o-ann-info: rgba(232, 240, 251, .97);--o-ann-warn: rgba(253, 243, 224, .97);--o-ann-crit: rgba(253, 232, 232, .97);--o-offline: rgba(253, 237, 214, .95);--o-commute: rgba(224, 235, 252, .96);--o-scrim: rgba(15, 20, 27, .45);--p-card-bg1: #ffffff;--p-card-bg2: #fbfcfe;--p-card-line: #d3dae5;--p-row-line: #e4e9f0;--p-btn-hover: rgba(15,23,42,.06);--p-panel-shadow: 0 8px 24px rgba(15,23,42,.1);--p-pop-shadow: 0 6px 20px rgba(15,23,42,.12);--p-dim: #6a7382;--p-dim2: #59616f;--p-go-disabled: .55;--p-focus: #eaf0fa;--p-armed: #e2ecfb;--p-step: #f3f5f9;--p-del-h: #f8dcdc;--p-retry-h: #f8e0e0;--p-itin-on: #e4ecfa;--p-cancel: #f9dede;--p-risky: #f9dde3;--p-tight: #f7eed8;--p-risky-n: #f7dde3;--p-tight-n: #f5ecd9;--p-dur: #eceff4;--p-alert: #eef1f6;--p-ann: #f1f3f7;--p-ann-btn: #e9edf3;--p-seq-cur: #dff3e6;--p-seq-past: #c9d0da;--p-pick: #e7ebf1;--p-pick2: #d5dbe4;--p-pick-h: #dde2ea;--p-focus-b: #a9c4ea;--p-step-h: #eaeef4;--p-popup: #ffffff;--p-onb-h: #e5e9f0;--p-onb-dot: #ccd3dd;--p-misc1: #c6cedb;--p-misc2: #8b96a6;--p-misc3: #9dbde6;--p-danger: #b91c1c;--p-accent2: #1746ad;--p-grey: #6b7280;--m-card: #ffffff;--m-card2: #ffffff;--m-card3: #ffffff;--m-card4: #ffffff;--m-card5: #ffffff;--m-well: #f4f6f9;--mode-bus: #1668d6;--mode-rail: #5442c9;--mode-metro: #c25e12;--mode-tram: #12876c;--mode-ferry: #0f7f97;--place-home: #d94f6e;--place-work: #5b3aa8;--m-well2: #ffffff;--m-well3: #eef3fb;--m-well4: #f4f6f9;--m-hover: #e7ebf1;--m-hover2: #e7ebf1;--m-hover3: #e2e7ee;--m-raised: #cdd5e0;--m-sel: #e4ecfa;--m-sel2: #e4ecfa;--m-sel3: #dde8f9;--m-sel4: #e4ecfa;--m-sel5: #d7e4f8;--m-sel6: #1b57cf;--m-accent-fill: #1d4ed8;--m-line: #dde2ea;--m-line2: #d3dae4;--m-line3: #c7cfdb;--m-line4: #c7cfdb;--m-line-acc: #a7c3ec;--m-ink: #ffffff;--m-ink2: #1a2028;--m-mute-bg: #8593a6}*{box-sizing:border-box}:is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html,body,#root{height:100%;height:100dvh;height:var(--app-vh, 100dvh);margin:0;overscroll-behavior:none;overflow-x:clip;max-width:100%}@media (display-mode: standalone){html,body,#root{background:var(--surface-1)}}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--surface-1);color:var(--text-2);overflow:hidden;overscroll-behavior:none}.app{display:grid;grid-template-columns:76px 1fr;height:100vh;height:100dvh;height:var(--app-vh, 100dvh)}.icon-rail{grid-row:1;grid-column:1;width:76px;flex:none;background:var(--m-well2);border-right:1px solid var(--m-line);display:flex;flex-direction:column;align-items:center;padding:16px 0;gap:18px}.icon-rail-logo{width:36px;height:36px;flex:none;color:var(--accent);display:block}.icon-rail-btn{width:46px;height:46px;border-radius:16px;border:none;background:transparent;color:var(--text-4);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;flex:none;overflow:visible}.icon-rail-btn:hover{background:var(--m-card5);color:var(--text-2)}.icon-rail-btn.on{background:#3b82f629;color:var(--accent)}.icon-rail-btn:disabled{cursor:default}.icon-rail-btn:disabled:hover{background:#3b82f629}.icon-rail-label{font-size:8px;font-weight:700;letter-spacing:.02em;position:absolute;bottom:3px;left:0;right:0;text-align:center;white-space:nowrap}.icon-rail-badge{position:absolute;top:2px;right:-2px;min-width:16px;max-width:44px;height:16px;border-radius:999px;background:var(--accent);color:var(--text-on-accent);font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--m-well2)}.icon-rail-spacer{flex:1}.icon-rail-avatar{width:36px;height:36px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--accent),var(--accent-strong));border:none;color:var(--text-on-accent);font-size:13px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center}.icon-rail-avatar--guest{background:var(--surface-6);color:var(--text-4)}.sidebar,.settings-panel{background:var(--m-well);overflow-y:auto;overscroll-behavior:contain;padding:14px 12px;display:flex;flex-direction:column;gap:14px;min-height:0}.sidebar>.sidebar-card.section{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}.sidebar>.sidebar-card.section>.section-head,.sidebar>.sidebar-card.section>.section-actions{flex:none}.op-scroll{overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1 1 auto;padding-right:2px;margin-top:8px}.sidebar>.sidebar-header,.settings-panel>.sidebar-header{flex:none}.rt-status-panel{overflow-y:hidden}.rt-status-panel>.sidebar-card{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}@media (min-width: 721px) and (min-height: 501px){.sidebar,.settings-panel{position:absolute;top:12px;left:-320px;width:320px;max-width:calc(100vw - 100px);max-height:calc(100% - 24px);border:1px solid var(--m-line);border-radius:18px;z-index:5;box-shadow:0 8px 32px #00000073;transform:translate(0);transition:transform .22s cubic-bezier(.22,1,.36,1)}.app.sidebar-open .sidebar,.app.settings-panel-open .settings-panel,.app.delay-panel-open .delay-panel,.app.rt-status-panel-open .rt-status-panel{transform:translate(408px)}.planner-page .settings-panel{transform:translate(408px);z-index:var(--z-panel)}}@media (min-width: 721px) and (min-height: 501px){.operator-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px}.op-chip{aspect-ratio:auto;flex-direction:column;gap:7px;padding:12px 6px 10px;background:var(--m-card3);border:1.5px solid var(--m-line);border-radius:14px}.op-chip:hover{transform:none;border-color:var(--m-line3)}.op-chip.active{background:var(--m-card3);border-color:var(--ring, rgba(255,255,255,.14));box-shadow:0 0 0 1px var(--ring, transparent) inset}.op-chip .op-chip-logo{width:42px;height:42px;flex:none}.op-chip-name{font-size:11px;color:var(--i-4c)}.op-chip.inactive .op-chip-name{opacity:.7}.op-chip-accent,.sidebar .settings,.rt-status-card,.settings-strip-mobile-only,.sidebar-search-mobile-only,.sidebar-user-mobile-only,.sidebar-plan-btn-mobile-only{display:none}}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-header h1{font-size:16px;margin:0;letter-spacing:.2px;font-weight:700;min-width:0;line-height:1.25}.sidebar-tagline{font-size:11px;font-weight:500;letter-spacing:.02em;color:var(--text-4);text-transform:none;white-space:nowrap;overflow-wrap:break-word}.sidebar-header-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.sidebar-actions-mobile-only{display:contents}.sidebar-card{background:var(--m-card2);border:1px solid var(--m-line);border-radius:14px;padding:12px}.settings{display:flex;flex-direction:column;gap:10px}.layer-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none}.switch{position:relative;flex:none;display:inline-flex}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer;z-index:1}.switch-track{display:block;width:36px;height:20px;border-radius:999px;background:var(--surface-6);border:1px solid var(--m-line4);transition:background-color .15s,border-color .15s}.switch-knob{display:block;width:14px;height:14px;margin:2px;border-radius:50%;background:var(--text-3);transition:transform .15s,background-color .15s}.switch input:checked+.switch-track{background:var(--m-sel6);border-color:var(--accent)}.switch input:checked+.switch-track .switch-knob{background:var(--accent);transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.delay-heatmap-row,.delaymap-controls{display:flex;flex-direction:column;gap:8px}.delaymap-zoom-hint{font-size:12px;color:var(--status-warn)}.delay-heatmap-row .delaymap-controls{margin-left:24px}.delaymap-legend{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--text-2)}.delaymap-legend-bar{height:6px;border-radius:3px;background:linear-gradient(90deg,#22c55e,#facc15 33.3%,#f97316 66.7%,#ef4444)}.delaymap-legend-ticks{display:flex;justify-content:space-between;color:var(--text-3)}.segment-popup{font-size:12px;line-height:1.4}.segment-popup-n{color:#6b7280;font-size:11px}.delaymap-controls .delaymap-window,.delay-heatmap-row .delaymap-window{align-self:flex-start;border:1px solid var(--surface-6);background:var(--surface-2);color:var(--text-2);font-size:12px;padding:5px 8px;border-radius:8px;cursor:pointer;max-width:100%}.source-filter{display:flex;align-items:center;justify-content:space-between;gap:8px}.source-filter-label{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-4)}.segmented{position:relative;display:grid;grid-template-columns:repeat(var(--count, 3),1fr);background:var(--m-well4);border:1px solid var(--m-line);border-radius:8px;overflow:hidden}.segmented-thumb{position:absolute;top:2px;bottom:2px;width:calc(100% / var(--count, 3) - 4px);background:var(--accent);border-radius:6px;z-index:0}.segmented-btn{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-3);font-size:11px;padding:5px 4px;cursor:pointer;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}.segmented-btn:hover{color:var(--text-2)}.segmented-btn.active{color:var(--text-on-accent)}.settings-panel-card{gap:4px}.settings-row{display:flex;align-items:center;gap:12px;padding:10px 2px}.settings-row+.settings-row{border-top:1px solid var(--surface-4)}.settings-row-label{display:flex;align-items:center;gap:8px;flex:none;min-width:82px;font-size:13px;font-weight:600;color:var(--text-2);white-space:nowrap}.settings-row-icon{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex:none;font-size:13px;border-radius:8px;background:#ffffff0d}.settings-row .segmented{flex:1;min-width:0}.settings-row .segmented-btn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section{display:flex;flex-direction:column;gap:8px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-title{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-4)}.sidebar-card-title{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-4);margin-bottom:2px}.section-actions{display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:1px}.section-actions::-webkit-scrollbar{display:none}.section-count{font-size:11px;color:var(--text-4);font-weight:600}.section-count i{font-style:normal;opacity:.7;font-weight:500}.op-action-pill{flex:none;background:transparent;border:1px solid var(--m-line);color:var(--text-3);font-size:11px;font-weight:600;padding:5px 11px;border-radius:999px;cursor:pointer;white-space:nowrap}.op-action-pill:hover{color:var(--i-2);border-color:var(--accent)}.op-action-pill.on{background:var(--m-sel6);border-color:var(--accent);color:var(--text-on-accent)}.op-view-toggle{display:flex;flex:none;margin-left:auto;border:1px solid var(--m-line);border-radius:999px;padding:2px;gap:2px}.op-view-toggle button{border:none;background:transparent;color:var(--text-4);width:26px;height:26px;border-radius:999px;font-size:12px;cursor:pointer}.op-view-toggle button.on{background:var(--m-line);color:var(--i-2)}.operator-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.operator-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.op-chip{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;min-width:0;padding:4px 2px 7px;background:transparent;border:1.5px solid transparent;border-radius:10px;cursor:pointer;transition:opacity .12s var(--ease-out),border-color .12s var(--ease-out),transform .08s var(--ease-out)}.op-chip:hover{transform:translateY(-1px)}.op-chip.active{border-color:#ffffff1a}.op-chip.inactive{opacity:.5;filter:grayscale(1)}.op-chip .op-logo{width:100%;height:100%;border-radius:8px;border:none}.op-chip .op-logo img{border-radius:6px}.op-chip-accent{position:absolute;bottom:2px;width:18px;height:3px;border-radius:999px;background:var(--ring, var(--accent))}.op-chip-live,.op-chip-sched{position:absolute;min-width:16px;height:16px;padding:0 4px;border-radius:999px;font-size:9px;font-weight:800;line-height:16px;text-align:center;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--m-well)}.op-chip-live{top:-4px;right:-4px;background:var(--status-ontime-strong);color:var(--m-ink)}.op-chip-sched{bottom:-4px;right:-4px;background:var(--surface-5);color:var(--text-3);font-weight:700;opacity:.9}.op-chip-logo{position:relative;width:34px;height:34px;flex:none;display:flex}.op-chip-name{font-size:10px;font-weight:700;color:var(--text-3);text-align:center;width:100%}.layout-btn{width:22px;padding:0!important;font-size:13px!important;letter-spacing:0!important}.layout-btn.active{border-color:var(--accent)!important;color:var(--text-on-accent)!important}.op-row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:6px;cursor:pointer;font-size:12px;-webkit-user-select:none;user-select:none;transition:background .12s var(--ease-out),opacity .12s var(--ease-out)}.op-row:hover{background:var(--m-hover)}.op-row.inactive{opacity:.4}.op-row.active{background:var(--m-sel)}.op-logo{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;font-size:9px;font-weight:700;color:var(--text-on-accent);text-shadow:0 1px 1px rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08)}.op-logo img{width:100%;height:100%;object-fit:contain;background:#fff}.op-initials{padding:0 2px;letter-spacing:.2px}.op-name{flex:1;min-width:0;color:var(--text-2)}.op-counts{display:flex;gap:3px;flex-shrink:0}.badge{font-size:10px;padding:1px 6px;border-radius:999px;font-weight:600;line-height:1.4;font-variant-numeric:tabular-nums}.badge-live{background:#22c55e2e;color:var(--status-ontime)}.badge-sched{background:#94a3b81f;color:var(--i-5e)}.sidebar-fab{display:none;position:fixed;top:12px;left:12px;z-index:calc(var(--z-panel) + 1);width:44px;height:44px;border-radius:50%;border:1px solid var(--surface-6);background:var(--o-fab);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-2);font-size:22px;line-height:1;cursor:pointer;box-shadow:0 4px 16px #0006}.sidebar-fab:hover{background:var(--m-sel)}.sidebar-fab-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:999px;background:var(--accent);color:var(--text-on-accent);font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--surface-1)}.fab-rail{position:fixed;right:4px;bottom:14px;z-index:6;display:flex;flex-direction:column;gap:2px;background:var(--o-fab);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--surface-6);border-radius:22px;padding:4px;box-shadow:0 4px 16px #0006}.fab-rail-btn{width:38px;height:38px;border-radius:16px;border:none;background:transparent;color:var(--i-4d);font-size:17px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative}.fab-rail-btn:hover{background:var(--m-sel);color:var(--i-2)}.fab-rail-btn.on{color:var(--text-on-accent);background:#3b82f640}.fab-rail-btn.busy{opacity:.6;cursor:wait}.fab-rail-btn:disabled{cursor:wait}@media (pointer: coarse){.fab-rail-btn:after,.op-action-pill:after,.op-view-toggle button:after,.setting-chip:after,.sidebar-plan-btn-mobile-only:after,.btn-user-signin:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:44px;min-height:44px;width:100%;height:100%}.op-action-pill,.op-view-toggle button,.setting-chip,.sidebar-plan-btn-mobile-only,.btn-user-signin{position:relative}}.report-modal-card h3{margin:4px 0 10px;font-size:16px}.report-textarea{width:100%;background:var(--surface-3);border:1px solid var(--surface-6);border-radius:7px;color:var(--text-1);font:inherit;font-size:13px;padding:8px 10px;resize:vertical}.report-context-hint{font-size:11.5px;color:var(--text-3);margin-top:6px;padding:6px 8px;background:var(--m-hover2);border:1px solid var(--surface-5);border-radius:6px}.report-context-icon{margin-right:5px}.report-actions{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.report-shot-btn{background:var(--surface-3);border:1px solid var(--surface-6);border-radius:7px;color:var(--text-2);font-size:12.5px;padding:6px 10px;cursor:pointer}.report-shot-btn:disabled{opacity:.6;cursor:default}.report-shot-preview{max-width:90px;max-height:60px;border-radius:5px;border:1px solid var(--surface-6)}.report-error{color:var(--status-late);font-size:12px;margin-top:8px}.report-submit{width:100%;margin-top:14px;background:var(--accent-strong);border:none;border-radius:8px;color:var(--text-on-accent);font-size:13.5px;font-weight:600;padding:10px;cursor:pointer}.report-submit:disabled{opacity:.5;cursor:default}.report-status-badge{flex:none;font-size:10.5px;padding:2px 7px;border-radius:999px;align-self:flex-start}.report-status-open{background:#3b82f62e;color:var(--accent-soft)}.report-status-reviewed{background:#eab3082e;color:var(--i-warn)}.report-status-closed{background:#94a3b82e;color:var(--i-3)}.profile-gear{flex:none;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;cursor:pointer;background:var(--surface-3);border:1px solid var(--surface-5);color:var(--text-3);transition:background .12s var(--ease-out),color .12s var(--ease-out)}.profile-gear:hover{background:var(--surface-4);color:var(--text-1)}.profile-gear:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.account-dialog-card{max-width:440px;width:min(440px,calc(100vw - 24px))}.ticket-what{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:5px;font-size:12px}.ticket-where{display:inline-flex;align-items:center;gap:4px;color:var(--text-2)}.ticket-payload{color:var(--text-3);font-variant-numeric:tabular-nums}.ticket-attach{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ticket-attach .report-shot-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.ticket-attach-preview{display:block;max-width:100%;max-height:160px;object-fit:contain;margin-top:8px;border-radius:8px;border:1px solid var(--surface-5)}.tickets-card{max-width:560px;width:min(560px,calc(100vw - 24px))}.ticket-filters{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 12px}.ticket-filter{font:inherit;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:999px;cursor:pointer;background:var(--surface-3);border:1px solid var(--surface-5);color:var(--text-3)}.ticket-filter.on{background:var(--accent-dim);border-color:var(--accent);color:var(--text-1)}.ticket-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}.ticket{background:var(--surface-3);border:1px solid var(--surface-5);border-radius:12px;padding:10px 12px}.ticket.open{border-color:var(--accent-dim)}.ticket-head{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:0;background:none;border:none;cursor:pointer;font:inherit;text-align:left;color:var(--text-1)}.ticket-kind{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-status{flex:none;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;text-transform:lowercase}.ticket-status.is-open{background:#3b82f62e;color:var(--accent-soft)}.ticket-status.is-progress{background:#eab3082e;color:var(--i-warn)}.ticket-status.is-done{background:#22c55e2e;color:var(--i-ok)}.ticket-status.is-closed{background:#94a3b82e;color:var(--i-3)}.ticket-msg{margin-top:6px;font-size:12.5px;color:var(--text-2);overflow-wrap:anywhere}.ticket-meta{display:flex;align-items:center;gap:10px;margin-top:5px;font-size:11px;color:var(--text-4)}.ticket-count{display:inline-flex;align-items:center;gap:4px}.ticket-thread{margin-top:10px;border-top:1px solid var(--surface-4);padding-top:10px}.ticket-note{font-size:12px;color:var(--text-2);background:var(--surface-2);border-left:2px solid var(--accent-dim);padding:6px 9px;border-radius:0 8px 8px 0;margin-bottom:8px}.ticket-thread-empty{font-size:12px;color:var(--text-4);margin-bottom:8px}.ticket-bubble-row{display:flex;margin-bottom:6px}.ticket-bubble-row.mine{justify-content:flex-end}.ticket-bubble{display:inline-block;max-width:85%;padding:6px 10px;border-radius:10px;font-size:12.5px;line-height:1.4;background:var(--surface-4);color:var(--text-2);overflow-wrap:anywhere}.ticket-bubble.mine{background:var(--accent);color:#fff}.ticket-reply{display:flex;gap:6px;margin-top:8px}.ticket-reply-input{flex:1;min-width:0;font:inherit;font-size:12.5px;padding:7px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--surface-5);color:var(--text-1)}.ticket-reply-input:focus{outline:none;border-color:var(--accent)}.onb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-toast);background:var(--o-scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px}.onb-card{position:relative;width:100%;max-width:420px;background:var(--m-card);border:1px solid var(--surface-6);border-radius:16px;padding:28px 22px 16px;box-shadow:0 20px 60px #0009;display:flex;flex-direction:column;gap:16px}.onb-skip{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;color:var(--text-4);transition:background .12s var(--ease-out),color .12s var(--ease-out)}.onb-skip:hover{background:var(--surface-5);color:var(--text-1)}.onb-skip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.onb-body{text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}.onb-title{margin:0;font-size:19px;font-weight:800;color:var(--i-1)}.onb-text{margin:0;font-size:14px;line-height:1.5;color:var(--i-4);max-width:340px}.onb-visual{min-height:132px;display:flex;align-items:center;justify-content:center;background:var(--surface-1);border:1px solid var(--surface-5);border-radius:12px;padding:14px}.onb-demo-icon{font-size:52px;line-height:1}.onb-demo-row{display:flex;gap:26px;align-items:center;justify-content:center;flex-wrap:wrap}.onb-demo-dot-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}.onb-demo-dot{min-width:34px;height:34px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--p-panel-shadow)}.onb-demo-live{background:var(--accent-strong);border:2px solid var(--surface-1)}.onb-demo-dot-stack:has(.onb-demo-faded){opacity:.45}.onb-demo-ghost{background:var(--surface-1);border:2.5px solid var(--accent-strong);opacity:.8}.onb-demo-dot-label{font-size:12px;font-weight:700;color:#fff;text-shadow:0 0 2px #0e1116,0 0 2px #0e1116;font-variant-numeric:tabular-nums;line-height:1}.onb-demo-dot-stack{position:relative;display:inline-flex}.onb-demo-dot-arrow{position:absolute;left:50%;top:-8px;transform:translate(-50%);width:0;height:0;border-left:4.5px solid transparent;border-right:4.5px solid transparent;border-bottom:7px solid var(--accent-strong)}.onb-demo-cap{font-size:11px;color:var(--text-3)}.onb-demo-pills{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;align-items:center}.onb-demo-bar{display:flex;align-items:center;gap:8px}.onb-demo-badge{background:var(--accent-strong);color:var(--text-on-accent);font-weight:800;font-size:14px;border-radius:7px;padding:4px 9px}.onb-demo-headsign{font-size:15px;font-weight:700;color:var(--i-1)}.onb-demo-btn{font-size:18px;color:var(--status-early);padding:2px 3px}.onb-demo-arr{display:flex;align-items:center;gap:9px;background:var(--m-card);border:1px solid var(--surface-5);border-radius:10px;padding:8px 10px;width:240px}.onb-demo-arr-badge{width:26px;height:26px;border-radius:6px;background:var(--accent-strong);color:var(--text-on-accent);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:13px;flex:none}.onb-demo-arr-main{flex:1;min-width:0;text-align:left}.onb-demo-arr-dest{font-size:13px;font-weight:600;color:var(--i-2)}.onb-demo-arr-live{font-size:11px;color:var(--status-ontime)}.onb-demo-arr-eta{text-align:right;color:var(--i-2)}.onb-demo-arr-eta b{font-size:17px}.onb-demo-star{color:var(--i-star);font-size:16px}.onb-demo-star.big{font-size:30px}.onb-demo-search{display:flex;gap:8px;align-items:center;background:var(--m-card);border:1px solid var(--m-line2);border-radius:999px;padding:8px 14px;color:#8b95a3;font-size:13px}.onb-demo-fab{width:40px;height:40px;border-radius:50%;background:var(--m-sel2);border:1px solid var(--surface-6);display:flex;align-items:center;justify-content:center;font-size:19px}.onb-demo-route{font-size:18px;color:var(--i-3);letter-spacing:1px}.onb-demo-bell{font-size:26px}.onb-demo-menu{display:flex;gap:12px;align-items:center}.onb-demo-menu-rows{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--i-4);text-align:left}.onb-demo-menu-rows span{background:var(--m-sel2);border-radius:5px;padding:2px 8px}.onb-langs{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.onb-lang{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:9px;border:1px solid var(--surface-6);background:var(--m-card);color:var(--i-3);font-size:14px;font-weight:600;cursor:pointer}.onb-lang:hover{background:var(--m-sel)}.onb-lang.on{border-color:var(--accent-strong);background:var(--m-sel3);color:var(--text-on-accent)}.onb-lang-flag{display:inline-flex;align-items:center;flex:none}.onb-lang-flag .flag{border-radius:3px;display:block}.region-picker{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;width:100%;max-height:240px;overflow-y:auto;padding:2px}.section .region-picker{justify-content:flex-start;margin:4px 0 10px;background:var(--m-card2);border:1px solid var(--m-line);border-radius:10px;padding:10px}.region-chip{padding:7px 12px;border-radius:999px;border:1px solid var(--surface-6);background:var(--m-card);color:var(--i-3);font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}.region-chip:hover{background:var(--m-sel)}.region-chip.on{border-color:var(--accent-strong);background:var(--m-sel3);color:var(--text-on-accent)}.onb-locate{margin-top:6px;padding:8px 14px;border-radius:8px;border:1px solid var(--m-line-acc);background:var(--m-sel3);color:var(--i-link7);font-size:13px;font-weight:600;cursor:pointer}.onb-locate:hover{background:var(--m-sel5)}.onb-dots{display:flex;gap:6px;justify-content:center}.onb-dot{width:7px;height:7px;border-radius:50%;border:none;padding:0;background:var(--m-raised);cursor:pointer;transition:background .15s,transform .15s}.onb-dot.on{background:var(--accent);transform:scale(1.3)}.onb-nav{display:flex;align-items:center;justify-content:space-between;gap:10px}.onb-count{font-size:12px;color:#7b8694;font-variant-numeric:tabular-nums}.onb-btn{padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid var(--surface-6);background:var(--m-sel2);color:var(--i-3)}.onb-btn:hover:not(:disabled){background:var(--m-hover3)}.onb-btn:disabled{opacity:.4;cursor:default}.onb-primary{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--text-on-accent)}.onb-primary:hover:not(:disabled){background:var(--m-accent-fill)}.tp-panel{position:absolute;top:64px;left:12px;width:360px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 80px);overflow-y:auto;z-index:5;background:var(--surface-2);border:1px solid var(--surface-4);border-radius:18px;box-shadow:var(--p-panel-shadow);padding:16px 16px 18px;color:var(--text-2)}.tp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.tp-head h2{font-size:17px;font-weight:700;margin:0;color:var(--i-1b)}.tp-head-actions{display:flex;align-items:center;gap:10px}.tp-close{background:none;border:none;color:var(--text-4);font-size:22px;line-height:1;cursor:pointer}.tp-close:hover{color:var(--text-2)}.tp-save-trip{align-self:flex-start;margin-top:8px;background:none;border:1px solid var(--m-line-acc);border-radius:10px;color:var(--accent-faint);font-size:12.5px;font-weight:600;padding:7px 14px;cursor:pointer}.tp-save-trip:hover{background:var(--m-sel3)}.tp-save-trip:disabled{opacity:.5;cursor:default}.tp-form{display:flex;flex-direction:column;gap:10px}.tp-wp-card{position:relative;background:linear-gradient(165deg,var(--p-card-bg1),var(--p-card-bg2));border:1px solid var(--p-card-line);border-radius:16px;padding:4px 44px 4px 6px}.tp-wp-card .tp-wp-row{padding:8px 4px}@media (min-width: 721px) and (min-height: 501px){.tp-wp-card:not(.many){padding-right:6px}.tp-wp-card:not(.many) .tp-swap{width:30px;height:30px;right:5px;border-radius:10px}}.tp-wp-card .tp-wp-row+.tp-wp-row{border-top:1px solid var(--p-row-line)}.tp-wp-card .tp-place{background:none;border:none;padding:2px}.tp-wp-card .tp-place:focus-within{background:none}.tp-place{position:relative;display:flex;align-items:center;gap:6px;background:var(--surface-3);border:1.5px solid var(--surface-5);border-radius:14px;padding:9px;transition:border-color .12s var(--ease-out),background .12s var(--ease-out)}.tp-place:focus-within{border-color:var(--accent-dim);background:var(--p-focus)}.tp-place-label{display:none}.tp-place-input{flex:1;background:none;border:none;color:var(--text-1);font-size:14px;outline:none;min-width:0}.tp-place-input::placeholder{color:var(--p-dim)}.tp-place-name{flex:1;font-size:14px;font-weight:500;color:var(--text-1)}.tp-loc-btn{flex:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#3b82f61f;border:none;color:var(--i-link);font-size:13px;cursor:pointer}.tp-loc-btn:hover{background:#3b82f633}.tp-loc-btn:disabled{opacity:.6;cursor:wait}.tp-place-actions{flex:none;display:flex;align-items:center;gap:2px}.tp-icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:none;border:none;color:var(--p-dim2);font-size:13px;line-height:1;cursor:pointer}.tp-icon-btn:hover{background:var(--p-btn-hover);color:var(--i-2)}.tp-icon-btn.on{color:var(--i-link);background:#3b82f624}.tp-icon-btn.tp-pin.on{filter:drop-shadow(0 0 4px #5b8def)}.tp-place-armed{border-color:var(--accent-dim);background:var(--p-armed)}.plan-pin{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:grab;border:2px solid #fff;box-shadow:0 2px 6px #00000080;font-weight:700;font-size:13px;color:var(--text-on-accent)}.plan-pin:active{cursor:grabbing}.tp-leg-logo{width:16px;height:16px;object-fit:contain;border-radius:3px;vertical-align:middle;background:#fff}.tp-steps{list-style:none;margin:8px 0 4px;padding:16px 4px 4px;border-top:1px solid var(--surface-5);display:flex;flex-direction:column;gap:16px}.tp-step-headsign{color:var(--p-dim2);font-size:12.5px;margin-left:2px}.tp-step-operator{flex-basis:100%;color:var(--text-1);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.tp-step-inter{color:var(--i-5);font-size:12px;margin:10px 0 10px 13px;line-height:1.5}.tp-step-inter>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;width:fit-content;min-height:32px;padding:0 12px;background:#7fa8e01f;border:1px solid rgba(127,168,224,.24);border-radius:8px;color:var(--i-link4);font-weight:700;font-size:12px}.tp-step-inter>summary::-webkit-details-marker{display:none}.tp-step-inter>summary:before{content:"▾";font-size:10px;transition:transform .15s var(--ease-out)}.tp-step-inter[open]>summary:before{transform:rotate(-180deg)}.tp-step-inter>summary:hover{background:#7fa8e033;border-color:#7fa8e066}.tp-step-inter>summary:active{background:#7fa8e047}.tp-step-inter[open]>summary{margin-bottom:8px}.tp-step-time{color:var(--i-5);font-weight:700;font-variant-numeric:tabular-nums;background:var(--surface-5);border-radius:999px;padding:2px 9px;font-size:11px}.tp-place-link{background:none;border:none;padding:0;margin:0;cursor:pointer;color:var(--accent-faint);font:inherit;font-weight:600;border-bottom:1px dotted #5b8def;line-height:1.2}.tp-place-link:hover{color:var(--text-on-accent);border-bottom-color:var(--text-on-accent)}.tp-tl{gap:0;padding-top:10px}.tp-tl-row{display:grid;grid-template-columns:44px 18px minmax(0,1fr);column-gap:10px;list-style:none}.tp-tl-time{text-align:right;font-size:13px;font-weight:700;color:var(--text-1);font-variant-numeric:tabular-nums;line-height:20px}.tp-tl-rail{position:relative}.tp-tl-rail:before,.tp-tl-rail:after{content:"";position:absolute;left:50%;transform:translate(-50%)}.tp-tl-rail:before{top:0;height:10px}.tp-tl-rail:after{top:10px;bottom:0}.tp-tl-walk .tp-tl-rail:before,.tp-tl-walk .tp-tl-rail:after,.tp-tl-gap .tp-tl-rail:before,.tp-tl-gap .tp-tl-rail:after,.tp-tl-board .tp-tl-rail:before,.tp-tl-alight .tp-tl-rail:after,.tp-tl-end .tp-tl-rail:before{border-left:2px dotted var(--text-5)}.tp-tl-gap .tp-tl-rail:before{height:auto;bottom:0}.tp-tl-board .tp-tl-rail:after,.tp-tl-mid .tp-tl-rail:before,.tp-tl-mid .tp-tl-rail:after,.tp-tl-alight .tp-tl-rail:before{width:4px;background:var(--leg-color);border-radius:2px}.tp-tl-mid .tp-tl-rail:before{height:auto;bottom:0}.tp-tl>li:first-child .tp-tl-rail:before,.tp-tl>li:last-child .tp-tl-rail:after{display:none}.tp-tl-node{position:absolute;left:50%;top:10px;transform:translate(-50%,-50%);z-index:1;width:12px;height:12px;border-radius:50%;box-sizing:border-box;background:var(--m-card4);border:2px solid var(--text-4)}.tp-tl-board .tp-tl-node,.tp-tl-alight .tp-tl-node{width:14px;height:14px;border:3px solid var(--leg-color)}.tp-tl-mid .tp-tl-node,.tp-tl-gap .tp-tl-node{display:none}.tp-tl-body{min-width:0;padding-bottom:16px;line-height:20px;color:var(--i-3d);font-size:13px}.tp-tl-mid .tp-tl-body{padding-bottom:10px}.tp-tl-board .tp-tl-body{padding-bottom:8px}.tp-tl-walk .tp-tl-body{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px}.tp-tl-walk-text{display:inline-flex;align-items:center;gap:6px;color:var(--text-2)}.tp-tl-head{display:flex;align-items:center;flex-wrap:wrap;gap:2px 6px}.tp-tl-head .tp-step-operator{flex-basis:auto;margin:0;font-size:10.5px;color:var(--text-4)}.tp-tl-place{margin-top:2px;color:var(--text-1)}.tp-tl-verb{color:var(--text-4);font-size:12px}.tp-tl-usual{margin-top:2px;font-size:11.5px;color:var(--text-4)}.tp-tl-usual.late{color:var(--status-warn)}.fav-trip-usual{margin-left:3px;font-size:10.5px;font-weight:700;color:var(--status-warn);white-space:nowrap}.tp-tl-dest{color:var(--text-1)}.tp-tl-gap .tp-tl-body.tp-xfer-note{margin:0 0 14px;padding:6px 10px}.tp-xfer-hist{font-weight:600;font-size:11.5px;opacity:.9}.tp-xfer-hist:not(:first-child){margin-top:3px}.tp-tl-inter{margin:0}.tp-tl-stops{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.tp-tl-stops li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px;align-items:baseline}.tp-tl-stoptime{color:var(--text-4);font-variant-numeric:tabular-nums;font-size:11.5px}.tp-tl-stops .tp-place-link{justify-self:start;text-align:left;font-weight:500;color:var(--text-2)}.tp-detail-dock-btn{background:none;border:none;color:var(--text-4);cursor:pointer;min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.tp-detail-dock-btn:hover{color:var(--text-1);background:var(--surface-6)}.tp-detail-replan{align-self:center;flex:none;background:none;cursor:pointer;border:1px solid var(--accent-dim);border-radius:999px;color:var(--accent-faint);font-size:12px;font-weight:600;padding:4px 11px}.tp-detail-replan:hover{background:var(--surface-6);color:var(--text-1)}@media (min-width: 721px) and (min-height: 501px){.modal.tp-detail-docked{position:absolute;top:0;left:0;bottom:0;z-index:6;width:min(460px,55%);max-height:none;border-radius:0;border-width:0 1px 0 0;box-shadow:8px 0 24px #00000059}}.tp-results{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:7;list-style:none;margin:0;padding:4px;max-height:220px;overflow-y:auto;background:var(--surface-3);border:1px solid var(--surface-6);border-radius:8px;box-shadow:var(--p-pop-shadow)}.tp-results li button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;color:var(--text-2);font-size:12.5px;padding:6px 8px;border-radius:6px;cursor:pointer}.tp-results li button:hover{background:var(--m-sel3)}.tp-result-text{flex:1;min-width:0}.tp-stop-logo{flex:none;width:18px;height:18px;border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--surface-5);font-size:8px;font-weight:700;color:var(--i-5)}.tp-stop-logo img{width:100%;height:100%;object-fit:contain;background:#fff}.tp-stop-initials{line-height:1}.tp-swap{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--surface-3);border:1px solid var(--surface-5);border-radius:12px;color:var(--i-5);font-size:15px;cursor:pointer;z-index:2}.tp-swap:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent-faint)}.tp-swap:disabled{opacity:.35;cursor:default}.tp-go{background:linear-gradient(135deg,var(--accent),var(--accent-strong));border:none;border-radius:14px;color:var(--text-on-accent);font-size:15px;font-weight:800;letter-spacing:.2px;padding:14px;cursor:pointer;margin-top:6px;box-shadow:var(--shadow-3),inset 0 1px #fff3}.tp-go:hover:not(:disabled){background:linear-gradient(135deg,#4c8ef7,#2f6fe0)}.tp-go:disabled{opacity:var(--p-go-disabled, .4);cursor:default;box-shadow:none}.tp-wp-stack{position:relative;display:flex;flex-direction:column;gap:8px}.tp-wp-row{display:flex;align-items:center;gap:10px}.tp-wp-row .tp-place{flex:1;min-width:0}.tp-wp-dot-col{flex:none;width:10px;align-self:stretch;display:flex;flex-direction:column;align-items:center;position:relative}.tp-wp-dot{width:10px;height:10px;border-radius:50%;flex:none;margin-top:18px}.tp-wp-dot.origin{background:var(--status-ontime-strong)}.tp-wp-dot.dest{background:var(--status-late-strong)}.tp-wp-dot.via{background:var(--accent)}.tp-wp-rail{flex:1;width:0;border-left:2px dotted var(--surface-6);margin:4px 0;min-height:12px}.tp-wp-remove{flex:none;background:none;border:1px solid var(--b-del);border-radius:8px;color:var(--status-late);font-size:15px;line-height:1;width:26px;height:26px;cursor:pointer;padding:0}.tp-wp-remove:hover{background:var(--p-del-h)}.tp-save-place-hint{font-size:11.5px;color:var(--p-dim);line-height:1.5;margin:2px 0 0}.tp-add-stop{align-self:flex-start;background:none;border:1px dashed var(--b-3);border-radius:10px;color:var(--i-link2);font-size:12.5px;font-weight:600;padding:7px 12px;cursor:pointer}.tp-add-stop:hover{border-color:var(--p-misc1);color:var(--accent-faint)}.tp-leg-section+.tp-leg-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--surface-4)}.tp-leg-heading{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-4);margin-bottom:6px}.tp-quick-row{display:flex;gap:8px;margin-top:10px}.tp-when{flex:1;min-width:0}.tp-when-mode,.tp-when-at{width:100%;background:var(--m-card);border:1px solid var(--surface-6);border-radius:12px;color:var(--text-1);font-size:13px;font-weight:600;padding:10px;outline:none;text-align:center}.tp-when-at{margin-top:8px;color-scheme:dark;text-align:left}.tp-options-toggle{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--surface-3);border:1px solid var(--surface-5);border-radius:12px;color:var(--text-2);font-size:13px;font-weight:600;padding:10px;cursor:pointer}.tp-options-toggle:hover{border-color:var(--b-3)}.tp-options-toggle[aria-expanded=true]{border-color:var(--accent-dim);color:var(--accent-faint)}.tp-options-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#3b82f62e;color:var(--i-link5);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}.tp-options-body{position:relative;z-index:var(--z-overlay);background:var(--surface-2);border:1px solid var(--surface-4);border-radius:12px;margin-top:8px;padding:12px}.tp-options-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-4)}.tp-mode-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tp-mode-chip{display:flex;align-items:center;gap:6px;background:var(--surface-3);border:1.5px solid var(--surface-5);border-radius:999px;color:var(--p-dim);font-size:12.5px;font-weight:600;padding:7px 13px;cursor:pointer;transition:background .12s var(--ease-out),border-color .12s var(--ease-out),color .12s var(--ease-out)}.tp-mode-chip.on{background:#3b82f61f;border-color:var(--accent-dim);color:var(--text-1)}.tp-mode-chip:hover{border-color:var(--accent-dim)}.tp-options-hint{font-size:11.5px;color:var(--p-dim);line-height:1.5;margin:10px 0 0}.dtp{position:relative;flex:1;min-width:140px}.dtp-input{width:100%;background:var(--m-card);border:1px solid var(--surface-6);border-radius:11px;color:var(--text-1);font-size:13px;padding:9px 10px;text-align:left;cursor:pointer}.dtp-input:hover{border-color:var(--accent-dim)}.dtp-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:var(--z-panel);width:280px;max-width:calc(100vw - 24px);background:var(--m-card);border:1px solid var(--surface-6);border-radius:16px;box-shadow:var(--p-pop-shadow);padding:14px}.dtp-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dtp-nav-label{font-size:13px;font-weight:700;color:var(--i-1b)}.dtp-nav-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:999px;color:var(--text-3);font-size:16px;cursor:pointer}.dtp-nav-btn:hover{background:var(--surface-5);color:var(--i-2)}.dtp-weekdays,.dtp-grid{display:grid;grid-template-columns:repeat(7,1fr)}.dtp-weekdays{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--p-dim);margin-bottom:4px}.dtp-weekdays span{text-align:center;padding:2px 0}.dtp-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:999px;color:var(--text-1);font-size:12.5px;cursor:pointer}.dtp-day:hover{background:var(--surface-5)}.dtp-day.dtp-day-adjacent{color:var(--p-misc2)}.dtp-day.today{border-color:var(--accent-dim);font-weight:700}.dtp-day.on,.dtp-day.on:hover{background:var(--accent);color:var(--text-on-accent)}.dtp-time{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--surface-5)}.dtp-wheels{flex:1;min-width:0;display:flex;gap:6px;background:var(--s-input);border:1px solid var(--surface-6);border-radius:10px;padding:4px}.dtp-wheel{flex:1;min-width:0;max-height:116px;overflow-y:auto;scroll-behavior:smooth;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin}.dtp-wheel-item{flex:none;background:none;border:none;border-radius:7px;color:var(--text-2);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;text-align:center;padding:6px 0;cursor:pointer}.dtp-wheel-item:hover{background:var(--surface-5);color:var(--text-1)}.dtp-wheel-item.on,.dtp-wheel-item.on:hover{background:var(--accent);color:var(--text-on-accent);font-weight:700}.dtp-nudge{display:inline-flex;gap:4px;flex:none}.dtp-nudge button{background:var(--s-input);border:1px solid var(--surface-6);border-radius:9px;color:var(--text-2);font-size:11.5px;font-weight:700;padding:8px 7px;cursor:pointer;font-variant-numeric:tabular-nums}.dtp-nudge button:hover{border-color:var(--accent-dim);color:var(--text-1)}.dtp-quick{display:flex;align-items:center;gap:6px;margin-top:10px}.dtp-quick button{flex:1;background:var(--s-input);border:1px solid var(--surface-6);border-radius:9px;color:var(--text-2);font-size:12px;font-weight:600;padding:8px 6px;cursor:pointer}.dtp-quick button:hover{border-color:var(--accent-dim);color:var(--text-1)}.dtp-quick .dtp-done{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);font-weight:700}.dtp-quick .dtp-done:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--text-on-accent)}.tp-err{margin:10px 0 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tp-err p{color:var(--status-late);font-size:12px;margin:0}.tp-retry{background:transparent;border:1px solid var(--b-retry);border-radius:7px;color:var(--status-late);font-size:12px;padding:4px 10px;cursor:pointer;transition:border-color .12s,background .12s}.tp-retry:hover{border-color:var(--status-late);background:var(--p-retry-h)}.tp-retry:disabled{opacity:.5;cursor:default}.tp-note{color:var(--status-warn);font-size:11.5px;margin:8px 0 0;line-height:1.4}.tp-hint{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text-4);font-size:12.5px;margin:14px 0 0;padding:22px 16px;text-align:center;line-height:1.5;border:1px dashed rgba(255,255,255,.1);border-radius:14px}.tp-hint-icon{font-size:26px;line-height:1}.tp-empty{color:var(--text-4);font-size:12.5px;margin:12px 0 0}.tp-empty p{margin:0}.tp-empty-hint{margin-top:4px!important;font-size:11.5px;color:var(--text-5)}.tp-loading{display:flex;align-items:center;gap:8px}.tp-spinner{display:inline-block;width:13px;height:13px;flex-shrink:0;border:2px solid var(--surface-7);border-top-color:var(--accent);border-radius:50%;animation:tp-spin .7s linear infinite}@keyframes tp-spin{to{transform:rotate(360deg)}}.tp-itins{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.tp-itin{display:block;width:100%;text-align:left;cursor:pointer;background:var(--surface-3);border:1px solid var(--surface-5);border-radius:9px;padding:9px 10px;color:var(--text-2)}.tp-itin:hover{background:var(--m-hover)}.tp-itin.on{background:var(--p-itin-on);border-color:var(--m-line-acc)}.tp-itin-top{display:flex;justify-content:space-between;align-items:baseline}.tp-itin-time{font-size:13px;color:var(--text-1);font-weight:600}.tp-itin-dur{font-size:12px;color:var(--i-5);font-variant-numeric:tabular-nums}.tp-itin-legs{display:flex;flex-wrap:wrap;align-items:center;gap:3px;margin-top:6px}.tp-leg{display:inline-flex;align-items:center;gap:3px;font-size:12px}.tp-leg-icon{font-size:13px}.tp-leg-route{background:var(--surface-5);border-radius:4px;padding:0 5px;font-size:11px;font-weight:600;color:var(--accent-faint)}.tp-leg-sep{color:var(--text-5);margin:0 1px}.tp-itin-meta{display:block;font-size:11px;color:var(--text-4);margin-top:5px}.tp-itin-details-btn{background:none;border:none;padding:0;margin-left:4px;color:var(--i-link3);font-size:11px;font-weight:600;cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}.tp-itin-details-btn:hover{color:var(--i-link4)}.tp-detail-modal .modal-title{display:flex;align-items:baseline;gap:8px}.modal.tp-detail-modal{padding-top:0}.tp-detail-modal .tp-steps{border-top:none;margin-top:0;padding-top:2px}.tp-detail-modal .tp-detail-head{position:sticky;top:0;z-index:2;margin:0 -24px;padding:20px 24px 14px;background:var(--m-card4);border-bottom:1px solid var(--surface-6);align-items:flex-start;gap:10px}.tp-detail-headmain{flex:1 1 auto;min-width:0}.tp-detail-modal .tp-detail-times{font-size:22px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums;align-items:center}.tp-detail-arrow{color:var(--text-4);font-weight:400;font-size:18px}.tp-detail-sub{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:6px;font-size:12.5px;color:var(--i-5)}.tp-detail-sub>span+span:before{content:"·";margin-right:8px;color:var(--text-5)}.tp-detail-legs{margin-top:9px}.tp-detail-head .modal-close{margin-top:-2px}.tp-detail-save{background:none;border:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;margin-right:2px;opacity:.85;transition:opacity .12s var(--ease-out),transform .12s var(--ease-out)}.tp-detail-save:hover:not(:disabled){opacity:1;transform:scale(1.1)}.tp-detail-save:disabled{opacity:.4;cursor:default}.tp-detail-save.saved,.tp-detail-save.saved:disabled{opacity:1;cursor:default}.tp-save-trip.saved{color:var(--status-warn);border-color:#facc1566;opacity:1}.tp-detail-save:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.name-trip-modal{max-width:380px}.name-trip-form{display:flex;flex-direction:column;gap:10px;padding:4px 0 2px}.name-trip-hint{margin:0;font-size:12px;line-height:1.5;color:var(--text-4)}.name-trip-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}.tp-detail-dur{font-size:12.5px;font-weight:700;color:var(--text-1);background:var(--surface-5);border-radius:999px;padding:1px 9px}.tp-rt{margin-left:6px;border-radius:5px;padding:1px 6px;font-size:10px;font-weight:700;line-height:16px;white-space:nowrap}.tp-rt.rt-cancelled{background:var(--p-cancel);color:var(--i-bad);text-decoration:line-through}.tp-live{display:inline-flex;align-items:center;gap:5px;margin-left:6px;padding:1px 7px 1px 6px;border-radius:999px;vertical-align:middle;background:#22c55e24;color:var(--status-ontime);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:16px;white-space:nowrap}.tp-live-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--status-ontime-strong);box-shadow:0 0 0 3px #22c55e38;animation:live-pulse 1.5s var(--ease-in-out) infinite}.tp-live-delay{margin-left:2px;padding:0 5px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:0;text-transform:none}.tp-live-delay.rt-late{background:#f8717133;color:var(--i-bad3)}.tp-live-delay.rt-early{background:#38bdf833;color:var(--i-early)}.tp-live-delay.rt-ontime{background:#22c55e33;color:var(--i-ok3)}@media (prefers-reduced-motion: reduce){.tp-live-dot{animation:none}}.tp-xfer-pill{border-radius:4px;padding:0 6px;font-size:10px;font-weight:700}.tp-xfer-pill.risky{background:var(--p-risky);color:var(--i-bad3)}.tp-xfer-pill.tight{background:var(--p-tight);color:var(--i-warn3)}.tp-xfer-note{list-style:none;font-size:12px;font-weight:700;border-radius:8px;padding:8px 12px;margin:-4px 0 -4px 44px}.tp-xfer-note.risky{background:var(--p-risky-n);color:var(--i-bad4);border-left:3px solid #d83a5a}.tp-xfer-note.tight{background:var(--p-tight-n);color:var(--i-warn4);border-left:3px solid #c79023}.tp-start-trip{margin:4px 16px 12px;width:auto}.tp-active{background:var(--surface-5);border:1px solid var(--m-line-acc);border-radius:12px;padding:10px 12px;margin:0 0 12px;color:var(--text-2);font-size:13px}.tp-active.broken{border-color:#d83a5a}.tp-active-head{display:flex;align-items:baseline;gap:8px}.tp-active-head b{color:var(--text-1)}.tp-active-arrive{color:var(--text-4);font-size:12px;font-variant-numeric:tabular-nums}.tp-active-end{margin-left:auto;background:none;border:none;color:var(--text-4);font-size:12px;cursor:pointer;padding:2px 4px;text-decoration:underline}.tp-active-line{margin-top:6px;color:var(--text-1);line-height:1.45}.tp-at-in{color:var(--text-4);font-variant-numeric:tabular-nums}.tp-active-break{margin:8px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between}.tp-active-alts{margin-top:8px}.tp-active-actions{display:flex;gap:14px;margin-top:6px}.tp-active-replan{margin-top:10px;padding-top:10px;border-top:1px solid var(--surface-6);display:flex;flex-direction:column;gap:6px}.tp-active-replan-head{display:flex;align-items:baseline;gap:8px}.tp-active-replan-head b{color:var(--text-1)}.tp-active-from{display:flex;align-items:center;gap:8px}.tp-active-ask{display:flex;align-items:center;gap:12px}.tp-active-ask .tp-active-end{margin-left:0}.tp-active-from>.tp-place{flex:1;min-width:0;padding:4px 6px 4px 12px;border-radius:10px}.tp-active-from .tp-place-name,.tp-active-from .tp-place-input{font-size:13px}.tp-active-from .tp-loading{margin:0}.tp-alt{display:flex;align-items:center;gap:10px;cursor:default}.tp-alt-main{flex:1;min-width:0}.tp-alt-main .tp-itin-time{white-space:nowrap}.tp-alt-meta{display:block;margin-top:5px;font-size:11.5px;color:var(--text-4)}.tp-alt .tp-detail-replan{white-space:nowrap}.tp-tl-missed{margin-top:6px;font-size:11.5px;padding:3px 9px}.tp-active-alts .tp-itin{cursor:default}@media (max-width: 720px),(max-height: 500px){.tp-panel{top:calc(64px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));width:auto;max-height:calc(100dvh - 80px - env(safe-area-inset-top));overflow-x:hidden;overflow-y:auto}.tp-wp-row{align-items:flex-start;min-height:40px}.tp-wp-dot-col{padding-top:13px}.tp-wp-dot.via{width:8px;height:8px}.tp-place{padding:9px 10px;border-radius:12px;flex-wrap:wrap;row-gap:6px;min-height:40px;align-content:center}.tp-wp-card{padding-right:46px}.tp-swap{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;align-self:auto;border-radius:50%;border:3px solid var(--surface-2);background:var(--accent);color:var(--text-on-accent);font-size:15px;display:flex;align-items:center;justify-content:center;padding:0;box-shadow:var(--shadow-2);z-index:3}.tp-swap:disabled{background:var(--surface-5);box-shadow:none}.tp-itins{gap:8px;margin-top:14px}.tp-itin{border-radius:14px;padding:12px 12px 10px}.tp-itins>li:first-child .tp-itin{border-color:#3b82f659;background:linear-gradient(180deg,rgba(59,130,246,.12),var(--surface-3) 60%)}.tp-itins>li:first-child .tp-itin.on{background:var(--p-itin-on)}.tp-itin-time{font-size:15px}.tp-itin-dur{font-size:12px;font-weight:700;background:var(--p-dur);border:1px solid var(--surface-5);border-radius:8px;padding:2px 8px}.tp-leg-route{border-radius:6px;padding:2px 6px}.planner-page-panel>.sidebar-user{margin-top:14px;padding-top:14px;border-top:1px solid var(--surface-4)}}.alert-card{background:var(--p-alert);border-left:3px solid #d97706;padding:8px 10px;margin-bottom:8px;border-radius:4px;font-size:12px}.alert-card .alert-op{color:var(--text-4);font-size:10px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.alert-card .alert-title{color:var(--i-2);line-height:1.4}.map-container{position:relative}#map{width:100%;height:100%}.nearme-banner{position:absolute;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:7;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--o-banner);border:1px solid var(--m-line-acc);border-radius:12px;padding:8px 10px 8px 14px;box-shadow:0 6px 20px #00000073;max-width:calc(100vw - 24px)}.nearme-text{font-size:13px;color:var(--text-1)}.nearme-go{background:var(--m-sel3);border:1px solid var(--m-line-acc);border-radius:8px;color:var(--accent-faint);font-size:13px;font-weight:600;padding:6px 12px;cursor:pointer;white-space:nowrap}.nearme-go:disabled{opacity:.6;cursor:default}.nearme-x{background:none;border:none;color:var(--text-4);font-size:20px;line-height:1;cursor:pointer;padding:0 2px}.nearme-x:hover{color:var(--text-2)}.nearme-err{flex-basis:100%;font-size:11.5px;color:var(--status-warn)}.announce-stack{position:absolute;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:8;display:flex;flex-direction:column;gap:6px;width:min(560px,calc(100vw - 120px))}.map-top-stack{position:absolute;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:8;display:flex;flex-direction:column;align-items:center;gap:6px;width:min(560px,calc(100vw - 120px));pointer-events:none}.map-top-stack>*{pointer-events:auto}.map-top-stack .announce-stack{position:static;transform:none;width:100%}.trip-pill{display:flex;align-items:center;gap:8px;max-width:min(420px,100%);min-width:0;padding:7px 14px;border-radius:999px;cursor:pointer;background:var(--o-pill);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--accent-dim);color:var(--text-1);font-size:13px;font-weight:600;box-shadow:0 6px 20px #0006}.trip-pill.broken{border-color:#d83a5a}.trip-pill-text{min-width:0}.announce{display:flex;align-items:flex-start;gap:8px;border-radius:10px;padding:8px 10px 8px 12px;font-size:13px;box-shadow:0 6px 20px #00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid}.announce-info{background:var(--o-ann-info);border-color:var(--b-info);color:var(--i-info)}.announce-warning{background:var(--o-ann-warn);border-color:#7a5a18;color:var(--i-warn5)}.announce-critical{background:var(--o-ann-crit);border-color:var(--b-crit);color:var(--i-bad5)}.announce-stack.announce-stack--inline{position:static;transform:none;width:auto;margin:8px 12px 0;z-index:auto}.announce-stack--inline .announce{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.announce-icon{flex:none;line-height:1.3}.announce-msg{flex:1;min-width:0;line-height:1.35}.announce-link{color:inherit;text-decoration:underline;font-weight:600}.announce-x{flex:none;background:none;border:none;color:inherit;opacity:.7;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.announce-x:hover{opacity:1}@media (max-width: 720px),(max-height: 500px){.announce-stack{top:calc(12px + env(safe-area-inset-top));width:calc(100vw - 110px)}}.install-prompt{position:absolute;left:50%;transform:translate(-50%);bottom:calc(14px + env(safe-area-inset-bottom));z-index:8;display:flex;align-items:center;gap:8px;width:min(480px,calc(100vw - 32px));background:var(--o-install);border:1px solid var(--surface-7);border-radius:12px;padding:10px 10px 10px 14px;font-size:13px;color:var(--text-1);box-shadow:0 8px 26px #00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.update-prompt{bottom:calc(70px + env(safe-area-inset-bottom));border-color:var(--accent-dim)}.map-top-stack .update-prompt{position:static;transform:none;width:100%}.install-prompt-icon{flex:none;line-height:1.3}.install-prompt-msg{flex:1;min-width:0;line-height:1.35}.install-prompt-btn{flex:none;background:var(--accent);border:none;border-radius:8px;color:var(--text-on-accent);font-size:13px;font-weight:600;padding:7px 12px;cursor:pointer}.install-prompt-btn:hover{background:#2f6fd8}.install-prompt-x{flex:none;background:none;border:none;color:inherit;opacity:.7;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.install-prompt-x:hover{opacity:1}.announce-h3{font-size:15px;margin:0 0 4px}.announce-intro{color:#8b949e;font-size:12.5px;margin:0 0 14px;line-height:1.5;max-width:640px}.announce-form{background:var(--m-card);border:1px solid var(--m-line);border-radius:10px;padding:12px;margin-bottom:18px;display:flex;flex-direction:column;gap:10px;max-width:640px}.announce-input{width:100%;background:var(--s-input2);border:1px solid var(--surface-6);border-radius:8px;color:var(--text-1);font:inherit;font-size:13px;padding:8px;resize:vertical;box-sizing:border-box}.announce-form-row{display:flex;gap:12px;flex-wrap:wrap}.announce-form-row label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--status-scheduled)}.announce-form-row input,.announce-form-row select{background:var(--s-input2);border:1px solid var(--surface-6);border-radius:8px;color:var(--text-1);font-size:13px;padding:6px 8px;color-scheme:dark}.announce-form-row input[type=url]{min-width:220px}.announce-chk{flex-direction:row!important;align-items:center;gap:6px;color:var(--text-1);font-size:13px;align-self:end}.announce-form-actions{display:flex;gap:10px;align-items:center}.announce-form-actions .tp-go{width:auto;padding:8px 16px}.announce-cancel{background:none;border:1px solid var(--surface-6);border-radius:8px;color:var(--status-scheduled);font-size:13px;padding:8px 14px;cursor:pointer}.announce-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;max-width:760px}.announce-item{border:1px solid var(--m-line);border-left-width:3px;border-radius:8px;padding:10px 12px;background:var(--p-ann)}.announce-item.announce-info{border-left-color:var(--b-info)}.announce-item.announce-warning{border-left-color:#7a5a18}.announce-item.announce-critical{border-left-color:var(--b-crit)}.announce-item.off{opacity:.55}.announce-item-main{display:flex;gap:8px;align-items:baseline}.announce-item-sev{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#8b949e;flex:none}.announce-item-msg{font-size:13px;color:var(--text-1)}.announce-item-meta{font-size:11.5px;color:#6e7681;margin-top:4px}.announce-item-actions{display:flex;gap:8px;margin-top:8px}.announce-item-actions button{background:var(--p-ann-btn);border:1px solid var(--surface-6);border-radius:6px;color:var(--accent-faint);font-size:11.5px;padding:4px 10px;cursor:pointer}.announce-item-actions .announce-del{color:var(--i-bad);border-color:var(--p-cancel)}@media (max-width: 720px),(max-height: 500px){.nearme-banner{top:calc(64px + env(safe-area-inset-top))}}.map-search{position:absolute;top:12px;left:12px;z-index:5}.app.sidebar-open .map-search,.app.settings-panel-open .map-search,.app.delay-panel-open .map-search,.app.rt-status-panel-open .map-search,.app.panel-open .map-search{display:none}.map-search-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--surface-6);background:var(--o-fab);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-2);font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0006}.map-search-btn:hover{background:var(--m-sel)}.map-search.open{width:340px}.map-search.open .search-bar{margin-bottom:0}.map-search.open .search-bar input{height:44px;border-radius:22px;padding:0 16px;background:var(--o-fab);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 16px #0006;font-size:14px}.status-pill{position:absolute;top:12px;right:4px;background:var(--o-pill);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--surface-6);border-radius:999px;padding:7px 14px;font-size:12px;color:var(--text-2);display:flex;align-items:center;gap:8px;z-index:1;box-shadow:0 4px 16px #00000059}.status-dot{width:8px;height:8px;border-radius:50%;background:#6b7280}.status-dot.live{background:#16a34a;box-shadow:0 0 8px #16a34a}.status-pill--offline{background:var(--o-offline);border-color:var(--o-offline-line);color:var(--o-offline-ink)}.status-pill--offline .status-dot{background:var(--status-warn-strong)}.commute-filter-pill{position:absolute;top:54px;right:64px;background:var(--o-commute);border:1px solid #5b8def;border-radius:999px;padding:6px 8px 6px 14px;font-size:12px;color:var(--o-commute-ink);display:flex;align-items:center;gap:8px;z-index:1;max-width:min(60vw,320px)}.commute-filter-pill span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commute-filter-pill button{background:none;border:none;color:var(--o-commute-ink);font-size:15px;line-height:1;cursor:pointer;opacity:.8;flex-shrink:0}.commute-filter-pill button:hover{opacity:1}.maplibregl-ctrl-top-right{margin-top:120px;margin-right:4px}.maplibregl-ctrl-attrib:not(.maplibregl-compact-show) .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{display:block!important}.maplibregl-ctrl-attrib:not(.maplibregl-compact-show){background:none;box-shadow:none;padding:0;min-height:24px}.maplibregl-ctrl-bottom-right{margin-bottom:4px;margin-right:56px}.map-credit{position:absolute;left:8px;bottom:6px;z-index:4;font-size:10.5px;line-height:1.3;color:var(--text-4);background:var(--o-fab);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--surface-6);border-radius:7px;padding:3px 8px;pointer-events:none;max-width:calc(100vw - 16px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-credit a{pointer-events:auto;color:var(--accent);text-decoration:none;font-weight:600}.map-credit a:hover{text-decoration:underline}#map[data-map-theme=dark] .maplibregl-ctrl-group{background:var(--s-chip);box-shadow:0 0 0 2px #ffffff14}#map[data-map-theme=dark] .maplibregl-ctrl-group button+button{border-top-color:var(--surface-6)}#map[data-map-theme=dark] .maplibregl-ctrl-group button:not(:disabled):hover{background-color:#ffffff14}#map[data-map-theme=dark] .maplibregl-ctrl-icon{filter:invert(1)}.popup{font-family:inherit;color:var(--p-popup);min-width:200px}.popup-title{font-weight:600;font-size:14px;margin-bottom:6px}.popup-meta{font-size:12px;color:var(--p-grey);line-height:1.5}.popup-meta b{color:var(--p-popup)}.maplibregl-popup .maplibregl-popup-content{background:var(--m-card);color:var(--text-2);border:1px solid var(--surface-6);border-radius:10px;box-shadow:0 8px 28px #00000080;padding:11px 13px}.maplibregl-popup .maplibregl-popup-close-button{color:var(--text-3);font-size:16px;padding:0 5px}.maplibregl-popup .maplibregl-popup-close-button:hover{background:transparent;color:var(--i-2)}.maplibregl-popup-anchor-top .maplibregl-popup-tip,.maplibregl-popup-anchor-top-left .maplibregl-popup-tip,.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{border-bottom-color:var(--m-card)}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{border-top-color:var(--m-card)}.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--m-card)}.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--m-card)}.tsp{min-width:150px}.tsp-head{display:flex;align-items:center;gap:8px}.tsp-seq{flex:none;min-width:24px;height:22px;padding:0 6px;border-radius:6px;background:var(--surface-6);color:var(--text-2);font-weight:800;font-size:11px;line-height:22px;text-align:center;font-variant-numeric:tabular-nums}.tsp[data-state=current] .tsp-seq{background:var(--status-ontime-strong);color:var(--p-seq-cur)}.tsp[data-state=passed] .tsp-seq{background:var(--p-seq-past);color:var(--text-3)}.tsp-name{font-weight:700;font-size:13px;color:var(--i-1b)}.tsp-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}.tsp-times{display:flex;gap:12px;font-size:12px;font-variant-numeric:tabular-nums}.tsp-times i{color:var(--text-4);font-style:normal;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-right:4px}.tsp-sched{color:var(--i-3)}.tsp-sched.adjusted{color:var(--i-5d);text-decoration:line-through;text-decoration-color:#5b6675}.tsp-real{font-weight:700}.tsp-real.late{color:var(--status-late)}.tsp-real.early{color:var(--accent-soft)}.tsp-real.ontime{color:var(--status-ontime)}.tsp-real.projected{font-weight:600;font-style:italic;opacity:.72}.tsp-pill{flex:none;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap;text-transform:uppercase;letter-spacing:.3px}.tsp-pill.late{background:#ef44442e;color:var(--status-late)}.tsp-pill.early{background:#3b82f62e;color:var(--accent-soft)}.tsp-pill.ontime{background:#22c55e2e;color:var(--status-ontime)}.tsp-status{flex:none;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px;background:#3b82f62e;color:var(--accent-soft)}.tsp[data-state=passed] .tsp-status{background:#94a3b82e;color:var(--i-5e)}.tsp[data-state=current] .tsp-status{background:#22c55e2e;color:var(--status-ontime)}.sp-pick{min-width:180px}.sp-pick-name{font-weight:700;font-size:13px;color:var(--i-1b)}.sp-pick-op{font-size:11.5px;color:var(--text-3);margin-top:2px}.sp-pick-actions{display:flex;flex-direction:column;gap:6px;margin-top:10px}.sp-pick-actions button{font:inherit;font-size:12.5px;font-weight:600;color:var(--text-2);background:var(--p-pick);border:1px solid var(--p-pick2);border-radius:8px;padding:7px 10px;cursor:pointer;text-align:left}.sp-pick-actions button:hover{background:var(--p-pick-h);border-color:var(--accent-dim)}.trip-panel{position:absolute;top:12px;left:12px;width:360px;max-height:calc(100% - 24px);background:var(--m-card);border:1px solid var(--surface-6);border-radius:18px;box-shadow:0 8px 32px #00000073;display:flex;flex-direction:column;z-index:2;overflow:hidden}.panel-grabber{display:none}.trip-header{position:relative;display:flex;flex-direction:column;gap:10px;padding:16px 14px;border-bottom:1px solid var(--surface-6);border-left:4px solid var(--route, var(--accent));background:var(--m-hover2)}.trip-hd-top{display:flex;align-items:center;gap:12px;padding-right:28px;min-height:32px;flex-wrap:wrap;row-gap:2px}.trip-hd-top .trip-stopcount{margin-left:auto}.trip-hd-bottom{display:flex;align-items:center;gap:8px}.trip-delay-pill--sm{font-size:11px;padding:3px 9px}.trip-hd-bottom .trip-delay-pill--sm{flex:none}.trip-pill-age{opacity:.7;font-weight:600}.trip-hd-bottom .trip-pred-pill{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.trip-op{margin-left:auto;flex:0 1 auto;min-width:0;display:flex;align-items:center;gap:7px}.trip-op-logo{width:22px;height:22px;flex:none}.trip-op-name{font-size:12px;font-weight:700;letter-spacing:.2px;color:var(--i-3);max-width:130px}.trip-actions{flex:none;display:flex;align-items:center;gap:2px;margin-left:auto}.trip-actions .panel-locate,.trip-actions .panel-follow,.trip-actions .panel-schedule,.trip-actions .btn-share,.trip-actions .btn-star{font-size:16px;min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent}.trip-close{position:absolute;top:10px;right:10px;width:24px;height:24px;background:transparent;border:none;color:var(--text-3);font-size:20px;line-height:1;cursor:pointer;border-radius:6px}.trip-close:hover{background:var(--s-hover2);color:var(--i-2)}.trip-route-badge{flex:none;min-width:48px;max-width:40%;padding:0 11px;height:40px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--text-on-accent);font-weight:800;font-size:17px;letter-spacing:.3px;overflow:hidden;box-shadow:0 2px 6px #0000004d}.trip-route-badge-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-headsign{flex:1 1 0;min-width:0;font-size:16px;font-weight:700;color:var(--i-1);line-height:1.25;padding-block:2px}.trip-stopcount{flex:none;font-size:11px;color:#8b95a3;font-variant-numeric:tabular-nums;white-space:nowrap}.trip-refreshing{flex:none;font-size:10.5px;color:#8b95a3;white-space:nowrap;animation:trip-refreshing-pulse 1.2s ease-in-out infinite}@keyframes trip-refreshing-pulse{0%,to{opacity:.5}50%{opacity:1}}.trip-next{display:flex;align-items:center;gap:8px}.trip-notrack{margin-top:6px;font-size:11.5px;color:var(--i-5b);display:flex;align-items:center;gap:6px}.trip-notrack:before{content:"○";color:#6b7280;font-size:10px}.trip-relrow{width:100%;margin-top:5px;display:flex;align-items:center;gap:6px;min-height:24px}.trip-relrow .trip-reliability{flex:1 1 auto}.trip-reliability{font-size:11.5px;color:var(--i-4b);display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-reliability:empty{display:none}.trip-reliability:not(:empty):before{content:"📊";font-size:11px}.trip-next-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--m-mute-bg)}.trip-next-dot.live{background:var(--status-ontime);box-shadow:0 0 0 3px #4ade802e;animation:live-pulse 1.5s ease-in-out infinite}.trip-next-label{flex:none;font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-4)}.trip-next-name{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--i-2);line-height:1.35}.marquee{display:block;min-width:0;overflow:hidden;white-space:nowrap}.marquee-inner{display:inline-block;white-space:nowrap}.marquee-inner.animate{will-change:transform;animation:marquee-slide var(--dur, 8s) ease-in-out infinite alternate}@keyframes marquee-slide{0%,18%{transform:translate(0)}82%,to{transform:translate(var(--shift, 0))}}.trip-delay-pill{padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;flex-shrink:0}.trip-delay-pill.ontime{background:#22c55e26;color:var(--status-ontime)}.trip-delay-pill.late{background:#ef44442e;color:var(--status-late)}.trip-delay-pill.early{background:#3b82f62e;color:var(--accent-soft)}.trip-delay-pill.live{background:#22c55e26;color:var(--status-ontime);position:relative}.trip-delay-pill.live:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-ontime);margin-right:6px;vertical-align:middle;animation:live-pulse 1.5s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.35}}.focus-glow{width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:#facc15d9;border:2px solid #fde047;pointer-events:none;animation:focus-glow-pulse 1.5s ease-out 2}@keyframes focus-glow-pulse{0%{transform:scale(.3);opacity:1;box-shadow:0 0 #facc15b3}60%{opacity:.85}to{transform:scale(1.4);opacity:0;box-shadow:0 0 0 40px #facc1500}}@media (prefers-reduced-motion: reduce){.focus-glow{animation:focus-glow-pulse .7s ease-out 1}}@media (prefers-reduced-motion: reduce){.trip-next-dot.live,.trip-delay-pill.live:before{animation:none}.marquee-inner.animate,.panel-follow.on,.trip-refreshing{animation:none}}.trip-delay-pill.scheduled{background:#94a3b833;color:var(--i-3);border:1px dashed rgba(203,213,225,.4)}.trip-delay-pill.stale{background:#eab3082e;color:var(--i-warn)}.trip-delay-pill.nodata{background:var(--s-hover2);color:var(--text-4)}.trip-delay-pill.cancelled{background:#ef44442e;color:var(--status-late);border:1px solid rgba(248,113,113,.4)}.trip-stops{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 4px 12px;margin:0;list-style:none}.trip-stop{display:grid;grid-template-columns:88px 24px minmax(0,1fr) auto;padding:4px 14px 4px 10px;position:relative;align-items:center}.trip-stop:before{content:"";position:absolute;left:106px;top:0;bottom:0;width:2px;background:var(--surface-6)}.trip-stop:first-child:before{top:50%}.trip-stop:last-child:before{bottom:50%}.trip-time{text-align:right;font-variant-numeric:tabular-nums;padding-right:8px;font-size:12px;line-height:1.3}.trip-time-sched{display:block;color:var(--text-2)}.trip-time-sched.adjusted{color:var(--i-5d);text-decoration:line-through;text-decoration-color:#5b6675}.search-bar{position:relative;margin-bottom:12px}.search-bar input{width:100%;padding:11px 14px;font-size:14px;background:var(--o-input);border:1px solid var(--surface-6);border-radius:14px;color:var(--i-1b);outline:none;box-sizing:border-box;transition:border-color .12s var(--ease-out),background .12s var(--ease-out)}.search-bar input:focus{border-color:var(--p-focus-b);background:var(--o-input-f)}.search-filters{display:flex;align-items:center;gap:7px;margin-top:8px;min-width:0}.search-chip-sel{max-width:48%}.search-chip-sel>:first-child{overflow:hidden;text-overflow:ellipsis}.search-chip-caret{opacity:.5;font-size:10px;margin-left:-1px}.search-chip-clear{padding:0 11px}.search-chip{flex:0 0 auto;height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;border-radius:999px;border:1px solid var(--m-line3);background:var(--s-chip);color:var(--i-3);font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer;font-family:inherit;transition:background .12s var(--ease-out),border-color .12s var(--ease-out)}.search-chip:hover{border-color:var(--surface-6)}.search-chip.on{background:color-mix(in srgb,var(--p-focus-b) 30%,var(--s-chip));border-color:var(--p-focus-b);color:var(--i-1b)}.search-chip-n{opacity:.6;font-weight:500;font-variant-numeric:tabular-nums}.search-chip-op{flex:0 0 auto}.search-opsheet{position:absolute;top:100%;left:0;right:0;z-index:calc(var(--z-panel) + 1);margin-top:6px;background:var(--m-card);border:1px solid var(--surface-6);border-radius:14px;box-shadow:0 16px 40px #00000080;overflow:hidden auto;max-height:288px}.search-opsheet-top{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;padding:8px;background:var(--m-card);border-bottom:1px solid color-mix(in srgb,var(--surface-6) 60%,transparent)}.search-opsheet-top:empty{display:none}.search-opsheet-clear{flex:0 0 auto;background:none;border:0;padding:4px 6px;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--p-focus-b)}.search-opsheet-find{flex:1 1 auto;min-width:0;padding:8px 11px;font-size:13px;font-family:inherit;background:var(--o-input);border:1px solid var(--surface-6);border-radius:9px;color:var(--i-1b);outline:none}.search-opsheet-find:focus{border-color:var(--p-focus-b);background:var(--o-input-f)}.search-opsheet-none{padding:14px 12px 16px;font-size:12.5px;color:var(--i-3);text-align:center}.search-opsheet-row{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;background:none;border:0;cursor:pointer;font-family:inherit;color:var(--i-1b);text-align:left}.search-opsheet-row+.search-opsheet-row{border-top:1px solid color-mix(in srgb,var(--surface-6) 45%,transparent)}.search-opsheet-row:hover{background:var(--o-toggle-h)}.search-opsheet-row.on{background:color-mix(in srgb,var(--p-focus-b) 16%,transparent)}.search-op-logo{flex:0 0 auto;width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:9px;font-weight:700;color:#fff}.search-op-logo img{width:100%;height:100%;object-fit:contain;background:#fff}.search-op-initials{line-height:1}.search-opsheet-name{flex:1;min-width:0;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-opsheet-n{flex:0 0 auto;font-size:12px;color:var(--i-3);font-variant-numeric:tabular-nums}.search-opsheet-tick{flex:0 0 auto;font-size:12px;color:var(--p-focus-b);font-weight:700}.search-empty-reset{background:none;border:0;padding:0;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:600;color:var(--p-focus-b)}.search-results{position:absolute;top:100%;left:0;right:0;z-index:var(--z-panel);margin-top:6px;max-height:360px;overflow-y:auto;background:var(--m-card);border:1px solid var(--surface-6);border-radius:16px;box-shadow:0 12px 32px #00000073;padding:6px}.search-empty{padding:20px 12px;color:var(--text-4);font-size:13px;text-align:center}.search-group{padding:10px 8px 6px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6b7480}.search-row{display:flex;align-items:center;gap:11px;padding:9px 8px;border-radius:12px;cursor:pointer;transition:background .12s var(--ease-out)}.search-row:hover,.search-row.active{background:#ffffff0d}.search-badge{flex:none;display:flex;align-items:center;justify-content:center;min-width:40px;height:28px;padding:0 8px;font-size:12px;font-weight:800;text-align:center;border-radius:9px;color:var(--text-on-accent);white-space:nowrap;box-shadow:0 1px 2px #0000004d}.search-badge--stop{min-width:34px;width:34px;height:34px;padding:0;border-radius:11px;font-size:15px;border:1px solid rgba(255,255,255,.14)}.search-group--recent{display:flex;align-items:center;justify-content:space-between}.search-recent-clear{background:none;border:0;padding:0;cursor:pointer;color:var(--accent);font:inherit;text-transform:none;letter-spacing:0}.search-badge--place{min-width:34px;width:34px;height:34px;padding:0;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-5);color:var(--text-2);border:1px solid var(--surface-6);box-shadow:none}.search-row-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.search-row-text strong{font-size:13.5px;font-weight:600;color:var(--i-2);min-width:0}.search-row-sub{font-size:11px;color:var(--text-4)}.lang-switcher{display:inline-flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.lang-btn{padding:2px 8px;font-size:11px;font-weight:600;background:transparent;border:1px solid var(--surface-6);color:var(--status-scheduled);border-radius:4px;cursor:pointer}.lang-btn:hover{color:var(--text-2)}.lang-btn.active{background:var(--surface-6);color:var(--i-1b);border-color:var(--b-4)}.trip-stops-toggle{display:block;width:100%;padding:8px 16px;background:var(--o-toggle);border:none;border-bottom:1px solid var(--surface-6);color:var(--status-scheduled);font-size:12px;text-align:left;cursor:pointer}.trip-stops-toggle:hover{color:var(--text-2);background:var(--o-toggle-h)}.stop-panel-empty{padding:16px;color:var(--status-scheduled);font-size:12px;text-align:center}.stop-head{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"pin  name" ".    meta";align-items:center;column-gap:10px;row-gap:6px;padding:14px 42px 12px 14px;border-bottom:1px solid var(--surface-6);background:var(--m-hover2)}.stop-head-pin{grid-area:pin;flex:none;width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text-on-accent);font-size:16px;box-shadow:0 4px 10px #00000059}.stop-head-pin img{width:100%;height:100%;object-fit:contain}.stop-head-pin .op-initials{font-size:12px;font-weight:700;line-height:1}.stop-head-text{grid-area:name;min-width:0}.stop-head-meta-row{grid-area:meta;min-width:0;display:flex;align-items:center;gap:10px}.stop-head-actions{flex:0 0 auto;display:flex;align-items:center;gap:6px;margin-left:auto;align-self:center}.stop-head-actions .panel-locate,.stop-head-actions .btn-star,.stop-head-actions .btn-share,.stop-head-actions .panel-schedule{width:34px;height:34px;padding:0;font-size:15px;border:1px solid var(--surface-6);border-radius:12px;background:var(--m-card5);color:var(--i-4c);display:flex;align-items:center;justify-content:center}.stop-head-actions .btn-star.starred{color:var(--i-star);border-color:#facc1566;background:#facc1514}.panel-schedule{line-height:1;cursor:pointer;flex-shrink:0;transition:transform .1s}.panel-schedule:hover{transform:scale(1.08)}.stop-head-name{font-size:15px;font-weight:700;color:var(--i-1b);line-height:1.3;padding-block:1px}.stop-head-meta{display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:11px;color:var(--text-4)}.stop-head-op{letter-spacing:.2px;font-weight:600;font-size:12px;color:var(--i-3);max-width:100%}.stop-head-code{display:inline-flex;flex-direction:column;align-items:flex-start;gap:0;background:#ffffff0f;border-radius:5px;padding:3px 7px;line-height:1.15;margin-left:-7px}.stop-head-code-label{font-size:9px;font-weight:700;letter-spacing:.07em;opacity:.65}.stop-head-code-value{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--i-2)}.arr-list{list-style:none;margin:0;padding:4px 4px 8px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:2px}.arr-row{display:flex;align-items:center;gap:12px;padding:11px 14px;margin:0 4px;cursor:pointer;border-radius:14px;transition:background .12s var(--ease-out)}.arr-row:hover{background:#ffffff08}.arr-row:active{background:#ffffff0f}.arr-badge{flex:none;min-width:40px;padding:4px 8px;border-radius:9px;font-weight:800;font-size:13px;text-align:center;color:var(--text-on-accent);font-variant-numeric:tabular-nums;box-shadow:0 1px 2px #0000004d}.arr-main{flex:1;min-width:0}.arr-dest{font-size:14px;font-weight:600;color:var(--i-2)}.arr-meta{display:flex;align-items:baseline;gap:7px;margin-top:3px;font-size:11px;min-width:0;flex-wrap:wrap;row-gap:4px}.arr-times{display:inline-flex;align-items:baseline;gap:5px;flex:0 0 auto}.arr-dayshift{font-size:.78em;font-weight:700;color:var(--i-3);background:#ffffff12;border-radius:3px;padding:0 3px;line-height:1.4}.arr-meta>.arr-delay{flex:0 0 auto}.arr-sched{color:var(--text-3);font-variant-numeric:tabular-nums}.arr-real{color:var(--i-2b);font-weight:700;font-variant-numeric:tabular-nums}.arr-sched--struck{text-decoration:line-through;opacity:.6;font-size:.92em}.arr-schedtag{font-size:.7em;text-transform:uppercase;letter-spacing:.4px;color:#6b7480;border:1px solid var(--surface-6);border-radius:4px;padding:0 4px;line-height:1.4}.arr-live{color:var(--status-ontime);font-weight:700;letter-spacing:.2px;white-space:nowrap;flex:0 0 auto}.arr-delay{font-weight:700;font-size:.92em;padding:2px 7px;border-radius:999px;white-space:nowrap}.arr-delay.late{background:#f8717126;color:var(--i-bad2)}.arr-delay.early{background:#3b82f626;color:var(--accent-soft)}.arr-delay.ontime{background:#4ade8026;color:var(--status-ontime)}.arr-delay.cancelled{background:#f8717126;color:var(--status-late)}.arr-delay.skipped{background:#fde04726;color:var(--i-warn)}.arr-row.cancelled .arr-dest{color:var(--status-late);text-decoration:line-through;text-decoration-color:#f8717180}.arr-row.skipped .arr-dest{color:var(--i-warn)}.arr-eta-num.cancelled{color:var(--status-late)}.arr-pred{font-weight:500;opacity:.65;border-bottom:1px dotted currentColor}.arr-eta{flex:none;min-width:44px;display:flex;flex-direction:column;align-items:flex-end;line-height:1}.arr-eta-num{font-size:19px;font-weight:800;color:var(--i-2);font-variant-numeric:tabular-nums}.arr-eta-num.soon{color:var(--status-ontime)}.arr-eta-unit{font-size:10px;color:var(--text-4);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.stop-row-head{display:flex;align-items:center;gap:8px;margin-bottom:2px}.stop-row-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-weight:700;font-size:11px;line-height:1.2;min-width:28px;text-align:center}.stop-row-headsign{font-size:13px;color:var(--text-2)}.stop-rt-dot{margin-left:8px;color:#16a34a;font-size:10px;font-weight:600}.trip-time-live{display:block;font-size:11px;font-weight:600}.trip-time-live.late{color:var(--status-late)}.trip-time-live.early{color:var(--accent-soft)}.trip-time-live.ontime{color:var(--status-ontime)}.trip-stop.passed .trip-time-sched{color:#6b7280}.trip-marker{position:relative;display:flex;align-items:center;justify-content:center}.trip-marker-dot{width:10px;height:10px;border-radius:50%;background:var(--m-mute-bg);border:2px solid var(--m-card);z-index:1}.trip-stop.passed .trip-marker-dot{background:var(--m-mute-bg)}.trip-stop.upcoming .trip-marker-dot{background:var(--text-2)}.trip-stop.current .trip-marker-dot{width:14px;height:14px;background:var(--status-ontime-strong);box-shadow:0 0 0 4px #22c55e40}.trip-body{min-width:0;padding:4px 0 4px 8px}.trip-stop-name{font-size:13px;line-height:1.3;color:var(--text-2);min-width:0;overflow-wrap:anywhere}.trip-stop.passed .trip-stop-name{color:#6b7280}.trip-stop-platform{display:inline-block;margin-left:6px;padding:0 5px;border:1px solid var(--surface-6);border-radius:4px;font-size:10.5px;font-weight:600;line-height:16px;white-space:nowrap;color:var(--text-3);vertical-align:1px}.trip-stop.current .trip-stop-platform{color:var(--status-ontime);border-color:currentColor}.arr-platform{margin-left:0;flex:0 0 auto}.trip-stop.current .trip-stop-name{color:var(--status-ontime);font-weight:600}.trip-stop-delay{font-size:11px;margin-top:2px;font-weight:600}.trip-stop-delay.late{color:var(--status-late)}.trip-stop-delay.early{color:var(--accent-soft)}.trip-stop-delay.ontime{color:var(--status-ontime)}.trip-stop-delay.cancelled{color:var(--status-late)}.trip-stop-delay.inferred{opacity:.72;font-style:normal}.trip-stop-delay.skipped{color:var(--i-warn)}.trip-stop.cancelled .trip-stop-name{color:var(--status-late);text-decoration:line-through;text-decoration-color:#f8717180}.trip-stop.skipped .trip-stop-name{color:var(--i-warn)}.trip-stop.cancelled .trip-marker-dot{background:var(--status-late)}.trip-stop.skipped .trip-marker-dot{background:#fde047}.trip-pred-pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px dashed currentColor;opacity:.85;margin-left:6px;white-space:nowrap}.trip-pred-pill.late{color:var(--status-late)}.trip-pred-pill.early{color:var(--accent-soft)}.trip-pred-pill.ontime{color:var(--status-ontime)}.trip-pred-pill.low-conf{opacity:.6;color:var(--i-5e);border-style:dotted}.trip-pred-q{font-size:9px;vertical-align:super;margin-left:2px;opacity:.8}.stop-panel-hint{font-size:11px;color:var(--text-4);padding:6px 14px;background:var(--m-card);border-bottom:1px solid var(--m-line);font-style:italic}.arr-filter{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;border-bottom:1px solid var(--s-chip)}.arr-chip{flex:none;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--s-chip);color:var(--i-3c);border:1px solid var(--surface-6);cursor:pointer;font-size:12px;font-weight:700;line-height:1.5;font-variant-numeric:tabular-nums;white-space:nowrap;transition:background .12s var(--ease-out),color .12s var(--ease-out),border-color .12s var(--ease-out)}.arr-chip:hover{background:var(--m-line)}.arr-chip.on{color:var(--text-on-accent);border-color:transparent}.arr-chip-dot{width:8px;height:8px;border-radius:50%;flex:none}.arr-ptr{list-style:none;text-align:center;padding:8px;font-size:12px;color:var(--text-4)}.arr-chip.on .arr-chip-dot{display:none}.arr-passed-toggle{margin-top:2px}.arr-row.passed{padding-top:7px;padding-bottom:7px}.arr-row.passed .arr-badge{background:transparent;border:1.5px solid;color:var(--text-2)}.arr-row.passed .arr-dest{color:var(--text-3);font-weight:600}.arr-row.passed .arr-real{color:var(--text-2)}.arr-passed-tag{font-size:.7em;text-transform:uppercase;letter-spacing:.4px;color:var(--text-4)}.arr-ago{flex:none;font-size:12px;color:var(--text-4);white-space:nowrap}.arr-now{list-style:none;display:flex;align-items:center;gap:8px;margin:2px 18px;font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--accent)}.arr-now:before,.arr-now:after{content:"";height:1px;flex:1;background:var(--accent);opacity:.45}.arr-now:before{flex:0 0 10px}@media (max-width: 720px),(max-height: 500px){.app{grid-template-columns:1fr}.icon-rail{display:none}.settings-panel{position:fixed;top:0;right:0;bottom:0;left:0;width:auto;max-width:none;max-height:none;border:none;border-radius:0;z-index:var(--z-panel);overflow-y:hidden}.settings-panel>.sidebar-card{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.map-search{display:none}.sidebar-fab{display:block}.sidebar .settings{display:none}.sidebar{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-panel);transform:translateY(100%);transition:transform .22s var(--ease-out);border-right:none;border-top:1px solid var(--m-line);padding:56px 14px 24px;background:var(--o-drawer);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sidebar>.sidebar-card.section{display:block;min-height:0;flex:none}.op-scroll{overflow:visible;flex:none;margin-top:8px;padding-right:0}.app.sidebar-open .sidebar{transform:translateY(0)}.app.sidebar-open .sidebar-fab{left:auto;right:12px}.sidebar .sidebar-header .modal-close{display:none}.trip-panel,.stop-panel{top:auto!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;height:85dvh!important;max-height:none!important;border-radius:18px 18px 0 0!important;transform:translateY(0);transition:transform .32s cubic-bezier(.22,1,.36,1);will-change:transform;padding-bottom:env(safe-area-inset-bottom)}.trip-panel .panel-grabber,.trip-panel .trip-header,.stop-panel .stop-head{touch-action:none}.op-row{padding:8px 10px;font-size:13px}.op-logo{width:26px;height:26px}.section-actions button{padding:4px 10px;font-size:11px}.segmented-btn{padding:7px 11px;font-size:12px}.maplibregl-ctrl-top-right{margin-top:calc(40px + env(safe-area-inset-top));margin-right:calc(4px + env(safe-area-inset-right))}.sidebar-fab{top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left))}.app.sidebar-open .sidebar-fab{left:auto;right:calc(12px + env(safe-area-inset-right));z-index:calc(var(--z-panel) + 2)}.app.rt-status-panel-open .sidebar-fab,.app.settings-panel-open .sidebar-fab,.app.delay-panel-open .sidebar-fab,.app.sidebar-open .fab-rail,.app.panel-open .fab-rail{display:none}.fab-rail{right:calc(4px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom))}.app.sidebar-open .install-prompt,.app.panel-open .install-prompt{display:none}.map-credit{left:calc(8px + env(safe-area-inset-left));bottom:calc(6px + env(safe-area-inset-bottom))}.app.sidebar-open .map-credit,.app.panel-open .map-credit{display:none}.status-pill{top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));font-size:11px;padding:4px 10px;max-width:calc(100vw - 84px)}.trip-close{width:40px;height:40px;font-size:26px;top:6px;right:6px}.maplibregl-popup{max-width:calc(100vw - 24px)!important}.popup{min-width:0}.maplibregl-popup-close-button{width:32px;height:32px;font-size:22px;line-height:32px}.panel-grabber{display:flex;align-items:center;justify-content:center;width:100%;height:28px;padding:0;background:transparent;border:none;cursor:pointer;flex-shrink:0;touch-action:none}.panel-grabber-bar{width:40px;height:4px;border-radius:2px;background:var(--b-4)}.trip-panel.sheet-min,.stop-panel.sheet-min{box-shadow:0 -6px 20px #00000059}.sheet-min .panel-grabber{height:34px}.sheet-min .panel-grabber-bar{width:52px;height:5px;background:var(--text-4)}.operator-grid{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:12px}.op-chip{aspect-ratio:auto;flex-direction:column;gap:7px;padding:13px 4px 10px;border-width:2px;border-radius:16px;border-color:#ffffff0f;background:linear-gradient(165deg,#ffffff0b,#ffffff03)}.op-chip.active{border-color:color-mix(in srgb,var(--ring, #fff) 32%,transparent);box-shadow:0 4px 12px -8px #060a1480}.op-chip-accent{display:none}.op-chip-logo{width:44px;height:44px;flex:none;border-radius:13px}.op-chip .op-logo{box-shadow:inset 0 1px #ffffff4d}.op-chip-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%;font-size:10px;line-height:1.2;min-height:2.4em;text-align:center;color:var(--i-5c);overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:anywhere}.op-chip-name .marquee-inner{display:inline;white-space:normal;animation:none;transform:none}.op-chip.active .op-chip-name{color:var(--i-2d)}.sidebar{padding:0 0 calc(24px + env(safe-area-inset-bottom));background:var(--surface-0);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.sidebar-header{padding:calc(22px + env(safe-area-inset-top)) 16px 18px;margin-bottom:0;background:radial-gradient(circle at 15% -20%,rgba(59,130,246,.42),transparent 58%),linear-gradient(180deg,var(--m-well3),var(--surface-0) 90%);border-bottom:1px solid rgba(255,255,255,.06)}.sidebar-header h1 .sidebar-tagline{font-size:11.5px;font-weight:500}.sidebar-header h1{font-size:19px;font-weight:800;color:var(--text-1)}.sidebar-search-mobile-only{padding:0;background:none;border:none;margin:0 14px}.sidebar-search-mobile-only .search-bar input{background:var(--s-input);border-color:var(--surface-6)}.sidebar-search-mobile-only .search-bar input{height:48px;font-size:16px;font-weight:500;border-width:1.5px;border-color:var(--accent-dim);border-radius:14px;box-shadow:0 2px 10px #00000047,0 0 0 3px #3b82f61a}.sidebar-search-mobile-only .search-bar input::placeholder{color:var(--text-3);font-weight:500}.sidebar-search-mobile-only .search-bar{position:relative}.sidebar-search-mobile-only .search-bar:before{content:"";position:absolute;left:15px;top:24px;transform:translateY(-50%);width:18px;height:18px;pointer-events:none;z-index:1;background:no-repeat center/18px 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b95a8' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6'/%3E%3C/svg%3E")}.sidebar-search-mobile-only .search-bar input{padding-left:42px}.sidebar-search-mobile-only .search-bar input:focus{border-color:var(--accent);box-shadow:0 2px 12px #00000052,0 0 0 4px #3b82f633}.sidebar-search-mobile-only .search-results{max-width:100%;max-height:50dvh;overflow-x:hidden}.search-row-text strong,.search-row-sub{min-width:0}.sidebar>.sidebar-card,.sidebar>.settings-strip-mobile-only,.sidebar>.sidebar-search-mobile-only,.sidebar>.sidebar-plan-btn-mobile-only,.sidebar>.sidebar-user-mobile-only{margin:0 14px}.sidebar{display:flex;flex-direction:column}.sidebar>.sidebar-search-mobile-only{order:1}.sidebar>.sidebar-actions-mobile-only{order:2}.sidebar>.sidebar-user-mobile-only{order:3}.sidebar>.settings-strip-mobile-only{order:4}.sidebar>.sidebar-card{order:5}.sidebar>.sidebar-user-mobile-only{margin:0 14px;background:var(--m-card2);border:1px solid var(--m-line);border-radius:14px;padding:4px 10px;display:flex;align-items:center;gap:8px}.sidebar-user-mobile-only>.sidebar-user{flex:1 1 auto;width:auto;min-width:0;margin-top:0;border-top:none}.sidebar-gear{flex:0 0 auto;width:38px;height:38px;display:grid;place-items:center;background:none;border:1px solid var(--m-line);border-radius:11px;color:var(--i-3);cursor:pointer;transition:background .12s var(--ease-out),color .12s var(--ease-out)}.sidebar-gear:hover{background:var(--o-toggle-h);color:var(--i-1b)}.sidebar-gear.on{background:color-mix(in srgb,var(--p-focus-b) 26%,transparent);border-color:var(--p-focus-b);color:var(--i-1b)}.sidebar>.settings-strip-mobile-only{margin:0 14px;background:var(--m-card2);border:1px solid var(--m-line);border-radius:0 0 14px 14px;border-top:none;padding:0 10px 10px}.sidebar>.settings-strip-mobile-only:not(.open){padding:0;border:none;height:0;overflow:hidden}.sidebar>.sidebar-user-mobile-only:has(+.settings-strip-mobile-only.open){border-radius:14px 14px 0 0;border-bottom:none;margin-bottom:-14px;padding-bottom:0}.sidebar>.settings-strip-mobile-only.open>.settings-strip{border-top:1px solid var(--surface-4);padding-top:10px}.sidebar-user-mobile-only .sidebar-user{margin-top:0;border-top:none;padding:8px 0}.sidebar>.sidebar-actions-mobile-only{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:10px;margin:0 14px}.sidebar-plan-btn-mobile-only{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:84px;padding:14px 10px;border-radius:14px;border:none;background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:var(--text-on-accent);font-size:13.5px;font-weight:700;line-height:1.25;text-align:center;box-shadow:var(--shadow-3);cursor:pointer}.sidebar-actions-mobile-only>.rt-status-tile{margin:0;min-height:84px;display:flex;align-items:center;justify-content:center;padding:14px 10px;border-radius:14px;background:var(--m-card2);border:1px solid var(--m-line);color:var(--text-2);font:inherit;font-size:13.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.sidebar-actions-mobile-only>.rt-status-tile .icon-label{flex-direction:column;gap:7px;text-align:center;line-height:1.25}.sidebar-actions-mobile-only>.rt-status-tile:active{background:var(--m-hover2)}.section-label{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#64708a;margin:0 0 10px 2px}.settings-disclosure{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;cursor:pointer;font:inherit;padding:8px 0}.settings-disclosure .section-label{margin:0;flex:none}.settings-summary{flex:1;min-width:0;text-align:right;font-size:11.5px;font-weight:600;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-caret{flex:none;color:var(--text-4);font-size:11px}.settings-disclosure:hover .settings-summary,.settings-disclosure:hover .settings-caret{color:var(--text-2)}.sidebar>.settings-strip-mobile-only:not(.open){padding-bottom:4px}.settings-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:2px 0 6px}.settings-strip::-webkit-scrollbar{display:none}.setting-chip{display:flex;align-items:center;gap:8px;min-width:0;text-align:left;padding:9px 10px;border-radius:12px;background:linear-gradient(165deg,#ffffff0e,#ffffff04);border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 24px -14px #060a1499;font-size:12px;font-weight:600;color:var(--i-3b);cursor:pointer;white-space:nowrap}.setting-chip.on,.setting-chip.open{color:var(--accent-soft);border-color:#3b82f659;background:linear-gradient(165deg,#3b82f62e,#3b82f60a)}.setting-chip-text{display:flex;flex-direction:column;gap:1px;min-width:0}.setting-chip-key{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-4);line-height:1.1}.setting-chip-val{font-size:12.5px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setting-chip.on .setting-chip-key,.setting-chip.open .setting-chip-key{color:inherit;opacity:.75}.setting-chip-delay{grid-column:1 / -1;min-width:0;max-width:none}.setting-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.setting-popover{margin-top:8px;background:var(--m-card2);border:1px solid rgba(255,255,255,.1);border-radius:13px;padding:8px;box-shadow:0 16px 36px -12px #0009}.setting-popover .lang-switcher{display:flex;gap:4px}input[type=text],input[type=search],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],input:not([type]),textarea,select,body :is(.search-bar input,.search-opsheet-find,.form-field input,.account-input,.fav-trip-rename-input){font-size:16px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.modal{background:var(--m-card4);border:1px solid var(--surface-7);border-radius:18px;width:340px;max-width:calc(100vw - 32px);padding:24px;display:flex;flex-direction:column;gap:20px;box-shadow:0 24px 64px #00000080}.modal-tabs{display:flex;gap:4px;background:var(--surface-1);border-radius:8px;padding:4px}.modal-tab{flex:1;padding:7px;border:none;border-radius:6px;background:transparent;color:var(--text-4);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.modal-tab.active{background:var(--surface-7);color:var(--text-2)}.modal-form{display:flex;flex-direction:column;gap:14px}.form-field{display:flex;flex-direction:column;gap:5px}.form-field label{font-size:12px;color:var(--text-3);font-weight:500}.form-field input{background:var(--surface-1);border:1px solid var(--surface-7);border-radius:7px;color:var(--text-2);font-size:14px;padding:9px 11px;outline:none;transition:border-color .15s}.form-field input:focus{border-color:var(--accent)}.form-error{font-size:12px;color:var(--status-late);padding:8px 10px;background:#f8717114;border-radius:6px}.btn-primary{background:var(--accent);color:var(--text-on-accent);border:none;border-radius:7px;padding:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-primary:disabled{opacity:.5;cursor:default}.btn-primary:not(:disabled):hover{opacity:.88}.btn-ghost{background:none;color:var(--text-2);border:1px solid var(--surface-6);border-radius:7px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.btn-ghost:hover{border-color:var(--accent-dim);color:var(--text-1)}.btn-ghost:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar-user{margin-top:auto;padding:12px 8px 8px;border-top:1px solid var(--surface-7)}.btn-user-signin{width:100%;padding:9px;background:transparent;border:1px solid var(--surface-7);border-radius:7px;color:var(--text-3);font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}.btn-user-signin:hover{border-color:var(--accent);color:var(--text-2)}.sidebar-user--in{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:1px solid transparent;border-radius:8px;padding:8px;cursor:pointer;text-align:left;transition:background .12s,border-color .12s}.sidebar-user--in:hover{background:var(--m-sel4);border-color:var(--surface-7)}.user-chevron{margin-left:auto;color:var(--text-5);font-size:18px;line-height:1}.sidebar-user--guest{display:flex;flex-direction:column;gap:6px}.btn-user-favs{width:100%;padding:9px;background:transparent;border:1px solid var(--surface-7);border-radius:7px;color:var(--text-2);font-size:13px;cursor:pointer;transition:border-color .15s,background .15s}.btn-user-favs:hover{border-color:var(--i-star);background:var(--m-sel4)}.profile-guest{display:flex;align-items:center;gap:12px;padding:11px 12px;background:var(--surface-3);border:1px solid var(--surface-5);border-radius:9px;margin-bottom:14px}.profile-guest-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.profile-guest-text strong{font-size:13px;color:var(--text-1)}.profile-guest-text span{font-size:11.5px;color:var(--text-4);line-height:1.4}.profile-guest .btn-primary{flex-shrink:0;padding:8px 14px}.user-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--text-on-accent);flex-shrink:0}.user-label{flex:1;font-size:13px;color:var(--text-2)}.btn-user-logout{background:transparent;border:none;color:var(--text-4);cursor:pointer;font-size:16px;padding:2px 4px;line-height:1;transition:color .15s}.btn-user-logout:hover{color:var(--status-late)}.btn-star{background:transparent;border:none;font-size:18px;line-height:1;color:var(--t-icon);cursor:pointer;padding:2px 4px;flex-shrink:0;transition:color .15s,transform .1s}.btn-star:hover{color:var(--i-star);transform:scale(1.2)}.btn-star.starred{color:var(--i-star)}.btn-star.starred .icon{fill:currentColor}.panel-locate{background:transparent;border:none;font-size:18px;line-height:1;color:var(--t-icon);cursor:pointer;padding:2px 4px;flex-shrink:0;transition:color .15s,transform .1s}.panel-locate:hover{color:var(--status-early);transform:scale(1.2)}.panel-follow{background:transparent;border:none;font-size:18px;line-height:1;color:var(--t-icon);cursor:pointer;padding:2px 4px;flex-shrink:0;transition:color .15s,transform .1s}.panel-follow:hover{color:var(--status-early);transform:scale(1.2)}.panel-follow.on{color:var(--status-early)}.panel-follow.on .icon{fill:currentColor}@keyframes follow-pulse{0%,to{opacity:1}50%{opacity:.4}}.panel-follow.on{animation:follow-pulse 1.6s ease-in-out infinite}.btn-share{background:transparent;border:none;font-size:15px;line-height:1;color:#6b7686;cursor:pointer;padding:2px 4px;flex-shrink:0;transition:color .15s,transform .1s}.btn-share:hover{color:var(--accent-faint);transform:scale(1.15)}.btn-share.copied{color:var(--i-ok)}.section-favorites{margin-top:4px}.fav-empty-inline{font-size:12px;color:var(--text-4);padding:6px 8px}.fav-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.fav-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .12s}.fav-item:hover{background:var(--m-sel4)}.fav-item-logo{width:26px;height:26px;border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.fav-item-logo img{width:100%;height:100%;object-fit:contain;background:#fff}.fav-item-badge{flex-shrink:0;font-size:11px;font-weight:700;color:var(--text-on-accent);padding:2px 6px;border-radius:5px;min-width:22px;text-align:center}.fav-text{flex:1;display:flex;flex-direction:column;min-width:0}.fav-label{font-size:13px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-sublabel{font-size:11px;color:var(--text-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-remove{background:transparent;border:none;color:var(--t-icon);cursor:pointer;font-size:16px;line-height:1;padding:0 2px;flex-shrink:0;transition:color .12s}.fav-remove:hover{color:var(--status-late)}.fav-more{font-size:12px;color:#6b8cce;padding:5px 8px;cursor:pointer;border-radius:6px}.fav-more:hover{background:var(--m-sel4)}.modal--wide{width:min(520px,94vw);max-height:82dvh;overflow-y:auto}@media (max-width: 720px),(max-height: 500px){.profile-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);width:100%;max-width:none;max-height:none;border-radius:0;border:none;padding:0 16px calc(24px + env(safe-area-inset-bottom))}.modal-backdrop:has(.profile-modal){background:var(--surface-1)}.profile-modal .modal-head{position:sticky;top:0;z-index:1;margin:0 -16px 12px;padding:calc(20px + env(safe-area-inset-top)) 16px 12px;background:var(--m-card4)}}@media (max-width: 720px),(max-height: 500px){.tp-detail-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);width:100%;max-width:none;max-height:none;border-radius:0;border:none;padding:0 16px calc(24px + env(safe-area-inset-bottom))}.modal-backdrop:has(.tp-detail-modal){background:var(--surface-1)}.tp-detail-dock-btn{display:none}.tp-detail-modal .modal-head{position:sticky;top:0;z-index:1;margin:0 -16px 12px;padding:calc(20px + env(safe-area-inset-top)) 16px 12px;background:var(--m-card4)}}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-title{font-size:17px;margin:0;color:var(--text-1);min-width:0}.modal-close{background:transparent;border:none;color:var(--text-4);font-size:22px;line-height:1;cursor:pointer;padding:0 4px;transition:color .12s}.modal-close:hover{color:var(--text-2)}.fav-empty{text-align:center;padding:32px 16px;color:var(--text-4)}.fav-empty-icon{font-size:38px;color:var(--i-star);opacity:.5;margin-bottom:8px}.fav-empty p{margin:4px 0}.fav-empty-hint{font-size:12px;color:var(--text-5)}.fav-group{margin-bottom:12px}.fav-group-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-4);margin-bottom:4px;display:flex;align-items:center;gap:5px}.fav-group--notify{background:var(--m-card2);border:1px solid var(--accent-dim);border-radius:12px;padding:10px 10px 8px}.fav-group--notify .fav-group-title{color:var(--accent)}.fav-group-hint{font-size:11px;line-height:1.35;color:var(--text-4);margin:-1px 0 7px}.fav-section-head{display:flex;align-items:center;gap:6px;margin:16px 0 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}.fav-section-hint{font-weight:500;text-transform:none;letter-spacing:0;color:var(--text-4);min-width:0}.fav-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.fav-rows--grid{display:grid;grid-template-columns:1fr 1fr;gap:1px 8px}.fav-rows--grid>.fav-row{min-width:0}@media (max-width: 460px){.fav-rows--grid{grid-template-columns:1fr}}.fav-row{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:7px;background:transparent;border:none;cursor:pointer;transition:background .12s}.fav-row:hover{background:var(--m-hover)}.fav-row--static{cursor:default}.fav-row--static:hover{background:transparent}.fav-main{flex:1;min-width:0;font-size:13px;color:var(--text-2)}.fav-deps{display:flex;align-items:center;gap:4px;flex-shrink:0}.fav-row-logo{width:28px;height:28px;border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.fav-row-logo img{width:100%;height:100%;object-fit:contain;background:#fff}.fav-row-badge{flex-shrink:0;font-size:11px;font-weight:700;color:var(--text-on-accent);padding:2px 7px;border-radius:5px;min-width:22px;text-align:center}.fav-row-text{flex:1;min-width:0}.fav-row-primary{font-size:13px;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-code{font-size:10px;color:var(--text-5);margin-left:6px;font-weight:400}.dep-time{flex-shrink:0;font-size:12px;font-weight:600;color:var(--i-4b);font-variant-numeric:tabular-nums}.dep-time.live{color:var(--i-ok)}.notif-section{background:var(--surface-3);border:1px solid var(--surface-5);border-radius:14px;padding:14px;margin-bottom:14px}.notif-head{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-4);margin-bottom:10px}.pf-collapse{padding:0;margin-bottom:0}.pf-collapse+.pf-collapse{margin-top:-10px}.pf-collapse-head{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:10px;padding:13px 14px;border-radius:14px}.pf-collapse-head::-webkit-details-marker{display:none}.pf-collapse-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pf-collapse-head .notif-head{margin:0;flex:none}.pf-collapse-sum{flex:1 1 auto;min-width:0;font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.pf-collapse-chev{flex:none;margin-left:auto;width:7px;height:7px;border-right:2px solid var(--text-4);border-bottom:2px solid var(--text-4);transform:rotate(45deg) translate(-2px,-2px);transition:transform .15s var(--ease-out)}.pf-collapse[open]>.pf-collapse-head .pf-collapse-chev{transform:rotate(225deg) translate(-2px,-2px)}.pf-collapse-sum+.pf-collapse-chev{margin-left:0}.pf-collapse-body{padding:0 14px 14px}.notif-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.btn-test{background:transparent;border:1px solid var(--surface-7);border-radius:7px;color:var(--text-3);font-size:12px;padding:5px 11px;cursor:pointer;flex-shrink:0;transition:border-color .12s,color .12s}.btn-test:hover:not(:disabled){border-color:var(--accent);color:var(--text-2)}.btn-test:disabled{opacity:.6;cursor:default}.toggle{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{position:absolute;opacity:0;width:0;height:0}.toggle-track{position:relative;width:38px;height:22px;border-radius:11px;background:var(--surface-7);flex-shrink:0;transition:background .18s}.toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .18s;box-shadow:0 1px 2px #0006}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track .toggle-thumb{transform:translate(16px)}.toggle input:disabled+.toggle-track{opacity:.45}.toggle-label{font-size:13px;color:var(--text-2)}.notif-hint{font-size:11px;color:var(--text-4);margin-top:10px;line-height:1.45}.places-rows{display:flex;flex-direction:column;gap:6px}.places-row{display:flex;align-items:center;gap:10px;padding:4px 0}.places-icon{font-size:16px;flex-shrink:0}.places-name{flex:1;font-size:13px;color:var(--text-2)}.places-set-map{background:transparent;border:1px solid var(--surface-7);border-radius:10px;color:var(--text-3);font-size:11px;font-weight:600;padding:5px 10px;cursor:pointer;flex-shrink:0;transition:border-color .12s,color .12s}.places-set-map:hover{border-color:var(--accent);color:var(--text-2)}.places-show-map{background:transparent;border:1px solid var(--surface-7);border-radius:10px;color:var(--text-3);cursor:pointer;flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;transition:border-color .12s,color .12s}.places-show-map:hover{border-color:var(--accent);color:var(--text-2)}.places-show-map:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bell-inline{font-size:12px}.notif-thresholds{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--surface-5)}.threshold-row{display:flex;align-items:center;gap:10px;font-size:12.5px}.threshold-label{flex:1;color:var(--i-4b)}.threshold-unit{color:var(--text-4);width:26px}.stepper{display:inline-flex;align-items:center;background:var(--s-input);border:1px solid var(--surface-7);border-radius:10px;overflow:hidden;flex-shrink:0}.stepper button{width:28px;height:28px;background:transparent;border:none;color:var(--i-4b);font-size:16px;line-height:1;cursor:pointer;transition:background .12s,color .12s}.stepper button:hover:not(:disabled){background:var(--p-step-h);color:var(--text-on-accent)}.stepper button:disabled{opacity:.3;cursor:default}.stepper-val{min-width:30px;text-align:center;font-size:13px;font-weight:600;color:var(--text-1);font-variant-numeric:tabular-nums;border-left:1px solid var(--surface-7);border-right:1px solid var(--surface-7);padding:4px 0}.modal-link{background:none;border:none;color:#6b8cce;font-size:12.5px;cursor:pointer;padding:2px;align-self:center}.modal-link:hover{color:var(--i-link6);text-decoration:underline}.form-note{font-size:13px;color:var(--i-4b);line-height:1.5}.auth-verify-hint{margin:-4px 0 0;font-size:12px;color:var(--text-4);line-height:1.5}.account-row{display:flex;gap:8px;align-items:center}.account-input{flex:1;min-width:0;background:var(--s-input);border:1px solid var(--surface-7);border-radius:7px;color:var(--text-1);font-size:13px;padding:7px 9px;outline:none}.account-input:focus{border-color:var(--accent)}.account-input,.btn-test{border-radius:10px}.account-link{background:none;border:none;color:#6b8cce;font-size:12.5px;cursor:pointer;padding:6px 0 0;display:inline-block}.account-link:hover{color:var(--i-link6);text-decoration:underline}.account-pw{display:flex;flex-direction:column;gap:6px;margin-top:8px}.account-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}.account-ok{font-size:12px;color:var(--i-ok);margin-top:6px}.account-danger{margin-top:14px;padding-top:12px;border-top:1px solid var(--surface-5)}.account-danger-q{display:block;font-size:12px;color:var(--i-bad6);margin-bottom:8px}.account-delete-link{background:none;border:none;color:var(--i-bad6);font-size:12.5px;cursor:pointer;padding:0;text-decoration:underline;text-decoration-color:#f0a78c66}.account-delete-link:hover{color:var(--status-late);text-decoration-color:var(--status-late)}.account-delete{background:transparent;border:1px solid var(--b-del2);border-radius:10px;color:var(--status-late);font-size:12px;font-weight:600;padding:6px 12px;cursor:pointer;transition:background .12s,border-color .12s}.account-delete:hover{border-color:var(--status-late)}.account-delete.confirm{background:var(--p-danger);color:var(--text-on-accent);border-color:var(--p-danger)}.account-delete.confirm:hover{background:var(--s-del-h)}.arr-bell{background:transparent;border:none;cursor:pointer;font-size:14px;line-height:1;padding:2px 5px;flex-shrink:0;color:var(--text-4);transition:color .12s,transform .08s}.arr-bell:hover{color:var(--text-2);transform:scale(1.12)}.arr-bell.on{color:var(--accent)}.arr-bell.on .icon{fill:currentColor}.arr-bell.pending,.fav-bell.pending{color:var(--accent);opacity:.55}.trip-stop-bell{align-self:center;justify-self:end}.modal--admin{width:min(680px,96vw);max-height:88dvh;overflow-y:auto}.btn-admin{background:var(--a-btn);border:1px solid var(--p-misc3);border-radius:10px;color:var(--accent-faint);font-size:12px;font-weight:600;padding:7px 12px;cursor:pointer;flex-shrink:0;transition:background .12s}.btn-admin:hover{background:var(--a-btn-h)}.planner-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;background:var(--surface-1)}.planner-page-map{flex:1;position:relative;min-width:0}.planner-page-picking .planner-page-map #map,.planner-page-picking .planner-page-map .maplibregl-canvas,.map-picking #map,.map-picking .maplibregl-canvas{cursor:crosshair}.planner-page-hint,.map-pick-hint{position:absolute;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:6;background:var(--o-hint);border:1px solid var(--accent-dim);color:var(--accent-faint);font-size:13px;padding:7px 14px;border-radius:999px;box-shadow:0 6px 20px #0006;pointer-events:none}@media (max-width: 720px),(max-height: 500px){.planner-page-hint,.map-pick-hint{top:calc(44px + env(safe-area-inset-top));max-width:calc(100vw - 32px);text-align:center;font-size:12px;padding:6px 12px}}.planner-page-panel{width:360px;flex:none;position:relative;overflow-y:auto;border-right:1px solid var(--surface-4);background:var(--surface-2);display:flex;flex-direction:column;padding:14px 12px}.planner-page-panel .tp-panel{position:static;width:auto;max-width:none;max-height:none;overflow-y:visible;border:none;border-radius:0;box-shadow:none;padding:0}.planner-page-grabber{display:none}@media (max-width: 720px),(max-height: 500px){.planner-page{flex-direction:column}.planner-page-panel{position:absolute;left:0;right:0;bottom:0;z-index:4;width:auto;height:70dvh;max-height:none;border-right:none;border-top:1px solid var(--surface-4);border-radius:18px 18px 0 0;transform:translateY(0);transition:transform .32s cubic-bezier(.22,1,.36,1);will-change:transform;padding-bottom:env(safe-area-inset-bottom)}.planner-page-grabber{display:flex;align-items:center;justify-content:center;width:100%;height:28px;flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;touch-action:none}.planner-page-grabber-bar{width:40px;height:4px;border-radius:2px;background:var(--b-4)}.tp-wp-card{padding:4px 34px 4px 6px}.tp-swap{width:26px;height:26px;right:4px;border-radius:9px}.tp-wp-card .tp-place-name{white-space:normal;text-overflow:clip;line-height:1.25;font-size:13px;overflow:hidden;min-width:0}.tp-place-actions{gap:0}.tp-place-actions .tp-icon-btn{width:28px;height:28px}.planner-page-panel .dtp-pop{position:fixed;left:12px;right:12px;top:auto;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;max-width:none;max-height:62dvh;overflow-y:auto;z-index:var(--z-modal)}.planner-page-map .fab-rail{bottom:calc(78px + env(safe-area-inset-bottom))}.planner-page-panel-expanded .fab-rail{display:none}}.admin-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:var(--surface-1);color:var(--text-1);overflow-y:auto}.admin-page--gate{display:flex;align-items:center;justify-content:center;color:var(--text-4);font-size:14px}.admin-back{background:var(--surface-3);border:1px solid var(--surface-5);border-radius:8px;color:var(--accent-faint);font-size:13px;padding:6px 12px;cursor:pointer;flex-shrink:0}.admin-back:hover{background:var(--a-back-h)}.admin-tab{background:var(--surface-3);border:1px solid var(--surface-5);border-radius:8px;color:var(--i-5);font-size:13px;padding:6px 12px;cursor:pointer}.admin-tab.on{background:var(--m-sel3);color:var(--accent-faint);border-color:var(--m-line-acc)}.dh-tick-ok{background:var(--status-ontime-strong)}.dh-tick-warn2{background:var(--status-warn-strong)}.dh-tick-warn{background:var(--status-late-strong)}.dh-tick-none{background:var(--a-tick)}.ff-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-panel);background:#0000008c;display:flex;align-items:center;justify-content:center;padding:16px}.ff-modal-card{position:relative;background:var(--surface-2);border:1px solid var(--surface-4);border-radius:12px;padding:12px 14px 16px;width:420px;max-width:100%;max-height:80dvh;overflow-y:auto}.fav-bell{background:transparent;border:none;cursor:pointer;font-size:13px;line-height:1;padding:2px 3px;flex-shrink:0;border-radius:5px;filter:grayscale(1) opacity(.4);transition:filter .12s,background .12s}.fav-bell{color:var(--text-4)}.fav-bell:hover{color:var(--text-2);background:var(--surface-5)}.fav-bell.on{color:var(--accent)}.fav-bell.on .icon{fill:currentColor}.fav-bell.open{background:var(--surface-5)}.notif-modal .modal-title{font-size:16px}.notif-modal .fav-notif-section:not(:first-child){margin-top:4px}.notif-modal-head{gap:10px}.notif-modal-logo{width:52px;height:32px;border-radius:8px;flex-shrink:0;padding:4px;display:flex;align-items:center;justify-content:center;overflow:hidden;box-sizing:border-box;background:#eef1f6}.notif-modal-logo .op-initials{color:var(--m-ink2);font-weight:700}.notif-modal-logo img{width:100%;height:100%;object-fit:contain;background:#fff}.notif-modal-titles{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.notif-modal-titles .modal-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-modal-operator{font-size:11px;color:var(--text-4);text-transform:uppercase;font-weight:600;letter-spacing:.03em}.fav-notif-section{display:flex;flex-direction:column;gap:8px}.fav-notif-title{font-size:11px;color:var(--text-4);text-transform:uppercase;font-weight:700;letter-spacing:.05em}.fav-notif-chips{display:flex;flex-wrap:wrap;gap:8px}.fav-notif-chip{display:inline-flex;align-items:center;gap:6px;background:var(--m-ink2);border:1px solid var(--b-1);border-radius:999px;color:var(--i-5);font-size:12.5px;font-weight:600;padding:8px 14px;min-height:36px;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.fav-notif-chip-icon{font-size:13px;line-height:1}.fav-notif-chip.on{background:#3b82f629;border-color:var(--accent);color:var(--accent-faint)}.fav-notif-chip:hover{border-color:var(--accent-dim)}.fav-notif-section--window{padding-top:16px;border-top:1px solid var(--surface-4)}.fav-notif-window{position:relative;display:flex;flex-direction:column;gap:10px;background:var(--m-ink2);border:1px solid var(--surface-5);border-radius:10px;padding:12px}.fav-notif-window-remove{position:absolute;top:6px;right:6px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:6px;color:var(--text-5);font-size:15px;cursor:pointer}.fav-notif-window-remove:hover{color:var(--status-late);background:#f871711a}.fav-notif-window-times{display:flex;flex-direction:column;gap:8px;padding-right:24px}.fav-notif-window-time{display:flex;flex-direction:column;gap:3px}.fav-notif-window-time-label{font-size:10px;font-weight:700;color:var(--text-5);text-transform:uppercase;letter-spacing:.04em}.time-chips-value{font-size:18px;font-weight:700;color:var(--text-1);font-variant-numeric:tabular-nums;line-height:1.2}.time-chips-scroller{display:flex;align-items:center;gap:6px}.time-chips-row{flex:1;min-width:0;display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 0 6px;-ms-overflow-style:none;scrollbar-width:none}.time-chips-row::-webkit-scrollbar{display:none}.time-chip{flex-shrink:0;scroll-snap-align:start;background:var(--surface-2);border:1px solid var(--b-1);border-radius:999px;color:var(--i-5);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;padding:6px 12px;min-height:32px;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.time-chip.on{background:#3b82f633;border-color:var(--accent);color:var(--accent-faint)}.time-chip:hover{border-color:var(--accent-dim)}.time-chips-arrow{flex-shrink:0;display:none;width:24px;height:24px;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--b-1);border-radius:50%;color:var(--i-5);font-size:15px;line-height:1;cursor:pointer;margin-bottom:6px}.time-chips-arrow:hover{color:var(--text-1);border-color:var(--accent-dim)}@media (hover: hover) and (pointer: fine){.time-chips-arrow{display:flex}}.fav-notif-window-days{display:flex;gap:5px}.fav-notif-day{flex:1;background:var(--surface-2);border:1px solid var(--b-1);border-radius:7px;color:var(--text-4);font-size:11px;font-weight:700;padding:7px 0;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.fav-notif-day.on{background:#3b82f62e;border-color:var(--accent);color:var(--accent-faint)}.fav-notif-day:hover{border-color:var(--accent-dim)}.fav-notif-day.on:disabled{opacity:.7;cursor:not-allowed}.fav-notif-day.on:disabled:hover{border-color:var(--accent)}.fav-notif-add-window{align-self:flex-start;background:none;border:none;padding:4px 0 0;color:var(--i-link3);font-size:12.5px;font-weight:600;cursor:pointer}.fav-notif-add-window:hover{color:var(--i-link4)}.fav-notif-remove{align-self:flex-start;background:none;border:none;padding:0;margin-top:4px;color:var(--text-4);font-size:12px;font-weight:600;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}.fav-notif-remove:hover{color:var(--status-late)}.fav-row-secondary{font-size:11px;color:var(--text-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-row-remove{background:transparent;border:none;color:var(--text-5);cursor:pointer;font-size:15px;line-height:1;padding:0 3px;flex-shrink:0;border-radius:5px;opacity:0;transition:color .12s,background .12s,opacity .12s}.fav-row:hover .fav-row-remove,.fav-row:focus-within .fav-row-remove{opacity:1}.fav-row-remove:hover{color:var(--status-late);background:#f871711a}@media (hover: none){.fav-row-remove{opacity:1}}.fav-row--trip{cursor:default;align-items:flex-start}.fav-row--trip:hover{background:transparent}.fav-trip-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding-top:3px}.fav-trip-legs{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.fav-trip-leg{display:flex;align-items:center;gap:4px}.fav-trip-leg .fav-row-logo{width:18px;height:18px;border-radius:4px}.fav-trip-leg-arrow{color:var(--text-5);font-size:11px;margin-right:2px}.fav-trip-leg-badge{font-size:10px}.fav-trip-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;padding-top:3px}.fav-trip-open{background:transparent;border:1px solid var(--surface-7);border-radius:7px;color:var(--text-3);font-size:12px;padding:4px 8px;cursor:pointer;transition:border-color .12s,color .12s}.fav-trip-open:hover{border-color:var(--accent);color:var(--text-2)}.fav-trip-highlight{background:transparent;border:1px solid var(--surface-7);border-radius:7px;color:var(--text-3);font-size:14px;padding:4px 8px;cursor:pointer;flex-shrink:0;transition:border-color .12s,color .12s,background .12s}.fav-trip-highlight:hover{border-color:#5b8def;color:var(--text-2)}.fav-trip-highlight.on{background:var(--accent-dim);border-color:#5b8def;color:var(--text-on-accent)}.fav-trip-rename{background:transparent;border:1px solid var(--surface-7);border-radius:7px;color:var(--text-3);font-size:12px;padding:4px 8px;cursor:pointer;transition:border-color .12s,color .12s}.fav-trip-rename:hover{border-color:var(--accent);color:var(--text-2)}.fav-trip-rename-input{background:var(--surface-3);border:1px solid var(--accent);border-radius:6px;color:var(--i-2c);font-size:13px;font-weight:600;padding:3px 8px;width:100%;box-sizing:border-box}.profile-links{display:flex;flex-direction:column;background:var(--surface-3);border:1px solid var(--surface-5);border-radius:14px;overflow:hidden;margin-bottom:12px}.profile-link{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px 14px;background:none;border:none;cursor:pointer;font:inherit;font-size:13.5px;font-weight:600;color:var(--text-1);text-align:left;transition:background .12s var(--ease-out)}.profile-link+.profile-link{border-top:1px solid var(--surface-4)}.profile-link:hover{background:var(--m-card5)}.profile-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.profile-link-chev{flex:none;color:var(--text-4);font-size:15px;line-height:1}.profile-link:hover .profile-link-chev{color:var(--text-2)}.profile-card{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"avatar id" "avatar actions";align-items:center;column-gap:12px;row-gap:10px;padding:14px;background:linear-gradient(155deg,var(--m-sel),var(--surface-3));border:1px solid var(--surface-5);border-radius:16px;margin-bottom:12px}.profile-avatar{grid-area:avatar;align-self:start}.profile-actions{grid-area:actions;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.profile-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-strong));display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:var(--text-on-accent);flex-shrink:0;box-shadow:var(--shadow-1)}.profile-id{grid-area:id;min-width:0}.profile-name{font-size:15.5px;font-weight:700;color:var(--i-1b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-email{font-size:12px;color:#8b95a3;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-logout{background:transparent;border:1px solid var(--surface-7);border-radius:10px;color:var(--text-3);font-size:12px;font-weight:600;padding:7px 12px;cursor:pointer;flex-shrink:0;transition:border-color .12s,color .12s,background .12s}.btn-logout:hover{border-color:var(--status-late);color:var(--status-late);background:#f8717114}.fav-live{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.fav-live-dim{font-size:10px;color:var(--text-5);font-style:italic}.dep-chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--i-4b);background:var(--s-input);border:1px solid var(--surface-5);border-radius:5px;padding:1px 6px}.dep-chip b{font-size:10px;font-weight:700;color:var(--text-on-accent);padding:1px 4px;border-radius:3px}.dep-chip.live{border-color:#2e7d4633}.dep-chip.live:after{content:"";width:5px;height:5px;border-radius:50%;background:#34d399}.corr-hint{font-size:12px;color:#8a97a8;margin:0}.corr-pin{display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 2px 6px #00000080;font-weight:700;font-size:11px;color:var(--text-on-accent)}.corr-pin-stop{width:22px;height:22px;border-radius:50%;background:var(--accent);cursor:grab}.corr-pin-stop:active{cursor:grabbing}.corr-pin-wp{width:18px;height:18px;border-radius:50%;background:var(--status-warn-strong)}.corr-pin-from{width:22px;height:22px;border-radius:50%;background:var(--status-ontime-strong)}.corr-pin-to{width:22px;height:22px;border-radius:50%;background:var(--status-late-strong)}.corr-kind-move{background:var(--m-sel3);color:var(--accent-soft)}.corr-kind-waypoints{background:var(--a-wp);color:var(--status-warn)}.route-panel{max-height:calc(100% - 24px)}.route-panel-badge{width:auto;min-width:36px;padding:0 7px;font-weight:700;font-size:13px;color:var(--t-badge);white-space:nowrap}.route-panel-op{margin-left:0}.route-dir-toggle{display:flex;gap:6px;padding:10px 14px 0;flex:none}.route-dir-btn{flex:1;min-width:0;padding:7px 10px;border-radius:7px;border:1px solid var(--surface-6);background:var(--m-hover2);color:var(--text-3);font-size:12.5px;font-weight:500;text-align:left;cursor:pointer;overflow:hidden}.route-dir-btn.active{border-color:var(--route, var(--accent));color:var(--i-2)}.route-stats-strip{padding:8px 14px 0;flex:none}.route-stats-caption{font-size:11px;color:var(--text-4);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.route-reliability{text-transform:none;letter-spacing:normal}.route-punctuality{display:flex;align-items:stretch;gap:0;border:1px solid var(--surface-5);border-radius:8px;background:var(--m-hover2);overflow:hidden}.route-stat{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 10px;min-width:0;flex:1}.route-stat+.route-stat{border-left:1px solid var(--surface-5)}.route-stat-val{font-size:14px;font-weight:700;line-height:1.15;color:var(--text-2);font-variant-numeric:tabular-nums}.route-stat-lbl{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-4);white-space:nowrap}.route-stat-val.good{color:var(--status-ontime)}.route-stat-val.mid{color:var(--text-2)}.route-stat-val.poor{color:var(--status-warn)}.route-stat--trend{flex:0 1 auto;justify-content:center}.route-trend-glyph{width:52px;height:14px;opacity:.5;flex:none;color:var(--text-3)}.route-live-strip{display:flex;align-items:center;gap:8px;margin:8px 14px 0;padding:8px 10px;border-radius:8px;background:var(--m-hover2);border:1px solid var(--surface-5);font-size:12.5px;color:var(--text-3);flex:none}.route-live-strip.clickable{cursor:pointer}.route-live-strip.clickable:hover{background:var(--s-strip-h);color:var(--i-2)}.live-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--status-ontime);box-shadow:0 0 0 3px #4ade8033}.route-stop-list{flex:1;overflow-y:auto;padding:6px 0 14px}.route-stop-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 14px;cursor:pointer}.route-stop-row:hover{background:var(--m-hover2)}.route-stop-row>*{min-width:0}.route-stop-dot{width:9px;height:9px;border-radius:50%;background:var(--m-card);border:2px solid var(--surface-6);justify-self:center}.route-stop-row.has-vehicle .route-stop-name{color:var(--i-2);font-weight:500}.route-stop-row.is-endpoint .route-stop-name{color:var(--i-2);font-weight:600}.route-stop-name{font-size:13px;color:var(--text-3)}.nearme-panel{max-height:calc(100% - 24px)}.nearme-stop-list{flex:1;overflow-y:auto}.nearme-panel .stop-head-sub{font-size:12px;color:var(--text-3);margin-top:2px}.nearme-directions{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin:8px 12px 4px;padding:6px 12px;border-radius:999px;cursor:pointer;border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:13px}.nearme-directions:hover{background:var(--m-sel6)}.tp-place-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;color:var(--text-3)}.nearme-stop-dist{flex:none;font-size:11px;color:var(--text-4);font-variant-numeric:tabular-nums}.schedule-panel{max-height:calc(100% - 24px)}.schedule-stop-select{flex:none;width:calc(100% - 28px);margin:10px 14px 0}.schedule-date-nav{display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 14px;border-bottom:1px solid var(--surface-5);flex:none}.schedule-date-nav button{background:transparent;border:1px solid var(--surface-6);border-radius:6px;color:var(--text-2);font-size:16px;line-height:1;cursor:pointer;width:28px;height:28px}.schedule-date-nav button:hover{background:var(--m-hover2)}.schedule-date-label{font-size:13px;font-weight:600;color:var(--i-2);min-width:90px;text-align:center}.schedule-times-at{padding:8px 14px 0;font-size:12px;font-weight:600;color:var(--i-link2);text-transform:uppercase;letter-spacing:.02em;flex:none}.schedule-firstlast{display:flex;gap:18px;padding:10px 14px;font-size:12.5px;color:var(--text-2);border-bottom:1px solid var(--b-5);flex:none}.schedule-firstlast-label{color:var(--text-4);margin-right:5px}.schedule-list{flex:1;overflow-y:auto;padding:4px 0 14px}.schedule-row{display:grid;grid-template-columns:48px auto minmax(0,1fr);align-items:center;gap:10px;padding:6px 14px;font-size:13px}.schedule-row:hover{background:var(--m-hover2)}.schedule-time{font-variant-numeric:tabular-nums;color:var(--text-2)}.schedule-badge{min-width:30px;height:22px;font-size:11px}.schedule-headsign{color:var(--text-3)}.rt-status-intro{margin:0 0 10px;font-size:12px;line-height:1.45;color:var(--text-3)}.rt-status-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.rt-status-row--pick{cursor:pointer;border-radius:8px}.rt-status-row--pick:hover{background:var(--m-hover2)}.rt-status-row--pick:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.rt-status-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;grid-template-areas:"dot op badge" ". meta meta" ". note note";align-items:center;gap:2px 8px;padding:7px 8px;border-radius:8px;background:var(--surface-2)}.rt-status-dot{grid-area:dot;width:8px;height:8px;border-radius:999px;background:var(--text-3)}.rt-status-row.rt-live .rt-status-dot{background:var(--status-ontime-strong)}.rt-status-row.rt-stalled .rt-status-dot{background:#c47a10}.rt-status-row.rt-delayed .rt-status-dot{background:var(--text-3)}.rt-status-op{grid-area:op;font-size:13px;font-weight:600;color:var(--text-1)}.rt-status-meta{grid-area:meta;font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}.rt-status-note{grid-area:note;font-size:11px;line-height:1.4;color:var(--i-warn2);margin-top:2px}.rt-status-badge{grid-area:badge;font-size:10px;font-weight:800;letter-spacing:.02em;padding:2px 7px;border-radius:999px;white-space:nowrap}.rt-status-badge.rt-live{background:var(--status-ontime-strong);color:var(--m-ink)}.rt-status-badge.rt-stalled{background:#c47a10;color:var(--m-ink)}.rt-status-badge.rt-delayed{background:var(--surface-5);color:var(--text-2)}.rt-status-row.rt-empty .rt-status-dot{background:var(--surface-5)}.rt-status-row.rt-empty .rt-status-op{color:var(--text-2)}.rt-status-badge.rt-empty{background:var(--surface-4);color:var(--text-3)}.rt-status-row.rt-down .rt-status-dot{background:#d9534f}.rt-status-badge.rt-down{background:#d9534f;color:var(--i-on)}.rt-status-row.rt-outdated .rt-status-dot{background:#c47a10}.rt-status-badge.rt-outdated{background:#c47a10;color:var(--m-ink)}.rt-status-disclosure{display:flex;align-items:center;justify-content:space-between;width:100%;padding:4px 0;gap:8px;background:none;border:none;cursor:pointer;font:inherit;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}.rt-status-disclosure:hover{color:var(--text-2)}@media (max-width: 720px),(max-height: 500px){.admin-tab{flex:none;white-space:nowrap}}.admin-kbdhint{margin:0 0 10px;color:var(--text-5);font-size:11.5px}.admin-kbdhint kbd{display:inline-block;padding:0 4px;margin:0 1px;background:var(--surface-3);border:1px solid var(--surface-5);border-radius:4px;font-family:inherit;font-size:10.5px;color:var(--text-3)}.toast-stack{position:fixed;left:50%;transform:translate(-50%);bottom:calc(18px + env(safe-area-inset-bottom));z-index:30;display:flex;flex-direction:column;gap:8px;align-items:center;width:max-content;max-width:min(92vw,420px);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:9px;padding:10px 10px 10px 12px;border-radius:12px;font-size:13px;line-height:1.35;color:var(--text-1);background:var(--s-toast);border:1px solid var(--surface-6);box-shadow:0 8px 28px #00000080;animation:toast-in .18s var(--ease-out)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.toast--error{border-color:#f8717173;background:var(--s-toast-e)}.toast--success{border-color:#34d39959}.toast-icon{flex:none;line-height:1.35}.toast--error .toast-icon{color:var(--status-late)}.toast--success .toast-icon{color:var(--i-ok)}.toast-text{flex:1;min-width:0;overflow-wrap:anywhere}.toast-close{flex:none;background:none;border:none;color:var(--text-4);font-size:15px;line-height:1;padding:2px 4px;cursor:pointer;border-radius:6px}.toast-close:hover{color:var(--text-1);background:#ffffff0f}.form-ok{font-size:12px;color:var(--i-ok);padding:8px 10px;background:#34d39914;border-radius:6px}.tip-wrap{display:inline-flex;align-items:center;cursor:help;outline:none}.tip-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.tip{position:fixed;z-index:40;max-width:min(78vw,300px);padding:8px 10px;border-radius:10px;background:var(--s-tip);border:1px solid var(--surface-7, var(--b-tip));color:var(--text-1);font-size:12px;font-weight:400;line-height:1.45;letter-spacing:0;text-align:left;white-space:normal;text-transform:none;box-shadow:0 10px 30px #0000008c;pointer-events:none;animation:tip-in .12s var(--ease-out)}@keyframes tip-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.tip{animation:none}}:root[data-theme=light] .tip{box-shadow:var(--shadow-3)}.tip-title{display:block;font-weight:700;margin-bottom:3px}.tip-row{display:block;color:var(--text-3)}.tip-row+.tip-row{margin-top:1px}.privacy-notice{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:25;max-width:460px;margin-inline:auto;background:var(--o-notice);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--surface-6);border-radius:16px;padding:14px;box-shadow:0 12px 36px #00000080;animation:privacy-in .22s var(--ease-out)}@keyframes privacy-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.privacy-notice{animation:none}}.privacy-notice-main{display:flex;gap:10px;align-items:flex-start}.privacy-notice-icon{flex:none;font-size:18px;line-height:1.3}.privacy-notice-text{min-width:0}.privacy-notice-title{display:block;font-size:14px;color:var(--text-1)}.privacy-notice-body{margin:3px 0 0;font-size:12.5px;line-height:1.5;color:var(--text-3)}.privacy-notice-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.privacy-btn{flex:1 1 auto;white-space:nowrap;min-height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--surface-6);background:var(--surface-3);color:var(--text-2);font-size:13px;font-weight:600;cursor:pointer}.privacy-btn:hover{background:var(--m-sel);color:var(--text-1)}.privacy-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--i-on)}.privacy-btn--primary:hover{filter:brightness(1.08);background:var(--accent)}.privacy-detail{margin-top:12px;border-top:1px solid var(--surface-4);padding-top:10px}.privacy-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.privacy-list-item{display:flex;flex-direction:column;gap:3px;font-size:12px;min-width:0}.privacy-list-what{color:var(--text-2);min-width:0;overflow-wrap:break-word}.privacy-list-keys{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;color:var(--text-4);background:var(--surface-2);border-radius:5px;padding:2px 6px;overflow-wrap:anywhere;align-self:flex-start;max-width:100%}.privacy-tag{font-style:normal;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-left:6px;padding:1px 5px;border-radius:4px;background:var(--surface-5);color:var(--text-3);white-space:nowrap;display:inline-block;vertical-align:baseline}.privacy-tag--opt{background:#34d39924;color:var(--i-ok)}.privacy-optout{display:flex;align-items:flex-start;gap:8px;margin-top:12px;font-size:12.5px;color:var(--text-2);cursor:pointer}.privacy-optout input{margin:2px 0 0;flex:none;width:16px;height:16px;accent-color:var(--accent)}.privacy-foot{margin:10px 0 0;font-size:11.5px;line-height:1.5;color:var(--text-4)}.privacy-foot--tight{margin:0 0 10px}.legal-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;background:var(--surface-1);overflow-y:auto;overscroll-behavior:contain}.legal-page--loading{display:flex;align-items:center;justify-content:center;color:var(--text-4)}.legal-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-top));padding-top:max(12px,env(safe-area-inset-top));background:var(--surface-1);border-bottom:1px solid var(--surface-4)}.legal-head h1{margin:0;font-size:16px;color:var(--text-1)}.legal-body{max-width:720px;margin:0 auto;padding:18px 16px calc(40px + env(safe-area-inset-bottom))}.legal-lead{margin:0 0 24px;font-size:16px;line-height:1.62;color:var(--text-2);padding-bottom:20px;border-bottom:1px solid var(--surface-4)}.legal-section{margin-bottom:14px;padding:16px 18px;background:var(--surface-3);border:1px solid var(--surface-4);border-radius:12px}.legal-section h2{margin:0 0 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-1)}.legal-section p{margin:0;font-size:14.5px;line-height:1.7;color:var(--text-2);max-width:62ch}.legal-section a{color:var(--accent-soft, var(--i-link8))}.legal-section--callout{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface-3));border-color:color-mix(in srgb,var(--accent) 22%,var(--surface-4));border-radius:4px 12px 12px 4px}.legal-section--callout h2{color:var(--accent-soft, var(--i-link8))}.legal-section--callout p{color:var(--text-1);font-weight:500}.shout-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.shout-row{padding:12px 14px;background:var(--m-well);border:1px solid var(--surface-4);border-radius:10px}.shout-name{display:block;font-size:13.5px;font-weight:650;color:var(--text-1)}.shout-body{margin:4px 0 0!important;font-size:13px!important;line-height:1.6!important;color:var(--text-3)!important;max-width:none!important}.shout-url{display:inline-block;margin-top:8px;font-size:12px;color:var(--accent-soft, var(--i-link8));text-decoration:none;overflow-wrap:anywhere}.shout-url:hover{text-decoration:underline}.legal-muted{color:var(--text-4)!important;font-size:12.5px!important;margin-bottom:10px!important}.attr-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:1px}.attr-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border-radius:8px}.attr-row:nth-child(odd){background:var(--m-well)}.attr-logo{width:26px;height:26px;object-fit:contain;background:#fff;border-radius:5px}.attr-name{min-width:0;font-size:13.5px;font-weight:600;color:var(--text-1);overflow-wrap:break-word}.attr-region{display:block;font-size:11px;color:var(--text-5)}.attr-url{font-size:11.5px;color:var(--accent-faint, var(--i-link8));text-decoration:none;text-align:right;overflow-wrap:anywhere}.attr-url:hover{text-decoration:underline}.attr-url--none{color:var(--text-5)}.privacy-link{display:inline-block;margin-top:10px;font-size:12.5px;color:var(--accent-faint, var(--i-link8));text-decoration:none}.privacy-link:hover{text-decoration:underline}@media (max-width: 720px),(max-height: 500px){.attr-row{grid-template-columns:26px minmax(0,1fr)}.attr-url{grid-column:2;text-align:left}}.icon{flex:none;display:inline-block;vertical-align:-.18em}.icon--live{color:var(--status-ontime)}.icon--accent{color:var(--accent)}.icon--warn{color:var(--status-warn)}.icon--danger{color:var(--status-late)}.icon--early{color:var(--status-early)}.icon--star{color:var(--status-warn)}.icon--muted,.icon--mode-walk{color:var(--text-4)}.icon--mode-bus{color:var(--mode-bus)}.icon--mode-rail{color:var(--mode-rail)}.icon--mode-metro{color:var(--mode-metro)}.icon--mode-tram{color:var(--mode-tram)}.icon--mode-ferry{color:var(--mode-ferry)}.icon--home{color:var(--place-home)}.icon--work{color:var(--place-work)}.icon--filled{fill:currentColor}.icon-label{display:inline-flex;align-items:center;gap:7px;min-width:0}.ended-trip-card{padding:16px 18px;display:flex;flex-direction:column;gap:10px}.ended-trip-title{font-size:16px;font-weight:700;color:var(--i-1);padding-right:28px;line-height:1.3}.ended-trip-msg{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--i-2)}.ended-trip-actions{display:flex;gap:8px;margin-top:4px}.ended-trip-actions>button{flex:1}.ended-trip-back{background:none;border:1px solid var(--b-3);border-radius:7px;color:var(--i-2);padding:10px;font-size:14px;cursor:pointer}.ended-trip-back:hover{background:var(--s-hover2)}:root[data-theme=light] .trip-delay-pill.ontime{color:#166534}:root[data-theme=light] .trip-delay-pill.late{color:#b91c1c}:root[data-theme=light] .trip-delay-pill.early,:root[data-theme=light] .arr-delay.early{color:#1d4ed8}
