:root{--void:#0d1117;--obsidian:#151a22;--edge:#21262d;--fog:#484f58;--mercury:#818b98;--pearl:#a4aea6;--snow:#fff;--green:#08872b;--green-hi:#0b9c33;--violet:#8c93fb;--sky:#8dd6ff;--sky-wash:#8dd6ff24;--glass:linear-gradient(180deg, #ffffff12, #ffffff09), #0d1117cc;--glass-solid:linear-gradient(180deg, #ffffff0f, #ffffff08), #0f141b;--line:#ffffff1a;--line-2:#ffffff29;--blur:blur(20px) saturate(140%);--r-card:24px;--r-btn:6px;--r-input:8px;--r-pill:60px;--font:"Mona Sans", "Noto Sans Devanagari", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ease:cubic-bezier(.16, 1, .3, 1);--ticket-w:408px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--void);color:var(--snow);font:400 16px/1.5 var(--font);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01" on, "cv11" on}html[lang=hi] body{line-height:1.6}html[lang=hi] .field-label,html[lang=hi] .mono,html[lang=hi] .status .code,html[lang=hi] .tl-now .lead{letter-spacing:0;text-transform:none;font-family:var(--font)}button,input{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}::selection{color:var(--snow);background:#8dd6ff52}input{caret-color:var(--sky)}:focus-visible{outline:2px solid var(--sky);outline-offset:2px;border-radius:4px}.tnum{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;font-size:12px}.muted{color:var(--pearl)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--fog) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--fog);background-clip:padding-box;border:2px solid #0000;border-radius:8px}.app{position:fixed;inset:0;overflow:hidden}.map-layer{position:absolute;inset:0}.stage-msg{color:var(--pearl);place-items:center;font-size:15px;display:grid;position:absolute;inset:0}.topbar{z-index:6;background:linear-gradient(#0d1117f0 0%,#0d1117b8 60%,#0d111700 100%);align-items:center;gap:16px;height:64px;padding:0 16px 0 20px;display:flex;position:absolute;top:0;left:0;right:0}.wordmark{color:inherit;letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;font-size:18px;font-weight:600;text-decoration:none;display:inline-flex}.wordmark svg{flex:none;width:26px;height:26px}.topbar .spacer{flex:1}.pills{border-radius:var(--r-pill);border:1px solid var(--line);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background:#0d111799;gap:4px;padding:3px;display:inline-flex}.pill{border-radius:var(--r-pill);height:32px;color:var(--pearl);white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:0 14px;font-size:14px;transition:color .2s,background-color .2s;display:inline-flex}.pill:hover{color:var(--snow)}.pill[aria-checked=true],.pill[aria-selected=true],.pill.on{color:var(--snow);border-color:var(--line-2);background:#ffffff1a}.pill .dot{background:#3fb950;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #3fb9502e}.btn{border-radius:var(--r-btn);border:1px solid var(--line-2);height:36px;color:var(--snow);white-space:nowrap;background:#ffffff0a;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .2s,border-color .2s,opacity .2s;display:inline-flex}.btn:hover{background:#ffffff17}.btn:disabled{opacity:.55;cursor:progress}.btn svg{flex:none;width:16px;height:16px}.btn-ghost{color:var(--pearl);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--snow);background:#ffffff0f}.btn-primary{background:var(--green);color:var(--snow);border-color:#ffffff1f;height:44px;font-size:15px}.btn-primary:hover{background:var(--green-hi)}.btn-pill{border-radius:var(--r-pill)}.icon-btn{width:36px;padding:0}.ticket-dock{width:var(--ticket-w);z-index:5;position:absolute;top:76px;bottom:16px;right:16px}.ticket-dock:before{content:"";z-index:-1;pointer-events:none;filter:blur(60px);background:radial-gradient(closest-side,#a7a2ff47,#0000);position:absolute;inset:10% -20% 30% 0}.ticket{overscroll-behavior:contain;background:var(--glass);height:100%;-webkit-backdrop-filter:var(--blur);border:1px solid var(--line);border-radius:var(--r-card);position:relative;overflow-y:auto}.ticket-inner{gap:20px;padding:20px 24px 24px;display:grid}.ticket-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ticket-head .pills{-webkit-backdrop-filter:none;backdrop-filter:none;background:#ffffff08}.intro-title{letter-spacing:-.02em;text-wrap:balance;font-size:28px;font-weight:425;line-height:1.18}.intro-sub{color:var(--pearl);text-wrap:pretty;margin-top:8px;font-size:15px}.route{gap:14px;display:grid}.route-row{grid-template-columns:18px 1fr;column-gap:12px;display:grid}.route-rail{justify-content:center;display:flex;position:relative}.route-rail:before{content:"";border-left:1.5px dashed #8dd6ff8c;width:0;position:absolute;top:18px;bottom:-14px}.route-row:last-child .route-rail:before{display:none}.route-pin{background:#e03131;border-radius:50%;width:12px;height:12px;margin-top:5px;box-shadow:0 0 0 3px #e0313138}.route-pin.to{border:2px solid var(--snow);box-shadow:none;background:0 0}.route-pin.local{background:var(--mercury);box-shadow:none}.field-label{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mercury);font-size:11.5px}.field-value{text-wrap:balance;font-size:17px;font-weight:500;line-height:1.35}.field-note{color:var(--pearl);margin-top:2px;font-size:14px}.arrival{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:12px;padding-top:4px;display:flex}.arrival-time{letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-size:48px;font-weight:425;line-height:1}.arrival-time small{letter-spacing:0;color:var(--pearl);margin-left:8px;font-size:16px;font-weight:400}.verdict{text-align:right;justify-items:end;gap:6px;display:grid}.summary{color:var(--pearl);font-size:15px}.summary b{color:var(--snow);font-weight:600}.cat-pill{border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:6px;padding:3px 10px;font-size:13px;font-weight:600;display:inline-flex}.cat-pill .v{font-family:var(--mono);opacity:.85;font-size:12px;font-weight:500}.cat-dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.strip{margin:0}.strip-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.strip svg{width:100%;height:auto;display:block}.strip .grid-line{stroke:#ffffff12;stroke-width:1px}.strip .band{fill:#8dd6ff0f}.strip .raw{stroke:var(--snow);stroke-width:1.4px;stroke-dasharray:3 2;opacity:.75}.strip text{font-family:var(--mono);fill:var(--mercury);text-anchor:middle;font-size:9.5px}.strip text.val{fill:var(--snow)}.strip-key{color:var(--mercury);gap:12px;font-size:12px;display:inline-flex}.strip-key i{vertical-align:middle;margin-right:5px;display:inline-block}.key-band{background:#8dd6ff2e;border-radius:2px;width:12px;height:9px}.key-raw{border-top:1.5px dashed var(--snow);width:12px}.perf{border-top:1.5px dashed #ffffff29;height:1px;margin:4px -24px;position:relative}.perf:before,.perf:after{content:"";background:var(--void);border:1px solid var(--line);border-radius:50%;width:16px;height:16px;position:absolute;top:-9px}.perf:before{clip-path:inset(0 0 0 50%);left:-9px}.perf:after{clip-path:inset(0 50% 0 0);right:-9px}.section-title{letter-spacing:-.005em;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;font-size:15px;font-weight:600;display:flex}.section-title .mono{color:var(--mercury);font-weight:400}.status{margin:0;padding:0;list-style:none}.status li{border-top:1px solid var(--line);transition:background-color 1.2s var(--ease);grid-template-columns:48px 1fr auto;align-items:center;gap:4px 12px;margin:0 -24px;padding:10px 24px;display:grid}.status li:first-child{border-top-color:#0000}.status li:focus-visible{outline-offset:-2px;border-radius:0}.status li.lit{background:var(--sky-wash)}.status .t{font-family:var(--mono);color:var(--pearl);font-variant-numeric:tabular-nums;font-size:13px}.status .t s{color:var(--mercury)}.status .name{font-size:15px;font-weight:500}.status .code{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--pearl);flex-wrap:wrap;grid-column:2/4;align-items:center;gap:6px;font-size:12px;display:flex}.status li.changed .code{color:var(--sky)}.status .air{font-family:var(--mono);color:var(--pearl);font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.flip{display:inline-block}.grap{border:1px solid var(--violet);background:#8c93fb12;border-radius:16px;padding:12px 14px;font-size:14.5px}.grap strong{font-size:13px;font-family:var(--mono);letter-spacing:.04em;color:var(--violet);margin-bottom:4px;font-weight:500;display:block}.remarks{gap:2px;margin:0;padding:0;list-style:none;display:grid}.remarks li{grid-template-columns:20px 1fr;gap:10px;padding:8px 0;font-size:15px;line-height:1.45;display:grid}.remarks input{width:18px;height:18px;accent-color:var(--green);margin:2px 0 0}.remarks label{cursor:pointer;text-wrap:pretty}.remarks label.done{color:var(--mercury);text-decoration:line-through}.more{color:var(--sky);background:0 0;border:0;align-items:center;gap:4px;padding:4px 0;font-size:14px;display:inline-flex}.more svg{width:15px;height:15px;transition:transform .2s}.more[aria-expanded=true] svg{transform:rotate(180deg)}.stub{gap:12px;display:grid}.stub-row{gap:8px;display:flex}.stub-row .btn-primary{flex:1;min-width:0}.btn .label{text-overflow:ellipsis;overflow:hidden}.ticket-inner,.ticket-stack{grid-template-columns:minmax(0,1fr);min-width:0}.ticket{overflow-x:hidden}.stub-row .icon-btn{width:44px;height:44px}@media (width>=861px){.stub{z-index:2;border-radius:0 0 var(--r-card) var(--r-card);background:linear-gradient(#0f141be6,#0f141b 18px);gap:10px;margin:0 -24px -24px;padding:0 24px 16px;position:sticky;bottom:0}.stub .perf{margin:0 -24px 6px}}.message{color:#dfe5ea;border:1px solid var(--line);text-wrap:pretty;background:#ffffff08;border-radius:14px;padding:12px 14px;font-size:15px;line-height:1.5}.row{flex-wrap:wrap;gap:8px;display:flex}.email-form{gap:8px;display:flex}.input{border-radius:var(--r-input);border:1px solid var(--edge);background:var(--obsidian);min-width:0;height:44px;color:var(--snow);flex:1;padding:0 14px;font-size:15px;transition:border-color .2s}.input::placeholder{color:var(--mercury)}.input:focus{border-color:var(--sky);outline:none}.status-msg{color:var(--pearl);font-size:14px}.status-msg.error{color:#ff8182}.fineprint{color:var(--mercury);text-wrap:pretty;gap:6px;font-size:13px;display:grid}.fineprint a{color:var(--sky);text-underline-offset:3px}.why-route{color:var(--pearl);font-size:14px}.why-route button{margin-top:8px}.search{position:relative}.search-field{border-radius:var(--r-input);border:1px solid var(--edge);background:var(--obsidian);align-items:center;gap:10px;height:48px;padding:0 12px;transition:border-color .2s;display:flex}.search-field:focus-within{border-color:var(--sky)}.search-field svg{width:18px;height:18px;color:var(--mercury);flex:none}.search-field input{background:0 0;border:0;outline:none;flex:1;min-width:0;height:100%;font-size:16px}.search-list{z-index:20;border:1px solid var(--line-2);background:#10151c;border-radius:14px;max-height:300px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.search-list li{cursor:pointer;border-radius:8px;flex-direction:column;padding:9px 10px;font-size:15px;display:flex}.search-list li small{color:var(--mercury);font-size:12.5px}.search-list li.active{background:#8dd6ff1a}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border-radius:var(--r-pill);border:1px solid var(--line-2);height:30px;color:var(--pearl);background:0 0;padding:0 12px;font-size:13.5px;transition:color .2s,border-color .2s}.chip:hover{color:var(--snow);border-color:#fff6}.hint{color:var(--pearl);font-size:14px}.skeleton{gap:12px;display:grid}.skeleton div{background:linear-gradient(90deg,#ffffff0a,#ffffff14,#ffffff0a) 0 0/200% 100%;border-radius:12px;height:56px;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.timeline{left:16px;right:calc(var(--ticket-w) + 32px);z-index:5;background:var(--glass);-webkit-backdrop-filter:var(--blur);border:1px solid var(--line);border-radius:var(--r-card);grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:12px 18px 12px 12px;display:grid;position:absolute;bottom:16px}.play{border:1px solid var(--line-2);width:44px;height:44px;color:var(--snow);background:#ffffff0f;border-radius:50%;place-items:center;transition:background-color .2s;display:grid}.play:hover{background:#ffffff1f}.play svg{width:18px;height:18px}.tl-body{min-width:0}.tl-now strong{text-overflow:ellipsis;min-width:0;overflow:hidden}.tl-now{align-items:baseline;gap:10px;margin-bottom:2px;display:flex}.tl-now strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px;font-weight:600}.tl-now .lead{font-family:var(--mono);color:var(--mercury);white-space:nowrap;font-size:12px}.tl-now .lead.fc{color:var(--sky)}.track{height:30px;position:relative}.track-past{background:#ffffff29;border-radius:4px;height:4px;position:absolute;top:11px;left:0}.track-t0{background:var(--sky);border-radius:2px;width:2px;height:18px;position:absolute;top:4px}.tick{border-left:1px solid var(--fog);height:6px;position:absolute;top:18px}.tick span{font-family:var(--mono);color:var(--mercury);white-space:nowrap;font-size:10.5px;position:absolute;top:6px;left:4px}.track input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:26px;margin:0;position:absolute;inset:0 0 auto}.track input[type=range]::-webkit-slider-runnable-track{background:#ffffff14;border-radius:4px;height:4px}.track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--snow);border:4px solid var(--void);width:18px;height:18px;box-shadow:0 0 0 1px var(--line-2);border-radius:50%;margin-top:-7px}.track input[type=range]::-moz-range-track{background:#ffffff14;border-radius:4px;height:4px}.track input[type=range]::-moz-range-thumb{background:var(--snow);border:4px solid var(--void);border-radius:50%;width:12px;height:12px}.tally{text-align:right;justify-items:end;line-height:1.2;display:grid}.tally strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:425}.tally strong small{color:var(--mercury);letter-spacing:0;font-size:14px;font-weight:400}.tally span{color:var(--pearl);max-width:160px;font-size:12.5px}.tally .short,.show-sm{display:none}.calm{z-index:5;border-radius:var(--r-pill);border:1px solid var(--line-2);background:var(--glass);height:40px;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);color:var(--snow);align-items:center;gap:10px;padding:0 8px 0 16px;font-size:14px;display:inline-flex;position:absolute;top:76px;left:16px}.calm span.go{border-radius:var(--r-pill);background:#ffffff1a;align-items:center;gap:6px;height:28px;padding:0 12px;display:inline-flex}.calm svg{width:15px;height:15px}.site-hint{z-index:5;border-radius:var(--r-pill);background:var(--glass);max-width:420px;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);pointer-events:none;border:1px dashed #8dd6ff99;padding:10px 16px;font-size:14px;position:absolute;top:76px;left:16px}.layers-pop{z-index:30;background:var(--glass-solid);border:1px solid var(--line-2);border-radius:16px;gap:12px;width:260px;padding:14px;display:grid;position:absolute;top:60px;right:16px}.scale{grid-template-columns:repeat(3,1fr);gap:3px;display:grid}.scale span{text-align:center;border-radius:4px;padding:3px 0;font-size:11px;font-weight:600}.toggles{gap:2px;display:grid}.toggles label{cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:6px 4px;font-size:14px;display:flex}.toggles label:hover{background:#ffffff0d}.toggles input{accent-color:var(--sky);margin:0}.toggles hr{border:0;border-top:1px solid var(--line);margin:4px 0}.sw{border-radius:3px;flex:none;width:16px;height:10px}.maplibregl-ctrl-top-left{top:64px!important}.maplibregl-ctrl-group{border:1px solid var(--line)!important;box-shadow:none!important;background:#0d1117d9!important;border-radius:10px!important}.maplibregl-ctrl-group button+button{border-top:1px solid var(--line)!important}.maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert()opacity(.8)}.maplibregl-ctrl-attrib{font-size:11px;color:var(--mercury)!important;background:#0d1117cc!important}.maplibregl-ctrl-attrib a{color:var(--pearl)!important}.maplibregl-ctrl-attrib-button{filter:invert()}.sheet{z-index:8;touch-action:none;background:var(--glass-solid);border-top:1px solid var(--line-2);border-radius:24px 24px 0 0;flex-direction:column;height:90dvh;display:flex;position:fixed;bottom:0;left:0;right:0}.sheet-handle{background:0 0;border:0;flex:none;place-items:center;width:100%;height:28px;display:grid}.sheet-handle span{background:var(--fog);border-radius:4px;width:40px;height:5px}.sheet-body{overscroll-behavior:contain;touch-action:pan-y;flex:1;overflow-y:auto}.sheet-body .ticket-inner{padding-top:4px}@media (width<=860px){.topbar{gap:8px;height:56px;padding:0 10px 0 14px}.wordmark span,.hide-sm{display:none}.pill{height:30px;padding:0 11px;font-size:13px}.timeline{left:8px;right:8px;bottom:calc(var(--peek,44dvh) + 8px);border-radius:18px;grid-template-columns:auto 1fr auto;gap:10px;padding:8px 12px 8px 8px}.play{width:38px;height:38px}.tally strong{font-size:20px}.tally strong small,.tally .long,.tl-now .lead{display:none}.tally .short,.show-sm{display:inline}.tally span{font-size:11px}.tl-now strong{font-size:14px}.tick span,.maplibregl-ctrl-group,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-top-left{top:56px!important}.calm,.site-hint{max-width:none;top:64px;left:8px;right:8px}.layers-pop{top:56px;right:8px}.ticket-inner{gap:18px;padding:4px 18px 28px}.perf{margin:4px -18px}.status li{margin:0 -18px;padding:10px 18px}.arrival-time{font-size:40px}.intro-title{font-size:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
