@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--background: #0c0d10;--surface: #16171c;--surface-raised: #1e1f25;--border: #26282f;--line: #2e3038;--text: #f5f5f7;--text-muted: #a1a1a6;--text-subtle: #7d7d85;--accent: #0b5cff;--accent-bright: #4392d8;--accent-text: #7fb2e8;--accent-tint: #132235;--on-accent: #fff;--ok: #6eb49b;--ok-tint: #1c3530;--warn: #dda176;--warn-tint: #3e2e25;--bad: #f07a7a;--bad-tint: #3f2226;--ns: #ffc917;--ns-ink: #003082;--glow: rgba(67, 146, 216, .16);--hero-glow: rgba(67, 146, 216, .26);--sun: #f2c14e;--ui-scale: 1;--shift-x: 0px;--shift-y: 0px;font-size:calc(var(--ui-scale) * min(.8333vw,1.4815vh))}:root[data-theme=light]{color-scheme:light;--background: #f5f7fb;--surface: #ffffff;--surface-raised: #eaeef6;--border: #dfe4ee;--line: #e6eaf2;--text: #1a1b21;--text-muted: #5b5f6e;--text-subtle: #8a8e9c;--accent: #0b5cff;--accent-bright: #0b5cff;--accent-text: #1160c9;--accent-tint: #e3ecff;--ok: #2f8a6b;--ok-tint: #e1f3ec;--warn: #b5651d;--warn-tint: #fcefe2;--bad: #d1343a;--bad-tint: #fde7e8;--glow: rgba(11, 92, 255, .1);--hero-glow: rgba(11, 92, 255, .14);--sun: #c98a00}@media(prefers-color-scheme:light){:root:not([data-theme]){color-scheme:light;--background: #f5f7fb;--surface: #ffffff;--surface-raised: #eaeef6;--border: #dfe4ee;--line: #e6eaf2;--text: #1a1b21;--text-muted: #5b5f6e;--text-subtle: #8a8e9c;--accent-bright: #0b5cff;--accent-text: #1160c9;--accent-tint: #e3ecff;--ok: #2f8a6b;--ok-tint: #e1f3ec;--warn: #b5651d;--warn-tint: #fcefe2;--bad: #d1343a;--bad-tint: #fde7e8;--glow: rgba(11, 92, 255, .1);--hero-glow: rgba(11, 92, 255, .14);--sun: #c98a00}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--background);color:var(--text);font-family:Inter Variable,Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:"tnum" 1,"cv11" 1,"ss01" 1;-webkit-font-smoothing:antialiased;letter-spacing:-.011em}body{background:radial-gradient(60rem 30rem at 85% -10%,var(--glow),transparent 70%),radial-gradient(50rem 30rem at -10% 110%,var(--glow),transparent 70%),var(--background)}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em;color:var(--text-muted)}.icon{width:1em;height:1em;flex:none;vertical-align:-.125em}.app{height:100vh;display:flex;flex-direction:column;gap:1.25rem;padding:1.75rem 2.25rem 2rem;transform:translate(var(--shift-x),var(--shift-y))}.app-empty{align-items:center;justify-content:center}.top{display:flex;align-items:center;gap:2rem}.brand{display:flex;align-items:center;gap:.75rem}.brand-mark{display:grid;place-items:center;width:3rem;height:3rem;border-radius:.85rem;background:linear-gradient(145deg,var(--accent-bright),var(--accent));color:var(--on-accent);font-size:1.6rem;box-shadow:0 .5rem 1.5rem #0b5cff59}.brand-word{font-size:1.9rem;font-weight:700;letter-spacing:-.03em}.brand-word b{font-weight:700;color:var(--accent-text)}.route-title{flex:1;font-size:1.6rem;font-weight:500;color:var(--text-muted);padding-left:2rem;border-left:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clock{display:flex;flex-direction:column;align-items:flex-end;line-height:1}.clock-time{font-size:3.4rem;font-weight:650;letter-spacing:-.04em}.clock-time small{font-size:.5em;color:var(--text-subtle);font-weight:500;letter-spacing:0}.clock-date{margin-top:.35rem;font-size:1.05rem;color:var(--text-muted)}.icon-btn{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:1.6rem;cursor:pointer;transition:color .2s,background .2s,transform .4s}.icon-btn:hover,.icon-btn:focus-visible{color:var(--text);background:var(--surface-raised)}.top .icon-btn:hover .icon{transform:rotate(60deg);transition:transform .4s}.icon-btn.sm{width:2.4rem;height:2.4rem;font-size:1.1rem}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.danger:hover{color:var(--bad)}:focus-visible{outline:.2rem solid var(--accent-bright);outline-offset:.15rem}.banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-radius:1rem;background:var(--warn-tint);color:var(--warn);font-size:1.2rem;font-weight:550}.body{flex:1;min-height:0;display:grid;gap:1.25rem}.bands{min-height:0;display:flex;flex-direction:column;gap:1.25rem}.body.with-dis{grid-template-columns:minmax(0,1fr) minmax(0,21rem)}.band{flex:1 1 0;min-height:0;display:grid;gap:1rem;grid-template-columns:minmax(0,22rem) minmax(0,1fr)}.band-multi{grid-template-columns:minmax(0,22rem) minmax(0,1fr) minmax(0,1fr)}.route-hero{position:relative;display:flex;flex-direction:column;min-height:0;padding:1.4rem 1.5rem;border-radius:1.5rem;background:radial-gradient(120% 60% at 0% 100%,var(--hero-glow),transparent 70%),linear-gradient(160deg,var(--surface) 40%,var(--accent-tint) 140%);border:1px solid var(--border);overflow:hidden;line-height:1}.route-hero>*{flex-shrink:0}.rh-title{font-size:1.2rem;font-weight:650;color:var(--text);letter-spacing:-.015em;margin-bottom:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rh-msg{flex:1;display:flex;align-items:center;gap:.75rem;font-size:1.2rem;color:var(--text-muted)}.hero-label{font-size:.95rem;font-weight:650;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.hero-big{margin:.2rem 0 .35rem;font-size:5.6rem;font-weight:750;letter-spacing:-.055em;color:var(--ok)}.bands-1 .hero-big{font-size:7rem}.hero-big small{font-size:.32em;font-weight:600;letter-spacing:-.01em;margin-left:.35rem}.tone-warn .hero-big,.tone-warn .hero-label{color:var(--warn)}.tone-bad .hero-big,.tone-bad .hero-label{color:var(--bad)}.tone-bad .hero-big{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}.hero-sub{font-size:1.05rem;color:var(--text-muted)}.hero-sub b{color:var(--text)}.tl{--row: 2.35rem;--tl-time: 4rem;list-style:none;margin:auto 0 0;padding:1rem 0 0}.tl-row{--seg: var(--text-subtle);position:relative;display:grid;grid-template-columns:var(--tl-time) 1.6rem minmax(0,1fr) auto;align-items:center;column-gap:.55rem;height:var(--row);font-size:1.05rem;color:var(--text-muted);white-space:nowrap}.tl-row:after{content:"";position:absolute;left:calc(var(--tl-time) + .55rem + .8rem);top:50%;height:var(--row);transform:translate(-50%);border-left:.3rem solid var(--seg)}.tl-time{text-align:right;font-size:1.2rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.tl-time .late{color:var(--warn)}.tl-dot{position:relative;z-index:1;justify-self:center;width:.95rem;height:.95rem;border-radius:50%;border:.2rem solid var(--seg);background:var(--surface)}.tl-body{display:flex;align-items:center;gap:.5rem;min-width:0;overflow:hidden}.tl-body b{color:var(--text);font-weight:650}.tl-body .badge{font-size:.95rem;padding:.22rem .5rem}.tl-body .live:before{margin:0}.tl-place{overflow:hidden;text-overflow:ellipsis;min-width:0}.tl-place strong{color:var(--text)}.tl-place strong.changed{color:var(--warn)}.tl-extra .crowd{margin:0}.tl-extra{font-size:.95rem;color:var(--text-subtle)}.tl-access:after{border-left-style:dotted}.tl-bus{--seg: var(--accent-bright)}.tl-train{--seg: var(--ns)}.tl-bus .tl-dot,.tl-train .tl-dot{background:var(--seg)}.tl-wait:after{border-left:.2rem dashed var(--text-subtle)}.tl-wait .tl-time{font-size:1rem;font-weight:550;color:var(--text-subtle)}.tl-wait .tl-dot{width:.65rem;height:.65rem;border-width:.15rem}.tl-wait em{font-style:normal;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .4rem;border-radius:.35rem;color:var(--warn);background:var(--warn-tint)}.tl-wait.is-tight .tl-body{color:var(--warn)}.tl-egress .tl-time{font-size:1rem;font-weight:550;color:var(--text-subtle)}.tl-end:after{display:none}.tl-end .tl-dot{--seg: var(--ok);width:1.15rem;height:1.15rem;background:var(--ok)}.tl-end .tl-body>.icon{color:var(--ok)}.wx-sun .icon,.wx-partly .icon{color:var(--sun)}.wx-moon .icon,.wx-cloud .icon,.wx-fog .icon{color:var(--text-muted)}.wx-rain1 .icon,.wx-rain2 .icon,.wx-rain3 .icon,.wx-snow .icon{color:var(--accent-text)}.wx-storm .icon{color:var(--warn)}.wx-legs{display:flex;flex-direction:column;gap:.45rem;margin-top:1.1rem}.wx-leg{min-width:0;display:flex;align-items:center;gap:.65rem;padding:.5rem .75rem .5rem .5rem;border-radius:.9rem;background:var(--surface-raised)}.wx-how{display:grid;place-items:center;flex:none;width:2.4rem;height:2.4rem;border-radius:.7rem;background:var(--accent-tint);color:var(--accent-text);font-size:1.3rem}.wx-when{flex:1;display:flex;align-items:center;gap:.6rem;min-width:0;line-height:1.15}.wx-when small{flex:none;font-size:.95rem;color:var(--text-muted)}.wx-what{margin-left:auto;min-width:0;display:flex;align-items:center;gap:.35rem;font-size:1rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wx-what .icon{flex:none;font-size:1.3rem}.wx-what b{color:var(--text);font-weight:700}.bands-1 .wx-what{font-size:1.1rem}.wx-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:1.05rem;font-weight:650;white-space:nowrap}.wx-chip .icon{font-size:1.25rem}.hero-alert{display:flex;align-items:flex-start;gap:.55rem;margin-top:1rem;padding:.7rem .85rem;border-radius:.8rem;background:var(--bad-tint);color:var(--bad);font-size:1rem;line-height:1.3}.hero-alert .icon{margin-top:.1rem}.hero-alert b{font-weight:700}.tl-blocked .tl-body{color:var(--bad)}.tl-blocked .tl-dot{border-color:var(--bad)}.seg-unknown.seg-blocked{border-color:var(--bad);color:var(--bad)}.alts{margin-top:1.25rem}.alt-card{margin-top:.75rem;padding:1rem;border-radius:.9rem;border:1px dashed var(--border);background:var(--surface)}.alt-card .field input,.alt-card select{background:var(--background)}.alt-head{display:flex;align-items:center;margin-bottom:.75rem}.alt-tag{color:var(--accent-text);font-weight:600}.tl-unknown .tl-dot{background:var(--surface);border-color:var(--text-subtle);border-style:dashed}.tl-unknown .tl-body>.icon{color:var(--text-subtle)}.bands-1 .band{grid-template-columns:minmax(0,28rem) minmax(0,1fr)}.bands-1 .band-multi{grid-template-columns:minmax(0,25rem) minmax(0,1fr) minmax(0,1.12fr)}.band-multi .row{gap:1rem}.leg-stack{display:flex;flex-direction:column;gap:1rem;min-height:0}.leg-stack>.panel{flex:1 1 0;min-height:0}.band-multi .t-time{width:5.6rem}.band-multi .cd{min-width:4.6rem}.bands-1 .tl{--row: 2.8rem;--tl-time: 5rem;margin-top:1.5rem}.bands-1 .later{margin-top:auto}.bands-1 .tl-row{font-size:1.25rem}.bands-1 .tl-time{font-size:1.5rem}.bands-1 .tl-body .badge{font-size:1.1rem}.bands-3 .tl{--row: 2rem}.later{display:flex;align-items:center;gap:.9rem;margin-top:.9rem;font-size:1rem;color:var(--text-muted)}.later-label{font-size:.8rem;font-weight:650;text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle)}.later b{color:var(--text);font-weight:650}.sync-warn{display:inline-flex;align-items:center;gap:.4rem;font-size:1rem;color:var(--warn)}.bands-2 .row,.bands-3 .row,.leg-stack .row{padding:.6rem .9rem}.bands-2 .t-main,.bands-3 .t-main,.leg-stack .t-main{font-size:1.7rem}.bands-2 .r-title,.bands-3 .r-title,.leg-stack .r-title{font-size:1.25rem}.bands-2 .r-meta,.bands-3 .r-meta,.leg-stack .r-meta,.bands-2 .r-status,.bands-3 .r-status{font-size:.95rem;margin-top:.15rem}.bands-2 .track,.bands-3 .track,.leg-stack .track{height:3.3rem;width:3.8rem}.bands-2 .track b,.bands-3 .track b,.leg-stack .track b,.bands-2 .cd,.bands-3 .cd,.leg-stack .cd{font-size:1.5rem}.bands-2 .panel-head,.bands-3 .panel-head,.leg-stack .panel-head{padding:.9rem 1.25rem}.bands-2 .panel-icon,.bands-3 .panel-icon,.leg-stack .panel-icon{width:2.4rem;height:2.4rem;font-size:1.2rem}.bands-2 .panel-titles h2,.bands-3 .panel-titles h2,.leg-stack .panel-titles h2{font-size:1.25rem}.bands-3 .hero-big{font-size:4rem}.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border-radius:.55rem;font-weight:750;font-size:1.15rem;line-height:1;white-space:nowrap;letter-spacing:-.01em}.badge-bus{background:var(--accent);color:var(--on-accent)}.badge-train{background:var(--ns);color:var(--ns-ink)}.panel{display:flex;flex-direction:column;min-height:0;border-radius:1.5rem;background:var(--surface);border:1px solid var(--border);overflow:hidden}.panel-head{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.panel-icon{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex:none;border-radius:.8rem;background:var(--accent-tint);color:var(--accent-text);font-size:1.4rem}.panel-titles{flex:1;min-width:0}.panel-titles h2{margin:0;font-size:1.45rem;font-weight:650;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-titles p{margin:.15rem 0 0;font-size:1rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.updated{font-size:.95rem;color:var(--text-subtle)}.stale{color:var(--warn);font-size:1.2rem}.rows{list-style:none;margin:0;padding:0 .5rem;flex:1;min-height:0;overflow:hidden}[data-fit]>[hidden]{display:none!important}.row{display:flex;align-items:center;gap:1.25rem;padding:.95rem 1rem;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.t-time{flex:none;width:6.4rem;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.35rem;line-height:1.05}.t-main{font-size:2rem;font-weight:700;letter-spacing:-.035em}.t-actual{width:100%;font-size:1rem;color:var(--warn);font-weight:600}.delay{font-size:1rem;font-weight:700;padding:.1rem .35rem;border-radius:.4rem}.delay.late{color:var(--warn);background:var(--warn-tint)}.delay.early{color:var(--ok);background:var(--ok-tint)}.cancelled .t-main{text-decoration:line-through;text-decoration-thickness:.12em;color:var(--bad)}.is-cancelled .r-title,.is-cancelled .track,.is-cancelled .cd{opacity:.45}.r-main{flex:1;min-width:0}.r-title{display:flex;align-items:center;gap:.7rem;font-size:1.45rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.r-dest{min-width:0;overflow:hidden;text-overflow:ellipsis}.r-meta{margin-top:.25rem;font-size:1.05rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.r-meta b{color:var(--text);font-weight:650}.r-meta .delay{font-size:.85rem;margin-left:.25rem}.r-status{display:flex;align-items:center;gap:.45rem;margin-top:.35rem;font-size:1rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-warn{color:var(--warn)}.status-bad{color:var(--bad);font-weight:650}.live{color:var(--ok);font-weight:600}.live:before{content:"";display:inline-block;width:.55rem;height:.55rem;margin-right:.4rem;border-radius:50%;background:var(--ok);vertical-align:.1em;animation:pulse 2s ease-in-out infinite}.planned{color:var(--text-subtle)}.sched{color:var(--text-subtle);font-style:italic}.tl-row.is-sched .badge-bus,.seg-bus.seg-sched{background:transparent;color:var(--accent-text);border:.12rem dashed var(--accent-bright)}.tl-row.is-sched .tl-dot{background:var(--surface)}.link{color:var(--accent-text);font-weight:600}.link .icon{margin-right:.25rem}.track{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:4.4rem;height:4rem;border-radius:.85rem;background:var(--surface-raised);line-height:1}.track span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle)}.track b{margin-top:.2rem;font-size:1.8rem;font-weight:750}.track.changed{background:var(--warn-tint);color:var(--warn)}.track.changed span{color:var(--warn)}.cd{flex:none;min-width:5.5rem;text-align:right;font-size:1.75rem;font-weight:700;letter-spacing:-.03em;color:var(--text)}.cd small{font-size:.55em;font-weight:600;color:var(--text-muted);margin-left:.2rem}.cd-now{color:var(--ok)}.cd-gone{color:var(--text-subtle)}.crowd{display:inline-flex;align-items:flex-end;gap:.05rem;margin:0 .5rem 0 0;vertical-align:-.1em;font-size:.95rem;flex:none}.crowd i{display:flex;color:var(--line)}.crowd-1 i.on{color:var(--ok)}.crowd-2 i.on{color:var(--warn)}.crowd-3 i.on{color:var(--bad)}.empty{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.75rem;padding:2rem;font-size:1.3rem;color:var(--text-muted);text-align:center}.empty>.icon{font-size:2.6rem}.empty>div,.empty{line-height:1.4}.empty b{display:block;color:var(--text);font-weight:600}.empty span{display:block;font-size:1.05rem}.empty.error>.icon{color:var(--warn)}.empty.ok>.icon{color:var(--ok)}.panel{position:relative}.rot-bar{position:absolute;left:1.5rem;right:1.5rem;bottom:.55rem;height:.2rem;border-radius:.2rem;background:var(--line);opacity:.6;overflow:hidden}.has-rot>.rows,.has-rot>.empty{margin-bottom:1.1rem}.rot-bar i{display:block;height:100%;border-radius:inherit;background:var(--accent-bright);transform-origin:left;animation:rot-progress linear infinite}@keyframes rot-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.rot-dots{display:flex;gap:.35rem}.rot-dots i{width:.55rem;height:.55rem;border-radius:50%;background:var(--line)}.rot-dots i.on{background:var(--accent-bright)}.jr-list{list-style:none;margin:0;padding:.75rem;flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:.6rem}.jr{padding:.85rem 1rem .8rem;border-radius:1rem;border:1px solid var(--line)}.jr.is-next{background:var(--accent-tint);border-color:transparent}.jr-top{display:flex;align-items:center;gap:.75rem;min-width:0}.jr-times{display:inline-flex;align-items:center;gap:.45rem;font-size:1.6rem;font-weight:700;letter-spacing:-.03em}.jr-times small{font-size:.6em;font-weight:600;letter-spacing:0;color:var(--text-muted)}.jr-times .icon{font-size:1rem;color:var(--text-subtle)}.jr-dur{min-width:0;font-size:1.05rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jr-times,.jr-tag,.jr .cd,.wx-chip{flex:none}.jr-tag{margin-right:.5rem;padding:.1rem .4rem;border-radius:.4rem;background:var(--ok-tint);color:var(--ok);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.jr-tag-on{background:var(--accent-tint);color:var(--accent-text)}.jr-top .pin-btn{margin-left:auto}.jr-top .cd+.pin-btn{margin-left:0}.jr .cd{margin-left:auto;min-width:0;font-size:1.5rem}.jr-bar{display:flex;gap:.2rem;height:1.7rem;margin:.6rem 0 .5rem}.seg{flex-basis:0;min-width:1.7rem;display:flex;align-items:center;justify-content:center;gap:.25rem;border-radius:.4rem;font-size:.9rem;font-weight:700;white-space:nowrap;overflow:hidden}.seg .fit-in{display:inline-flex;align-items:center;gap:.25rem;flex:none}.seg-bus{background:var(--accent);color:var(--on-accent)}.seg-train{background:var(--ns);color:var(--ns-ink)}.seg-access{border:.15rem dotted var(--text-subtle);color:var(--text-muted)}.seg-wait{background:repeating-linear-gradient(135deg,var(--surface-raised) 0 .35rem,transparent .35rem .7rem);border:1px solid var(--line);color:var(--text-muted);font-weight:600}.seg-unknown{border:.15rem dashed var(--line);color:var(--text-subtle)}.jr-steps{font-size:1rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jr-steps b{color:var(--text);font-weight:650}.jr-steps .late{color:var(--warn)}.jr-steps i{margin:0 .4rem;font-style:normal;color:var(--text-subtle)}.bands-2 .jr,.bands-3 .jr{padding:.65rem .85rem}.bands-2 .jr-times,.bands-3 .jr-times{font-size:1.35rem}.bands-2 .jr-bar,.bands-3 .jr-bar{height:1.45rem;margin:.45rem 0 .35rem}.dis-list{list-style:none;margin:0;padding:1rem;display:flex;flex-direction:column;gap:.85rem;flex:1;min-height:0;overflow:hidden}.dis{padding:1.1rem 1.25rem;border-radius:1.1rem;background:var(--surface-raised);border-left:.3rem solid var(--text-subtle)}.dis-maintenance{border-left-color:var(--warn)}.dis-disruption,.dis-calamity{border-left-color:var(--bad)}.dis-head{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.dis-maintenance .dis-head .icon{color:var(--warn)}.dis-disruption .dis-head .icon,.dis-calamity .dis-head .icon{color:var(--bad)}.dis-head em{margin-left:auto;white-space:nowrap;font-style:normal;text-transform:none;letter-spacing:0;color:var(--text-subtle)}.dis.is-active .dis-head em{color:var(--bad)}.dis h3{margin:.4rem 0 0;font-size:1.3rem;font-weight:650;line-height:1.25}.dis p{display:flex;align-items:center;gap:.45rem;margin:.35rem 0 0;font-size:1.02rem;line-height:1.3;color:var(--text-muted)}.dis p .icon{flex:none;color:var(--text-subtle)}.dis .dis-part{margin-top:.15rem;font-size:.95rem}.dis .dis-when{color:var(--text);font-weight:550}.dis .dis-impact{color:var(--warn);font-weight:550}.dis .dis-impact .icon{color:var(--warn)}.spinner{display:inline-block;width:1.4em;height:1.4em;border-radius:50%;border:.18em solid var(--line);border-top-color:var(--accent-bright);animation:spin .9s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.15rem;border-radius:.8rem;border:1px solid var(--border);background:var(--surface-raised);font-weight:600;font-size:1rem;cursor:pointer;white-space:nowrap}.btn:hover{border-color:var(--text-subtle)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-bright)}.app-empty .btn{font-size:1.6rem;padding:1.2rem 2rem}.btn-ghost{background:transparent}.btn.danger{color:var(--bad)}#settings{position:fixed;inset:0;display:none;z-index:10;background:#05060899;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:2.5rem}#settings.open{display:grid;place-items:center}.sheet{width:min(64rem,100%);max-height:100%;display:flex;flex-direction:column;border-radius:1.5rem;background:var(--surface);border:1px solid var(--border);box-shadow:0 2rem 5rem #00000080;overflow:hidden;font-size:1rem}.sheet-head{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.sheet-head h2{margin:0;display:flex;align-items:center;gap:.6rem;font-size:1.5rem;font-weight:650}.spacer{flex:1}.sheet-body{overflow-y:auto;padding:.5rem 1.5rem 2rem}.sheet-section{padding:1.25rem 0;border-bottom:1px solid var(--line)}.sheet-section:last-child{border-bottom:0}.sheet-section h3{margin:0 0 1rem;font-size:1.15rem;font-weight:650}.muted{color:var(--text-muted);font-weight:400}.leg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem}.leg-grid.two{grid-template-columns:1fr 1fr;margin-top:1rem}.field{display:flex;flex-direction:column;gap:.35rem;min-width:0}.field-label{font-size:.85rem;font-weight:600;color:var(--text-muted)}.field-hint{font-size:.8rem;color:var(--text-subtle)}input[type=text],input[type=number],input[type=password],select,textarea{width:100%;padding:.65rem .85rem;border-radius:.7rem;border:1px solid var(--border);background:var(--background);font-size:1rem}textarea{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-bright);box-shadow:0 0 0 .2rem var(--accent-tint)}.field.toggle{flex-direction:row;align-items:center;gap:.6rem;align-self:end;padding-bottom:.7rem;font-weight:550}.field.toggle input{width:1.2rem;height:1.2rem;accent-color:var(--accent)}.note{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.95rem;color:var(--text-muted)}.note-ok{color:var(--ok)}.note-bad{color:var(--bad)}.legs{display:flex;flex-direction:column;gap:1rem}.leg-card{padding:1.1rem 1.25rem 1.25rem;border-radius:1.1rem;background:var(--surface-raised);border:1px solid var(--border)}.leg-card .field input,.leg-card select{background:var(--surface)}.leg-card-head{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.leg-card-head .panel-icon{width:2.2rem;height:2.2rem;font-size:1.1rem}.leg-num{display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:.85rem;font-weight:700}.chips{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;min-height:2.4rem}.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .4rem .35rem .8rem;border-radius:2rem;background:var(--surface);border:1px solid var(--border);font-weight:550}.chip-x{display:grid;place-items:center;width:1.5rem;height:1.5rem;border:0;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}.chip-x:hover{background:var(--bad-tint);color:var(--bad)}.leg-body>.field,.alt-card>.field{margin-top:1rem}.search-row{display:flex;gap:.6rem;margin-top:.75rem}.search-row input{flex:1}.search-row .tpc-input{flex:0 0 9rem}.results,.suggest{margin-top:.6rem;display:flex;flex-direction:column;gap:.35rem}.results p{margin:.25rem 0;font-size:.85rem}.result{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;padding:.65rem .85rem;text-align:left;border-radius:.7rem;border:1px solid var(--border);background:var(--surface);cursor:pointer}.result:hover,.result:focus-visible{border-color:var(--accent-bright);background:var(--accent-tint)}.result-sub{font-size:.85rem;color:var(--text-muted)}.station-current{min-height:1.6rem;font-size:1.05rem}.add-row{display:flex;gap:.75rem;margin-top:1rem}body.settings-open .app{filter:saturate(.6)}.save-error{margin:0}.btn:disabled{opacity:.6;cursor:default}.routes-edit{display:flex;flex-direction:column;gap:1.5rem}.route-card{padding:1.25rem;border-radius:1.25rem;border:1px solid var(--border);background:var(--background)}.route-tools{display:flex;gap:.4rem;padding-bottom:.2rem}.sheet-sub{font-size:.9rem;color:var(--text-subtle)}.sheet:not(.sheet-lock){height:min(52rem,100%)}.tabs{display:flex;gap:.25rem;padding:0 1.25rem;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tab{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:-1px;padding:.85rem 1rem;border:0;border-bottom:.2rem solid transparent;background:none;color:var(--text-muted);font-weight:600;white-space:nowrap;cursor:pointer}.tab:hover{color:var(--text)}.tab.on{color:var(--text);border-bottom-color:var(--accent-bright)}.tab-intro{margin:1.25rem 0 1rem;font-size:.95rem;color:var(--text-muted)}.save-error{margin:1rem 0 0}.sheet-lock{position:relative;width:min(26rem,100%);padding:2.25rem 2rem 2rem;align-items:center;gap:.75rem;text-align:center}.sheet-lock h2{margin:0;font-size:1.4rem;font-weight:650}.sheet-lock p{margin:0}.lock-icon{display:grid;place-items:center;width:3.5rem;height:3.5rem;margin-bottom:.25rem;border-radius:1rem;background:var(--accent-tint);color:var(--accent-text);font-size:1.6rem}.lock-close{position:absolute;top:1rem;right:1rem}.lock-form{display:flex;flex-direction:column;gap:.75rem;width:100%}.lock-form .field.toggle{align-self:flex-start;padding:0;font-size:.95rem}.lock-form .note{margin:0;text-align:left}.lock-form .btn{justify-content:center;padding:.85rem}.route-card{padding:0;overflow:hidden}.route-sum{display:flex;align-items:center;gap:1rem;padding:.9rem 1rem}.route-card.open .route-sum{border-bottom:1px solid var(--line)}.route-card.is-off .sum-btn{opacity:.55}.route-body{padding:1.1rem 1.25rem 1.25rem}.route-body .legs{margin-top:1.1rem}.sum-btn{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.25rem;border:0;border-radius:.5rem;background:none;color:inherit;text-align:left;cursor:pointer}.sum-btn b{font-size:1.1rem;font-weight:650}.sum-btn>span{max-width:100%;font-size:.9rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-chips{display:flex;align-items:center;gap:.4rem}.route-chips span{display:inline-flex;align-items:center;gap:.3rem}.route-chips i{font-style:normal;color:var(--text-subtle)}.leg-card{padding:.7rem 1rem}.leg-card.open{padding-bottom:1.25rem}.leg-card-head{margin-bottom:0}.leg-body{margin-top:1rem}.switch{position:relative;display:inline-flex;align-items:center;gap:.5rem;flex:none;cursor:pointer}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch-ui{position:relative;width:2.6rem;height:1.5rem;border-radius:1rem;background:var(--line);transition:background .2s}.switch-ui:after{content:"";position:absolute;top:.2rem;left:.2rem;width:1.1rem;height:1.1rem;border-radius:50%;background:#fff;transition:transform .2s}.switch input:checked+.switch-ui{background:var(--accent)}.switch input:checked+.switch-ui:after{transform:translate(1.1rem)}.switch input:focus-visible+.switch-ui{outline:.2rem solid var(--accent-bright);outline-offset:.15rem}.switch-label{width:5.2rem;font-size:.85rem;font-weight:600;color:var(--text-muted)}.sheet-section>.field.toggle{padding-bottom:.4rem}.view-tabs,.rot-nav,.pin-btn{display:none}.pin-btn{place-items:center;flex:none;width:2.4rem;height:2.4rem;padding:0;border:0;border-radius:50%;background:none;color:var(--text-subtle);font-size:1.3rem;cursor:pointer}.pin-btn.on,.pin-mark{color:var(--sun)}.pin-btn.on .icon,.pin-mark .icon,.pin-tag .icon{fill:currentColor}.pin-mark{display:flex;font-size:1.2rem}.jr.is-pinned,.route-hero.is-pinned{border-color:var(--sun)}.rh-pinned{display:flex;align-items:center;gap:.6rem}.pin-tag{display:inline-flex;align-items:center;gap:.35rem;flex:none;padding:.2rem .55rem;border-radius:.5rem;background:var(--warn-tint);color:var(--sun);font-size:.9rem;font-weight:700}.rh-route{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted);font-weight:600}.rh-pinned .pin-btn{margin-left:auto;width:2rem;height:2rem;font-size:1rem}.jr-earlier-toggle .btn{width:100%;justify-content:center}.jr.is-earlier{opacity:.75;border-style:dashed}.tl-row.is-past{opacity:.4}html.compact{font-size:calc(var(--ui-scale) * 14px)}html.compact,html.compact body{height:auto;overflow:auto}html.compact .app{height:auto;min-height:100vh;padding:1rem 1rem 2rem;gap:1rem;transform:none}html.compact .top{flex-wrap:wrap;gap:.5rem .75rem}html.compact .brand{gap:.55rem}html.compact .brand-mark{width:2.2rem;height:2.2rem;border-radius:.65rem;font-size:1.2rem}html.compact .brand-word{font-size:1.35rem}html.compact .route-title{order:5;flex-basis:100%;padding-left:0;border-left:0;font-size:1.1rem}html.compact .has-tabs .route-title,html.compact .has-tabs .rh-title:not(.rh-pinned){display:none}html.compact .clock{margin-left:auto}html.compact .clock-time{font-size:1.9rem}html.compact .clock-date{display:none}html.compact .top .icon-btn{width:2.5rem;height:2.5rem;font-size:1.15rem}html.compact .body,html.compact .bands,html.compact .band{display:flex;flex-direction:column;gap:1rem}html.compact .body,html.compact .bands,html.compact .band,html.compact .band>*,html.compact .panel-dis{flex:none}html.compact .tl,html.compact .bands-1 .tl{margin-top:1.25rem}html.compact .view-tabs{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:.25rem;padding:.25rem;border-radius:.9rem;border:1px solid var(--border);background:var(--surface)}html.compact .view-tab{min-width:0;padding:.6rem .5rem;border:0;border-radius:.7rem;background:none;color:var(--text-muted);font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}html.compact .view-tab.on{background:var(--accent);color:var(--on-accent)}html.compact .rot-nav{display:grid;flex:none}html.compact .panel-head .updated,html.compact .panel-head .panel-icon{display:none}html.compact .panel-titles h2{font-size:1.25rem}html.compact .jr-steps{white-space:normal}html.compact .row{gap:.6rem}html.compact .has-rot{touch-action:pan-y}html.compact .band .panel-journey{order:1}html.compact .band>.panel:not(.panel-journey){order:2}html.compact .hero-big,html.compact .bands-1 .hero-big,html.compact .bands-3 .hero-big{font-size:5rem}html.compact .bands-1 .tl{--row: 2.5rem;--tl-time: 4.2rem}html.compact .bands-1 .tl-row{font-size:1.1rem}html.compact .bands-1 .tl-time{font-size:1.25rem}html.compact .rows,html.compact .jr-list,html.compact .dis-list{flex:none}html.compact .rows>:nth-child(n+9){display:none}html.compact .pin-btn{display:grid}html.compact .pin-mark{display:none}html.compact .row{gap:.75rem;padding:.75rem .5rem}html.compact .t-time{width:4.6rem}html.compact .t-main,html.compact .bands-2 .t-main{font-size:1.5rem}html.compact .r-title,html.compact .bands-2 .r-title{font-size:1.15rem}html.compact .track,html.compact .bands-2 .track{width:3.4rem;height:3.2rem}html.compact .track b,html.compact .bands-2 .track b{font-size:1.4rem}html.compact .cd,html.compact .bands-2 .cd{min-width:3.5rem;font-size:1.35rem}html.compact .jr-times{font-size:1.4rem}html.compact .jr-dur,html.compact .row .crowd{display:none}html.compact .jr-top{gap:.45rem}html.compact .jr{padding:.75rem .8rem .7rem}html.compact .jr-times{font-size:1.3rem;gap:.3rem}html.compact .jr-times small{display:none}html.compact .jr .cd{font-size:1.25rem}html.compact .jr-top .wx-chip{flex:0 1 auto;min-width:0;overflow:hidden;font-size:.95rem}html.compact #settings{padding:0}html.compact .sheet:not(.sheet-lock){width:100%;height:100%;max-height:none;border:0;border-radius:0}html.compact .sheet-lock{width:calc(100% - 2rem)}html.compact .sheet-head{gap:.5rem;padding:.75rem 1rem}html.compact .sheet-head h2{font-size:1.25rem}html.compact .sheet-head .btn{padding:.55rem .8rem}html.compact .leg-card-head .leg-num,html.compact .leg-card-head .panel-icon,html.compact .sheet-sub{display:none}html.compact .tabs{padding:0 .5rem}html.compact .tab{padding:.75rem .7rem}html.compact .sheet-body{padding:.5rem 1rem 2rem}html.compact .switch-label{display:none}html.compact .route-sum{gap:.6rem;padding:.75rem}html.compact .search-row{flex-wrap:wrap}html.compact .search-row .tpc-input{flex:1 1 8rem}html.compact .leg-grid.two{grid-template-columns:1fr}html.compact.view-mode{font-size:calc(var(--ui-scale) * 15px)}html.view-mode .app{max-width:44rem;margin:0 auto}html.view-mode #settings{padding:2rem}html.view-mode .sheet:not(.sheet-lock){width:min(64rem,100%);height:min(52rem,100%);border:1px solid var(--border);border-radius:1.5rem}
