:root{--bg:#f7f9fa;--ink:#192f3f;--muted:#5d7080;--faint:#8d9ca7;--accent:#b12c3a;--accent-strong:#90232f;--on-accent:#fff;--sheet:#fffffff5;--card:#fff;--card-line:#d9e2e7;--field:#f2f6f8;--success:#087b72;--success-bg:#087b7221;--danger:#b12c3a;--danger-bg:#b12c3a1f;--font-display:Georgia, "Times New Roman", serif;--font-serif:var(--font-display);--font-body:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-numeric:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--font-anton:"Arial Narrow", Impact, "Arial Black", system-ui, sans-serif;--gap-xs:4px;--gap-sm:8px;--gap-md:12px;--gap-lg:18px;--shadow:0 18px 54px #1e293324;--shadow-soft:0 8px 24px #1e29331a;font-family:var(--font-body)}*{box-sizing:border-box}html,body{min-height:100%}html{background:var(--bg)}body{min-height:100dvh;color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}button,input,select{font:inherit}button{color:inherit;touch-action:manipulation}a{color:inherit}code,.mono{font-family:var(--font-numeric);font-variant-numeric:tabular-nums}.app-shell{background:var(--bg);width:100%;height:100dvh;position:relative;overflow:hidden}.map-stage,.map-canvas{position:absolute;inset:0}.solve-confetti{z-index:90;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.solve-confetti{display:none}}.map-tools{z-index:3;top:max(88px, calc(env(safe-area-inset-top) + 78px));border:1px solid var(--card-line);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border-radius:12px;align-items:stretch;gap:5px;padding:4px;display:flex;position:absolute;left:12px}.map-tool-button,.map-reset-button{border:1px solid var(--card-line);min-height:34px;color:var(--ink);cursor:pointer;background:0 0;border-radius:8px;padding:0 10px;font-size:.82rem;font-weight:700}.map-tool-button{width:34px;padding:0;font-size:1.15rem;line-height:1}.map-reset-icon{display:none}.map-tool-button:hover,.map-tool-button:focus-visible,.map-reset-button:hover,.map-reset-button:focus-visible{border-color:var(--accent);background:var(--field);outline:0}.map-selection-help{z-index:2;top:max(60px, calc(env(safe-area-inset-top) + 48px));background:var(--card);min-height:38px;color:var(--accent-strong);box-shadow:var(--shadow-soft);border:1px solid #b12c3a52;border-radius:999px;align-items:center;gap:9px;padding:0 14px;font-size:.82rem;font-weight:700;display:inline-flex;position:absolute;left:50%;transform:translate(-50%)}.map-selection-help i{border:2px solid var(--accent);background:0 0;border-radius:999px;width:10px;height:10px}.map-error{z-index:5;border:1px solid var(--danger-bg);background:var(--card);color:var(--muted);text-align:center;border-radius:12px;place-content:center;gap:8px;padding:24px;display:grid;position:absolute;inset:18px}.map-error strong{color:var(--danger)}.maplibregl-control-container{font-family:inherit}.maplibregl-ctrl-top-left{top:max(110px, calc(env(safe-area-inset-top) + 100px));left:12px}.maplibregl-ctrl-group{border:1px solid var(--card-line);background:var(--card);box-shadow:var(--shadow-soft);border-radius:10px;overflow:hidden}.maplibregl-ctrl-group button{background:var(--card)}.maplibregl-ctrl-top-right{top:max(110px, calc(env(safe-area-inset-top) + 100px));right:10px}.maplibregl-ctrl-top-right .maplibregl-ctrl-attrib{box-shadow:var(--shadow-soft);background:#ffffffe0;border-radius:8px}.maplibregl-ctrl-top-right .maplibregl-ctrl-attrib a{color:var(--muted)}.maplibregl-popup.stop-popup .maplibregl-popup-content{border:1px solid var(--card-line);background:var(--card);color:var(--ink);box-shadow:var(--shadow-soft);border-radius:8px;padding:7px 10px;font:700 .8rem/1.2 inherit}.maplibregl-popup.stop-popup .maplibregl-popup-tip{border-top-color:var(--card)}.maplibregl-popup-content{border:1px solid var(--card-line);background:var(--card);color:var(--ink);box-shadow:var(--shadow-soft);border-radius:10px;font:.82rem/1.4 inherit}.maplibregl-popup-tip{border-top-color:var(--card)!important;border-bottom-color:var(--card)!important}.maplibregl-popup-close-button{color:var(--muted)}.station-click-popup{font:.82rem/1.4 inherit}.station-click-popup-title{color:var(--ink);margin:0 0 4px;font-size:.88rem;font-weight:800}.station-click-popup-sub{color:var(--muted);margin:0 0 8px;font-size:.76rem}.station-click-popup-grid{overscroll-behavior:contain;flex-wrap:wrap;gap:5px;max-height:148px;display:flex;overflow-y:auto}.station-click-train-btn{border:1px solid var(--card-line);background:var(--field);color:var(--accent-strong);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:6px;padding:4px 9px;font:700 .78rem/1 ui-monospace,monospace}.station-click-train-btn:hover{border-color:var(--accent)}.station-click-train-btn.armed{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.station-click-detail{border-top:1px dotted #4c667857;gap:1px;min-height:34px;margin-top:8px;padding-top:7px;display:grid}.station-click-detail-hint{color:var(--faint);font-size:.7rem;font-weight:700}.station-click-detail-name{font-family:var(--font-display);color:var(--ink);font-size:.82rem;font-weight:700}.station-click-detail-route{color:#536b7a;font-size:.7rem;font-family:var(--font-numeric), ui-monospace, monospace}.station-click-detail.has-train .station-click-detail-hint{order:3;margin-top:2px}.float-brand{z-index:10;top:max(10px, env(safe-area-inset-top));border:1px solid var(--card-line);background:var(--card);width:64px;height:64px;box-shadow:var(--shadow-soft);cursor:pointer;border-radius:13px;padding:6px;position:absolute;left:12px}.float-brand img{width:100%;height:100%;display:block}.float-brand:hover,.float-brand:focus-visible{border-color:var(--accent);outline:0}.float-actions{z-index:10;top:max(10px, env(safe-area-inset-top));gap:6px;display:flex;position:absolute;right:12px}.float-actions .header-icon-button{background:var(--card);box-shadow:var(--shadow-soft)}.account-callout{z-index:12;top:max(10px, env(safe-area-inset-top));border:1px solid var(--card-line);width:min(480px,100% - 24px);min-height:74px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-radius:18px;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 14px;display:flex;position:absolute;left:12px}.account-callout-copy{flex:auto;gap:4px;min-width:0;display:grid}.account-callout-copy strong{color:var(--ink);font-size:1.04rem;line-height:1.12}.account-callout-copy span{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.78rem;line-height:1.3;display:-webkit-box;overflow:hidden}.account-callout-button{border:1px solid var(--accent);background:var(--accent);min-height:44px;color:var(--on-accent);font:700 .82rem var(--font-body);white-space:nowrap;cursor:pointer;border-radius:12px;flex:none;padding:0 16px}.account-callout-button:hover:not(:disabled),.account-callout-button:focus-visible{background:var(--accent-strong);outline:0}.account-callout-button:disabled{cursor:default;opacity:.6}.account-callout-error{color:var(--danger);flex:0 0 100%;font-size:.68rem}.account-short-label{display:none}.account-profile{z-index:12;top:max(10px, env(safe-area-inset-top));width:max-content;max-width:min(176px,100% - 340px);position:absolute;left:auto;right:264px}.account-profile-trigger{border:1px solid var(--card-line);width:max-content;max-width:100%;height:44px;min-height:44px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);font:700 .76rem var(--font-body);cursor:pointer;text-align:left;background:#fffffff0;border-radius:9px;align-items:center;gap:7px;padding:0 10px;display:flex}.account-profile-trigger:hover,.account-profile-trigger:focus-visible,.account-profile-trigger[aria-expanded=true]{border-color:var(--accent);outline:0}.account-profile-trigger-signed-in{border-color:#307d5459}.account-profile-avatar{flex:none;font-size:1.1rem;line-height:1}.account-profile-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:145px;overflow:hidden}.account-profile-popover{border:1px solid var(--card-line);width:min(252px,100vw - 24px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffffa;border-radius:13px;gap:12px;padding:14px;display:grid;position:absolute;top:calc(100% + 7px);right:0}.account-profile-popover-copy{gap:3px;display:grid}.account-profile-popover-copy strong{color:var(--ink);font-size:.78rem}.account-profile-popover-copy span{color:var(--muted);font-size:.7rem;line-height:1.4}.account-profile-action{border:1px solid var(--accent);background:var(--accent);min-height:44px;color:var(--on-accent);font:700 .72rem var(--font-body);cursor:pointer;border-radius:8px;padding:7px 10px}.account-profile-display-name{color:var(--ink);line-height:1.2;font-size:.9rem!important}.account-profile-account-status{color:var(--muted);font-weight:700;font-size:.72rem!important}.account-profile-action:hover:not(:disabled),.account-profile-action:focus-visible{background:var(--accent-strong);outline:0}.account-profile-action-secondary{border-color:var(--card-line);color:var(--muted);background:0 0}.account-profile-action-secondary:hover:not(:disabled),.account-profile-action-secondary:focus-visible{border-color:var(--accent);color:var(--accent-strong);background:0 0}.account-profile-action:disabled{cursor:default;opacity:.6}.account-profile-error{color:var(--danger);font-size:.68rem}.auth-callback{background:var(--bg);min-height:100dvh;color:var(--muted);place-items:center;display:grid}.site-brand{color:var(--ink);white-space:nowrap;align-items:center;gap:9px;font-size:.94rem;font-weight:800;display:inline-flex}.site-brand>span:last-child{font-family:var(--font-serif);letter-spacing:.04em;text-transform:uppercase}.site-brand-mark{width:34px;height:34px;box-shadow:none;background:0 0;border:none;padding:0}.site-brand-mark img{width:100%;height:100%;display:block}.standalone-header{justify-content:space-between;align-items:center;gap:24px;width:100%;padding:4px 0;display:flex}.standalone-brand{color:var(--ink);white-space:nowrap;align-items:center;gap:10px;font-size:1rem;font-weight:800;text-decoration:none;display:inline-flex}.standalone-brand-mark{flex:none;width:44px;height:44px;display:block}.standalone-brand-mark img{width:100%;height:100%;display:block}.standalone-brand>span:last-child{font-family:var(--font-serif);letter-spacing:.04em;text-transform:uppercase}.standalone-header-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 20px;display:flex}.standalone-header-nav a{color:var(--accent-strong);font-size:.84rem;font-weight:800;text-decoration:none}.standalone-header-back{color:var(--muted)!important}.standalone-header-nav a:hover,.standalone-header-nav a:focus-visible{text-decoration:underline}.sheet-context{align-items:center;gap:var(--gap-md);display:flex;position:relative}.sheet-grip,.context-route-label{display:none}.parked-hint{min-width:0;color:var(--accent-strong);flex:auto;align-items:center;gap:6px;font-size:.8rem;font-weight:700;display:inline-flex}.pick-on-map{display:none}.context-mode{border:1px solid var(--card-line);background:var(--field);color:var(--accent);letter-spacing:.02em;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:5px;padding:3px 11px;font-size:.72rem;font-weight:800;display:inline-flex}.context-mode-name{white-space:nowrap}.context-mode-divider{color:var(--faint)}.context-difficulty{color:var(--ink);letter-spacing:.06em;text-transform:uppercase;font-size:.66rem}.context-mode:hover,.context-mode:focus-visible{border-color:var(--accent);outline:0}.context-route{min-width:0;font-family:var(--font-display);color:var(--ink);flex:1;align-items:center;gap:7px;font-size:.86rem;font-weight:700;display:flex}.context-route span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.context-route svg{color:var(--accent);flex:none}.context-timer{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:4px;font-size:.74rem;font-weight:800;display:inline-flex}.context-timer.running{color:var(--accent-strong)}.header-icon-button{border:1px solid var(--card-line);width:44px;min-width:44px;height:44px;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;place-items:center;display:grid}.header-icon-button:hover,.header-icon-button:focus-visible{color:var(--accent-strong);border-color:var(--accent);outline:0}.intro-overlay{z-index:60;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.intro-modal{z-index:1;border:1px solid var(--card-line);background:var(--card);width:min(400px,100%);box-shadow:var(--shadow);text-align:center;border-radius:18px;padding:26px 24px 22px;position:relative}.intro-stamp{width:58px;height:58px}.intro-modal h2{font-family:var(--font-serif);color:var(--ink);margin:8px 0 2px;font-size:1.4rem}.intro-sub{color:var(--muted);margin:0 0 16px;font-size:.84rem;font-weight:600}.intro-rules{text-align:left;gap:10px;margin:0 0 18px;padding:0;list-style:none;display:grid}.intro-rules li{color:var(--ink);align-items:flex-start;gap:10px;font-size:.85rem;line-height:1.45;display:flex}.intro-rules b{background:var(--accent);height:22px;color:var(--on-accent);border-radius:999px;flex:0 0 22px;place-items:center;font-size:.72rem;display:grid}.intro-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.sheet-dock{z-index:15;pointer-events:none;justify-content:center;padding:0 12px 12px;display:flex;position:absolute;bottom:0;left:0;right:0}.sheet-dock>*{pointer-events:auto}.sheet-dock>.sheet{width:min(100%,720px)}.toast{border:1px solid var(--card-line);background:var(--card);width:max-content;max-width:min(560px,100vw - 24px);color:var(--muted);box-shadow:var(--shadow);opacity:0;pointer-events:none;border-radius:12px;padding:10px 14px;font-size:.88rem;line-height:1.4;transition:opacity .18s,transform .18s;position:absolute;bottom:calc(100% + 10px);left:50%;right:auto;transform:translate(-50%,6px)}.toast.visible{opacity:1;pointer-events:auto;transform:translate(-50%)}.toast strong{color:var(--ink)}.toast.success{border-color:var(--success-bg);color:var(--success)}.toast.success strong{color:var(--success)}.toast.error{border-color:var(--danger-bg);color:var(--danger)}.toast.error strong{color:var(--danger)}.sheet{z-index:20;border:1px solid var(--card-line);background:var(--sheet);-webkit-backdrop-filter:blur(28px);width:100%;max-height:min(40dvh,420px);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:10px;padding:14px;display:flex;position:relative;overflow:visible}.sheet.invalid{animation:.24s nudge}.sheet.riding{pointer-events:none}.sheet.replay-animating{pointer-events:none;transform:translateY(100%)}.sheet.riding:after{content:"Train in motion. Tap the map to skip animation";border-radius:inherit;color:var(--ink);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe0;place-items:center;font-size:.84rem;font-weight:750;display:grid;position:absolute;inset:0}.sheet>*+*{border-top:1px solid var(--card-line);padding-top:8px}.sheet.choose-train{gap:8px;max-height:min(38dvh,348px);padding:12px 14px;overflow:hidden}.sheet.choose-train>*{flex:none}.sheet.choose-train>.station-trains{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.sheet.choose-train.browse-open{gap:var(--gap-sm);max-height:min(62dvh,560px)}.sheet.choose-train.browse-open>*+*{padding-top:var(--gap-sm)}.sheet.choose-train.browse-open>.station-trains{flex-direction:column;display:flex;overflow:hidden}.sheet.choose-train.browse-open .station-trains-list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--card-line) transparent;flex:auto;min-height:0;overflow-y:auto}@keyframes sheet-step-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.sheet.choose-train{animation:.3s both sheet-step-in}.sheet.choose-stop{gap:8px;max-height:min(45dvh,480px);padding:16px;animation:.3s both sheet-step-in;overflow:hidden}.sheet-header{flex-direction:column;gap:4px;display:flex}.sheet-header-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet-header-main{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.sheet-heading{min-width:0}.sheet-eyebrow{color:var(--accent-strong);text-transform:uppercase;letter-spacing:.09em;margin:0 0 2px;font-size:.66rem;font-variant-caps:small-caps;font-weight:800}.step-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:700;overflow:hidden}.step-label-short,.eyebrow-short{display:none}.sheet-heading-row{align-items:baseline;gap:8px;min-width:0;display:flex}.sheet-header h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);font-family:var(--font-display);letter-spacing:-.012em;margin:0;font-size:1.15rem;font-weight:700;overflow:hidden}.sheet-header-actions{flex:none;align-items:center;gap:7px;display:flex}.sheet-meta{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.78rem;font-weight:700}.sheet-subtitle{color:var(--muted);margin:2px 0 0;font-size:.86rem}.sheet-subtitle.ticket-meta{color:var(--accent-strong);font-variant-numeric:tabular-nums;font-weight:700}.service-description{color:var(--muted);margin:3px 0 0;font-size:.76rem;line-height:1.25}.service-description strong{color:var(--ink)}.code-chip{border:1px solid var(--card-line);background:var(--field);color:var(--accent-strong);font-variant-numeric:tabular-nums;border-radius:6px;flex:none;align-items:center;padding:2px 7px;font-family:ui-monospace,monospace;font-size:.72rem;font-weight:800;display:inline-flex}.stop-sheet-title{align-items:flex-start;gap:10px;min-width:0;display:flex}.stop-sheet-title>div{min-width:0}.card-stamp{object-fit:contain;flex:none;width:44px;height:auto;display:block}.card-stamp-compact{width:36px}.search-form{grid-template-columns:minmax(0,1fr) 76px;gap:10px;display:grid}.search-field{min-width:0;position:relative}.search-field label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.search-form input,.search-form button{border-radius:10px;min-height:48px}.search-form input{border:1px solid var(--card-line);background:var(--field);width:100%;color:var(--ink);outline:0;padding:0 16px;font-size:.94rem;font-weight:600}.search-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b12c3a24}.search-form input::placeholder{color:var(--faint);font-style:italic}.search-form input:disabled{opacity:.5}.search-form button[type=submit]{background:var(--accent);color:var(--on-accent);cursor:pointer;border:0;font-weight:800}.search-form button[type=submit]:disabled{cursor:not-allowed;opacity:.45}.station-trains{display:block}.station-trains-empty{color:var(--muted);margin:0;font-size:.84rem}.train-type-filter{border-bottom:1px solid var(--card-line);min-height:40px;color:var(--muted);justify-content:space-between;align-items:center;gap:14px;margin:0 0 10px;padding:0 0 9px;font-size:.76rem;font-weight:700;display:flex}.train-type-filter>span{flex:auto;min-width:0}.train-type-filter select{border:1px solid var(--card-line);background:var(--field);width:min(200px,100%);min-width:0;max-width:100%;min-height:36px;color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;flex:0 auto;padding:6px 32px 6px 11px;font-weight:750;line-height:1.2}.train-type-filter select:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--card-line))}.train-type-filter select:focus-visible{border-color:var(--accent);outline-offset:1px;outline:2px solid #b12c3a29}.station-trains-toolbar{display:none}.sheet.choose-train.browse-open .station-trains-toolbar{flex:none;min-height:0;margin:0 0 6px}.station-trains-actions{align-items:center;gap:8px;display:inline-flex}.station-filter{flex:none;margin:-2px 0 5px;position:relative}.station-filter-bar{align-items:center;gap:8px;min-height:28px;display:flex}.station-filter-clear{border:1px solid var(--card-line);background:var(--field);min-height:27px;color:var(--muted);cursor:pointer;border-radius:5px;align-items:center;gap:5px;padding:0 8px;font-size:.72rem;font-weight:750;display:inline-flex}.station-filter-clear:hover,.station-filter-clear:focus-visible{border-color:var(--accent);color:var(--accent-strong);outline:0}.station-filter-label{min-width:0;color:var(--muted);font-size:.72rem}.station-filter-label strong{color:var(--accent-strong)}.station-filter-result{color:var(--faint);margin-left:auto;font-size:.7rem;font-weight:700}.station-filter-loading{padding:8px 2px}.browse-toggle{border:1px solid var(--card-line);background:var(--field);min-height:27px;color:var(--ink);letter-spacing:0;text-transform:none;border-radius:5px;align-items:center;gap:5px;padding:0 8px;font-size:.72rem;font-weight:750;display:inline-flex}.browse-toggle:hover,.browse-toggle:focus-visible{border-color:var(--accent);color:var(--accent-strong);outline:0}.text-button.search-toggle{display:none}.search-toggle[aria-expanded=true]{border-color:var(--accent);color:var(--accent-strong)}.browse-chevron{transition:transform .18s}.browse-toggle[aria-expanded=true] .browse-chevron{transform:rotate(180deg)}.train-row{border:0;border-top:1px solid var(--card-line);width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:11px 12px;transition:background-color .12s;display:grid}.station-trains-list>.train-row:first-of-type{border-top:0}.train-row:hover,.train-row.route-previewing{background:var(--field)}.train-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:8px}.train-row-stamp{border-radius:5px;width:40px;height:auto;box-shadow:0 1px 2px #1f2d3d29}.train-row-body{flex-direction:column;gap:2px;min-width:0;display:flex}.train-row-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-body);letter-spacing:-.01em;color:var(--ink);font-size:.95rem;font-weight:650;overflow:hidden}.train-row-route{min-width:0;font-family:var(--font-numeric);font-variant-numeric:tabular-nums;color:var(--muted);align-items:baseline;gap:5px;font-size:.72rem;display:flex}.train-row-number,.train-row-from,.train-row-to{color:var(--ink);font-weight:700}.train-row-sep,.train-row-arrow{color:var(--faint);font-weight:400}.train-row-to{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.train-row-class{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:var(--class-fg,var(--muted));background:var(--class-bg,var(--field));border-radius:100px;flex:none;padding:3px 8px;font-size:.6rem;font-weight:700}.train-row-chevron{color:var(--faint);flex:none}.train-row:hover .train-row-chevron{color:var(--muted)}.train-row[data-class=rail]{--class-fg:#4f5a66;--class-bg:#eef1f4}.train-row[data-class=express]{--class-fg:#2f5d97;--class-bg:#e9f0f8}.train-row[data-class=superfast]{--class-fg:#8a5f27;--class-bg:#f6efe2}.train-row[data-class=rajdhani]{--class-fg:#8f1e2b;--class-bg:#f9ebed}.train-row[data-class=duronto]{--class-fg:#1e6e46;--class-bg:#e7f2ec}.train-row[data-class=garib]{--class-fg:#2f6f63;--class-bg:#e6f1ef}.train-row[data-class=shatabdi]{--class-fg:#3a4f9e;--class-bg:#eceff8}.train-row[data-class=gatimaan]{--class-fg:#3a3540;--class-bg:#eeecf1}.train-row[data-class=vande]{--class-fg:#1f4e79;--class-bg:#e8eff5}.train-row-more{border:0;border-top:1px solid var(--card-line);width:100%;color:var(--accent-strong);font-family:var(--font-body);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:6px;margin-top:2px;padding:10px 12px;font-size:.78rem;font-weight:650;display:flex}.train-row-more:hover,.train-row-more:focus-visible{background:var(--field);outline:0}.station-trains-list{flex-direction:column;gap:0;scroll-padding-top:24px;display:flex}.sheet.choose-train.browse-open .station-trains-list{-webkit-mask-image:linear-gradient(#000 calc(100% - 22px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 22px),#0000 100%)}@supports (animation-timeline:scroll()){.sheet.choose-train.browse-open .station-trains-list{animation:linear both browse-list-fade;animation-timeline:scroll(self);animation-range:contain 100% end 100%}@keyframes browse-list-fade{to{-webkit-mask-image:linear-gradient(#000 100%,#0000 100%);mask-image:linear-gradient(#000 100%,#0000 100%)}}}.browse-tier-label{background:var(--card);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);flex:none;margin:12px 0 2px;padding:3px 10px;font-size:.64rem;font-weight:800}.browse-tier-label:first-child{margin-top:0}.train-suggestions{z-index:2;border:1px solid var(--card-line);background:var(--card);max-height:40dvh;box-shadow:var(--shadow);border-radius:12px;margin:0;padding:6px;list-style:none;position:absolute;inset:auto 0 calc(100% + 8px);overflow:auto}.train-suggestions li+li{margin-top:3px}.suggestion-divider{color:var(--faint);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:8px;margin:4px 2px 2px;font-size:.66rem;font-weight:700;display:flex}.suggestion-divider:before,.suggestion-divider:after{content:"";background:var(--card-line);flex:auto;height:1px}.train-suggestions button{width:100%;min-height:48px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;padding:8px 10px;display:flex}.train-suggestions button:hover,.train-suggestions button:focus-visible{background:var(--field);outline:0}.train-suggestions span{min-width:0;color:var(--muted);gap:2px;font-size:.78rem;font-weight:600;line-height:1.2;display:grid}.train-suggestions strong{color:var(--accent-strong);font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace;font-size:.9rem;font-weight:800}.text-button{color:var(--accent-strong);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:4px 0;font-size:.84rem;font-weight:700;display:inline-flex}.text-button:hover:not(:disabled),.text-button:focus-visible:not(:disabled){outline:0;text-decoration:underline}.text-button:disabled{color:var(--faint);cursor:not-allowed;text-decoration:none}.text-button.small{padding:2px 0;font-size:.72rem}.dev-answer-toggle{flex:none;position:relative}.dev-answer-toggle summary{cursor:pointer;color:var(--faint);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700;list-style:none}.dev-answer-toggle summary::-webkit-details-marker{display:none}.dev-answer-toggle summary::marker{content:""}.dev-answer-toggle[open] summary{color:var(--accent-strong)}.dev-answer-toggle .answer-list{z-index:30;border:1px solid var(--card-line);background:var(--card);width:220px;max-height:50vh;box-shadow:var(--shadow);border-radius:10px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;overflow:auto}.sheet-cta-row{flex-wrap:wrap;gap:10px;display:flex}.primary-button,.ghost-button{cursor:pointer;text-align:center;border-radius:10px;flex:120px;justify-content:center;align-items:center;min-height:48px;font-size:.92rem;font-weight:800;text-decoration:none;display:inline-flex}.primary-button{background:var(--accent);color:var(--on-accent);border:0}.primary-button:hover:not(:disabled),.primary-button:focus-visible:not(:disabled){background:var(--accent-strong);outline:0}.primary-button:disabled{opacity:.45;cursor:not-allowed}.ghost-button{border:1px solid var(--card-line);color:var(--ink);background:0 0}.ghost-button:hover,.ghost-button:focus-visible{border-color:var(--accent);outline:0}.sheet.solved{overscroll-behavior:contain;max-height:min(52dvh,520px);overflow-y:auto}.share-fallback{gap:5px;display:grid}.share-fallback label{color:var(--muted);font-size:.72rem;font-weight:700}.share-fallback textarea{resize:vertical;border:1px solid var(--card-line);background:var(--field);width:100%;color:var(--ink);font:600 .78rem/1.45 var(--font-body);border-radius:10px;padding:8px 10px}.leaderboard{flex-direction:column;gap:8px;display:flex}.leaderboard-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.leaderboard-header h2,.leaderboard-header h3{font-family:var(--font-display);color:var(--ink);margin:0;font-size:.98rem;font-weight:700}.leaderboard-header>div{gap:2px;display:grid}.leaderboard-header>div>span{color:var(--muted);font-size:.74rem;font-weight:600}.leaderboard-count{color:var(--muted);font-size:.74rem;font-weight:700}.leaderboard-rank{color:var(--muted);font-size:.78rem;font-weight:600}.leaderboard-rank strong{color:var(--accent)}.leaderboard-results{container-type:inline-size}.leaderboard-list{gap:0;max-height:none;display:grid;overflow:visible}.leaderboard-columns,.leaderboard-row{grid-template-columns:38px minmax(0,1fr) 68px 82px 60px;align-items:center;gap:12px;display:grid}.leaderboard-columns{color:var(--muted);border-bottom:1px solid var(--card-line);padding:12px 14px;font-size:.7rem;font-weight:700}.leaderboard-columns>:nth-child(n+3){text-align:right}.leaderboard-row{border-bottom:1px solid var(--card-line);background:var(--card);min-height:68px;padding:16px 14px;font-size:.88rem}.leaderboard-row[data-rank="1"]{background:#d4af3712}.leaderboard-you{box-shadow:inset 3px 0 var(--accent);background:#b12c3a0f}.leaderboard-pos{font-family:var(--font-numeric);color:var(--muted);text-align:center;font-weight:700}.leaderboard-row[data-rank="1"] .leaderboard-pos{color:#896308}.leaderboard-name{min-width:0;color:var(--ink);overflow-wrap:anywhere;word-break:break-word;font-weight:600;line-height:1.3}.leaderboard-trains{font-family:var(--font-numeric);color:var(--accent-strong);white-space:nowrap;font-weight:700}.leaderboard-km,.leaderboard-time{font-family:var(--font-numeric);color:var(--muted);white-space:nowrap}.leaderboard-trains strong,.leaderboard-km strong,.leaderboard-time strong{font:inherit}.leaderboard-row>:nth-child(n+3){text-align:right}.leaderboard-row small{display:none}.leaderboard-pagination{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:18px;font-size:.76rem;display:flex}.leaderboard-pagination>div{gap:8px;display:flex}.leaderboard-pagination button{border:1px solid var(--card-line);background:var(--card);cursor:pointer;border-radius:8px;min-height:40px;padding:8px 13px}.leaderboard-pagination button:disabled{opacity:.45;cursor:default}.leaderboard-pagination button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@container (max-width:510px){.leaderboard-columns{display:none}.leaderboard-row{grid-template-columns:26px auto auto minmax(0,1fr);grid-template-areas:"rank name name name""rank trains km time";gap:2px 11px;min-height:0;padding:10px 12px}.leaderboard-pos{grid-area:rank;align-self:center;font-size:.95rem}.leaderboard-name{letter-spacing:-.006em;grid-area:name;font-size:.95rem;font-weight:700}.leaderboard-trains{grid-area:trains;font-size:.8rem}.leaderboard-km{grid-area:km;font-size:.8rem}.leaderboard-time{grid-area:time;font-size:.8rem}.leaderboard-row>:nth-child(n+3){text-align:left;align-self:center}.leaderboard-row small{display:none}.leaderboard-trains strong{color:var(--accent-strong)}.leaderboard-km strong,.leaderboard-time strong{color:var(--muted)}}.leaderboard-replay{color:var(--accent-strong);white-space:nowrap;background:color-mix(in srgb, var(--accent) 12%, transparent);letter-spacing:.01em;vertical-align:middle;border-radius:4px;margin-left:6px;padding:1px 7px;font-size:.6rem;font-weight:600;text-decoration:none;display:inline-block}.leaderboard-replay:hover,.leaderboard-replay:focus-visible{background:var(--accent);color:var(--on-accent);outline:0}.replay-locked-overlay{z-index:900;-webkit-backdrop-filter:blur(8px);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.replay-locked-card{background:var(--card);border:1px solid var(--card-line);text-align:center;border-radius:20px;width:min(360px,100% - 32px);padding:2.5rem 2.5rem 2rem;box-shadow:0 12px 40px #0000004d}.replay-locked-icon{background:var(--field);width:56px;height:56px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.replay-locked-card h2{color:var(--ink);margin:0 0 8px;font-size:1.15rem;font-weight:800}.replay-locked-card p{color:var(--muted);margin:0 0 20px;font-size:.88rem;line-height:1.5}.replay-locked-card .primary-button{justify-content:center;align-items:center;min-width:180px;min-height:44px;text-decoration:none;display:inline-flex}.leaderboard-empty{border:1px solid var(--card-line);background:var(--field);color:var(--muted);border-radius:8px;margin:0;padding:10px;font-size:.8rem}.stats-leaderboard{border-top:1px solid var(--card-line);padding-top:14px}.leaderboard-state{border:1px solid var(--card-line);background:var(--field);border-radius:10px;align-items:center;gap:10px;min-height:58px;margin-top:2px;padding:11px 12px;display:flex}.leaderboard-state>div{gap:3px;min-width:0;display:grid}.leaderboard-state p{color:var(--muted);margin:0;font-size:.8rem;line-height:1.35}.leaderboard-state strong{color:var(--ink);font-size:.82rem}.leaderboard-state .text-button{flex:none;margin-left:auto}.leaderboard-state-mark{border:1px solid var(--card-line);background:var(--card);width:25px;height:25px;color:var(--accent-strong);font:800 .78rem/1 var(--font-numeric);border-radius:8px;flex:none;place-items:center;display:grid}.leaderboard-loading .leaderboard-state-mark{border-color:var(--accent);border-right-color:#0000;border-radius:999px;animation:.8s linear infinite stats-spin}.leaderboard-error{background:var(--danger-bg);border-color:#b12c3a57}.leaderboard-error strong{color:var(--danger)}.stop-list{overscroll-behavior:contain;gap:6px;max-height:min(30dvh,280px);padding:1px 2px 1px 0;display:grid;overflow-y:auto}.stop-row{border:1px solid var(--card-line);background:var(--card);min-height:46px;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:9px 12px 9px 48px;display:flex;position:relative}.stop-row:before{content:"";background:var(--card-line);width:2px;position:absolute;top:-7px;bottom:-7px;left:21px}.stop-row:first-child:before{top:50%}.stop-row:last-child:before{bottom:50%}.stop-track-marker{z-index:1;color:#fff;place-items:center;width:23px;height:23px;display:grid;position:absolute;left:10px}.stop-track-marker>span{background:var(--muted);width:14px;height:4px;box-shadow:0 0 0 3px var(--card);border-radius:2px}.stop-row:hover,.stop-row:focus-visible{border-color:var(--accent);outline:0}.stop-row.selected{border-color:var(--accent);background:var(--field)}.stop-row.selected .stop-track-marker{background:var(--accent);box-shadow:0 0 0 3px var(--card);border-radius:7px}.stop-row-main{flex:auto;gap:2px;min-width:0;display:grid}.stop-row-line1{align-items:center;gap:8px;min-width:0;display:flex}.stop-row-line2{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.stop-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:.84rem;font-weight:650;overflow:hidden}.stop-code{background:var(--field);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:6px;flex:none;padding:2px 7px;font-family:ui-monospace,monospace;font-size:.74rem;font-weight:700}.stop-times{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:600;overflow:hidden}.stop-row-figures{flex:none;align-items:center;gap:8px;display:flex}.stop-km{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.76rem;font-weight:700}.stop-duration{color:var(--accent-strong);font-variant-numeric:tabular-nums;flex:none;font-size:.76rem;font-weight:700}.sheet.choose-stop .sheet-cta-row{background:var(--sheet);padding-top:4px;position:sticky;bottom:0}.stat-row{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.stat-cell{border:1px solid var(--card-line);background:var(--card);text-align:center;border-radius:12px;align-content:center;gap:4px;min-height:84px;padding:12px;display:grid}.stat-cell span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700}.stat-cell strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.3rem}.stat-cell strong.soon{color:var(--faint);text-transform:lowercase;font-size:.88rem}.stat-cell em{color:var(--accent-strong);font-size:.68rem;font-style:normal;font-weight:700}.stat-cell-primary{background:var(--field);grid-column:1/-1}.stat-cell-primary strong{font-size:1.7rem}.solve-celebration{background:linear-gradient(90deg,#0d8a771f,#fffffff5);border:1px solid #0d8a774d;border-radius:11px;align-items:center;gap:10px;min-height:58px;padding:9px 11px;animation:.44s cubic-bezier(.2,.8,.2,1) both solve-arrival;display:flex}.solve-emblem{background:var(--success);color:#fff;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid}.solve-celebration div{gap:1px;min-width:0;display:grid}.solve-celebration p{color:var(--success);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.66rem;font-weight:850}.solve-celebration strong{color:var(--ink);font-size:.92rem}.solve-time{color:var(--success);font-variant-numeric:tabular-nums;margin-left:auto;font-size:1rem;font-weight:850}.answer-list{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.answer-list li{background:var(--card);border-radius:8px;gap:2px;padding:8px;display:grid}.answer-list strong{color:var(--ink);font-size:.86rem}.answer-list span,.answer-list em{color:var(--muted);font-size:.76rem;line-height:1.25}.answer-list em{font-style:normal;font-weight:600}.menu-overlay,.overlay-panel{z-index:40;position:fixed;inset:0}.menu-scrim,.overlay-scrim{cursor:pointer;background:#04060999;border:0;padding:0;position:absolute;inset:0}.menu-panel{width:min(84vw,320px);padding:max(16px, env(safe-area-inset-top)) 16px calc(20px + env(safe-area-inset-bottom));overscroll-behavior:contain;background:var(--card);border-left:1px solid var(--card-line);box-shadow:var(--shadow);align-content:start;gap:4px;display:grid;position:absolute;top:0;bottom:0;right:0;overflow-y:auto}.menu-header{border-bottom:1px solid var(--card-line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:14px;display:flex}.menu-panel button:not(.menu-scrim){min-height:50px;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:11px;padding:0 12px;font-size:1rem;font-weight:700;display:flex}.menu-panel button.active{background:var(--field);color:var(--accent-strong)}.menu-panel button:hover,.menu-panel button:focus-visible{color:var(--ink);outline:0}.menu-panel .menu-header .header-icon-button{justify-content:center;min-width:44px;min-height:44px;padding:0}.menu-link{min-height:50px;color:var(--muted);border-radius:10px;align-items:center;gap:11px;padding:0 12px;font-size:1rem;font-weight:700;text-decoration:none;display:flex}.menu-link:hover,.menu-link:focus-visible{background:var(--field);color:var(--ink);outline:0}.legal-page{background:var(--bg);height:100dvh;min-height:100dvh;color:var(--ink);padding:32px 16px;overflow:auto}.legal-card{background:var(--card);border:1px solid var(--card-line);width:min(100%,760px);box-shadow:var(--shadow);border-radius:18px;margin:0 auto;padding:clamp(24px,5vw,56px)}.legal-page>.standalone-header{width:min(100%,760px);margin:0 auto 24px}.legal-navigation{flex-wrap:wrap;gap:8px 18px;display:flex}.legal-navigation a{color:var(--accent-strong);font-weight:700;text-decoration:none}.legal-navigation a:hover,.legal-navigation a:focus-visible{text-decoration:underline}.legal-eyebrow{color:var(--accent-strong);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:.75rem;font-weight:800}.legal-card h1{margin:0;font-size:clamp(2rem,6vw,3.4rem);line-height:1}.legal-updated{color:var(--muted);margin-top:12px;font-size:.9rem}.legal-card h2{margin:32px 0 10px;font-size:1.25rem;line-height:1.2}.legal-card p{max-width:66ch;color:var(--muted);line-height:1.7}.legal-card h1,.legal-card h2{color:var(--ink)}@media (max-width:600px){.standalone-header{flex-wrap:wrap;align-items:flex-start;gap:10px 16px}.standalone-header-nav{flex:100%;justify-content:flex-start;gap:4px 14px}.standalone-header-nav a{align-items:center;min-height:40px;display:inline-flex}.legal-page{padding:20px 12px 32px}.legal-page>.standalone-header{margin-bottom:16px}.legal-card{border-radius:14px;padding:24px 18px 32px}.legal-eyebrow{margin-top:0;font-size:.68rem}.legal-card h1{font-size:clamp(1.9rem,10vw,2.55rem)}.legal-card h2{margin-top:26px;font-size:1.12rem}.legal-card p{font-size:.95rem;line-height:1.65}}.overlay-content{width:min(92vw,640px);max-height:min(88dvh,780px);padding:26px 22px calc(26px + env(safe-area-inset-bottom));border:1px solid var(--card-line);background:var(--card);box-shadow:var(--shadow);border-radius:18px;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.overlay-close{border:1px solid var(--card-line);background:var(--field);width:44px;min-width:44px;height:44px;min-height:44px;color:var(--muted);cursor:pointer;border-radius:999px;place-items:center;font-size:1.1rem;line-height:1;display:grid;position:absolute;top:14px;right:14px}.overlay-close:hover,.overlay-close:focus-visible{color:var(--ink);border-color:var(--accent);outline:0}.overlay-eyebrow{color:var(--accent-strong);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:.72rem;font-weight:800;display:inline-block}.overlay-content h1{color:var(--ink);font-family:var(--font-serif);margin:0;padding-right:52px;font-size:clamp(1.6rem,5vw,2.2rem);font-weight:700;line-height:1.15}.overlay-copy{max-width:520px;color:var(--muted);margin:12px 0 0;font-size:.96rem;line-height:1.55}.leaderboard-popup-list{margin-top:22px}.leaderboard-popup-actions{margin-top:20px}.popup-link{color:var(--accent-strong);margin-top:18px;font-size:.84rem;font-weight:800;text-decoration:none;display:inline-flex}.popup-link:hover,.popup-link:focus-visible{outline:0;text-decoration:underline}.popup-button-link{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.help-steps{counter-reset:help-step;gap:10px;margin:22px 0 0;padding:0;list-style:none;display:grid}.help-steps li{counter-increment:help-step;border-top:1px solid var(--card-line);grid-template-columns:34px minmax(0,1fr);column-gap:12px;padding:14px 0;display:grid}.help-steps li:before{content:counter(help-step);background:var(--field);width:30px;height:30px;color:var(--accent-strong);border-radius:9px;grid-row:1/span 2;place-items:center;font-weight:800;display:grid}.help-steps strong{color:var(--ink);font-size:.92rem}.help-steps span{color:var(--muted);font-size:.84rem;line-height:1.4}.stats-page-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px;display:grid}.stats-context{color:var(--muted);align-items:center;gap:8px;margin:8px 0 0;font-size:.82rem;font-weight:700;display:flex}.stats-context span{color:var(--faint)}.stat-tile,.history-card{border:1px solid var(--card-line);background:var(--field);border-radius:12px}.stat-tile{align-content:center;gap:8px;min-height:100px;padding:14px;display:grid}.stat-tile span{color:var(--muted);font-size:.78rem;font-weight:700}.stat-tile strong{color:var(--accent-strong);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:clamp(.92rem,4.4vw,1.6rem);line-height:1.15}.history-card{text-align:left;margin-top:14px;padding:18px}.history-card h2{color:var(--ink);font-family:var(--font-serif);margin:0;font-size:1.02rem}.history-card p{color:var(--muted);margin:8px 0 0;line-height:1.5}.overlay-content>.primary-button{width:100%;margin-top:20px;display:block}.feedback-overlay{z-index:70;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.feedback-modal{z-index:1;border:1px solid var(--card-line);background:var(--card);width:min(100%,460px);max-height:min(92dvh,720px);box-shadow:var(--shadow);border-radius:16px;padding:24px;position:relative;overflow-y:auto}.feedback-modal h2{color:var(--ink);font:700 1.55rem/1.15 var(--font-serif);margin:0;padding-right:52px}.feedback-intro{color:var(--muted);margin:8px 0 18px;font-size:.88rem;line-height:1.5}.feedback-form{gap:14px;display:grid}.feedback-form>label:not(.feedback-context-toggle):not(.feedback-honeypot){gap:6px;display:grid}.feedback-form label>span:first-child{color:var(--ink);font-size:.79rem;font-weight:800}.feedback-form select,.feedback-form textarea{border:1px solid var(--card-line);background:var(--field);width:100%;color:var(--ink);font:600 .86rem/1.45 var(--font-body);border-radius:9px}.feedback-form select{min-height:44px;padding:0 11px}.feedback-form textarea{resize:vertical;min-height:118px;padding:10px 11px}.feedback-form select:focus,.feedback-form textarea:focus{border-color:var(--accent);outline:2px solid color-mix(in srgb, var(--accent) 18%, transparent)}.feedback-form label>small{color:var(--muted);font-variant-numeric:tabular-nums;justify-self:end;font-size:.7rem}.feedback-context-toggle{border:1px solid var(--card-line);background:var(--field);cursor:pointer;border-radius:9px;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:9px;padding:10px 11px;display:grid}.feedback-context-toggle input{width:16px;height:16px;accent-color:var(--accent);margin:2px 0 0}.feedback-context-toggle>span{gap:2px;display:grid}.feedback-context-toggle>span>small{color:var(--muted);font-size:.7rem;line-height:1.4}.feedback-privacy{color:var(--muted);margin:-2px 0 0;font-size:.72rem;line-height:1.4}.feedback-error{color:var(--danger);margin:0;font-size:.78rem;font-weight:700}.feedback-actions{justify-content:flex-end;gap:8px;padding-top:2px;display:flex}.feedback-actions button{min-height:44px}.feedback-honeypot{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.feedback-success{text-align:center;justify-items:center;gap:8px;padding:14px 4px 2px;display:grid}.feedback-success>span{background:var(--success);color:#fff;border-radius:999px;place-items:center;width:42px;height:42px;display:grid}.feedback-success .overlay-eyebrow{margin:4px 0 0}.feedback-success h2{padding:0}.feedback-success p:not(.overlay-eyebrow){color:var(--muted);margin:0 0 8px;font-size:.86rem;line-height:1.5}.feedback-success .primary-button{width:100%;margin-top:4px}.history-card>div{justify-content:space-between;align-items:baseline;gap:14px;display:flex}.history-card>div span{color:var(--success);font-size:.8rem;font-weight:700}.history-card ol{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.history-card li{border-top:1px solid var(--card-line);color:var(--ink);grid-template-columns:1fr auto auto;gap:10px;padding-top:8px;font-size:.86rem;display:grid}.history-card li strong{align-items:center;gap:7px;display:inline-flex}.history-card li strong small{color:var(--muted);font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;font-size:.65rem;font-weight:700}.history-card li span,.history-card li em{color:var(--muted);font-style:normal}@keyframes stats-spin{to{transform:rotate(360deg)}}@keyframes nudge{0%,to{transform:translate(0)}35%{transform:translate(-5px)}70%{transform:translate(5px)}}@keyframes solve-arrival{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stop-row:focus-visible,.train-suggestions button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.text-button:focus-visible:not(:disabled){outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.stop-row:hover{transform:none}}@media (hover:none){.train-row:hover:not(:focus-visible){background:0 0}.stop-row:hover:not(:focus-visible){border-color:var(--card-line)}.train-suggestions button:hover:not(:focus-visible){background:0 0}.float-brand:hover:not(:focus-visible),.header-icon-button:hover:not(:focus-visible){border-color:var(--card-line);color:var(--muted)}.map-tool-button:hover:not(:focus-visible),.map-reset-button:hover:not(:focus-visible){border-color:var(--card-line);background:0 0}.train-row,.stop-row,.text-button,.primary-button,.ghost-button,.float-brand,.map-tool-button,.map-reset-button,.header-icon-button{cursor:default}.station-click-train-btn{min-height:44px;padding:6px 12px;font-size:.84rem}}@media (max-width:680px){.sheet-dock{padding:0}.account-callout{border-radius:16px;gap:12px;width:auto;padding:12px;left:8px;right:8px}.account-callout-copy strong{font-size:.96rem}.account-callout-button{min-height:40px;padding:0 13px;font-size:.74rem}.float-actions .header-action-help,.float-actions .header-action-feedback,.float-actions .header-action-leaderboard{display:none}.float-actions{gap:6px;right:8px}.float-actions .header-icon-button{width:44px;height:44px}.float-brand{border-radius:11px;width:56px;height:56px;left:8px}.account-profile{top:max(10px, env(safe-area-inset-top));width:auto;max-width:none;height:44px;left:72px;right:110px}.account-profile-trigger{border-radius:999px;justify-content:flex-start;gap:8px;width:max-content;max-width:100%;height:44px;min-height:44px;padding:0 12px}.account-profile-avatar{font-size:1.2rem}.account-profile-name{max-width:none;font-size:.8rem;display:block}.account-profile-popover{left:0;right:auto}.feedback-overlay{align-items:end;padding:0}.feedback-modal{width:100%;max-height:90dvh;padding:20px 16px calc(16px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0}.feedback-modal h2{font-size:1.3rem}.feedback-modal .overlay-eyebrow{margin-bottom:7px;font-size:.66rem}.feedback-intro{margin:6px 0 14px;font-size:.82rem}.feedback-form{gap:12px}.feedback-form textarea{min-height:92px}.feedback-form select,.feedback-form textarea{font-size:.85rem}.feedback-form label>span:first-child{font-size:.76rem}.sheet{border-bottom:0;border-radius:16px 16px 0 0}.sheet.choose-train{overscroll-behavior:contain;max-height:min(56dvh,480px);padding:10px 14px calc(10px + env(safe-area-inset-bottom));gap:10px;transition:max-height .28s cubic-bezier(.32,.72,0,1);overflow-y:auto}.sheet.choose-train.browse-open{max-height:min(74dvh,660px)}.sheet.choose-train.dragging,.sheet.choose-train.browse-open.dragging,.sheet.choose-stop.dragging,.sheet.choose-stop.sheet-expanded.dragging{height:var(--sheet-drag-height);max-height:none;transition:none}.sheet.choose-stop{transition:max-height .28s cubic-bezier(.32,.72,0,1)}.sheet.choose-stop.sheet-expanded{max-height:min(82dvh,720px)}.sheet.choose-train,.sheet.choose-stop{touch-action:none;-webkit-user-select:none;user-select:none}.sheet .station-trains-list,.sheet .station-trains-list-preview,.sheet .stop-list{touch-action:pan-y}.sheet input,.sheet textarea{-webkit-user-select:text;user-select:text}.sheet-context{cursor:grab;padding-top:12px;position:relative}.sheet.dragging .sheet-context{cursor:grabbing}.sheet-grip{background:var(--card-line);border-radius:999px;width:38px;height:4px;display:block;position:absolute;top:2px;left:50%;transform:translate(-50%)}.context-mode{background:var(--field);border-radius:6px;padding:3px 7px;display:inline-flex}.context-mode-name,.context-mode-divider{display:none}.context-difficulty{font-size:.62rem}.context-route-from,.context-route-icon{display:none}.context-route-label{color:var(--muted);font-size:.72rem;font-weight:700;display:inline}.context-route{gap:5px;font-size:.82rem}.sheet.choose-train .sheet-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 10px;display:grid}.sheet.choose-train .sheet-header-top,.sheet.choose-train .sheet-header-main{display:contents}.sheet.choose-train .step-label{display:none}.sheet.choose-train .sheet-heading{grid-area:1/1;min-width:0}.sheet.choose-train .sheet-header-actions{grid-area:1/2}.sheet.choose-train .sheet-meta{display:none}.sheet-eyebrow{margin:0 0 1px;display:block}.eyebrow-long{display:none}.eyebrow-short{display:inline}.sheet-heading-row{align-items:center;gap:7px}.sheet-heading-row .code-chip{padding:1px 6px;font-size:.66rem;line-height:1.5;transform:translateY(1px)}.sheet.choose-train .search-form{display:none}.sheet.choose-train.search-open .search-form,.sheet.choose-train.hard-mode .search-form{display:grid}.text-button.search-toggle{display:inline-flex}.sheet.choose-train.hard-mode .search-toggle,.station-trains-toolbar{display:none}.station-filter{margin:0 0 2px}.station-filter-bar{min-height:30px}.station-filter-clear{min-height:30px;font-size:.7rem}.station-filter-result{font-size:.68rem}.sheet-header-actions .browse-toggle{min-width:44px;min-height:44px;color:var(--accent-strong);background:0 0;border:0;padding:0}.sheet-context{gap:8px;margin-bottom:0;padding-bottom:8px}.step-label{margin:0}.step-label-long{display:none}.step-label-short{display:inline}.sheet-header h2{overflow-wrap:anywhere;font-size:1.22rem}.text-button.small{justify-content:center;min-width:44px;min-height:44px;padding:2px 4px;font-size:.78rem}.sheet-header-actions .text-button.small span{display:none}.sheet-header-actions .text-button.small svg{width:17px;height:17px}.sheet-header-actions .dev-answer-toggle{display:none}.sheet-header-actions{gap:2px}.sheet.choose-stop{max-height:min(62dvh,520px);padding:12px 14px calc(12px + env(safe-area-inset-bottom))}.sheet.solved{max-height:min(58dvh,520px);padding:12px 14px calc(12px + env(safe-area-inset-bottom))}.sheet.choose-stop .sheet-header h2{-webkit-line-clamp:2;font-size:1.05rem}.sheet.choose-stop>*{flex:none}.sheet.choose-stop .stop-list{flex:auto;min-height:0;max-height:none}.sheet.choose-stop .service-description,.sheet.choose-stop .sheet-subtitle{font-size:.74rem}.stop-row{min-height:44px;padding:7px 10px 7px 44px}.search-form input,.search-form button{min-height:44px}.train-row{gap:10px;padding:9px 10px}.train-row-class{padding:3px 7px;font-size:.56rem}.train-type-filter{gap:9px;min-height:38px;margin-bottom:8px;padding-bottom:8px}.train-type-filter select{width:min(200px,100%);min-width:0;min-height:44px;padding:5px 28px 5px 9px}.station-filter-clear{min-height:32px;padding:0 10px}.train-row-more{min-height:44px}.feedback-context-toggle{align-items:center;min-height:44px}.search-form input,.search-form button,.feedback-form select,.feedback-form textarea{font-size:16px}.stat-row{grid-template-columns:repeat(2,1fr)}.map-tool-button{display:none}.map-tools{box-shadow:none;background:0 0;border:0;padding:0}.map-reset-button{width:44px;height:44px;box-shadow:var(--shadow-soft);background:#fffffff0;border-radius:10px;place-items:center;padding:0;display:grid}.map-reset-button span{display:none}.map-reset-icon{display:block}.sheet.sheet-parked>:not(.sheet-context){display:none}.sheet.sheet-parked{max-height:none;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.sheet.sheet-parked .sheet-context{cursor:pointer;border-bottom:0;padding-bottom:0}.sheet.sheet-parked .context-timer{color:var(--accent-strong)}.sheet.choose-stop.sheet-parked .context-route{display:none}.pick-on-map{justify-content:center;align-items:center;gap:6px;display:inline-flex}.sheet-cta-row{flex-wrap:wrap}.sheet-cta-row .primary-button{flex:100%}.sheet-cta-row .ghost-button{flex:1 1 0}.map-selection-help{display:none}.map-selection-help.on-map{top:auto;bottom:calc(78px + env(safe-area-inset-bottom));max-width:calc(100vw - 32px);display:inline-flex}}@media (max-height:480px){.sheet.choose-train,.sheet.choose-train.browse-open,.sheet.choose-stop{overscroll-behavior:contain;max-height:min(90dvh,348px);padding:10px 14px calc(10px + env(safe-area-inset-bottom));gap:8px;overflow-y:auto}.sheet.choose-train>*+*,.sheet>*+*{padding-top:8px}.sheet-eyebrow,.step-label-long{display:none}.step-label-short{display:inline}.sheet-header{gap:3px}.sheet-header h2{font-size:1.05rem}.sheet-context{padding-bottom:6px}.station-trains-toolbar{min-height:26px;margin:-2px 0 2px}.train-row{padding:8px 10px}.search-form input,.search-form button{min-height:44px}.stop-list{flex:auto;min-height:0;max-height:none}.sheet.choose-stop .sheet-header h2{font-size:1rem}.map-selection-help,.station-trains-toolbar{display:none}.sheet-header-actions .browse-toggle{min-width:44px;min-height:44px}}@media (max-width:680px) and (max-height:700px){.sheet.choose-train{gap:8px;max-height:min(62dvh,440px)}.sheet.choose-train.browse-open{max-height:min(72dvh,500px)}.sheet.choose-stop{max-height:min(70dvh,480px)}.sheet-context{padding-bottom:6px}.station-trains-toolbar{min-height:26px;margin:-2px 0 2px}}@media (max-width:420px){.account-callout{gap:9px;padding:10px}.account-callout-copy strong{font-size:.88rem}.account-callout-copy span{font-size:.68rem}.account-callout-button{min-height:38px;padding:0 11px}.account-long-label{display:none}.account-short-label{display:inline}.float-brand{border-radius:11px;width:52px;height:52px;left:8px}.float-actions{right:8px}.account-profile{left:68px}.context-route{font-size:.76rem}.map-tools{top:max(84px, calc(env(safe-area-inset-top) + 76px));left:8px}.map-reset-button{padding:0 8px;font-size:.74rem}.feedback-actions .primary-button{flex:auto}.sheet{padding:14px 14px calc(14px + env(safe-area-inset-bottom));gap:12px}.sheet.choose-stop{padding:13px 14px calc(10px + env(safe-area-inset-bottom))}.sheet-header-actions{gap:7px}.sheet-meta{display:none}.sheet-header h2{white-space:normal;-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;line-height:1.2;display:-webkit-box;overflow:hidden}.sheet-heading-row{align-items:flex-start}.stat-row{gap:8px}.stat-cell{min-height:74px;padding:10px}.stat-cell strong{font-size:1.1rem}.solve-celebration{min-height:54px;padding:8px 9px}.solve-emblem{border-radius:9px;width:32px;height:32px}.solve-celebration strong{font-size:.85rem}.solve-time{font-size:.9rem}.standalone-header{align-items:flex-start;gap:14px}.standalone-brand{font-size:.88rem}.standalone-brand-mark{width:38px;height:38px}.standalone-header-nav{gap:6px 12px}.standalone-header-nav a{font-size:.74rem}.menu-panel{border-left:0;width:100vw}.overlay-content{width:calc(100vw - 16px);padding:22px 14px calc(22px + env(safe-area-inset-bottom))}.stats-page-grid{gap:6px}.stat-tile{min-width:0;padding:12px 9px}.stats-section-heading{flex-wrap:wrap;align-items:flex-start;gap:4px 10px}.history-card{padding:14px}.history-card>div{flex-wrap:wrap;align-items:flex-start}.history-card>div span{font-size:.72rem}.history-card li{grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;font-size:.78rem}.history-card li em{grid-column:1/-1}}.sm-ep{pointer-events:none;-webkit-user-select:none;user-select:none}.sm-ep-inner{font-family:var(--font-anton), "Arial Narrow", "Hanken Grotesk", system-ui, sans-serif;transform:scale(var(--sm-scale,.6));transform-origin:bottom;filter:drop-shadow(0 1px 2px #14161c47);flex-direction:column;align-items:center;display:flex}.sm-ep-top{justify-content:center;align-items:flex-end;margin-bottom:-1px;line-height:0;display:flex}.sm-ep-flag,.sm-ep-here{display:none}.sm-ep.is-finish .sm-ep-flag{display:inline-block}.sm-ep.is-nudged .sm-ep-legs{visibility:hidden}.sm-ep.is-nudged .sm-ep-board{box-shadow:inset 0 0 0 1px #1b1b1b24,0 2px 6px -1px #14161c4d}.sm-train{pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 1px 2px #14161c59)}.sm-train-img{width:var(--sm-train,24px);height:auto;display:block}.sm-ep-board{color:#1b1b1b;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;background:#f5c21a;border:1.2px solid #1b1b1b;border-radius:2.5px;max-width:132px;padding:2.5px 5px 2px;font-size:11px;line-height:1;overflow:hidden;box-shadow:inset 0 0 0 1px #1b1b1b24}.sm-ep-board--code{display:block}.sm-ep-board--name,.sm-ep.is-full .sm-ep-board--code{display:none}.sm-ep.is-full .sm-ep-board--name{display:block}.sm-ep-legs{width:100%;height:12px;position:relative}.sm-ep-legs:before{content:"";background:#1b1b1b;border-radius:1px;width:2px;height:12px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.sm-ep-legs:after{content:"";background:#1b1b1b;border-radius:50%;width:5px;height:5px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.sm-chip-mk{pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;display:flex}.sm-chip{font-family:var(--font-body);letter-spacing:.2px;color:var(--ink);white-space:nowrap;background:#fff;border:1px solid #dce3e8;border-radius:100px;align-items:center;gap:5px;padding:3px 9px 3px 7px;font-size:11px;font-weight:700;display:inline-flex;box-shadow:0 1px 3px #14161c2e}.sm-chip-ic{background:#5c6b7a;border-radius:50%;flex:none;width:7px;height:7px}.sm-chip-dest .sm-chip-ic{background:var(--accent)}.sm-chip-code,.sm-chip-name{line-height:1}.sm-chip-name,.sm-chip-mk.is-full .sm-chip-code{display:none}.sm-chip-mk.is-full .sm-chip-name{display:inline}.sm-chip-stem{background:#8a97a3;width:1.8px;height:12px}.sm-chip-dest .sm-chip-stem{background:var(--accent)}.sm-chip-dot{background:#5c6b7a;border:1.5px solid #fff;border-radius:50%;width:8px;height:8px;position:relative;box-shadow:0 0 0 1px #14161c1f}.sm-chip-dest .sm-chip-dot{background:var(--accent)}@keyframes sm-blink{0%,to{opacity:1}50%{opacity:.3}}.sm-chip-dest .sm-chip-ic{animation:1.3s ease-in-out infinite sm-blink}@media (prefers-reduced-motion:reduce){.sm-chip-dest .sm-chip-ic{animation:none}}
