:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#eef1f6;--bg-elev:#f6f8fb;--card:#fff;--card-soft:#fafbfd;--border:#e3e7ee;--border-strong:#c9d0db;--text:#0e1218;--text-soft:#2c333d;--muted:#5e6675;--muted-soft:#8c93a0;--accent:#0b67c2;--accent-strong:#0a55a2;--accent-soft:#e7f0fa;--success:#1b8a3a;--warn:#b75200;--danger:#c0392b;--line-nsl:#d42e12;--line-ewl:#009645;--line-nel:#90a;--line-ccl:#fa9e0d;--line-dtl:#005ec4;--line-tel:#9d5b25;--fs-11:.6875rem;--fs-12:.75rem;--fs-13:.8125rem;--fs-15:.9375rem;--fs-18:1.125rem;--fs-22:1.375rem;--fs-28:1.75rem;--fs-44:2.75rem;--fs-56:3.5rem;--sp-1:2px;--sp-2:4px;--sp-3:8px;--sp-4:12px;--sp-5:16px;--sp-6:20px;--sp-7:24px;--sp-8:32px;--sp-9:40px;--sp-10:56px;--r-1:6px;--r-2:10px;--r-3:14px;--r-4:18px;--r-pill:999px;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 14px #10182812, 0 1px 2px #1018280a;--shadow-lg:0 14px 34px #1018281f, 0 2px 6px #1018280d;--shadow-focus:0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);--ease:cubic-bezier(.2, .6, .25, 1);--t-fast:.12s;--t-base:.18s;--t-slow:.26s;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0a0d12;--bg-elev:#11141a;--card:#161a22;--card-soft:#1b1f28;--border:#242a35;--border-strong:#353c4a;--text:#f4f6fa;--text-soft:#d7dbe4;--muted:#9aa3b2;--muted-soft:#707888;--accent:#59a8ee;--accent-strong:#7cbcf2;--accent-soft:#11243a;--shadow-sm:0 1px 2px #0006;--shadow-md:0 6px 18px #00000073, 0 1px 2px #0000004d;--shadow-lg:0 18px 40px #0000008c, 0 2px 6px #00000059;--shadow-focus:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent)}}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);margin:0;padding:0}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);font-size:var(--fs-15);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.5}:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--r-1);outline:none}button,input,select,textarea{font:inherit;color:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.time-picker{flex-direction:column;gap:8px;display:flex}.tp-label{font-size:var(--fs-11);color:var(--muted);text-transform:uppercase;letter-spacing:.09em;align-items:center;gap:6px;font-weight:700;display:inline-flex}.tp-row{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.tp-input{font-size:var(--fs-15);font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:.01em;border:1px solid var(--border);border-radius:var(--r-2);background:var(--bg-elev);color:var(--text);transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);min-width:140px;padding:10px 14px}.tp-input:hover{border-color:var(--border-strong)}.tp-input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}.tp-band{font-size:var(--fs-12);border-radius:var(--r-pill);border:1px solid var(--border);background:var(--bg-elev);letter-spacing:.01em;align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:inline-flex}.tp-band-dot{width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);background:currentColor;border-radius:50%;display:inline-block}.band-peak{color:#b73121;border-color:color-mix(in srgb, #b73121 30%, var(--border));background:color-mix(in srgb, #b73121 10%, var(--card))}.band-offpeak{color:#16793a;border-color:color-mix(in srgb, #16793a 28%, var(--border));background:color-mix(in srgb, #16793a 9%, var(--card))}.band-night{color:#5c3aa3;border-color:color-mix(in srgb, #5c3aa3 28%, var(--border));background:color-mix(in srgb, #5c3aa3 10%, var(--card))}.band-closed{color:#c0392b;border-color:color-mix(in srgb, #c0392b 36%, var(--border));background:color-mix(in srgb, #c0392b 12%, var(--card))}@media (prefers-color-scheme:dark){.band-peak{color:#ff9286;background:color-mix(in srgb, #b73121 22%, var(--card));border-color:color-mix(in srgb, #b73121 38%, var(--border))}.band-offpeak{color:#6ee396;background:color-mix(in srgb, #16793a 22%, var(--card));border-color:color-mix(in srgb, #16793a 38%, var(--border))}.band-night{color:#c0aeff;background:color-mix(in srgb, #5c3aa3 26%, var(--card));border-color:color-mix(in srgb, #5c3aa3 42%, var(--border))}.band-closed{color:#ff9286;background:color-mix(in srgb, #c0392b 24%, var(--card));border-color:color-mix(in srgb, #c0392b 40%, var(--border))}}.station-picker{flex:1;min-width:0;position:relative}.station-picker input{width:100%;font-size:var(--fs-15);font-family:var(--font-sans);color:var(--text);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-2);transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:12px 14px}.station-picker input::placeholder{color:var(--muted-soft)}.station-picker input:hover{border-color:var(--border-strong)}.station-picker input:focus{border-color:var(--accent);background:var(--card);box-shadow:var(--shadow-focus);outline:none}.station-picker-list{z-index:20;background:var(--card);border:1px solid var(--border);border-radius:var(--r-3);box-shadow:var(--shadow-lg);overscroll-behavior:contain;max-height:360px;margin:0;padding:6px 0;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.station-picker-list .opt-section{list-style:none}.station-picker-list .opt-section>ul{margin:0;padding:0;list-style:none}.opt-section-label{font-size:var(--fs-11);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:10px 16px 4px;font-weight:700}.opt-item{cursor:pointer;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);border-left:3px solid #0000;flex-direction:column;gap:4px;padding:9px 16px;display:flex}.opt-item.active,.opt-item:hover{background:color-mix(in srgb, var(--accent) 9%, transparent);border-left-color:var(--accent)}.opt-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.opt-name{color:var(--text);font-weight:600;font-size:var(--fs-15);letter-spacing:-.005em}.opt-badge{font-size:var(--fs-11);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r-1);background:var(--warn);color:#fff;padding:2px 6px;font-weight:700}.opt-chips{flex-wrap:wrap;gap:4px;display:flex}.opt-chip{font-family:var(--font-mono);font-size:var(--fs-11);border-radius:var(--r-1);text-align:center;letter-spacing:.02em;min-width:32px;padding:2px 6px;font-weight:700;box-shadow:inset 0 1px #00000014}.opt-empty{text-align:center;color:var(--muted);font-style:italic;font-size:var(--fs-13);padding:18px 14px;list-style:none}.station-picker-empty{padding:4px 0}.waypoints{flex-direction:column;gap:6px;display:flex;position:relative}.wp-row{align-items:center;gap:10px;display:flex}.wp-marker{width:34px;height:34px;font-weight:700;font-size:var(--fs-13);color:#fff;font-variant-numeric:tabular-nums;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 1px 2px #0000002e,inset 0 0 0 1px #ffffff29}.wp-marker-origin{background:linear-gradient(#2bb259 0%,#178c3a 100%)}.wp-marker-mid{background:linear-gradient(#2a86d8 0%,#0b5fb2 100%)}.wp-marker-dest{background:linear-gradient(#e25a48 0%,#b9301f 100%)}.wp-connector{background:radial-gradient(circle, var(--border-strong) 1.4px, transparent 1.6px) 50% 50% / 5px 5px repeat-y;width:34px;height:14px;margin:-3px 0}.wp-picked-chip{align-items:center;gap:4px;display:inline-flex}.wp-line-dot{width:10px;height:10px;box-shadow:0 0 0 2px var(--card);border-radius:50%;display:inline-block}.wp-controls{flex-shrink:0;gap:2px;display:flex}.wp-iconbtn{border-radius:var(--r-2);width:32px;height:32px;color:var(--muted);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.wp-iconbtn:hover:not(:disabled){background:var(--bg-elev);color:var(--accent);border-color:var(--border)}.wp-iconbtn:active:not(:disabled){transform:scale(.94)}.wp-iconbtn:disabled{opacity:.32;cursor:not-allowed}.wp-iconbtn-danger:hover:not(:disabled){color:var(--danger);border-color:color-mix(in srgb, var(--danger) 30%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.wp-add{font-size:var(--fs-13);letter-spacing:.01em;color:var(--accent);border:1px dashed color-mix(in srgb, var(--accent) 55%, var(--border));border-radius:var(--r-2);cursor:pointer;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);background:0 0;align-self:flex-start;align-items:center;gap:8px;margin-top:6px;padding:10px 16px;font-weight:600;display:inline-flex}.wp-add:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:var(--accent);border-style:solid}.wp-add:active{transform:scale(.98)}@media (width<=520px){.wp-iconbtn,.wp-marker{width:36px;height:36px}.wp-connector{width:36px}}.route-summary{background:radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--accent) 10%, var(--card)) 0%, var(--card) 55%);border:1px solid color-mix(in srgb, var(--accent) 16%, var(--border));border-radius:var(--r-4);padding:var(--sp-7);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.route-summary:before{content:"";background:linear-gradient(180deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 50%, var(--success)) 100%);width:4px;position:absolute;top:0;bottom:0;left:0}.rs-total{margin-bottom:var(--sp-6);flex-direction:column;gap:6px;display:flex}.rs-total-label{font-size:var(--fs-11);color:var(--muted);text-transform:uppercase;letter-spacing:.09em;align-items:center;gap:6px;font-weight:700;display:inline-flex}.rs-total-value{font-size:var(--fs-56);letter-spacing:-.035em;font-variant-numeric:tabular-nums;color:var(--text);align-items:baseline;gap:8px;font-weight:700;line-height:1;display:inline-flex}.rs-breakdown{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.rs-card{--tint:var(--accent);border-radius:var(--r-3);background:color-mix(in srgb, var(--tint) 8%, var(--card));border:1px solid color-mix(in srgb, var(--tint) 22%, var(--border));transition:transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;gap:2px 12px;padding:14px 16px;display:grid}.rs-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.rs-card-icon{border-radius:var(--r-2);background:color-mix(in srgb, var(--tint) 18%, var(--card));width:36px;height:36px;color:var(--tint);grid-row:1/span 2;justify-content:center;align-items:center;display:inline-flex}.rs-card-label{font-size:var(--fs-11);color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:700}.rs-card-value{font-size:var(--fs-18);letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--text);font-weight:700}.rs-train{--tint:#0b67c2}.rs-walk{--tint:#1b8a3a}.rs-wait{--tint:#b75200}@media (prefers-color-scheme:dark){.rs-train{--tint:#59a8ee}.rs-walk{--tint:#4cc26d}.rs-wait{--tint:#e09140}}@media (width<=640px){.route-summary{padding:var(--sp-6)}.rs-total-value{font-size:var(--fs-44)}.rs-breakdown{grid-template-columns:1fr}}.leg{background:var(--card);border:1px solid var(--border);border-radius:var(--r-3);padding:var(--sp-5);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease), background var(--t-base) var(--ease);outline:none}.leg:hover{border-color:var(--border-strong)}.leg:focus-visible{border-color:var(--accent);box-shadow:var(--shadow-focus)}.leg-highlighted{border-color:var(--accent);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 6%, var(--card)) 0%, var(--card) 60%);box-shadow:0 10px 28px color-mix(in srgb, var(--accent) 22%, transparent), 0 0 0 1px var(--accent) inset;transform:translateY(-1px)}.leg-header{margin-bottom:var(--sp-4);justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.leg-title{flex-direction:column;gap:4px;min-width:0;display:flex}.leg-num{font-size:var(--fs-11);color:var(--muted);text-transform:uppercase;letter-spacing:.09em;font-weight:700}.leg-route{font-size:var(--fs-15);letter-spacing:-.005em;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:600;overflow:hidden}.leg-arrow{color:var(--muted-soft);margin:0 6px;font-weight:400}.leg-total{font-size:var(--fs-18);color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap;padding-top:2px;font-weight:700}.leg-noop{color:var(--muted);font-style:italic;font-size:var(--fs-13);padding:8px 0}.leg-steps{margin:0;padding:0;list-style:none;position:relative}.leg-steps:before{content:"";background:var(--border);border-radius:1px;width:2px;position:absolute;top:16px;bottom:16px;left:14px}.step{gap:14px;padding:8px 0;display:flex;position:relative}.step-marker{border-radius:var(--r-2);min-width:30px;height:30px;font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.02em;z-index:1;flex-shrink:0;justify-content:center;align-items:center;padding:0 7px;font-weight:700;display:inline-flex;position:relative;box-shadow:0 1px 2px #0000002e,inset 0 0 0 1px #ffffff1f}.transfer-marker{background:var(--bg-elev);color:var(--muted);border:1px dashed var(--border-strong);box-shadow:none}.step-body{flex:1;min-width:0}.step-headline{font-size:var(--fs-15);color:var(--text-soft);line-height:1.4}.step-headline strong{color:var(--text);font-weight:600}.step-meta{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.meta-pill{font-size:var(--fs-12);color:var(--muted);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-pill);font-variant-numeric:tabular-nums;align-items:center;gap:4px;padding:3px 9px;display:inline-flex}.step-ride{position:relative}.step-ride:after{content:"";background:var(--line-color,var(--border));opacity:.9;border-radius:1px;width:2px;position:absolute;top:8px;bottom:8px;left:14px}@media (width<=520px){.leg{padding:var(--sp-4)}.leg-header{gap:8px}.leg-total{font-size:var(--fs-15)}.leg-route{font-size:var(--fs-13);white-space:normal}}.route-map{background:radial-gradient(#e9eef5 0%,#dde4ee 100%);border-radius:12px;width:100%;height:100%;font-family:inherit;display:block;overflow:visible}.route-map .island{fill:#f3f6fa;stroke:#c8d0dc;stroke-width:1px;filter:drop-shadow(0 1px 1px #0000000a)}.route-map .line-bg{fill:none;stroke-width:6px;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.route-map .line-bg.planned{opacity:.5;stroke-dasharray:4 4;stroke-width:4px}.route-map .station-group{cursor:default}.route-map .station-group.clickable{cursor:pointer}.route-map .station-group.disabled{opacity:.35;cursor:not-allowed}.route-map .station-dot{stroke:#fff;stroke-width:1.5px;transition:r 80ms,stroke 80ms}.route-map .station-dot.planned{stroke-dasharray:1.5 1.5;opacity:.85}.route-map .station-hit{fill:#0000}.route-map .interchange-pill{fill:#fff;stroke:#2a2f37;stroke-width:1.6px}.route-map .interchange.planned .interchange-pill{stroke-dasharray:2 2;opacity:.85}.route-map .station-group.on-route .station-dot,.route-map .station-group:hover:not(.disabled) .station-dot{stroke-width:2.5px}.route-map .station-group.clickable:hover .interchange-pill{stroke:#0b67c2;stroke-width:2.5px}.route-map .overlay-ride{fill:none;stroke-width:10px;stroke-linecap:round;stroke-linejoin:round;filter:url(#route-glow)}.route-map .overlay-transfer{fill:none;stroke:#444;stroke-width:3px;stroke-dasharray:3 3;stroke-linecap:round}.route-map .overlay-dim{opacity:.2}.route-map .endpoint{stroke:#fff;stroke-width:2.5px}.route-map .endpoint-origin{fill:#1b8a3a}.route-map .endpoint-dest{fill:#c0392b}.route-map .endpoint-mid{fill:#0b67c2}.route-map .endpoint-label{fill:#fff;text-anchor:middle;pointer-events:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:12px;font-weight:800}.route-map .station-label{fill:#21262e;pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:2.5px;stroke-linejoin:round;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:9px}.route-map .station-label.route{font-size:10px;font-weight:700}.route-map .station-label.hidden{opacity:0;transition:opacity 80ms}.route-map .station-group:hover .station-label.hidden{opacity:1}.route-map .tooltip-bubble{opacity:0;pointer-events:none;transition:opacity 80ms}.route-map .station-group:hover .tooltip-bubble{opacity:1}.route-map .tooltip-rect{fill:#141820eb;stroke:#ffffff1f;stroke-width:.5px;filter:drop-shadow(0 4px 10px #00000040)}.route-map .tooltip-name{fill:#fff;text-anchor:middle;pointer-events:none;font-size:11px;font-weight:700}.route-map .tooltip-lines{fill:#bcc6d3;text-anchor:middle;pointer-events:none;font-size:9px}.route-map .tooltip-planned{fill:#f3c97a;text-anchor:middle;pointer-events:none;font-size:9px;font-weight:600}.route-map .legend-bg{fill:#ffffffeb;stroke:#c8d0dc;stroke-width:1px}.route-map .legend-text{fill:#21262e;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:600}@media (prefers-color-scheme:dark){.route-map{background:radial-gradient(#1a1f28 0%,#0d1117 100%)}.route-map .island{fill:#1f242d;stroke:#2a313b}.route-map .interchange-pill{fill:#181c23;stroke:#b8c0cc}.route-map .station-label{fill:#e7ebf0;stroke:#181c23}.route-map .legend-bg{fill:#181c23eb;stroke:#2a313b}.route-map .legend-text{fill:#e7ebf0}.route-map .endpoint-label{fill:#fff}}.planned-toggles{border:1px solid var(--border);border-radius:var(--r-3);background:var(--bg-elev);transition:border-color var(--t-fast) var(--ease);overflow:hidden}.planned-toggles.open{border-color:var(--border-strong)}.pt-summary{width:100%;color:var(--text);cursor:pointer;font:inherit;text-align:left;transition:background var(--t-fast) var(--ease);background:0 0;border:0;align-items:center;gap:10px;padding:12px 14px;display:flex}.pt-summary:hover{background:color-mix(in srgb, var(--accent) 7%, transparent)}.pt-summary-label{font-weight:600;font-size:var(--fs-13);letter-spacing:-.005em;flex:1}.pt-summary-count{font-size:var(--fs-11);color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:var(--r-pill);font-variant-numeric:tabular-nums;letter-spacing:.01em;padding:3px 9px;font-weight:600}.pt-summary-chevron{color:var(--muted);font-size:var(--fs-12);text-align:center;width:14px;transition:transform var(--t-fast) var(--ease)}.planned-toggles.open .pt-summary-chevron{transform:rotate(0)}.pt-list{border-top:1px solid var(--border);background:var(--card);margin:0;padding:4px 0 8px;list-style:none}.pt-row{cursor:pointer;transition:background var(--t-fast) var(--ease);align-items:center;gap:10px;padding:10px 14px;display:flex}.pt-row:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.pt-row input[type=checkbox]{cursor:pointer;accent-color:var(--accent);width:16px;height:16px;margin:0}.pt-line-chip{font-family:var(--font-mono);font-size:var(--fs-11);border-radius:var(--r-1);text-align:center;letter-spacing:.02em;flex-shrink:0;min-width:34px;padding:3px 7px;font-weight:700;box-shadow:inset 0 1px #00000014}.pt-text{flex-direction:column;gap:2px;min-width:0;display:flex}.pt-name{font-size:var(--fs-13);color:var(--text);font-weight:500}.pt-meta{font-size:var(--fs-11);color:var(--muted);letter-spacing:.01em}.browse-by-line{border-top:1px solid var(--border);padding-top:var(--sp-4)}.bbl-title{font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:8px;font-weight:700}.bbl-lines{margin:0;padding:0;list-style:none}.bbl-line{border-bottom:1px solid var(--border)}.bbl-line:last-child{border-bottom:0}.bbl-line-button{width:100%;color:var(--text);cursor:pointer;font:inherit;text-align:left;border-radius:var(--r-1);transition:background var(--t-fast) var(--ease);background:0 0;border:0;align-items:center;gap:10px;padding:10px 8px;display:flex}.bbl-line-button:hover{background:color-mix(in srgb, var(--accent) 7%, transparent)}.bbl-chip{font-family:var(--font-mono);font-size:var(--fs-11);border-radius:var(--r-1);text-align:center;letter-spacing:.02em;min-width:34px;padding:3px 7px;font-weight:700;box-shadow:inset 0 1px #00000014}.bbl-line-name{font-size:var(--fs-13);letter-spacing:-.005em;flex:1;font-weight:500}.bbl-chevron{font-size:var(--fs-12);color:var(--muted);text-align:center;width:14px}.bbl-stations{overscroll-behavior:contain;max-height:260px;margin:0;padding:4px 0 10px 8px;list-style:none;overflow-y:auto}.bbl-station{width:100%;color:var(--text);text-align:left;border-radius:var(--r-1);cursor:pointer;font:inherit;transition:background var(--t-fast) var(--ease);background:0 0;border:0;align-items:center;gap:8px;padding:7px 10px;display:flex}.bbl-station:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 9%, transparent)}.bbl-station:disabled,.bbl-station.disabled{color:var(--muted-soft);cursor:not-allowed}.bbl-code{font-family:var(--font-mono);font-size:var(--fs-11);border:1.5px solid var(--border);border-radius:var(--r-1);background:var(--card);text-align:center;min-width:42px;color:var(--text-soft);padding:2px 6px;font-weight:700}.bbl-name{font-size:var(--fs-13);flex:1}.bbl-planned{font-size:var(--fs-11);background:var(--warn);color:#fff;border-radius:var(--r-1);letter-spacing:.05em;text-transform:uppercase;padding:2px 6px;font-weight:700}.app{max-width:1240px;padding:var(--sp-7) var(--sp-5) var(--sp-10);margin:0 auto}.app-header{margin-bottom:var(--sp-6)}.brand{align-items:center;gap:var(--sp-5);grid-template-columns:auto 1fr auto;display:grid}.brand-text{min-width:0}.brand h1{font-size:var(--fs-28);letter-spacing:-.025em;color:var(--text);margin:0;font-weight:700;line-height:1.1}.brand h1:after{content:"";background:linear-gradient(90deg, var(--line-nsl) 0% 16.6%, var(--line-ewl) 16.6% 33.3%, var(--line-nel) 33.3% 50%, var(--line-ccl) 50% 66.6%, var(--line-dtl) 66.6% 83.3%, var(--line-tel) 83.3% 100%);border-radius:2px;width:64px;height:3px;margin-top:8px;display:block}.tagline{font-size:var(--fs-13);color:var(--muted);max-width:56ch;margin:8px 0 0}.brand-status{font-size:var(--fs-12);color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:var(--r-pill);white-space:nowrap;box-shadow:var(--shadow-sm);align-items:center;gap:8px;padding:6px 12px;font-weight:600;display:inline-flex}.brand-status .dot{background:var(--success);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 22%, transparent);border-radius:50%}.brand-status[data-band=peak] .dot{background:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 22%, transparent)}.brand-status[data-band=offpeak] .dot{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 22%, transparent)}.brand-status[data-band=night] .dot{background:#7d5cd6;box-shadow:0 0 0 3px #7d5cd638}.brand-status[data-band=closed]{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--card))}.brand-status[data-band=closed] .dot{background:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 22%, transparent)}.service-closed{border-radius:var(--r-4);background:color-mix(in srgb, var(--danger) 10%, var(--card));border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));color:var(--text);box-shadow:var(--shadow-sm);align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.service-closed__icon{border-radius:var(--r-2);background:color-mix(in srgb, var(--danger) 18%, var(--card));width:40px;height:40px;color:var(--danger);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.service-closed__body{flex:1;min-width:0}.service-closed__title{font-size:var(--fs-18);letter-spacing:-.01em;color:var(--text);margin:0 0 6px;font-weight:700}.service-closed__msg{font-size:var(--fs-13);color:var(--text-soft,var(--text));margin:0 0 6px}.service-closed__hint{font-size:var(--fs-12);color:var(--muted);margin:0}.service-closed__hint strong{color:var(--text);font-variant-numeric:tabular-nums}.scope-banner{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 9%, var(--card)) 0%, var(--card) 60%);border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border));color:var(--text-soft);border-radius:var(--r-3);margin-bottom:var(--sp-5);font-size:var(--fs-13);box-shadow:var(--shadow-sm);align-items:flex-start;gap:12px;padding:14px 16px;line-height:1.5;display:flex}.scope-banner__icon{border-radius:var(--r-2);background:color-mix(in srgb, var(--accent) 14%, var(--card));width:28px;height:28px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.scope-banner__body strong{color:var(--accent);letter-spacing:-.005em;margin-right:4px;font-weight:700}.advisories{margin:0 0 var(--sp-4);flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.advisory{border-radius:var(--r-2);font-size:var(--fs-13);border:1px solid var(--border);background:var(--card);padding:12px 14px 12px 38px;line-height:1.45;position:relative}.advisory:before{content:"";border:2px solid;border-radius:50%;width:14px;height:14px;position:absolute;top:14px;left:14px}.advisory:after{content:"i";font-size:10px;font-style:italic;font-weight:700;font-family:var(--font-sans);color:currentColor;position:absolute;top:13px;left:19px}.advisory-warn{background:color-mix(in srgb, var(--warn) 9%, var(--card));border-color:color-mix(in srgb, var(--warn) 28%, var(--border));color:var(--warn)}.advisory-info{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 22%, var(--border));color:var(--accent-strong)}.advisory-warn:after{content:"!"}.app-grid{gap:var(--sp-5);margin-bottom:var(--sp-6);grid-template-columns:minmax(340px,400px) 1fr;align-items:start;display:grid}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r-4);box-shadow:var(--shadow-sm)}.panel-controls{padding:var(--sp-6);gap:var(--sp-6);flex-direction:column;min-width:0;display:flex}.controls-hint{font-size:var(--fs-12);color:var(--muted);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-2);margin:0;padding:10px 12px;line-height:1.5}.controls-hint strong{color:var(--accent);font-weight:700}.panel-map{min-height:460px;top:var(--sp-5);justify-content:stretch;align-items:stretch;padding:8px;display:flex;position:sticky;overflow:hidden}.panel-map .route-map{width:100%;height:100%;min-height:444px;display:block}.results{margin-top:var(--sp-2);gap:var(--sp-5);flex-direction:column;display:flex}.empty-state{background:var(--card);border:1px solid var(--border);border-radius:var(--r-4);padding:var(--sp-7);color:var(--muted);box-shadow:var(--shadow-sm)}.empty-state__title{margin:0 0 var(--sp-4);font-size:var(--fs-18);letter-spacing:-.01em;color:var(--text);font-weight:700}.empty-state__steps{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0;padding:0;list-style:none;display:grid}.empty-state__step{border:1px solid var(--border);border-radius:var(--r-3);background:var(--bg-elev);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.empty-state__num{background:var(--accent);color:#fff;width:26px;height:26px;font-size:var(--fs-12);font-variant-numeric:tabular-nums;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.empty-state__step strong{color:var(--text);font-weight:600;font-size:var(--fs-13);display:block}.empty-state__step span{font-size:var(--fs-12);color:var(--muted);margin-top:2px;display:block}.error{background:color-mix(in srgb, var(--danger) 10%, var(--card));border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));color:var(--danger);border-radius:var(--r-3);font-size:var(--fs-13);margin:0;padding:14px 16px}.legs{gap:var(--sp-3);flex-direction:column;display:flex}.app-footer{margin-top:var(--sp-9);padding-top:var(--sp-5);border-top:1px solid var(--border);text-align:center}.app-footer p{font-size:var(--fs-12);color:var(--muted);max-width:64ch;margin:0 auto;line-height:1.6}@media (width<=920px){.app{padding:var(--sp-5) var(--sp-4) var(--sp-9)}.brand{grid-template-columns:auto 1fr;row-gap:4px}.brand-status{grid-column:1/-1;justify-self:start}.brand h1{font-size:var(--fs-22)}.tagline{font-size:var(--fs-12)}.app-grid{gap:var(--sp-4);grid-template-columns:1fr}.panel-map{order:2;min-height:280px;position:static}.panel-map .route-map{min-height:280px}.panel-controls{padding:var(--sp-5);order:1}}@media (width<=520px){.app{padding:var(--sp-4) var(--sp-3) var(--sp-9)}.brand h1{font-size:var(--fs-22)}.scope-banner{gap:10px;padding:12px}}
