:root{--op-obb:#9e1b2c;--op-obb-ink:#fff;--op-obb-line:#b22033;--op-nj:#1d2d6e;--op-nj-ink:#fff;--op-nj-accent:#e3262f;--op-wb:#1f8ee6;--op-wb-ink:#14161a;--op-wb-accent:#a5d63a;--op-cat:#3d424b;--op-cat-ink:#fff;--op-cat-accent:#9acd32}@font-face{font-family:Sofia Sans;font-style:normal;font-weight:400 800;font-display:block;src:url(/fonts/sofia-sans-latin.woff2)format("woff2")}@font-face{font-family:Sofia Sans Semi Condensed;font-style:normal;font-weight:500 700;font-display:block;src:url(/fonts/sofia-sans-semicondensed-latin.woff2)format("woff2")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#000;--surface:#0f1114;--ink:#f2f2ee;--ink2:#b9bdc4;--ink3:#8f949d;--hair:#262a31;--plate:#1c1f25;--plate-ink:#fff;--plate-ink2:#b7bbc3;--plate-hair:#353a43;--plate-key:#2c3038;--skel:#1d2026;--press:#1b1e23;--brand:#ff3d8b;--sel:#ff3d8b;--sel-ink:#14161a;--tram:#ff6b72;--bus:#4a76d6;--rail:#2f86d0;--mapbg:#0c0c0c;--ease:cubic-bezier(.16,1,.3,1);--sans:"Sofia Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--cond:"Sofia Sans Semi Condensed","Sofia Sans",system-ui,sans-serif;--safe-b:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--safe-t:var(--safe-area-inset-top,env(safe-area-inset-top,0px));--row:44px;--row2:52px;--row3:80px;--rowc:64px;--ctl:38px;--bar:52px;--t-xs:12px;--t-s:13px;--t-m:15px;--t-l:17px;--t-xl:19px;--ic:20px;--ic-s:16px;--pad:12px;--gap:8px;--dock:var(--plate);--dock-key:var(--plate-key);--dock-edge:#3a3f48;--dock-r:12px;--fade:16px}*{box-sizing:border-box;margin:0}html,body,#app{height:100%}html,body{overscroll-behavior:none;overflow:clip}body{background:var(--ground);width:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font-size:16px;line-height:1.3;position:fixed;inset:0;overflow:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer;text-align:left;touch-action:manipulation;background:0 0;border:0;padding:0}a{color:inherit}::selection{background:var(--sel);color:var(--sel-ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.num{font-variant-numeric:tabular-nums lining-nums}.i{width:var(--ic);height:var(--ic);fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none}.i.sm{width:var(--ic-s);height:var(--ic-s)}.i.lv{stroke-width:2.6px;flex:none;width:12px;height:12px}.i.ar{stroke-width:2.2px;vertical-align:-2px;flex:none;width:16px;height:16px;margin-right:5px;display:inline-block}.vh{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{grid-template-rows:calc(44px + var(--safe-t)) minmax(0,1fr) calc(var(--bar) + var(--safe-b));background:var(--ground);isolation:isolate;max-width:520px;height:100%;margin:0 auto;display:grid;position:relative;overflow:clip}.topbar{min-width:0;padding:var(--safe-t) 4px 0 16px;background:var(--plate);color:var(--plate-ink);justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.lockup{white-space:nowrap;letter-spacing:.01em;flex:none;align-items:center;gap:7px;height:44px;font-size:15px;font-weight:800;display:flex}.mark{flex:none;width:24px;height:24px;display:block}.info-brand{color:var(--ink);align-items:center;gap:12px;font-size:20px;font-weight:800;display:flex}.info-brand img{width:56px;height:56px}.topbar-b{white-space:nowrap;min-width:44px;height:44px;color:var(--plate-ink2);border-radius:6px;flex:none;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.screens{position:relative;overflow:clip}.screen{background:var(--ground);flex-direction:column;min-height:0;display:flex;position:absolute;inset:0;overflow:clip}.screen.tab{visibility:hidden}.screen.tab.is-on{visibility:visible}.screen.push{visibility:hidden;transition:transform .2s var(--ease),visibility 0s .2s;z-index:3;transform:translate(100%)}.screen.push.up{transform:translateY(100%)}.screen.push.is-on{visibility:visible;transition:transform .2s var(--ease),visibility 0s;transform:none}.screen.search-layer{top:calc(44px + var(--safe-t));z-index:4;padding-bottom:var(--safe-b);position:absolute;bottom:0;left:0;right:0}.scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--hair) transparent;flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.scroll>*{flex:none}.scroll.rev{flex-direction:column-reverse}.scroll.rev>.row:first-child{border-bottom:0}.plate{background:var(--dock);color:var(--plate-ink);grid-template-columns:14px minmax(0,1fr) 44px 48px;grid-template-rows:var(--row) var(--row);column-gap:var(--gap);padding:6px 6px 6px var(--pad);flex:none;display:grid}.plate .rail{fill:none;width:14px;height:88px;stroke:var(--plate-ink2);stroke-width:1.75px;grid-area:1/1/3}.plate .rail .here{fill:var(--brand);stroke:var(--brand)}.pf{min-width:0;height:44px;color:var(--plate-ink);grid-column:2/4;align-items:center;gap:6px;display:flex}.pf.from{border-bottom:1px solid var(--plate-hair);grid-row:1}.pf.to{grid-area:2/2/auto/3}.pf-l{width:32px;font-size:var(--t-xs);color:var(--plate-ink2);flex:none;font-weight:500}.pf-v{min-width:0;font-family:var(--cond);font-size:var(--t-l);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:700;overflow:hidden}.pf-v.is-empty{color:var(--plate-ink2);font-weight:500}.pf-clear{color:var(--plate-ink2);grid-area:2/3;place-items:center;height:44px;display:grid}.pf-clear .i{width:20px;height:20px}.pf-clear.off{visibility:hidden}.swap{background:var(--plate-key);color:var(--plate-ink);border-radius:6px;grid-area:1/4/3;place-items:center;margin:6px 0;display:grid}.swap .i{width:22px;height:22px;transition:transform .25s var(--ease)}.swap.flip .i{transform:rotate(180deg)}.swap:active,.pf:active .pf-v{opacity:.7}.plate :focus-visible{outline-color:#fff}.timebar{height:var(--bar);grid-template-columns:92px minmax(0,1fr) var(--row) var(--row);gap:var(--gap);padding:0 var(--pad);background:var(--dock);border-bottom:1px solid var(--plate-hair);flex:none;align-items:center;display:grid}.seg{height:var(--ctl);border:1.5px solid var(--brand);border-radius:6px;grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.seg-b{text-align:center;height:100%;color:var(--ink);white-space:nowrap;padding:0 6px;font-size:14px;font-weight:700;position:relative}.seg-b:first-child{border-radius:4.5px 0 0 4.5px}.seg-b:last-child{border-radius:0 4.5px 4.5px 0}.seg-b:after{content:"";position:absolute;inset:-6px 0}.seg-b+.seg-b{border-left:1.5px solid var(--brand)}.seg-b[aria-pressed=true]{background:var(--sel);color:var(--sel-ink)}.seg-b[aria-pressed=true]+.seg-b[aria-pressed=true]{border-left-color:var(--sel-ink)}.seg-b:focus-visible{outline:2px solid var(--ink);outline-offset:-5px}.seg-b[aria-pressed=true]:focus-visible{outline-color:var(--sel-ink)}.seg.wide{margin:0 var(--pad)}.tb-time{height:var(--ctl);background:var(--dock-key);font-weight:700;font-size:var(--t-m);border-radius:6px;justify-content:space-between;align-items:center;gap:4px;min-width:0;padding:0 10px;display:flex}.tb-time span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tb-now{height:var(--ctl);width:var(--row);color:var(--ink2);border:1.5px solid #0000;border-radius:6px;justify-self:center;place-items:center;display:grid}.tb-now.stale{color:var(--brand);border-color:var(--brand)}@keyframes spin1{to{transform:rotate(360deg)}}.tb-now.spin .i{animation:spin1 .6s var(--ease) 1}.tb-opts{height:var(--ctl);border-radius:6px;place-items:center;display:grid;position:relative}.cnt{background:var(--sel);min-width:18px;height:18px;color:var(--sel-ink);border-radius:9px;place-items:center;padding:0 4px;font-size:12px;font-weight:700;display:grid;position:absolute;top:2px;right:2px}.cnt:empty{visibility:hidden}.timebar .tb-time .i{width:var(--ic-s);height:var(--ic-s)}.timebar .tb-time,.timebar .tb-now,.timebar .tb-opts{position:relative}.timebar .tb-time:after,.timebar .tb-now:after,.timebar .tb-opts:after{content:"";position:absolute;inset:-4px 0}@property --p{syntax:"<percentage>";inherits:false;initial-value:100%}@keyframes ring{0%{--p:100%}to{--p:0%}}.statusline{align-items:center;gap:var(--gap);height:28px;padding:0 var(--pad);font-size:var(--t-s);color:var(--ink2);border-bottom:1px solid var(--hair);white-space:nowrap;flex:none;display:flex;overflow:hidden}.statusline>span:last-child{text-overflow:ellipsis;overflow:hidden}.statusline .dot{background:conic-gradient(var(--ink) var(--p),var(--hair) 0);width:14px;height:14px;animation:ring var(--ring,20s) linear forwards;border-radius:50%;flex:none;-webkit-mask:radial-gradient(circle,#0000 3.5px,#000 4px);mask:radial-gradient(circle,#0000 3.5px,#000 4px)}.statusline.is-plan .dot{background:var(--ink3);animation:none;-webkit-mask:radial-gradient(circle,#0000 4.5px,#000 5px);mask:radial-gradient(circle,#0000 4.5px,#000 5px)}.statusline.is-load .dot{background:var(--hair);animation:none}.statusline.is-warn{color:var(--ink)}.statusline.is-warn .dot{background:var(--ink2);animation:none}.gh{height:30px;padding:0 var(--pad) 5px;font-size:var(--t-s);color:var(--ink2);align-items:flex-end;font-weight:700;display:flex}.ghx{justify-content:space-between;gap:12px}.ghx span:last-child{font-weight:500;font-size:var(--t-xs);white-space:nowrap;align-items:center;gap:3px;display:flex}.ghx span:first-child{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.row{width:100%;height:var(--row2);grid-template-columns:var(--ic) minmax(0,1fr) auto;align-items:center;gap:var(--pad);padding:0 var(--pad);background:var(--surface);border-bottom:1px solid var(--hair);display:grid}button.row:active{background:var(--press)}.row>.i{color:var(--ink2)}.row .i.here{color:var(--brand)}.rt{flex-direction:column;gap:1px;min-width:0;display:flex}.rt b{font-family:var(--cond);font-size:var(--t-l);white-space:nowrap;text-overflow:ellipsis;font-weight:700;line-height:22px;overflow:hidden}.rt b mark{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--brand);text-decoration-color:var(--brand);text-underline-offset:3px;background:0 0;text-decoration-thickness:2px}.rt small{font-size:var(--t-s);color:var(--ink2);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;height:18px;display:flex;overflow:hidden}.rt small.txt{line-height:18px;display:block}.rte{align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.rte-a{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:3ch;overflow:hidden}.rte-b{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:calc(100% - 3ch - 22px);overflow:hidden}.rte .rte-i{width:var(--ic-s);height:var(--ic-s);color:var(--ink2);flex:none}.rr{text-align:right;width:88px;font-size:var(--t-s);color:var(--ink2);flex-direction:column;align-items:flex-end;gap:1px;display:flex}.rr b{font-size:var(--t-m);color:var(--ink);font-weight:700}.rr.dist{width:40px}.sk{background:var(--skel);vertical-align:middle;border-radius:3px;height:12px;display:inline-block}.row.is-skel{pointer-events:none}.hint{align-items:center;gap:var(--gap);width:100%;height:36px;padding:0 var(--pad);font-size:var(--t-s);color:var(--ink2);border-bottom:1px solid var(--hair);background:var(--ground);display:flex}.hint b{color:var(--ink)}.hint .i{width:var(--ic-s);height:var(--ic-s)}.ln{min-width:24px;height:20px;font-size:var(--t-xs);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;place-items:center;padding:0 4px;font-weight:800;line-height:1;display:inline-grid}.ln-u{background:var(--c);color:#fff;border-radius:3px}.ln-u.dk{color:#14161a}.ln-tram{border:2px solid var(--tram);color:var(--tram);background:var(--surface);border-radius:10px}.ln-bus,.ln-other{background:var(--bus);color:#fff;border-radius:10px}.ln-rail{background:var(--rail);color:#fff;border-radius:3px 10px}.ln.sm{min-width:22px;height:18px;font-size:var(--t-xs);padding:0 4px}.ln-walk{color:var(--ink2);min-width:22px;padding:0}.ln-walk .i{width:18px;height:18px}.lns{align-items:center;gap:4px;display:flex;overflow:hidden}.shift{width:100%;height:var(--row);font-weight:700;font-size:var(--t-s);color:var(--ink2);border-bottom:1px solid var(--hair);justify-content:center;align-items:center;gap:6px;display:flex}.shift:disabled{opacity:.5}.conn{width:100%;height:var(--row3);gap:var(--gap);padding:0 var(--pad);background:var(--surface);border-bottom:1px solid var(--hair);grid-template-columns:68px minmax(0,1fr) 60px;align-items:center;display:grid}button.conn:active{background:var(--press)}.c-t{flex-direction:column;gap:3px;display:flex}.c-dep{font-size:var(--t-xl);align-items:baseline;gap:4px;font-weight:800;line-height:1;display:flex}.c-dep i{width:13px;font-style:normal;display:inline-flex}.c-arr{font-size:var(--t-s);color:var(--ink2)}.c-m{flex-direction:column;gap:4px;min-width:0;display:flex}.c-chain{align-items:center;gap:3px;height:20px;display:flex;overflow:hidden}.c-chain .i.sm{width:12px;height:12px;color:var(--ink3)}.c-st{font-size:var(--t-s);color:var(--ink2);white-space:nowrap;text-overflow:ellipsis;height:17px;line-height:17px;overflow:hidden}.c-st b{color:var(--ink);font-weight:700}.c-st .bad,.c-board .bad{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--ink3);text-decoration-color:var(--ink3);font-weight:700}.cdw{min-width:58px;display:inline-block}.c-d{text-align:right;flex-direction:column;gap:3px;display:flex}.c-d b{font-size:var(--t-m);font-weight:700}.c-d span{font-size:var(--t-s);color:var(--ink2)}.conn.gone{opacity:.45}.conn.is-skel{pointer-events:none}.empty{text-align:center;color:var(--ink2);flex-direction:column;justify-content:flex-start;align-items:center;gap:12px;min-height:200px;padding:32px 24px;display:flex}.empty b{color:var(--ink);font-size:var(--t-l)}.btn{height:var(--row);background:var(--sel);color:var(--sel-ink);text-align:center;border-radius:6px;place-items:center;padding:0 18px;font-weight:700;display:inline-grid}.btn.ghost{color:var(--ink);border:1.5px solid var(--brand);background:0 0}.head{height:var(--bar);background:var(--plate);color:var(--plate-ink);flex:none;align-items:center;gap:4px;padding:0 4px;display:flex}.head :focus-visible{outline-color:#fff}.head-back,.head-icon{width:var(--row);height:var(--row);border-radius:6px;flex:none;place-items:center;display:grid}.head-icon[aria-pressed=true] .i{fill:var(--brand);stroke:var(--brand)}.head-title{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.head-title b{font-size:var(--t-l)}.head-title span{font-size:var(--t-xs);color:var(--plate-ink2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.head-st{min-width:0;height:var(--row);color:var(--plate-ink);flex:1;align-items:center;gap:6px;padding:0 8px;display:flex}.head-st-n{font-family:var(--cond);font-size:var(--t-xl);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.head-act{height:var(--ctl);padding:0 var(--pad);background:var(--plate-key);font-weight:700;font-size:var(--t-s);border-radius:6px;flex:none;position:relative}.head-act:after{content:"";position:absolute;inset:-4px 0}.search-head{gap:0}.q-wrap{align-items:center;gap:var(--gap);background:var(--plate-key);min-width:0;height:40px;padding:0 var(--pad);border-radius:6px;flex:1;display:flex}.q-l{font-size:var(--t-xs);color:var(--plate-ink2);flex:none;width:36px}.q{min-width:0;font-family:var(--cond);font-size:var(--t-l);color:var(--plate-ink);caret-color:var(--brand);background:0 0;border:0;outline:0;flex:1;font-weight:700}.q::placeholder{color:var(--plate-ink2);opacity:1;font-weight:500}.q-wrap:focus-within{box-shadow:inset 0 0 0 2px var(--brand)}.chips{height:var(--bar);gap:var(--gap);padding:0 var(--pad);scrollbar-width:none;background:var(--dock);border-bottom:1px solid var(--plate-hair);flex:none;align-items:center;display:flex;overflow:auto hidden}.chips::-webkit-scrollbar{display:none}.chip{height:var(--ctl);padding:0 var(--pad);border:1.5px solid var(--plate-hair);font-family:var(--cond);font-weight:600;font-size:var(--t-m);white-space:nowrap;border-radius:6px;flex:none;align-items:center;gap:6px;display:flex;position:relative}.chip:after{content:"";position:absolute;inset:-4px 0}.chip small{font-size:var(--t-xs);color:var(--ink2);font-family:var(--sans)}.chip[aria-pressed=true]{background:var(--sel);color:var(--sel-ink);border-color:var(--sel)}.chip[aria-pressed=true] small{color:inherit;opacity:.8}.notice{align-items:center;gap:var(--gap);height:36px;padding:0 var(--pad);font-size:var(--t-s);color:var(--ink2);border-bottom:1px solid var(--hair);white-space:nowrap;flex:none;display:flex;overflow:hidden}.notice span{text-overflow:ellipsis;overflow:hidden}.notice .i{width:var(--ic-s);height:var(--ic-s)}.notice.warn{color:var(--ink);font-weight:600}.colhead{gap:var(--gap);height:24px;padding:0 var(--pad);font-size:var(--t-xs);color:var(--ink2);border-bottom:1px solid var(--hair);flex:none;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;display:grid}.colhead .lv{vertical-align:-1px;margin-right:3px;display:inline-block}.ch-r{text-align:right}.dep{width:100%;height:var(--row2);padding:0 var(--pad);background:var(--surface);border-bottom:1px solid var(--hair);grid-template-columns:44px minmax(0,1fr) 44px 44px;align-items:center;gap:6px;display:grid}button.dep:active{background:var(--press)}.dep .rt b{font-size:var(--t-l)}.dep .cd{text-align:right;height:37px;line-height:22px;font-size:var(--t-xl);grid-template-rows:22px 15px;grid-template-columns:minmax(0,1fr) 14px;align-items:end;font-weight:800;display:grid}.dep .cd+.cd{color:var(--ink2);font-weight:500}.dep .cd b{font-weight:inherit;text-align:right}.dep .cd b.t{font-size:var(--t-s);color:var(--ink2);grid-area:1/1/3/3;align-self:center;font-weight:600}.dep .cd em{font-style:normal;font-size:var(--t-xs);color:var(--ink2);text-align:right;grid-area:2/1/auto/3;font-weight:500;line-height:15px}.dep .cd .lv{align-self:start;margin:5px 0 0 2px}.dep .cd .none{font-size:var(--t-s);color:var(--ink3);grid-area:1/1/3/3;align-self:center;font-weight:500}.mapbox{background:var(--mapbg);flex:1;min-height:0;position:relative;overflow:hidden}.mapgl{position:absolute;inset:0}.mapctl{right:var(--pad);bottom:calc(var(--pad) + var(--dock-r));background:var(--hair);z-index:2;border-radius:6px;gap:1px;display:grid;position:absolute;overflow:hidden;box-shadow:0 2px 8px -2px #0009}.mapctl button{background:var(--surface);place-items:center;width:44px;height:44px;display:grid}.mapnote{color:var(--ink2);z-index:2;background:#000000b8;border-radius:3px;padding:2px 6px;font-size:12px;position:absolute;top:8px;left:8px}.mapsrc{height:44px;color:var(--ink2);z-index:2;text-underline-offset:2px;background:#0009;border-radius:0 0 6px;align-items:center;padding:0 10px;font-size:12px;text-decoration:underline;display:flex;position:absolute;top:0;left:0}.mapcard{background:var(--dock);height:134px;padding:8px var(--pad);grid-template-rows:26px 40px var(--row);border-bottom:1px solid var(--plate-hair);flex:none;gap:4px;display:grid}.mc-n{align-items:center;gap:8px;min-width:0;display:flex}.mc-n b{font-family:var(--cond);font-size:var(--t-l);white-space:nowrap;text-overflow:ellipsis;flex:none;max-width:60%;overflow:hidden}.mc-d{font-size:var(--t-s);color:var(--ink2);flex-direction:column;justify-content:center;gap:2px;min-width:0;display:flex}.mc-d div{white-space:nowrap;align-items:center;gap:6px;height:18px;display:flex;overflow:hidden}.mc-d span:not(.ln){text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.mc-d b{color:var(--ink)}.mc-d .i.ar{margin-right:0}.mc-a{gap:var(--gap);grid-template-columns:1fr 1fr 1fr;align-items:center;display:grid}.mc-a button{height:var(--ctl);border:1.5px solid var(--brand);font-weight:700;font-size:var(--t-s);text-align:center;border-radius:6px;position:relative}.mc-a button:after{content:"";position:absolute;inset:-4px 0}.mc-a button:disabled{opacity:.35;cursor:default;border-color:var(--ink3)}.mc-hint{color:var(--ink2);font-size:var(--t-m);grid-row:1/3;align-self:center}.pos-dot{background:var(--brand);width:18px;height:18px;box-shadow:0 0 0 2px var(--brand);border:3px solid #000;border-radius:50%}.svgmap text{font-family:var(--cond);fill:var(--ink);paint-order:stroke;stroke:var(--mapbg);stroke-linejoin:round;font-weight:600}.dwrap{flex:1;min-height:0;position:relative;overflow:hidden}.dmap{background:var(--mapbg);position:absolute;top:0;left:0;right:0;overflow:hidden}.dscroll{pointer-events:none;position:absolute;bottom:0;left:0;right:0}.dspacer{flex:none}.dsheet{pointer-events:auto;background:var(--ground);border-radius:var(--dock-r) var(--dock-r) 0 0;min-height:100%;box-shadow:inset 0 1px 0 var(--hair),0 -8px 18px -8px #000000d9}.map-recenter{right:var(--pad);z-index:2;height:var(--ctl);padding:0 var(--pad);border:1px solid var(--plate-hair);color:var(--ink);font-size:var(--t-s);transition:top .2s var(--ease);background:#0f1114eb;border-radius:6px;font-weight:700;position:absolute}.map-recenter:after{content:"";position:absolute;inset:-4px 0}.tl{--rail-w:20px;--line-w:6px;--dot-w:4px;--node:14px;--node-ring:3px;--node-sm:10px;--node-sm-ring:2px;--name-lh:22px;--pad-top:8px;--anchor:calc(var(--pad-top) + var(--name-lh) / 2);--tl-pad:var(--pad);--tl-time:56px;--tl-gap:10px;padding:8px 0 24px;list-style:none}.tl li{grid-template-columns:var(--tl-time) var(--rail-w) minmax(0,1fr);column-gap:var(--tl-gap);padding:0 var(--tl-pad);align-items:start;display:grid}.tl-stop{min-height:40px}.tl-stop>.tl-t,.tl-stop>.tl-s{padding-top:var(--pad-top);padding-bottom:6px}.tl-t{text-align:right;font-weight:700;font-size:var(--t-m);line-height:var(--name-lh);flex-direction:column;align-items:flex-end;display:flex}.tl-t small{font-size:var(--t-xs);color:var(--ink2);white-space:nowrap;height:14px;font-weight:500;line-height:14px}.tl-rail{width:var(--rail-w);align-self:stretch;position:relative}.tl-rail .rl{left:calc((var(--rail-w) - var(--line-w)) / 2);width:var(--line-w);background:var(--c,var(--ink3));position:absolute}.tl-rail .rl.full{top:0;bottom:0}.tl-rail .rl.up{height:var(--anchor);top:0}.tl-rail .rl.dn{top:var(--anchor);bottom:0}.tl-rail .rl.dim{opacity:.35}.tl-rail .rl.dots{display:none}.tl-rail .nd{z-index:1;box-sizing:border-box;background:var(--ground);width:var(--node);height:var(--node);left:calc((var(--rail-w) - var(--node)) / 2);top:calc(var(--anchor) - var(--node) / 2);border:var(--node-ring) solid var(--ink);border-radius:50%;position:absolute}.tl-rail .nd.small{width:var(--node-sm);height:var(--node-sm);left:calc((var(--rail-w) - var(--node-sm)) / 2);top:calc(var(--anchor) - var(--node-sm) / 2);border-width:var(--node-sm-ring);border-color:var(--ink3)}.tl-stop.via .tl-s b{font-family:var(--sans);font-size:var(--t-s);color:var(--ink2);font-weight:500}.tl-stop.via .tl-t{font-size:var(--t-s);color:var(--ink2);font-weight:500}.tl-s{flex-direction:column;min-width:0;display:flex}.tl-s b{font-family:var(--cond);font-size:var(--t-l);line-height:var(--name-lh);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tl-s small{font-size:var(--t-s);color:var(--ink2);white-space:nowrap;align-items:center;gap:3px;display:flex;overflow:hidden}.tl-ride .tl-b{flex-direction:column;gap:2px;min-width:0;padding:0 0 4px;display:flex}.tl-dir{align-items:center;gap:var(--gap);align-self:flex-start;min-width:0;max-width:100%;min-height:44px;padding:0 8px 0 0;font-size:14px;font-weight:600;display:flex}.tl-dir span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tl-dir .i.ar{margin-right:0}.tl-dir .i.sm:last-child{color:var(--ink2);flex:none}button.tl-dir:active{opacity:.6}.tl-more{min-height:var(--row);font-size:var(--t-s);color:var(--ink2);align-self:flex-start;align-items:center;gap:4px;padding-right:12px;display:inline-flex}.tl-more .i{transition:transform .15s var(--ease)}.tl-more[aria-expanded=true] .i{transform:rotate(180deg)}.tl-x{min-height:var(--row);font-size:var(--t-s);color:var(--ink2)}.tl-x>.tl-b{align-self:center}.tl-x .tl-b{justify-content:space-between;align-items:center;gap:8px;display:flex}.tl-x .i{width:18px;height:18px}.tl-x.has-stp{min-height:52px}.tl-xw{align-items:center;gap:6px;min-width:0;display:flex}.tl-xt{flex-direction:column;align-items:flex-start;gap:1px;min-width:0;display:flex}.tl-xt b{color:var(--ink)}.tl-xt small{font-size:var(--t-xs);color:var(--ink2)}.tag{border:1.5px solid var(--ink2);color:var(--ink);border-radius:3px;padding:2px 6px;font-size:12px;font-weight:700}.stp{color:var(--ink2);flex:none;grid-template-columns:44px 44px;display:grid}.stp button{place-items:center;height:44px;display:grid;position:relative}.stp button:before{content:"";border:1.5px solid var(--hair);border-radius:50%;position:absolute;inset:7px}.stp button:active:before{background:var(--press)}.stp button:disabled{opacity:.3;cursor:default}.stp .i{width:16px;height:16px;position:relative}.tl-stop.dim .tl-s b,.tl-stop.dim .tl-t{color:var(--ink2);font-weight:500}.tp-title{align-items:center;gap:var(--gap);font-family:var(--cond);font-size:var(--t-l);min-width:0;display:flex}.tp-title span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tp-title .i.ar{margin-right:0}.tabbar{background:var(--dock);border-top:1px solid var(--plate-hair);z-index:2;padding-bottom:var(--safe-b);grid-template-columns:repeat(3,1fr);display:grid}.tabbtn{font-size:var(--t-xs);color:var(--ink2);flex-direction:column;justify-content:center;align-items:center;gap:1px;font-weight:600;display:flex;position:relative}.tabbtn.is-on{color:var(--ink);font-weight:800}.tabbtn.is-on:before{content:"";background:var(--brand);height:3px;position:absolute;top:0;left:22%;right:22%}.tabbtn:focus-visible{outline-offset:-4px}.scrim{opacity:0;visibility:hidden;transition:opacity .2s var(--ease),visibility 0s .2s;z-index:5;background:#0009;position:absolute;inset:0}.scrim.is-on{opacity:1;visibility:visible;transition:opacity .2s var(--ease),visibility 0s}.sheet{background:var(--surface);visibility:hidden;transition:transform .22s var(--ease),visibility 0s .22s;z-index:6;border-top:1px solid var(--hair);border-radius:14px 14px 0 0;flex-direction:column;max-height:calc(100% - 24px);padding:6px 0 0;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -12px 32px -12px #000c}.sheet.is-on{visibility:visible;transition:transform .22s var(--ease),visibility 0s;transform:none}.sh-body{flex:1;min-height:0;padding-bottom:10px;overflow-y:auto}.sh-foot{height:calc(var(--bar) + 4px + var(--safe-b));padding:0 var(--pad) var(--safe-b);align-items:center;gap:var(--gap);border-top:1px solid var(--hair);background:var(--surface);flex:none;display:flex}.sh-foot .seg{flex:none;width:176px}.sh-sum{text-align:right;min-width:0;font-size:var(--t-m);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.sh-title{font-size:var(--t-l);flex:1}.sh-done{height:var(--ctl);padding:0 var(--pad);background:var(--sel);color:var(--sel-ink);font-weight:700;font-size:var(--t-m);border-radius:6px;flex:none;position:relative}.sh-done:after{content:"";position:absolute;inset:-4px 0}.sh-reset{height:var(--row);font-weight:600;font-size:var(--t-s);color:var(--ink2);text-underline-offset:3px;flex:none;padding:0 10px;text-decoration:underline}.quick{padding:8px var(--pad) 4px;grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.quick button,.grid button{height:var(--ctl);background:var(--plate);text-align:center;font-weight:700;font-size:var(--t-m);font-variant-numeric:tabular-nums;border-radius:6px;position:relative}.quick button:after,.grid button:after{content:"";position:absolute;inset:-3px}.quick button{font-size:var(--t-s)}.days{padding:8px var(--pad) 2px;scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.days::-webkit-scrollbar{display:none}.days button{background:var(--plate);width:54px;height:46px;font-size:var(--t-xs);color:var(--ink2);border-radius:6px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:0;display:flex}.days button b{font-size:var(--t-m);color:var(--ink)}.gl{font-size:var(--t-s);color:var(--ink2);padding:12px var(--pad) 6px;font-weight:700}.gl span{color:var(--ink3);font-weight:500}.grid{padding:0 var(--pad);gap:6px;display:grid}.g6{grid-template-columns:repeat(6,1fr)}.sheet .pick[aria-pressed=true]{background:var(--sel);color:var(--sel-ink)}.sheet .pick[aria-pressed=true] b{color:inherit}.grid button.cur{box-shadow:inset 0 0 0 2px var(--ink2)}.switchrow{width:100%;min-height:var(--row2);justify-content:space-between;align-items:center;gap:var(--pad);padding:6px var(--pad);display:flex}.switchrow span:first-child{flex-direction:column;gap:2px;display:flex}.switchrow small{font-size:var(--t-xs);color:var(--ink2)}.sw{border:1.5px solid var(--brand);border-radius:14px;flex:none;width:48px;height:28px;position:relative}.sw:after{content:"";background:var(--ink2);width:19px;height:19px;transition:transform .15s var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}[aria-checked=true] .sw{background:var(--sel);border-color:var(--sel)}[aria-checked=true] .sw:after{background:var(--sel-ink);transform:translate(20px)}.sheet .switchrow.sep{border-top:1px solid var(--hair);margin-top:8px}.info{padding:var(--pad) var(--pad) 32px;font-size:var(--t-m);color:var(--ink2);flex-direction:column;gap:12px;display:flex}.info h2{color:var(--ink);margin-top:8px;font-size:16px}.info ul{gap:6px;padding-left:18px;display:grid}.info a{align-items:center;min-height:44px;display:inline-flex}.dbg{height:44px;color:var(--plate-ink2);white-space:nowrap;align-items:center;gap:6px;min-width:0;margin-left:auto;font-size:12px;display:flex;overflow:hidden}.topbar:has(.dbg) .topbar-b{padding:0 8px 0 4px}.dbg b{color:var(--ink);text-align:center;width:3ch;font-size:16px}.dbg b.bad{color:var(--brand)}.dbg button{min-width:44px;height:44px;color:var(--ink);font-size:12px;font-weight:700;text-decoration:underline}.topbar-b.icon-only{justify-content:center;width:44px;padding:0}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important}.statusline .dot{animation:none}}.gh.gh-near{height:var(--row);align-items:center;padding-bottom:0}.closer{height:var(--row);font-size:var(--t-xs);color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--brand);text-decoration-color:var(--brand);text-underline-offset:3px;white-space:nowrap;text-overflow:ellipsis;max-width:55%;font-weight:700;overflow:hidden}.row.blank{background:0 0;border-bottom-color:#0000}.gh.divider{align-items:center;height:28px;padding-bottom:0}.conn{padding:3px var(--pad);grid-template-rows:41px 30px;grid-template-columns:68px minmax(0,1fr) 60px;align-content:center;row-gap:2px}.conn .c-t{grid-row:1/3;align-self:center}.conn .c-m{grid-area:1/2}.conn .c-d{grid-area:1/3}.c-was{font-size:var(--t-xs);color:var(--ink2);white-space:nowrap;height:14px;line-height:14px}.c-board{font-size:var(--t-s);color:var(--ink2);grid-area:2/2/auto/4;align-self:start;height:30px;line-height:15px;overflow:hidden}.conn.is-skel .c-m{grid-row:1/3}.stp button.urge{color:var(--ink)}.stp button.urge:before{border-color:var(--brand);border-width:2px}.tag{white-space:nowrap}.stp button.pending{opacity:.45}.stp button:disabled:before{border-style:dashed}.screen.push.up.search-layer{visibility:hidden;transition:none;transform:none}.screen.push.up.search-layer.is-on{visibility:visible}.tl{position:relative}.tl-dots{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.tl-dots line{stroke:var(--ink3);stroke-width:4px;stroke-linecap:round;fill:none}.tl-x>.tl-b{will-change:transform}.lns .pl{color:var(--ink2);font-size:var(--t-s);white-space:nowrap;flex:none;margin-right:4px}.ln-long{color:#14161a;letter-spacing:.02em;background:#e9e9e4;border-radius:2px}.ln-regio{color:#e9e9e4;background:0 0;border:2px solid #b7bbc3;border-radius:2px}.ln-long.op-obb{background:var(--op-obb);color:var(--op-obb-ink);border-radius:0;padding-bottom:2px;box-shadow:inset 0 -3px #ffffffb8}.ln-regio.op-obb{border-color:var(--op-obb-line);color:#fff}.ln-long.op-nj,.ln-regio.op-nj{background:var(--op-nj);color:var(--op-nj-ink);box-shadow:inset 0 -3px 0 var(--op-nj-accent);border:0;border-radius:0;padding-bottom:2px}.ln-long.op-wb,.ln-regio.op-wb{background:var(--op-wb);color:var(--op-wb-ink);box-shadow:inset 0 -3px 0 var(--op-wb-accent);border:0;border-radius:0;padding-bottom:2px}.ln-regio.op-cat,.ln-long.op-cat{background:var(--op-cat);color:var(--op-cat-ink);border:2px solid var(--op-cat-accent)}.trno{font-size:var(--t-s);color:var(--ink2);white-space:nowrap;font-weight:600}.seg-gap{margin-top:8px}.lns .more{font-size:var(--t-xs);color:var(--ink2);flex:none;padding-left:2px;font-weight:700}.mc-n .lns{flex:1;min-width:0}.pf-v{align-items:center;display:flex}.pf-n{white-space:nowrap;text-overflow:ellipsis;line-height:24px;overflow:hidden}.pf-pl{font-family:var(--sans);font-size:var(--t-s);color:var(--plate-ink2);white-space:nowrap;text-overflow:ellipsis;font-weight:600;line-height:16px;overflow:hidden}.pf-town{color:var(--plate-ink2);font-weight:500}.pf-fit{min-width:0;display:flex}.pf-fit .pf-town{flex:none}.pf-fit .pf-nm{text-overflow:ellipsis;min-width:0;overflow:hidden}.pf-fit.sm{font-size:var(--t-m)}.rt b .town{color:var(--ink2);font-weight:500}.tl li{position:relative}.veh{z-index:3;object-fit:contain;width:38px;height:38px;left:calc(var(--tl-pad) + var(--tl-time) + var(--tl-gap) + var(--rail-w) / 2);top:var(--anchor);pointer-events:none;filter:drop-shadow(0 0 #000)drop-shadow(0 1px 2px #000c);position:absolute;transform:translate(-50%,-50%)}.veh.between{top:calc(var(--anchor) + 50%)}.tl-approach{height:36px}.veh.approach{top:calc(var(--anchor) - 30px)}.veh[role=button]{pointer-events:auto;cursor:pointer}.tl-s b .town{color:var(--ink2);font-weight:500}.tl-dir .trno,.tp-title .trno{flex:none}.dock{z-index:2;background:var(--dock);border-radius:var(--dock-r) var(--dock-r) 0 0;box-shadow:inset 0 1px 0 var(--dock-edge),0 -8px 18px -8px #000000d9;position:relative}.dock:before{content:"";height:var(--fade);background:linear-gradient(to bottom,transparent,var(--ground));pointer-events:none;position:absolute;bottom:100%;left:0;right:0}.scroll:not(.rev):after,.scroll.rev:before{content:"";height:var(--fade);flex:none}.mapcard.dock:before{display:none}.kb-open .screen.search-layer{padding-bottom:0}.cr{width:100%;height:var(--rowc);row-gap:4px;column-gap:var(--pad);padding:0 var(--pad);background:var(--surface);border-bottom:1px solid var(--hair);grid-template-rows:24px 22px;grid-template-columns:minmax(0,1fr) auto;align-content:center;display:grid}button.cr:active{background:var(--press)}.cr.gone{opacity:.45}.cr.is-skel{pointer-events:none}.cr-t{white-space:nowrap;font-size:var(--t-xl);align-items:center;min-width:0;line-height:24px;display:flex}.cr-dep{min-width:2.75em;font-weight:800}.cr-lv{justify-content:center;width:14px;font-style:normal;display:inline-flex}.cr-was{width:40px;font-size:var(--t-s);color:var(--ink2);flex:none;text-decoration-thickness:1.5px}.cr-t .cr-ar{width:var(--ic-s);height:var(--ic-s);color:var(--ink2);margin-right:6px}.cr-arr{font-weight:500}.cr-arr sup{font-size:var(--t-xs);color:var(--ink2);vertical-align:6px;margin-left:2px}.cr-dur{font-size:var(--t-m);text-align:right;font-weight:700;line-height:24px}.cr-chain{align-items:center;gap:3px;min-width:0;height:22px;display:flex;overflow:hidden}.cc{flex:none;align-items:center;gap:3px;display:inline-flex}.cc .i.sm{width:12px;height:12px;color:var(--ink3)}.ln-walk.cr-walk{font-size:var(--t-xs);align-items:center;gap:1px;padding:0 2px;font-weight:700;display:inline-flex}.cr-walk .i{width:16px;height:16px}.cr-more{font-size:var(--t-xs);color:var(--ink2);flex:none;padding-left:2px;font-weight:700}.tagc{font-size:var(--t-xs);color:var(--ink);border:1px solid var(--ink3);white-space:nowrap;border-radius:3px;flex:none;margin-left:6px;padding:1px 5px;font-weight:700;line-height:16px}.cr-r{font-size:var(--t-s);color:var(--ink2);text-align:right;white-space:nowrap;line-height:22px}
