:root{--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--r-pill: 999px;--fs-xs: .72rem;--fs-sm: .82rem;--fs-base: .92rem;--fs-md: 1.05rem;--fs-lg: 1.25rem;--fs-xl: 1.55rem;--fs-2xl: 2.1rem;--fs-hero: clamp(3.25rem, 17vw, 5rem);--transition: .15s ease;--maxw: 600px}:root,[data-theme=light]{--bg: #eef2f4;--panel: #ffffff;--card: #f5f8fa;--text: #0d1b2a;--text-dim: #5b6b7a;--border: #dce4ea;--accent: #0e7a4f;--accent-ink: #ffffff;--selected-bg: #e1f1e9;--rail: #c3ced6;--rail-done: #0e7a4f;--dot: #aab8c2;--dot-passed: #0e7a4f;--train: #0e7a4f;--ontime: #0b6e3e;--ontime-bg: #d8f0e3;--late: #8a5109;--late-bg: #fbedd6;--cancelled: #a62a1d;--cancelled-bg: #fbe0dc;--shadow: 0 1px 3px rgba(13, 27, 42, .08), 0 6px 18px rgba(13, 27, 42, .06);--shadow-lg: 0 2px 6px rgba(13, 27, 42, .08), 0 18px 44px rgba(13, 27, 42, .12)}[data-theme=dark]{--bg: #0b1220;--panel: #121c2b;--card: #18253a;--text: #e8eef5;--text-dim: #94a6b8;--border: #243248;--accent: #2ec27e;--accent-ink: #04150d;--selected-bg: #16301f;--rail: #324259;--rail-done: #2ec27e;--dot: #4a5d76;--dot-passed: #2ec27e;--train: #2ec27e;--ontime: #57d99a;--ontime-bg: #10271c;--late: #e7a44b;--late-bg: #2e2415;--cancelled: #f07a6c;--cancelled-bg: #2e1714;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 2px 6px rgba(0, 0, 0, .5), 0 20px 50px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;transition:background .2s ease,color .2s ease}.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}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;padding:8px 16px;background:var(--accent);color:var(--accent-ink);font-weight:700;border-radius:0 0 8px;text-decoration:none}.skip-link:focus{left:0}.offline-banner{text-align:center;padding:8px 12px;background:var(--late-bg);color:var(--late);font-size:.85rem;font-weight:600}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:32px 16px;text-align:center;gap:12px}.error-boundary__icon{font-size:2.5rem}.error-boundary__title{margin:0;font-size:1.3rem}.error-boundary__message{margin:0;color:var(--text-dim);font-size:.9rem;max-width:400px}.error-boundary__actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:8px}.error-boundary__btn{padding:10px 24px;border:1px solid var(--accent);border-radius:10px;background:var(--accent);color:var(--accent-ink);font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer}.error-boundary__btn--ghost{background:transparent;color:var(--accent)}.skeleton{display:flex;flex-direction:column;gap:14px;padding:16px;background:var(--card);border-radius:14px}.skeleton__row{border-radius:6px;background:var(--border);animation:shimmer 1.4s ease-in-out infinite}.skeleton__row--lg{height:40px;width:55%}.skeleton__row--md{height:22px;width:80%}.skeleton__row--sm{height:18px;width:40%}.skeleton--hero{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--space-5);box-shadow:var(--shadow-lg)}.skeleton__row--badge{height:20px;width:84px;border-radius:var(--r-pill)}.skeleton__hero-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.skeleton__time{height:clamp(3.25rem,17vw,5rem);width:52%;border-radius:12px}.skeleton__plat{height:78px;width:90px;border-radius:var(--r-lg);flex:0 0 auto}@keyframes shimmer{0%,to{opacity:.4}50%{opacity:1}}.app{max-width:var(--maxw);margin:0 auto;padding:env(safe-area-inset-top) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));display:flex;flex-direction:column;min-height:100vh}.app__top{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--border)}.app__header{display:flex;align-items:center;justify-content:space-between;padding:14px 4px}.app__brand{display:flex;align-items:center;gap:8px}.app__logo{font-size:1.4rem}.app__header h1{font-size:1.15rem;margin:0;letter-spacing:.2px}.theme-toggle{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:999px;width:40px;height:40px;font-size:1.1rem;cursor:pointer;display:grid;place-items:center}.theme-toggle:hover{border-color:var(--accent)}.panels{display:flex;flex-direction:column;gap:16px;flex:1}.panel{display:flex;flex-direction:column;gap:var(--space-3)}.panel__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2) 10px}.panel__route{position:relative;display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.05rem}.panel__arrow{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid transparent;border-radius:var(--r-pill);background:transparent;color:var(--accent);font:inherit;cursor:pointer;transition:background var(--transition),border-color var(--transition),transform var(--transition)}.panel__arrow:hover{background:var(--selected-bg);border-color:var(--accent)}.panel__arrow:active{transform:scale(.88)}.panel__arrow:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel__station{display:inline-flex}.station-edit{border:none;background:transparent;padding:2px;margin:-2px;font:inherit;font-weight:700;color:var(--text);cursor:pointer;border-bottom:1px dashed var(--text-dim);border-radius:4px 4px 0 0;transition:color .15s,border-color .15s}.station-edit:hover,.station-edit[aria-expanded=true]{color:var(--accent);border-bottom-color:var(--accent)}.station-edit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fav-chip__star,.fav-chip__remove{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:50%;background:transparent;color:var(--text-dim);font-size:.8rem;line-height:1;cursor:pointer}.fav-chip__star:disabled{color:var(--accent);cursor:default}.fav-chip__star:hover:not(:disabled),.fav-chip__remove:hover{color:var(--accent)}.fav-chip__label{border:none;background:transparent;color:inherit;font:inherit;font-weight:600;font-size:.82rem;cursor:pointer;padding:0 2px}.fav-chip__star:focus-visible,.fav-chip__remove:focus-visible,.fav-chip__label:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fav-drop__row{display:flex;align-items:center;gap:4px;padding:2px 4px;border-radius:8px}.fav-drop__row--active{background:color-mix(in srgb,var(--accent) 12%,transparent)}.fav-drop__row .fav-chip__label{flex:1;text-align:left}.fav-drop__empty{padding:8px 6px;font-size:.8rem;color:var(--text-dim)}.fav-drop__save{margin-top:2px;padding:8px 6px;border:none;border-top:1px solid var(--border);border-radius:0 0 6px 6px;background:transparent;color:var(--accent);font:inherit;font-weight:600;font-size:.82rem;text-align:left;cursor:pointer}.route-fav{position:relative;display:inline-flex;align-items:center;gap:var(--space-1);flex:0 0 auto;margin-left:auto}.route-fav__trigger,.route-fav__act{display:inline-flex;align-items:center;justify-content:center;gap:3px;height:30px;padding:0 9px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--panel);color:var(--text-dim);font:inherit;font-size:.85rem;cursor:pointer;transition:color var(--transition),border-color var(--transition),background var(--transition)}.route-fav__act{width:30px;padding:0}.route-fav__caret{font-size:.62rem}.route-fav__trigger:hover,.route-fav__act:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.route-fav__act:disabled{cursor:default}.route-fav__act--on,.route-fav__act--on .fa-star{color:var(--accent)}.route-fav__act--on{border-color:var(--accent)}.route-fav__trigger:focus-visible,.route-fav__act:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.route-fav__menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:230px;max-width:min(320px,calc(100vw - 24px));background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:2px}.station-picker{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:min(340px,calc(100vw - 24px));background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:8px}.station-picker__current{margin:2px 4px 8px;font-size:.78rem;line-height:1.3;color:var(--text-dim)}.station-picker__current strong{color:var(--text);font-weight:700}.station-picker__input{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font:inherit;font-weight:500}.station-picker__input:focus-visible{outline:none;border-color:var(--accent)}.station-picker__heading{margin:8px 4px 0;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.station-picker__list{list-style:none;margin:6px 0 0;padding:0;max-height:280px;overflow-y:auto}.station-picker__opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-radius:8px;cursor:pointer;font-weight:500}.station-picker__opt--active{background:var(--accent);color:var(--accent-ink)}.station-picker__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.station-picker__crs{flex-shrink:0;font-size:.72rem;font-weight:700;letter-spacing:.04em;opacity:.7}.station-picker__empty{padding:12px;text-align:center;color:var(--text-dim)}.panel__state{padding:18px;text-align:center;color:var(--text-dim);background:var(--card);border-radius:12px}.panel__state--error{color:var(--cancelled);background:var(--cancelled-bg)}.panel__state-hint{display:block;margin-top:6px;font-size:.85rem;opacity:.8}.panel__updated{margin-top:auto;text-align:right;font-size:.75rem;color:var(--text-dim)}.hero{display:flex;flex-direction:column;gap:var(--space-2);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--space-5);box-shadow:var(--shadow-lg)}.hero--cancelled{background:var(--cancelled-bg);border-color:color-mix(in srgb,var(--cancelled) 35%,transparent)}.hero__head{display:flex;align-items:center;gap:var(--space-2)}.hero__route-slot{flex:1;min-width:0}.hero__route-slot .panel__route{font-size:var(--fs-base)}.hero__actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.hero__actions .route-fav{margin-left:0}.hero__top{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.hero__top .badge{align-self:center;display:inline-flex;align-items:center;line-height:1;padding:5px 10px}.hero__headline{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.hero__time-wrap{display:flex;flex-direction:column;min-width:0}.hero__time-cap{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--text-dim);line-height:1;margin-bottom:4px}.hero__time{font-size:var(--fs-hero);font-weight:800;line-height:.92;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.hero__sched-line{display:flex;align-items:baseline;gap:8px;font-size:var(--fs-base)}.hero__delay-note{color:var(--late);font-weight:600;font-size:var(--fs-sm)}.hero__sched-note{color:var(--text-dim);font-size:var(--fs-sm)}.hero__status{font-size:var(--fs-lg);color:var(--text);font-weight:600}.icon-btn,.pin-btn{display:grid;place-items:center;width:34px;height:34px;border:1.5px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text-dim);font-size:.85rem;cursor:pointer;transition:border-color .2s,color .2s,background .2s;flex:0 0 auto}.pin-btn .fa-thumbtack{transition:transform .2s ease;transform:rotate(20deg)}.icon-btn:hover,.pin-btn:hover{border-color:var(--accent);color:var(--accent)}.icon-btn:focus-visible,.pin-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pin-btn--active{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.pin-btn--active .fa-thumbtack{transform:rotate(0)}.hero__bus{font-size:var(--fs-sm);font-weight:600;color:var(--text-dim)}.hero__reliability{margin:var(--space-3) 0 0;font-size:var(--fs-sm);color:var(--text-dim)}.hero__reliability-pct{font-weight:700;font-variant-numeric:tabular-nums}.hero__reliability-pct--good{color:var(--ontime)}.hero__reliability-pct--ok{color:var(--accent)}.hero__reliability-pct--poor{color:var(--late)}.hero__reason{margin:0;font-size:var(--fs-sm);color:var(--cancelled)}.hero__facts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin-top:var(--space-2)}.hero__fact{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-dim);font-variant-numeric:tabular-nums}.hero__leave{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:var(--space-1);padding:5px 12px;border-radius:var(--r-pill);background:var(--selected-bg);font-size:var(--fs-base);font-weight:700;color:var(--accent)}.hero__leave--now{color:var(--late);background:var(--late-bg)}.hero__track{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.hero__track .compact-track{margin-bottom:0}.hero__then{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border);font-variant-numeric:tabular-nums}.hero__track+.hero__then{border-top:none;padding-top:0}.hero__then-label{font-size:var(--fs-sm);color:var(--text-dim)}.hero__then-time{border:none;background:transparent;color:var(--text);font:inherit;font-weight:600;font-size:var(--fs-base);padding:2px 6px;border-radius:var(--r-sm);cursor:pointer;transition:color var(--transition),background var(--transition)}.hero__then-time:hover,.hero__then-time--active{color:var(--accent);background:var(--selected-bg)}.hero__then-live{color:var(--text-dim);font-weight:500}.hero__then-time:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.controls{display:flex;flex-direction:column;gap:var(--space-2)}.walk-chip{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:2px 9px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-dim);font:inherit;font-size:.82rem;cursor:pointer;transition:color .15s,border-color .15s}.walk-chip:hover{color:var(--accent);border-color:var(--accent)}.walk-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.walk-chip--editing{gap:4px;padding:2px 6px;cursor:default}.walk-chip__step,.walk-chip__done{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:50%;background:var(--card);color:var(--text);font:inherit;font-size:1rem;line-height:1;cursor:pointer}.walk-chip__step:disabled{opacity:.4;cursor:default}.walk-chip__step:hover:not(:disabled),.walk-chip__done:hover{background:var(--accent);color:var(--accent-ink)}.walk-chip__val{min-width:44px;text-align:center;font-variant-numeric:tabular-nums}.strike{text-decoration:line-through;color:var(--text-dim)}.platform{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 20px;border-radius:var(--r-lg);border:1.5px solid var(--border);background:var(--card);flex:0 0 auto}.platform__num{font-size:clamp(2rem,10vw,3rem);font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--text)}.platform__note{font-size:var(--fs-sm);letter-spacing:.02em;color:var(--text-dim)}.platform--confirmed{border-color:var(--ontime);background:var(--ontime-bg)}.platform--confirmed .platform__num,.platform--confirmed .platform__note{color:var(--ontime)}.platform--expected{border-color:var(--border)}.platform--expected .platform__num,.platform--expected .platform__note{color:var(--text-dim)}.platform--changed{border-color:var(--late);background:var(--late-bg)}.platform--changed .platform__num,.platform--changed .platform__note{color:var(--late)}.platform--tbd .platform__num{color:var(--text-dim)}.badge{align-self:flex-start;font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:999px}.badge--ontime{color:var(--ontime);background:var(--ontime-bg)}.badge--late{color:var(--late);background:var(--late-bg)}.badge--cancelled{color:var(--cancelled);background:var(--cancelled-bg)}.badge--unknown{color:var(--text-dim);background:var(--card)}.departures{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.departure{border-top:1px solid var(--border)}.departure--active{border-top-color:transparent;border-left:3px solid var(--accent);border-radius:8px;background-color:var(--card);background-image:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--accent) 9%,transparent) 0,color-mix(in srgb,var(--accent) 9%,transparent) 8px,transparent 8px,transparent 16px)}.departure--active .departure__time{color:var(--accent);font-weight:700}.departure__btn,.departure__inner{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:10px 4px;font-size:.95rem;width:100%;text-align:left;font-family:inherit;color:inherit}.departure__btn{border:none;background:transparent;cursor:pointer;border-radius:8px;transition:background .1s}.departure__btn:hover{background:var(--card)}.departure__btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.departure__time{display:flex;gap:6px;align-items:baseline;font-variant-numeric:tabular-nums;font-weight:600}.departure__exp{color:var(--late);font-size:.85rem}.departure__info{display:flex;align-items:baseline;gap:8px;min-width:0;flex-wrap:wrap}.departure__plat{color:var(--text-dim);font-size:.85rem}.departure__plat-tag{font-size:.75rem;opacity:.7}.departure__cars{color:var(--text-dim);font-size:.8rem}.departure__op{color:var(--text-dim);font-size:.8rem;white-space:nowrap}.departure__eta{color:var(--text-dim);font-size:.8rem;font-variant-numeric:tabular-nums}.departure__when{color:var(--text-dim);text-align:right;font-variant-numeric:tabular-nums}.departure--cancelled .departure__time{text-decoration:line-through;color:var(--text-dim)}.departure--departed{opacity:.55}.share-btn{align-self:center}.when{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.when__pick{gap:6px;cursor:pointer}.when__input{border:none;background:transparent;color:var(--text);font:inherit;font-size:var(--fs-sm);width:9em;cursor:pointer;color-scheme:light dark}.when__input:focus-visible{outline:none}.when__input::-webkit-calendar-picker-indicator{display:none}.when__input-wrap{position:relative;display:inline-flex;align-items:center}.when__placeholder{font-size:var(--fs-sm);color:var(--text-dim);pointer-events:none;white-space:nowrap}.when__input--empty{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0}.departures-list{display:flex;flex-direction:column;gap:var(--space-1)}.page-nav__btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;border:1px dashed var(--border);border-radius:10px;background:transparent;color:var(--text-dim);font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s,color .15s}.page-nav__btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.page-nav__btn:disabled{opacity:.4;cursor:default}.track{margin:0;padding:8px 10px 4px;background:var(--card);border-radius:14px;overflow:hidden}.track--loading{padding:18px;text-align:center;color:var(--text-dim)}.compact-track{margin:0 0 var(--space-3);padding:var(--space-2) 0 0;overflow:hidden;display:flex;flex-direction:column;align-items:center}.compact-track__svg{display:block;width:100%;max-width:340px;height:auto;overflow:visible}.compact-track__rail{stroke:var(--rail);stroke-width:4;stroke-linecap:round}.compact-track__rail--done{stroke:var(--rail-done);stroke-width:4;transition:x2 .6s linear}.compact-track__dot{fill:var(--panel);stroke:var(--dot);stroke-width:2}.compact-track__dot--filled{fill:var(--dot-passed);stroke:var(--dot-passed)}.compact-track__gap{fill:var(--dot);font-size:14px;font-weight:700;letter-spacing:1px}.compact-track__gap--passed{fill:var(--dot-passed)}.compact-track__label{fill:var(--text);font-size:9px;font-weight:700}.compact-track__train{transition:transform .6s linear}.compact-track__train-halo{fill:var(--train);opacity:.22;animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.22;transform:scale(1)}50%{opacity:.1;transform:scale(.8)}}.compact-track__train-core{fill:var(--train);stroke:var(--panel);stroke-width:2}.compact-track__caption{margin-top:6px;text-align:center;font-size:.82rem;color:var(--text-dim)}.stop-list{list-style:none;margin:0;padding:0;background:transparent}.stop-list__item,.stop-list__summary{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;min-height:30px;position:relative}.stop-list__item:not(:last-child):before,.stop-list__summary:not(:last-child):before{content:"";position:absolute;left:8px;top:50%;bottom:-50%;width:2px;background:var(--rail)}.stop-list__item.is-passed:not(:last-child):before{background:var(--rail-done)}.stop-list__dot{width:9px;height:9px;margin-left:4px;border-radius:50%;background:var(--panel);border:2px solid var(--dot);box-sizing:border-box;z-index:1}.stop-list__item.is-passed .stop-list__dot{background:var(--dot-passed);border-color:var(--dot-passed)}.stop-list__item.is-major .stop-list__dot{border-color:var(--accent)}.stop-list__item.is-current .stop-list__dot{background:var(--train);border-color:var(--train);box-shadow:0 0 0 4px color-mix(in srgb,var(--train) 25%,transparent)}.stop-list__name{font-size:.85rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stop-list__item.is-major .stop-list__name,.stop-list__item.is-current .stop-list__name{color:var(--text);font-weight:700}.stop-list__time{display:inline-flex;align-items:baseline;gap:6px;font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--text-dim)}.stop-list__time-val.is-actual{color:var(--text);font-weight:600}.stop-list__time-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.stop-list__summary{color:var(--text-dim);cursor:pointer;border-radius:6px;transition:background .15s}.stop-list__summary:hover,.stop-list__summary:focus-visible{background:color-mix(in srgb,var(--accent) 8%,transparent)}.stop-list__summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.stop-list__ellipsis{margin-left:4px;text-align:center;width:9px;color:var(--dot);font-weight:700;z-index:1}.stop-list__sum-text{font-size:.78rem;font-style:italic}.stop-list__enroute{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;min-height:26px;position:relative}.stop-list__enroute:not(:last-child):before{content:"";position:absolute;left:8px;top:50%;bottom:-50%;width:2px;background:var(--rail)}.stop-list__train{display:grid;place-items:center;width:18px;z-index:1}.stop-list__train i{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--train);color:var(--accent-ink);font-size:.56rem;box-shadow:0 0 0 3px color-mix(in srgb,var(--train) 25%,transparent)}.stop-list__enroute-text{font-size:.78rem;font-weight:600;color:var(--train)}.stop-list__item.is-past-dest{opacity:.45}@media(max-width:420px){.hero{padding:var(--space-4)}.departure__when{display:none}}@media(pointer:coarse){.hero__then-time{min-height:44px;padding:8px 12px}.icon-btn,.pin-btn,.panel__arrow,.route-fav__act{width:44px;height:44px}.btn,.walk-chip,.when__pick,.route-fav__trigger{min-height:44px}.walk-chip__step,.walk-chip__done,.fav-chip__star,.fav-chip__remove{width:40px;height:40px}}.app__footer{text-align:center;font-size:.75rem;color:var(--text-dim);padding:16px 4px}.app__version{display:block;margin-top:4px;font-variant-numeric:tabular-nums;opacity:.6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:9px 16px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--panel);color:var(--text);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:border-color var(--transition),color var(--transition),background var(--transition);white-space:nowrap}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.45;cursor:default;border-color:var(--border);color:var(--text-dim)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn--primary:hover{filter:brightness(1.05);color:var(--accent-ink)}.btn--ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.btn--ghost:hover{background:var(--card);border-color:transparent;color:var(--text)}.btn--block{width:100%}.btn--sm{padding:6px 12px;font-size:var(--fs-xs)}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--card);color:var(--text-dim);font:inherit;font-size:var(--fs-sm);font-weight:600;white-space:nowrap}button.chip{cursor:pointer;transition:border-color var(--transition),color var(--transition)}button.chip:hover{border-color:var(--accent);color:var(--accent)}button.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.section{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);overflow:hidden}.section__head{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:13px var(--space-4);border:none;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.section__head:hover{background:var(--card)}.section__head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.section__icon{color:var(--accent);font-size:var(--fs-base);width:1.1em;text-align:center}.section__title{font-weight:700;font-size:var(--fs-base)}.section__meta{flex:1;text-align:right;font-size:var(--fs-sm);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section__chevron{font-size:var(--fs-xs);color:var(--text-dim);transition:transform var(--transition)}.section__head[aria-expanded=true] .section__chevron{transform:rotate(180deg)}.section__body{padding:0 var(--space-4) var(--space-4)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
