@font-face{font-family:IRANSansX;font-style:normal;font-weight:300;font-display:swap;src:url(/IranSansX/IRANSansX-Light.woff)format("woff")}@font-face{font-family:IRANSansX;font-style:normal;font-weight:400;font-display:swap;src:url(/IranSansX/IRANSansX-Regular.woff)format("woff")}@font-face{font-family:IRANSansX;font-style:normal;font-weight:500;font-display:swap;src:url(/IranSansX/IRANSansX-Medium.woff)format("woff")}@font-face{font-family:IRANSansX;font-style:normal;font-weight:600;font-display:swap;src:url(/IranSansX/IRANSansX-DemiBold.woff)format("woff")}@font-face{font-family:IRANSansX;font-style:normal;font-weight:700;font-display:swap;src:url(/IranSansX/IRANSansX-Bold.woff)format("woff")}@font-face{font-family:IRANSansX;font-style:normal;font-weight:800;font-display:swap;src:url(/IranSansX/IRANSansX-ExtraBold.woff)format("woff")}@font-face{font-family:IRANSansX;font-style:normal;font-weight:900;font-display:swap;src:url(/IranSansX/IRANSansX-Black.woff)format("woff")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:999px;--font-sans:"IRANSansX", system-ui, -apple-system, "Segoe UI", Tahoma, sans-serif;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--leading-tight:1.4;--leading-normal:1.8;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-train:cubic-bezier(.16, .84, .25, 1);--duration-fast:.14s;--duration-base:.24s;--duration-slow:.42s;--shell-max:34rem;--desktop-max:78rem;--tabbar-height:60px;--touch-min:44px;--metro-yellow:#ffd100;--metro-yellow-deep:#e8b900;--metro-black:#141414;--sign-white:#fff;--line-1:#ed1b24;--line-1-ink:#fff;--line-2:#283890;--line-2-ink:#fff;--line-3:#00adef;--line-3-ink:#fff;--line-4:#ffde15;--line-4-ink:#141414;--line-5:#0b9444;--line-5-ink:#fff;--line-6:#f16da9;--line-6-ink:#fff;--line-7:#7f3e98;--line-7-ink:#fff}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root,:root[data-theme=light]{--bg:#f3f1ea;--bg-deep:#e7e4da;--surface:#fff;--surface-raised:#fff;--surface-sunken:#edeae1;--surface-inverse:#141414;--ink:#141414;--ink-soft:#3e3d38;--ink-faint:#66645c;--ink-inverse:#faf8f2;--line:#e1ddd2;--line-strong:#c9c4b6;--accent:#141414;--accent-ink:#ffd100;--accent-soft:#fff3bf;--brand:var(--metro-yellow);--brand-ink:#141414;--brand-soft:#fff6cc;--focus:#141414;--positive:#0b7a3b;--positive-soft:#ddf2e4;--caution:#845400;--caution-soft:#fff1c2;--critical:#b8141b;--critical-soft:#fde3e2;--info:#22408f;--info-soft:#e3e8f7;--shadow-sm:0 1px 2px #14141414;--shadow-md:0 2px 4px #1414140d, 0 6px 18px #14141412;--shadow-lg:0 18px 40px #14141429;--scene-sky:#edebe4;--scene-wall:#d9d6cd;--scene-wall-dark:#c4c0b5;--scene-floor:#cfcbc0;--scene-tunnel:#242424;--scene-metal:#e6e5e0;--scene-metal-dark:#9c9a93;--scene-glass:#bfd0d3;--scene-shadow:#1818142e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e0e0d;--bg-deep:#080807;--surface:#1a1a18;--surface-raised:#222220;--surface-sunken:#131312;--surface-inverse:#f5f3ea;--ink:#f5f3ea;--ink-soft:#cbc8bc;--ink-faint:#9d9a8f;--ink-inverse:#141414;--line:#2b2a26;--line-strong:#403e38;--accent:#ffd100;--accent-ink:#141414;--accent-soft:#332b06;--brand:var(--metro-yellow);--brand-ink:#141414;--brand-soft:#2a2406;--focus:#ffd100;--positive:#5ed08f;--positive-soft:#10281a;--caution:#ffd100;--caution-soft:#2b2408;--critical:#ff8c87;--critical-soft:#36161a;--info:#9db4ff;--info-soft:#18203a;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 2px 12px #00000080;--shadow-lg:0 18px 40px #0009;--scene-sky:#161614;--scene-wall:#24231f;--scene-wall-dark:#1b1a17;--scene-floor:#2a2925;--scene-tunnel:#060606;--scene-metal:#8f8d86;--scene-metal-dark:#4c4a44;--scene-glass:#2f4448;--scene-shadow:#00000080}}:root[data-theme=dark]{--bg:#0e0e0d;--bg-deep:#080807;--surface:#1a1a18;--surface-raised:#222220;--surface-sunken:#131312;--surface-inverse:#f5f3ea;--ink:#f5f3ea;--ink-soft:#cbc8bc;--ink-faint:#9d9a8f;--ink-inverse:#141414;--line:#2b2a26;--line-strong:#403e38;--accent:#ffd100;--accent-ink:#141414;--accent-soft:#332b06;--brand:var(--metro-yellow);--brand-ink:#141414;--brand-soft:#2a2406;--focus:#ffd100;--positive:#5ed08f;--positive-soft:#10281a;--caution:#ffd100;--caution-soft:#2b2408;--critical:#ff8c87;--critical-soft:#36161a;--info:#9db4ff;--info-soft:#18203a;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 2px 12px #00000080;--shadow-lg:0 18px 40px #0009;--scene-sky:#161614;--scene-wall:#24231f;--scene-wall-dark:#1b1a17;--scene-floor:#2a2925;--scene-tunnel:#060606;--scene-metal:#8f8d86;--scene-metal-dark:#4c4a44;--scene-glass:#2f4448;--scene-shadow:#00000080}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);letter-spacing:normal;font-synthesis-weight:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;overflow-x:clip}h1,h2,h3,h4{line-height:var(--leading-tight);font-weight:700}ul,ol{margin:0;padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:0}input,textarea,select{font-size:max(16px, var(--text-base))}a{color:inherit;text-decoration:none}svg{display:block}img{max-width:100%;display:block}:focus{outline:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--metro-yellow);color:var(--metro-black)}.bidi{direction:ltr;unicode-bidi:isolate;display:inline-block}.num{unicode-bidi:isolate}.num--tabular,.departure__time,.direction-row__time strong,.next-train__countdown strong{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scroll-lock{overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important;animation-duration:0s!important;animation-iteration-count:1!important;animation-delay:0s!important}}:root[data-reduced-motion] *,:root[data-reduced-motion] :before,:root[data-reduced-motion] :after{transition-duration:0s!important;transition-delay:0s!important;animation-duration:0s!important;animation-delay:0s!important}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.shell{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.skip-link{z-index:100;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--accent);color:var(--accent-ink);transition:transform var(--duration-fast) var(--ease-out);position:absolute;inset-block-start:var(--space-2);inset-inline-start:var(--space-2);transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.app-header{z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);border-block-end:1px solid var(--line);padding-block-start:env(safe-area-inset-top);position:sticky;inset-block-start:0}.app-header--brand{background:var(--surface);box-shadow:inset 0 -4px 0 var(--metro-yellow), 0 2px 10px #0000000f;border-block-end:0}.app-header--brand .app-header__inner:after{display:none}.app-header__logo{justify-content:center;line-height:0;display:flex}.brand-mark{border-radius:22%;display:block}.brand-logo{line-height:0;display:inline-block}.brand-logo img{width:auto;height:100%;display:block}.brand-logo--horizontal{height:28px}.brand-logo--vertical{height:128px}.brand-logo__dark{display:none!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .brand-logo__light{display:none!important}:root:not([data-theme=light]) .brand-logo__dark{display:block!important}}:root[data-theme=dark] .brand-logo__light{display:none!important}:root[data-theme=dark] .brand-logo__dark{display:block!important}.app-header__inner{align-items:center;gap:var(--space-3);max-width:var(--shell-max);padding:var(--space-2) var(--space-4);min-height:60px;margin-inline:auto;display:flex}.app-header--brand .app-header__inner{min-height:52px;padding-block:var(--space-2) calc(var(--space-2) + 4px)}.app-header__back{width:var(--touch-min);height:var(--touch-min);border-radius:var(--radius-md);color:var(--ink);transition:background-color var(--duration-fast) var(--ease-out);flex:none;place-items:center;margin-inline-start:calc(var(--space-2) * -1);display:grid}.app-header__back:hover{background:var(--surface-sunken)}.app-header__back svg{width:24px;height:24px}.app-header__mark{flex:none;place-items:center;line-height:0;display:grid}.app-header__titles{text-align:center;flex:1;min-width:0}.app-header__inner:after{content:"";width:var(--touch-min);flex:none}.app-header__inner:has(.app-header__mark):after{width:38px}.app-header__title{font-size:var(--text-lg);overflow-wrap:anywhere;font-weight:800;line-height:1.35}.app-header--brand .app-header__title{font-size:1.3rem;font-weight:900;line-height:1.2}.app-header__subtitle{font-size:var(--text-xs);color:var(--ink-faint);line-height:1.5}.app-header--brand .app-header__subtitle{color:var(--ink-soft);margin-block-start:6px;font-weight:500}.shell__main{width:100%;max-width:var(--shell-max);padding:var(--space-4) var(--space-4) var(--space-12);gap:var(--space-4);flex-direction:column;flex:1;margin-inline:auto;display:flex}.shell__main:focus{outline:none}.shell__dock{z-index:30;gap:var(--space-2);padding:var(--space-4) var(--space-3) 0;background:linear-gradient(180deg, transparent, var(--bg) 40%);pointer-events:none;flex-direction:column;display:flex;position:sticky;inset-block-end:0}.shell__dock>*{pointer-events:auto}.shell__dock .banner{max-width:var(--shell-max);width:100%;box-shadow:var(--shadow-md);margin-inline:auto}.tabbar{max-width:var(--shell-max);width:100%;border-radius:var(--radius-xl);background:var(--metro-black);margin-block-end:max(var(--space-3), env(safe-area-inset-bottom));margin-inline:auto;padding:5px;box-shadow:0 10px 30px #00000047,inset 0 0 0 1px #ffffff0f}.tabbar ul{grid-template-columns:repeat(5,1fr);gap:2px;display:grid}.tabbar__item{min-height:var(--tabbar-height);padding:var(--space-1);border-radius:calc(var(--radius-xl) - 5px);color:#a9a69b;transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-base) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:3px;display:flex;position:relative}.tabbar__item:hover{color:#f5f3ea}.tabbar__item.is-active{background:var(--metro-yellow);color:var(--metro-black)}.tabbar__item:focus-visible{outline-color:var(--metro-yellow)}.tabbar__icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:23px;height:23px}.tabbar__item.is-active .tabbar__icon svg{stroke-width:2.2px}.tabbar__label{font-size:.6875rem;font-weight:600;line-height:1.2}.tabbar__item.is-active .tabbar__label{font-weight:800}.boot{justify-content:center;gap:var(--space-4);min-height:100dvh;max-width:var(--shell-max);padding:var(--space-6) var(--space-4);flex-direction:column;margin-inline:auto;display:flex}.gate-entry{justify-content:center;gap:var(--space-8);max-width:30rem;min-height:100dvh;padding:calc(env(safe-area-inset-top) + var(--space-8)) var(--space-5) calc(env(safe-area-inset-bottom) + var(--space-6));text-align:center;flex-direction:column;margin-inline:auto;display:flex}.gate-entry__brand{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.gate-entry__mark{place-items:center;margin-block-end:var(--space-2);line-height:0;display:grid}.gate-entry__title{font-size:var(--text-3xl);font-weight:900}.gate-entry__tagline{color:var(--ink-soft);font-size:var(--text-base)}.gate-entry__stage{flex:0 auto;place-items:center;width:100%;min-height:0;display:grid}.gate-entry__actions{gap:var(--space-3);flex-direction:column;display:flex}.gate-entry__skip{min-height:var(--touch-min);color:var(--ink-soft);font-size:var(--text-sm);text-underline-offset:3px;text-decoration:underline}.gate-entry__skip:disabled{opacity:.5}.gate-entry__note{font-size:var(--text-xs);color:var(--ink-faint);line-height:1.6}@media (width>=900px){.shell__main,.app-header__inner{max-width:40rem;padding-inline:var(--space-8);gap:var(--space-5)}.shell__main:has(.network-map){max-width:var(--desktop-max)}.shell__dock{padding-inline:var(--space-8)}.tabbar{max-width:30rem}}.shell__main>*,.card>*,.sheet__body>*,.home>*,.platform-screen>*,.station-screen>*,.journey>*,.planner>*,.network-map>*,.saved>*,.settings>*,.picker>*{min-width:0;max-width:100%}.shell__main{overflow-x:clip}.direction-switch,.picker__lines,.planner__dates,.network-map__lines{contain:paint;min-width:0;max-width:100%}.gate-entry__title{line-height:0;position:relative}.gate-entry__title .brand-logo{animation:1.1s cubic-bezier(.2,.8,.2,1) both logo-arrive}@keyframes logo-arrive{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.gate-entry__glow{inset-block:10%;filter:blur(6px);pointer-events:none;background:radial-gradient(closest-side,#ffd83ad9,#ffd10040 55%,#0000);border-radius:50%;width:56px;margin-left:-28px;animation:1.1s cubic-bezier(.2,.8,.2,1) both glow-run;position:absolute;left:0}@keyframes glow-run{0%{opacity:0;left:0}15%{opacity:1}85%{opacity:.9}to{opacity:0;left:100%}}.gate-entry__tagline{animation:rise-in .52s var(--ease-out) .72s both}.gate-entry__stage{animation:rise-in .62s var(--ease-out) .38s both}.gate-entry__actions{animation:rise-in .48s var(--ease-out) .95s both}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.gate-ready .gate-lamp{animation:.42s steps(2,end) 1s both lamp-on}.gate-ready g:last-of-type>.gate-lamp{animation-delay:1.18s}@keyframes lamp-on{0%{fill:#5e5e5a}to{fill:var(--metro-yellow)}}.app-header__brandrow{align-items:center;gap:var(--space-3);grid-template-columns:1fr auto 1fr;display:grid}.app-header__date{font-size:var(--text-sm);color:var(--ink-soft);white-space:nowrap;justify-self:start;font-weight:700}.app-header__time{font-size:var(--text-md);color:var(--ink);font-variant-numeric:tabular-nums;justify-self:end;font-weight:900}.date-strip{justify-content:space-between;align-items:center;gap:var(--space-3);margin-block-start:calc(var(--space-4) * -1);margin-inline:calc(var(--space-4) * -1);width:auto;padding:var(--space-2) var(--space-4) var(--space-3);background:var(--surface);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);display:flex;box-shadow:0 2px 10px #0000000f;max-width:none!important}.date-strip__date{font-size:var(--text-sm);color:var(--ink-soft);font-weight:700}.date-strip__time{font-size:var(--text-md);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:900}.gate-entry:not(.is-logo-ready) .gate-entry__title .brand-logo,.gate-entry:not(.is-logo-ready) .gate-entry__glow{visibility:hidden;animation:none}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding-inline:var(--space-4);border-radius:var(--radius-md);text-align:center;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);border:1px solid #0000;font-weight:600;line-height:1.4;display:inline-flex}.btn:active:not(:disabled){transform:scale(.985)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--block{width:100%}.btn--sm{min-height:36px;padding-inline:var(--space-3);font-size:var(--text-sm)}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn--ghost{border-color:var(--line);color:var(--ink-soft);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--ink)}.btn--quiet{color:var(--ink-faint);min-height:36px;padding-inline:var(--space-2);background:0 0}.btn--quiet:hover:not(:disabled){color:var(--ink)}.btn--danger{background:var(--critical);color:#fff}.spinner svg{width:18px;height:18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.row-button{align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-min);padding:var(--space-3);border-radius:var(--radius-md);text-align:start;display:flex}.row-button:hover{background:var(--surface-sunken)}.card{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);flex-direction:column;display:flex}.card--raised{box-shadow:var(--shadow-md);border-color:var(--line-strong)}.card--sunken{background:var(--surface-sunken)}.card__header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.card__note{font-size:var(--text-xs);color:var(--ink-faint);line-height:1.7}.chip{align-items:center;gap:var(--space-2);min-height:36px;padding-inline:var(--space-3);border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);font-size:var(--text-sm);white-space:nowrap;transition:all var(--duration-fast) var(--ease-out);display:inline-flex}.chip:hover{background:var(--surface-sunken)}.chip--line i{border-radius:var(--radius-full);background:var(--chip-color);width:10px;height:10px}.chip--line.is-selected{border-color:var(--chip-color);background:color-mix(in srgb, var(--chip-color) 16%, var(--surface))}.line-badge{border-radius:var(--radius-full);background:var(--badge-color);color:var(--badge-ink,#fff);flex:none;place-items:center;font-weight:800;line-height:1;display:inline-grid;box-shadow:inset 0 0 0 1px #0003}.evidence{align-items:center;gap:var(--space-2);padding:3px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);white-space:nowrap;line-height:1.6;display:inline-flex}.evidence__dot{border-radius:var(--radius-full);background:currentColor;width:7px;height:7px}.evidence--scheduled{background:var(--positive-soft);color:var(--positive)}.evidence--estimated{background:var(--caution-soft);color:var(--caution)}.evidence--observed{background:var(--info-soft);color:var(--info)}.evidence--unavailable{background:var(--surface-sunken);color:var(--ink-faint)}.evidence__detail{color:var(--ink-faint)}.banner{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid;line-height:1.7;display:flex}.banner__body{flex:1;min-width:0}.banner__title{font-weight:700;display:block}.banner--info{background:var(--info-soft);border-color:color-mix(in srgb, var(--info) 35%, transparent);color:var(--ink)}.banner--caution{background:var(--caution-soft);border-color:color-mix(in srgb, var(--caution) 35%, transparent);color:var(--ink)}.banner--critical{background:var(--critical-soft);border-color:color-mix(in srgb, var(--critical) 40%, transparent);color:var(--ink)}.banner--positive{background:var(--positive-soft);border-color:color-mix(in srgb, var(--positive) 35%, transparent);color:var(--ink)}.banner__dismiss{border-radius:var(--radius-full);width:32px;height:32px;color:var(--ink-soft);flex:none;place-items:center;display:grid}.banner__dismiss svg{width:16px;height:16px}.install-promo__steps{margin-block:var(--space-2) 0}.install-promo__actions{gap:var(--space-2);flex-wrap:wrap;margin-block-start:var(--space-3);display:flex}.install-promo__actions a.btn{text-decoration:none}.segmented{gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-md);background:var(--surface-sunken);border:1px solid var(--line);display:flex}.segmented__option{min-height:40px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--ink-soft);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1px;display:flex}.segmented--sm .segmented__option{min-height:34px;font-size:var(--text-xs)}.segmented__option input{opacity:0;pointer-events:none;position:absolute}.segmented__option:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:1px}.segmented__hint{font-size:var(--text-xs);color:var(--ink-faint)}.toggle{align-items:center;gap:var(--space-3);min-height:var(--touch-min);cursor:pointer;display:flex}.toggle__text{flex-direction:column;flex:1;min-width:0;display:flex}.toggle__label{font-weight:600}.toggle__description{font-size:var(--text-xs);color:var(--ink-faint);line-height:1.7}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle__track{border-radius:var(--radius-full);background:var(--line-strong);width:48px;height:28px;transition:background-color var(--duration-base) var(--ease-out);flex:none;position:relative}.toggle__thumb{border-radius:var(--radius-full);width:22px;height:22px;box-shadow:var(--shadow-sm);transition:inset-inline-start var(--duration-base) var(--ease-out);background:#fff;position:absolute;inset-block-start:3px;inset-inline-start:3px}.toggle:has(input:checked) .toggle__thumb{inset-inline-start:23px}.toggle:has(input:focus-visible) .toggle__track{outline:3px solid var(--accent);outline-offset:2px}.empty-state{align-items:flex-start;gap:var(--space-2);padding:var(--space-5) var(--space-4);border-radius:var(--radius-md);background:var(--surface-sunken);border:1px dashed var(--line-strong);flex-direction:column;display:flex}.empty-state__title{font-size:var(--text-md);font-weight:700}.empty-state__text{font-size:var(--text-sm);color:var(--ink-soft);line-height:1.8}.skeleton{gap:var(--space-3);flex-direction:column;display:flex}.skeleton span{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-sunken), var(--line), var(--surface-sunken));background-size:200% 100%;height:16px;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.data-row{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding-block:var(--space-2);border-block-end:1px solid var(--line);display:flex}.data-row:last-child{border-block-end:none}.data-row__label{color:var(--ink-soft);font-size:var(--text-sm)}.data-row__value{text-align:end;flex-direction:column;align-items:flex-end;font-weight:600;display:flex}.data-row__hint{font-size:var(--text-xs);color:var(--ink-faint);font-weight:400}.sheet-layer{z-index:60;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-backdrop{animation:fade-in var(--duration-base) var(--ease-out);background:#080c0e80;position:absolute;inset:0}@keyframes fade-in{0%{opacity:0}}.sheet{border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--surface);width:100%;max-width:34rem;max-height:92dvh;box-shadow:var(--shadow-lg);animation:sheet-up var(--duration-slow) var(--ease-out);flex-direction:column;padding-block-end:env(safe-area-inset-bottom);display:flex;position:relative}.sheet--tall{height:92dvh}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}}.sheet__grip{box-sizing:content-box;background:var(--line-strong);border-radius:var(--radius-full);cursor:grab;touch-action:none;background-clip:content-box;width:44px;height:5px;margin:0 auto -6px;padding:10px 40px}.sheet__header{touch-action:none;justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-2);display:flex}.sheet__title{font-size:var(--text-lg);font-weight:800}.sheet__description{font-size:var(--text-sm);color:var(--ink-faint)}.sheet__close{width:var(--touch-min);height:var(--touch-min);border-radius:var(--radius-full);color:var(--ink);background:0 0;flex:none;place-items:center;display:grid}.sheet__close svg{border-radius:var(--radius-full);background:var(--surface-sunken);width:34px;height:34px;transition:background-color var(--duration-fast) var(--ease-out);padding:5px}.sheet__close:hover svg,.sheet__close:active svg{background:var(--line)}.sheet__body{-webkit-overflow-scrolling:touch;min-height:0;padding:0 var(--space-4) var(--space-4);flex:1;overflow-y:auto}.sheet__footer{padding:var(--space-3) var(--space-4);border-block-start:1px solid var(--line);background:var(--surface)}@media (width>=720px){.sheet-layer{align-items:center}.sheet{border-radius:var(--radius-xl);max-height:84dvh}.sheet--tall{height:84dvh}}.toast-stack{z-index:70;gap:var(--space-2);padding-inline:var(--space-4);pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed;inset-block-end:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + var(--space-4));inset-inline:0}.toast{align-items:center;gap:var(--space-3);width:100%;max-width:30rem;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-inverse);color:var(--ink-inverse);box-shadow:var(--shadow-lg);font-size:var(--text-sm);pointer-events:auto;animation:sheet-up var(--duration-base) var(--ease-out);display:flex}.toast__message{flex:1}.toast__action{min-height:32px;padding-inline:var(--space-3);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--ink-inverse) 16%, transparent);flex:none;font-weight:700}.toast__close{opacity:.7;flex:none;place-items:center;width:28px;height:28px;display:grid}.toast__close svg{width:16px;height:16px}.toast--positive{background:var(--positive);color:#fff}.toast--caution{background:var(--caution);color:#fff}.toast--critical{background:var(--critical);color:#fff}.station-list{flex-direction:column;display:flex}.station-list>li+li{border-block-start:1px solid var(--line)}.station-row{align-items:center;gap:var(--space-3);width:100%;min-height:56px;padding:var(--space-2) var(--space-1);text-align:start;border-radius:var(--radius-sm);display:flex}.station-row__lines{flex:none;gap:3px;display:flex}.station-row__body{flex-direction:column;flex:1;min-width:0;display:flex}.station-row__name{overflow-wrap:anywhere;font-weight:600}.station-row__tag{font-size:var(--text-xs);color:var(--ink-faint);line-height:1.6}.station-row__distance{font-size:var(--text-sm);flex-direction:column;flex:none;align-items:flex-end;display:flex}.station-row__distance small{font-size:var(--text-xs);color:var(--ink-faint)}.station-row__chevron{width:18px;height:18px;color:var(--ink-faint);flex:none}.picker{gap:var(--space-4);flex-direction:column;display:flex}.picker__search{z-index:2;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-sunken);display:flex;position:sticky;inset-block-start:0}.picker__search-icon{width:20px;height:20px;color:var(--ink-faint);flex:none}.picker__input{background:0 0;border:none;outline:none;flex:1;min-width:0;min-height:40px}.picker__input::-webkit-search-cancel-button{display:none}.picker__clear{border-radius:var(--radius-full);width:32px;height:32px;color:var(--ink-faint);flex:none;place-items:center;display:grid}.picker__clear svg{width:16px;height:16px}.picker__lines{gap:var(--space-2);padding:0 var(--space-1) var(--space-1);scrollbar-width:none;display:flex;overflow-x:auto}.picker__lines::-webkit-scrollbar{display:none}.picker__section{gap:var(--space-2);flex-direction:column;display:flex}.picker__heading{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-soft);font-weight:700;display:flex}.picker__count{padding-inline:var(--space-2);border-radius:var(--radius-full);background:var(--surface-sunken);font-size:var(--text-xs);color:var(--ink-faint)}.picker__note{font-size:var(--text-sm);color:var(--ink-faint);line-height:1.8}.picker__note--alert{color:var(--critical)}.picker__note--caution{color:var(--caution)}.picker__retry{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.home{gap:var(--space-4);flex-direction:column;display:flex}.home__today{flex-direction:column;gap:2px;display:flex}.home__date{font-size:var(--text-xl);font-weight:800}.home__daytype{font-size:var(--text-sm);color:var(--ink-soft)}.home__unconfirmed{padding-inline:var(--space-2);border-radius:var(--radius-full);background:var(--caution-soft);color:var(--caution);font-size:var(--text-xs);margin-inline-start:var(--space-2);display:inline-block}.home__journey-title{font-size:var(--text-lg);overflow-wrap:anywhere}.home__journey-state{font-size:var(--text-sm);color:var(--ink-soft)}.home__primary{gap:var(--space-3);display:grid}.home__action{align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--line-strong);background:var(--surface);text-align:start;transition:all var(--duration-fast) var(--ease-out);display:flex}.home__action:hover{border-color:var(--accent);background:var(--surface-raised)}.home__action-icon{border-radius:var(--radius-md);background:var(--accent-soft);width:44px;height:44px;color:var(--accent);flex:none;place-items:center;display:grid}.home__action-icon svg{width:22px;height:22px}.home__action-body{flex-direction:column;min-width:0;display:flex}.home__action-body strong{font-size:var(--text-md)}.home__action-body small{font-size:var(--text-xs);color:var(--ink-faint);line-height:1.6}.home__when{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.home__when-label{font-size:var(--text-sm);color:var(--ink-soft)}.station-screen{gap:var(--space-4);flex-direction:column;display:flex}.station-screen__note,.station-screen__footnote{font-size:var(--text-sm);color:var(--ink-faint);line-height:1.8}.direction-list{flex-direction:column;display:flex}.direction-list>li+li{border-block-start:1px solid var(--line)}.direction-row{align-items:center;gap:var(--space-3);width:100%;min-height:60px;padding:var(--space-2) var(--space-1);border-radius:var(--radius-sm);text-align:start;display:flex}.direction-row__body{flex-direction:column;flex:1;min-width:0;display:flex}.direction-row__terminal{overflow-wrap:anywhere;font-weight:600}.direction-row__next{font-size:var(--text-xs);color:var(--ink-faint)}.direction-row__time{flex-direction:column;flex:none;align-items:flex-end;display:flex}.direction-row__time strong{font-size:var(--text-md)}.direction-row__time small{font-size:var(--text-xs);color:var(--ink-faint)}.platform-screen{gap:var(--space-4);flex-direction:column;display:flex}.direction-switch::-webkit-scrollbar{display:none}.direction-chip{align-items:center;gap:var(--space-2);min-height:42px;padding-inline:var(--space-3);border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface);font-size:var(--text-sm);white-space:nowrap;display:inline-flex}.direction-chip.is-selected{border-color:var(--chip-color);background:color-mix(in srgb, var(--chip-color) 14%, var(--surface));font-weight:700}.next-train{justify-content:space-between;align-items:center;gap:var(--space-3);border-block-end:1px solid var(--line);padding-block-end:var(--space-3);display:flex}.next-train__countdown{flex-direction:column;min-width:0;display:flex}.next-train__countdown strong{font-size:var(--text-2xl);font-weight:800;line-height:1.2}.departure-list{flex-direction:column;display:flex}.departure-list>li+li{border-block-start:1px solid var(--line)}.departure{align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-min);padding:var(--space-2) var(--space-1);border-radius:var(--radius-sm);text-align:start;display:flex}.departure:hover{background:var(--surface-sunken)}.departure.is-selected{background:var(--accent-soft)}.departure__time{font-size:var(--text-md);flex:none;font-weight:700}.departure__in{font-size:var(--text-xs);color:var(--ink-faint);flex:none}.departure__terminal{min-width:0;font-size:var(--text-sm);color:var(--ink-soft);overflow-wrap:anywhere;flex:1}.departure__tag{padding-inline:var(--space-2);border-radius:var(--radius-full);background:var(--caution-soft);color:var(--caution);font-size:var(--text-xs);flex:none}.platform-destination{align-items:center;gap:var(--space-3);width:100%;min-height:60px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:var(--surface);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);text-align:start;transition:transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);display:flex}.platform-destination:hover{background:var(--brand-soft)}.platform-destination:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.platform-destination__icon{border-radius:var(--radius-md);background:var(--metro-yellow);width:40px;height:40px;color:var(--metro-black);flex:none;place-items:center;display:grid}.platform-destination__icon svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linejoin:round;width:22px;height:22px}.platform-destination__body{flex-direction:column;flex:1;min-width:0;display:flex}.platform-destination__label{font-size:var(--text-xs);color:var(--ink-soft)}.platform-destination__body strong{font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.platform-destination__action{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--ink);color:var(--surface);font-size:var(--text-sm);flex:none;font-weight:700}.platform-actions{gap:var(--space-2);flex-direction:column;display:flex}.platform-footnote{font-size:var(--text-xs);color:var(--ink-faint);line-height:1.8}.boarding{border-color:var(--accent)}.boarding__title{font-size:var(--text-xl);font-weight:800}.boarding__text{font-size:var(--text-sm);color:var(--ink-soft);line-height:1.8}.boarding__actions{gap:var(--space-2);display:grid}.report{gap:var(--space-4);flex-direction:column;display:flex}.report__context{font-size:var(--text-sm);color:var(--ink-soft);line-height:1.9}.report__choices{gap:var(--space-2);border:none;flex-direction:column;margin:0;padding:0;display:flex}.report__choice{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);display:flex}.report__choice.is-selected{border-color:var(--accent);background:var(--accent-soft)}.report__choice input{accent-color:var(--accent);flex:none;width:20px;height:20px;margin-block-start:5px}.report__choice-body{flex-direction:column;gap:2px;display:flex}.report__choice-body small{font-size:var(--text-xs);color:var(--ink-faint);line-height:1.7}.report__preview{padding:var(--space-3);border-radius:var(--radius-md);background:var(--info-soft);font-size:var(--text-sm);line-height:1.8}.report__note{gap:var(--space-2);font-size:var(--text-sm);flex-direction:column;display:flex}.report__note textarea{width:100%;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-sunken);resize:vertical;line-height:1.8}.report__note small{font-size:var(--text-xs);color:var(--ink-faint);align-self:flex-end}.report__privacy{font-size:var(--text-xs);color:var(--ink-faint);line-height:1.8}.report__footer{gap:var(--space-2);justify-content:flex-end;display:flex}.journey__leg{align-items:center;gap:var(--space-3);display:flex}.journey__leg-body{flex-direction:column;min-width:0;display:flex}.journey__leg-body span{font-size:var(--text-sm);color:var(--ink-soft);overflow-wrap:anywhere}.journey__stats{flex-direction:column;display:flex}.journey__actions{gap:var(--space-2);flex-direction:column;display:flex}.journey__actions-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.journey__actions-row .btn{flex:1;min-width:8rem}.journey__footnote{font-size:var(--text-xs);color:var(--ink-faint);line-height:1.9}.transfer__where{font-size:var(--text-md);line-height:1.9}.itinerary-detail{gap:var(--space-4);counter-reset:leg;flex-direction:column;display:flex}.itinerary-detail>li{border-inline-start:3px solid var(--line);font-size:var(--text-sm);padding-inline-start:var(--space-4);line-height:1.9}.itinerary-detail__head{align-items:center;gap:var(--space-2);margin-block-end:var(--space-1);display:flex}.itinerary-detail__transfer{color:var(--caution);margin-block-start:var(--space-2)}.planner{gap:var(--space-4);flex-direction:column;display:flex}.planner__endpoints{align-items:center;gap:var(--space-2) var(--space-3);grid-template-columns:1fr auto;grid-template-areas:"from swap""to swap";display:grid;position:relative}.planner__endpoints>.planner__endpoint:first-child{grid-area:from}.planner__endpoints>.planner__endpoint:last-child{grid-area:to}.planner__endpoint{min-height:60px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface);text-align:start;transition:border-color var(--duration-fast) var(--ease-out);flex-direction:column;gap:2px;padding-inline-start:44px;display:flex;position:relative}.planner__endpoint:hover{border-color:var(--ink)}.planner__endpoint:before{content:"";inset-inline-start:16px;border-radius:var(--radius-full);border:3px solid var(--metro-black);background:var(--surface);width:14px;height:14px;margin-top:-7px;position:absolute;top:50%}.planner__endpoints>.planner__endpoint:last-child:before{background:var(--metro-yellow)}.planner__endpoints>.planner__endpoint:first-child{z-index:1}.planner__endpoints>.planner__endpoint:first-child:after{content:"";inset-inline-start:22px;height:calc(100% + var(--space-2) - 14px);border-inline-start:2px dotted var(--ink-faint);position:absolute;top:calc(50% + 7px)}.planner__endpoint strong{font-size:var(--text-md);overflow-wrap:anywhere;font-weight:800}.planner__endpoint-label{font-size:var(--text-xs);color:var(--ink-faint)}.planner__swap{width:var(--touch-min);height:var(--touch-min);border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);grid-area:swap;place-items:center;display:grid}.planner__swap svg{width:20px;height:20px}.planner__when{gap:var(--space-3);flex-direction:column;display:flex}.planner__dates{gap:var(--space-2);scrollbar-width:none;padding-block-end:var(--space-1);display:flex;overflow-x:auto}.planner__dates::-webkit-scrollbar{display:none}.planner__time{gap:var(--space-3);flex-direction:column;display:flex}.planner__time-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.planner__time-label{font-size:var(--text-sm);font-weight:800}.planner__time-date{font-size:var(--text-xs);color:var(--ink-faint)}.planner__time-quick{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.time-wheel{justify-content:center;align-items:center;gap:var(--space-1);border-radius:var(--radius-lg);background:var(--surface-sunken);height:132px;display:flex;position:relative;overflow:hidden}.time-wheel__band{inset-inline:var(--space-3);border-radius:var(--radius-md);background:var(--metro-yellow);pointer-events:none;height:44px;position:absolute;inset-block-start:44px}.time-wheel__column{scroll-snap-type:y mandatory;overscroll-behavior:contain;scrollbar-width:none;width:84px;height:132px;position:relative;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0,#000 36% 64%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 36% 64%,#0000 100%)}.time-wheel__column::-webkit-scrollbar{display:none}.time-wheel__column:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;border-radius:var(--radius-md)}.time-wheel__spacer{height:44px;display:block}.time-wheel__item{scroll-snap-align:center;width:100%;height:44px;font-size:var(--text-xl);font-variant-numeric:tabular-nums;color:var(--ink-soft);place-items:center;font-weight:700;display:grid}.time-wheel__item.is-selected{color:var(--metro-black);font-weight:900}.time-wheel__colon{font-size:var(--text-xl);color:var(--metro-black);font-weight:900;position:relative}.planner__daynote{font-size:var(--text-sm);color:var(--ink-soft)}.planner__results{gap:var(--space-3);flex-direction:column;display:flex}.planner__results-title{font-size:var(--text-md);font-weight:700}.itinerary__times{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.itinerary__times strong{font-size:var(--text-xl);font-weight:800}.itinerary__arrow{color:var(--ink-faint)}.itinerary__duration{padding-inline:var(--space-2);border-radius:var(--radius-full);background:var(--surface-sunken);font-size:var(--text-sm);color:var(--ink-soft);margin-inline-start:auto}.itinerary__legs{gap:var(--space-2);flex-wrap:wrap;display:flex}.itinerary__leg{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:inline-flex}.itinerary__meta{font-size:var(--text-xs);color:var(--ink-faint)}.itinerary__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.itinerary__actions .btn{flex:1;min-width:9rem}.itinerary__toggle{align-self:flex-start;align-items:center;gap:var(--space-1);min-height:36px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-full);background:var(--surface-sunken);color:var(--ink);font:inherit;font-size:var(--text-sm);cursor:pointer;font-weight:700;display:inline-flex}.itinerary__toggle svg{width:16px;height:16px;transition:transform .2s var(--ease-out)}.itinerary__toggle[aria-expanded=true] svg{transform:rotate(180deg)}.timeline{--dot-col:18px;gap:var(--space-2);border-top:1px dashed var(--line);animation:accordion-in .26s var(--ease-out) both;flex-direction:column;padding-block-start:var(--space-3);display:flex}.tl-leg{padding:var(--space-3);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--c) 9%, var(--surface));border:1px solid color-mix(in srgb, var(--c) 28%, transparent)}.tl-leg__head{align-items:center;gap:var(--space-2);margin-block-end:var(--space-2);display:flex}.tl-leg__dir{min-width:0;font-size:var(--text-sm);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:700;overflow:hidden}.tl-chip{padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--line);font-size:var(--text-xs);color:var(--ink);flex:none;font-weight:800}.tl-leg__rail{position:relative}.tl-leg__rail:before{content:"";border-inline-start:3px dashed var(--c);position:absolute;inset-block:14px;inset-inline-start:calc(var(--dot-col) / 2 - 1.5px)}.tl-stop{grid-template-columns:var(--dot-col) minmax(0, 1fr) auto;align-items:center;column-gap:var(--space-3);min-height:28px;display:grid;position:relative}.tl-stop__dot{z-index:1;border:4px solid var(--c);background:var(--surface);border-radius:50%;justify-self:center;width:16px;height:16px;position:relative}.tl-stop--end .tl-stop__dot{background:var(--c)}.tl-stop__name{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-md);line-height:1.5;display:flex}.tl-stop__name strong{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:800;overflow:hidden}.tl-stop__tag{border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--ink-soft);flex:none;padding:0 6px;font-size:.6875rem;font-weight:700;line-height:1.8}.tl-stop--end .tl-stop__tag{background:var(--metro-black);color:var(--metro-yellow)}.tl-stop__time{font-size:var(--text-sm);font-weight:800}.tl-gap{height:var(--space-3)}.tl-passed{padding-block:var(--space-1);padding-inline-start:calc(var(--dot-col) + var(--space-3))}.tl-passed__toggle{min-height:32px;padding:0 var(--space-2);border-radius:var(--radius-full);color:var(--ink-soft);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin-inline-start:calc(var(--space-2) * -1);font-weight:700;display:inline-flex}.tl-passed__toggle svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;transition:transform .2s var(--ease-out)}.tl-passed__toggle[aria-expanded=true] svg{transform:rotate(180deg)}.tl-passed__list{padding:0 0 var(--space-1);font-size:var(--text-xs);color:var(--ink-soft);animation:accordion-in .22s var(--ease-out) both;margin:0;line-height:2.1;list-style:none}.tl-passed__list li{position:relative}.tl-passed__list li:before{content:"";top:50%;background:var(--c);border-radius:50%;width:7px;height:7px;margin-top:-3.5px;position:absolute;inset-inline-start:calc(-1 * (var(--space-3) + var(--dot-col) / 2) - 3.5px)}.tl-change{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;padding-inline-start:var(--space-2);display:flex}.tl-badge{padding:3px var(--space-3) 3px 4px;border-radius:var(--radius-full);background:var(--metro-yellow);color:var(--metro-black);font-size:var(--text-xs);align-items:center;gap:6px;font-weight:800;display:inline-flex}.tl-badge svg{background:var(--metro-black);width:22px;height:22px;color:var(--metro-yellow);fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;border-radius:50%;padding:3px}.tl-badge .line-badge{box-shadow:0 0 0 2px var(--metro-black)}.tl-change__wait{font-size:var(--text-xs);color:var(--ink-soft)}.tl-change__wait strong{color:var(--ink)}.saved{gap:var(--space-4);flex-direction:column;display:flex}.saved__routes>li,.saved__recent{align-items:center;gap:var(--space-2);display:flex}.saved__routes>li+li{border-block-start:1px solid var(--line)}.saved__route{min-width:0;min-height:56px;padding:var(--space-2) var(--space-1);border-radius:var(--radius-sm);text-align:start;flex:1}.saved__route:hover{background:var(--surface-sunken)}.saved__route-body{flex-direction:column;display:flex}.saved__route-body strong{overflow-wrap:anywhere}.saved__route-body small{font-size:var(--text-xs);color:var(--ink-faint)}.saved__stale{color:var(--caution)!important}.saved__remove{width:var(--touch-min);height:var(--touch-min);border-radius:var(--radius-full);color:var(--ink-faint);flex:none;place-items:center;display:grid}.saved__remove svg{width:16px;height:16px}.settings{gap:var(--space-4);flex-direction:column;display:flex}.settings__steps{gap:var(--space-2);counter-reset:step;font-size:var(--text-sm);flex-direction:column;line-height:1.8;display:flex}.settings__steps li{counter-increment:step;padding-inline-start:var(--space-6);position:relative}.settings__steps li:before{content:counter(step, persian);border-radius:var(--radius-full);background:var(--metro-black);width:26px;height:26px;color:var(--metro-yellow);font-size:var(--text-md);place-items:center;font-weight:900;line-height:1;display:grid;position:absolute;inset-block-start:2px;inset-inline-start:0}.settings__queue h3{font-size:var(--text-sm);margin-block-end:var(--space-2);font-weight:700}.settings__queue ul{gap:var(--space-1);flex-direction:column;display:flex}.settings__queue li{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.settings__confirm{gap:var(--space-3);font-size:var(--text-sm);flex-direction:column;line-height:1.8;display:flex}.settings__confirm-actions{gap:var(--space-2);display:flex}.about{align-items:center;gap:var(--space-3);display:flex}.about__name{flex-direction:column;flex:1;min-width:0;line-height:1.5;display:flex}.about__name strong{font-size:var(--text-md);font-weight:900}.about__name span,.about__version{font-size:var(--text-xs);color:var(--ink-soft)}.about__notice{padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunken);border-inline-start:4px solid var(--metro-yellow);font-size:var(--text-sm);color:var(--ink-soft);line-height:1.9}.about__notice strong{color:var(--ink);font-weight:800}.about__rows{flex-direction:column;margin:0;display:flex}.about__rows>div{justify-content:space-between;gap:var(--space-3);padding-block:var(--space-2);border-block-start:1px solid var(--line);font-size:var(--text-sm);display:flex}.about__rows dt{color:var(--ink-soft)}.about__rows dd{color:var(--ink);margin:0;font-weight:700}.about__rows a{color:inherit;text-underline-offset:3px;text-decoration:underline}.settings code{background:var(--surface-sunken);border-radius:4px;padding-inline:4px;font-size:.8em;display:inline-block}:root[data-reduced-motion] .sheet,:root[data-reduced-motion] .toast,:root[data-reduced-motion] .sheet-backdrop,:root[data-reduced-motion] .skeleton span,:root[data-reduced-motion] .spinner svg{animation:none}.direction-switch,.picker__lines,.planner__dates,.network-map__lines{--strip-fade:24px}:is(.direction-switch,.picker__lines,.planner__dates,.network-map__lines)[data-fade=end]{-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--strip-fade));mask-image:linear-gradient(to right, transparent 0, #000 var(--strip-fade))}:is(.direction-switch,.picker__lines,.planner__dates,.network-map__lines)[data-fade=start]{-webkit-mask-image:linear-gradient(to left, transparent 0, #000 var(--strip-fade));mask-image:linear-gradient(to left, transparent 0, #000 var(--strip-fade))}:is(.direction-switch,.picker__lines,.planner__dates,.network-map__lines)[data-fade=both]{-webkit-mask-image:linear-gradient(to left, transparent 0, #000 var(--strip-fade), #000 calc(100% - var(--strip-fade)), transparent 100%);mask-image:linear-gradient(to left, transparent 0, #000 var(--strip-fade), #000 calc(100% - var(--strip-fade)), transparent 100%)}.gate-hall{border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-md);background:linear-gradient(90deg,#0000001f 1px,#0000 1px) 0 0/25% 100%,linear-gradient(0deg,#00000017 1px,#0000 1px) 0 0/100% 26%,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.12 0 0 0 0 0.12 0 0 0 0 0.12 0 0 0 1.25 -0.42'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"),linear-gradient(#c4c1ba 0%,#afaca5 100%);padding-block-start:5%;position:relative;overflow:hidden}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .gate-hall{filter:brightness(.8)}}:root[data-theme=dark] .gate-hall{filter:brightness(.8)}.gate-hall__cornice{background:linear-gradient(#f2c200 0%,#ffd83a 55%,#e0ae00 100%);height:5%;min-height:12px;position:absolute;inset:0 0 auto;box-shadow:0 2px 6px #00000059}.gate-scene{width:100%;height:auto;max-height:34vh;display:block;overflow:visible}.gate-sign__rod{stroke:#5e5c57;stroke-width:3px}.gate-sign__panel{fill:var(--metro-black)}.gate-sign__fa,.gate-sign__en{text-anchor:middle;fill:var(--metro-yellow);font-family:var(--font-sans)}.gate-sign__fa{font-size:17px;font-weight:900}.gate-sign__en{letter-spacing:.25em;font-size:7.5px;font-weight:700}.gate-floor{fill:#6e6b65}.gate-floor__edge{fill:#8b8880}.gate-tactile{fill:var(--metro-yellow)}.gate-body{stroke:#9ea4a3;stroke-width:1.2px}.gate-kick{fill:#3a3a37}.gate-seam{stroke:#00000024;stroke-width:1.2px}.gate-plate__panel{fill:#00000014}.gate-plate__line{stroke:#0000002e;stroke-width:3px;stroke-linecap:round}.gate-glass{stroke:#8faab0;stroke-width:1.2px}.gate-seal{fill:var(--metro-yellow)}.gate-reader__pad{fill:var(--metro-black)}.gate-reader__ring{fill:none;stroke:var(--metro-yellow);stroke-width:3px}.gate-reader__dot{fill:var(--metro-yellow)}.gate-lamp{fill:#5e5e5a;transition:fill var(--duration-base) var(--ease-out)}.gate-ready .gate-lamp{fill:var(--metro-yellow)}.gate-opening .gate-lamp,.gate-open .gate-lamp{fill:#fff;filter:drop-shadow(0 0 4px #ffffffe6)}.gate-error .gate-lamp{fill:#e4564e}.gate-scene .gate-leaf{transition:transform .76s cubic-bezier(.32,.72,.18,1)}.gate-scene.gate-opening .gate-leaf--left,.gate-scene.gate-open .gate-leaf--left{transform:translate(-68px)}.gate-scene.gate-opening .gate-leaf--right,.gate-scene.gate-open .gate-leaf--right{transform:translate(68px)}.gate-scene.gate-ready .gate-reader__ring{animation:gate-reader-pulse 1.8s var(--ease-in-out) infinite}@keyframes gate-reader-pulse{0%,to{opacity:.45}50%{opacity:1}}.gate-scene.gate-error{animation:gate-refuse .36s var(--ease-in-out) 1}@keyframes gate-refuse{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.gate-ad.is-interactive{cursor:pointer}.gate-ad__text{text-anchor:middle;font-size:10px;font-weight:800;font-family:var(--font-sans)}.gate-scene.no-motion .gate-leaf,:root[data-reduced-motion] .gate-scene .gate-leaf{transition-duration:0s}.gate-scene.no-motion .gate-reader__ring,:root[data-reduced-motion] .gate-scene .gate-reader__ring,:root[data-reduced-motion] .gate-scene{animation:none}.btn{border-radius:var(--radius-md);letter-spacing:0;font-weight:700}.btn--primary{background:var(--metro-yellow);color:var(--metro-black);box-shadow:inset 0 -3px #00000024}.btn--primary:hover:not(:disabled){background:var(--metro-yellow-deep)}.btn--primary:focus-visible{outline-color:var(--ink)}.btn--secondary{background:var(--surface);border:1.5px solid var(--ink);color:var(--ink)}.btn--secondary:hover:not(:disabled){background:var(--brand-soft)}.btn--ghost{border-color:var(--line-strong);color:var(--ink)}.btn--lg{min-height:54px;font-size:var(--text-md)}.card{border-radius:var(--radius-lg);border-color:var(--line);box-shadow:var(--shadow-sm)}.card--raised{box-shadow:var(--shadow-md)}.card__title{font-size:var(--text-md);font-weight:800}.chip{border-radius:var(--radius-md);border-color:var(--line-strong);color:var(--ink);font-weight:600}.chip.is-selected{background:var(--metro-black);border-color:var(--metro-black);color:var(--metro-yellow);font-weight:800}.chip--line.is-selected{background:var(--metro-black);border-color:var(--metro-black);color:#fff}.line-badge{font-weight:900;box-shadow:inset 0 0 0 1px #00000024}.segmented{border-radius:var(--radius-md);background:var(--surface-sunken);border-color:var(--line)}.segmented__option{border-radius:calc(var(--radius-md) - 3px);color:var(--ink-soft);font-weight:600}.segmented__option.is-selected{background:var(--metro-black);color:var(--metro-yellow);box-shadow:none;font-weight:800}.segmented__option.is-selected .segmented__hint{color:#d8d5c9}.segmented__option:has(input:focus-visible){outline-color:var(--focus)}.toggle:has(input:checked) .toggle__track{background:var(--metro-black)}.toggle:has(input:checked) .toggle__thumb{background:var(--metro-yellow)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .toggle:has(input:checked) .toggle__track{background:var(--metro-yellow)}:root:not([data-theme=light]) .toggle:has(input:checked) .toggle__thumb{background:var(--metro-black)}:root:not([data-theme=light]) .segmented__option.is-selected,:root:not([data-theme=light]) .chip.is-selected{background:var(--metro-yellow);border-color:var(--metro-yellow);color:var(--metro-black)}}:root[data-theme=dark] .toggle:has(input:checked) .toggle__track{background:var(--metro-yellow)}:root[data-theme=dark] .toggle:has(input:checked) .toggle__thumb{background:var(--metro-black)}:root[data-theme=dark] .segmented__option.is-selected,:root[data-theme=dark] .chip.is-selected{background:var(--metro-yellow);border-color:var(--metro-yellow);color:var(--metro-black)}.banner{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);border:0;border-inline-start:5px solid}.banner__title{font-weight:800}.banner--caution{background:var(--caution-soft);border-inline-start-color:var(--metro-yellow-deep)}.banner--info{border-inline-start-color:var(--info)}.banner--critical{border-inline-start-color:var(--critical)}.banner--positive{border-inline-start-color:var(--positive)}.evidence{border-radius:var(--radius-sm);font-weight:600}.sheet{border-block-start:6px solid var(--metro-yellow)}.sheet__title{font-weight:900}.station-sign{flex-direction:column;align-items:center;width:100%;display:flex}.station-sign__mount{border-inline:5px solid var(--scene-metal-dark);width:58%;height:12px;display:block}.station-sign__panel{border-radius:var(--radius-md);background:var(--sign-color);width:100%;color:var(--sign-ink);flex-direction:column;display:flex;overflow:hidden;box-shadow:inset 0 1px #ffffff40,0 10px 24px #00000029}.station-sign__face{padding:var(--space-5) var(--space-4) var(--space-4);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.station-sign__name{overflow-wrap:anywhere;text-wrap:balance;font-size:clamp(1.4rem,6.6vw,1.9rem);font-weight:900;line-height:1.25}.station-sign__latin{letter-spacing:.2em;font-size:clamp(.75rem,3.4vw,.9375rem);font-weight:700;line-height:1.4}.station-sign__strip{justify-content:center;align-items:center;column-gap:var(--space-3);padding:7px var(--space-3);background:var(--metro-black);color:#fff;font-size:var(--text-xs);text-align:center;flex-wrap:wrap;row-gap:0;font-weight:700;line-height:1.6;display:flex}.station-sign__strip-en{font-weight:600}.station-sign--compact .station-sign__face{padding:var(--space-2) var(--space-2) 6px;gap:0}.station-sign--compact .station-sign__name{font-size:clamp(.95rem,4.6vw,1.25rem)}.station-sign--compact .station-sign__latin{letter-spacing:.16em;font-size:.5625rem}.station-sign--compact .station-sign__strip{padding:3px var(--space-2);font-size:.5625rem;line-height:1.5}.station-sign--compact .station-sign__strip-en{display:none}.station-sign--compact .station-sign__panel{border-radius:7px}.sign-arrow{flex:none;width:1em;height:1em}.direction-sign{align-items:center;gap:var(--space-3);width:100%;min-height:64px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--sign-color);color:var(--sign-ink);text-align:start;display:flex;box-shadow:inset 0 -3px #00000029}.direction-sign__text{flex-direction:column;flex:1;min-width:0;display:flex}.direction-sign__title{font-size:var(--text-md);overflow-wrap:anywhere;font-weight:900;line-height:1.4}.direction-sign__latin{font-size:var(--text-xs);text-align:right;font-weight:600;line-height:1.4}.direction-sign .sign-arrow{border-inline-start:2px solid color-mix(in srgb, currentColor 30%, transparent);box-sizing:content-box;padding-inline-start:var(--space-3);font-size:34px}.direction-sign--sm{gap:var(--space-2);width:auto;min-height:0;padding:6px var(--space-3);border-radius:var(--radius-sm)}.direction-sign--sm .direction-sign__title{font-size:var(--text-sm);white-space:nowrap;font-weight:800}.direction-sign--sm .sign-arrow{border:0;padding-inline-start:var(--space-2);font-size:18px}.home{gap:var(--space-6);padding-block-end:var(--space-8)}.home-hero{gap:var(--space-3);flex-direction:column;display:flex}.home-hero__title{font-size:clamp(1.35rem,5.8vw,1.65rem);font-weight:900;line-height:1.35}.home-hero__day{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-soft);flex-wrap:wrap;margin-block-start:calc(var(--space-2) * -1);display:flex}.home-hero__sep{border-radius:var(--radius-full);background:var(--line-strong);width:4px;height:4px}.home__unconfirmed{padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--caution-soft);color:var(--caution);font-size:var(--text-xs);align-items:center;margin:0;font-weight:700;display:inline-flex}.home-search{align-items:center;gap:var(--space-3);width:100%;min-height:72px;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface);border:2.5px solid var(--ink);box-shadow:0 4px 0 var(--ink);text-align:start;transition:transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);display:flex}.home-search:hover{background:var(--brand-soft)}.home-search:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.home-search__icon{border-radius:var(--radius-md);background:var(--metro-yellow);width:46px;height:46px;color:var(--metro-black);flex:none;place-items:center;display:grid}.home-search__icon svg{width:24px;height:24px}.home-search__body{flex-direction:column;min-width:0;display:flex}.home-search__body strong{font-size:var(--text-md);font-weight:900;line-height:1.4}.home-search__body small{font-size:var(--text-sm);color:var(--ink-faint)}.home-tiles{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.home-tile{min-width:0;padding:var(--space-3);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);text-align:center;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);flex-direction:column;align-items:center;gap:2px;display:flex}.home-tile:hover{border-color:var(--ink)}.home-tile__icon{width:38px;height:38px;border-radius:var(--radius-md);background:var(--metro-black);color:var(--metro-yellow);place-items:center;margin-block-end:var(--space-2);display:grid}.home-tile__icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.home-tile strong{font-size:var(--text-base);font-weight:800;line-height:1.4}.home-tile small{color:var(--ink-faint);font-size:.6875rem;line-height:1.5}.home-section{gap:var(--space-3);flex-direction:column;display:flex}.home-section__head{justify-content:space-between;align-items:center;display:flex}.home-section__title{font-size:var(--text-md);font-weight:900}.home-section__link{min-height:36px;padding-inline:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);align-items:center;gap:6px;font-weight:700;display:inline-flex}.home-section__link .sign-arrow{font-size:14px}.home-section__link:hover{background:var(--surface-sunken)}.recent-signs{gap:var(--space-2);flex-direction:column;display:flex}.station-row.recent-sign{min-height:68px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);padding-inline-start:calc(var(--space-4) + 6px);position:relative;overflow:hidden}.station-row.recent-sign:before{content:"";background:var(--sign-stripes);width:6px;position:absolute;inset-block:0;inset-inline-start:0}.station-row.recent-sign:hover{background:var(--surface);border-color:var(--ink)}.recent-sign .station-row__name{font-size:var(--text-md);font-weight:800}.recent-sign__in{border-radius:var(--radius-sm);background:var(--metro-black);color:var(--metro-yellow);margin-inline-start:6px;padding:0 6px;font-weight:700;display:inline-block}.line-directory{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);flex-direction:column;display:flex;overflow:hidden}.line-directory>li+li{border-block-start:1px solid var(--line)}.line-directory__row{align-items:center;gap:var(--space-3);width:100%;min-height:54px;padding:var(--space-2) var(--space-4);text-align:start;display:flex}.line-directory__row:hover{background:var(--brand-soft)}.line-directory__ends{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-sm);flex:1;font-weight:700;display:flex}.line-directory__rail{background:var(--line-color);border-radius:2px;flex:1;min-width:14px;height:4px}.line-directory__count{font-size:var(--text-xs);color:var(--ink-faint);flex:none}.home-note{border-radius:var(--radius-md);background:var(--surface-sunken);font-size:var(--text-sm);color:var(--ink-soft)}.home-note summary{align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:var(--space-2) var(--space-3);cursor:pointer;font-weight:600;list-style:none;display:flex}.home-note summary::-webkit-details-marker{display:none}.home-note__icon{border-radius:var(--radius-full);background:var(--metro-black);width:22px;height:22px;color:var(--metro-yellow);flex:none;place-items:center;font-family:Georgia,serif;font-size:.75rem;font-weight:900;display:grid}.home-note p{padding:0 var(--space-3) var(--space-3);line-height:1.9}.home-journey{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg);color:#141414;box-shadow:var(--shadow-md);background:#fff;border:1px solid #e1ddd2;flex-direction:column;display:flex}.home__journey-tag{padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--metro-yellow);color:var(--metro-black);font-size:var(--text-xs);align-self:flex-start;font-weight:800}.home-journey__title{align-items:center;gap:var(--space-2);font-size:var(--text-lg);flex-wrap:wrap;font-weight:900;line-height:1.4;display:flex}.home-journey__arrow{color:#141414;font-size:20px}.home-journey__state{font-size:var(--text-sm);color:#3e3d38;margin-block-end:var(--space-2)}.station-screen{gap:var(--space-4)}.station-screen__sign{padding-block:var(--space-1)}.station-screen__note{font-size:var(--text-sm);color:var(--ink-soft);font-weight:600}.direction-card{gap:var(--space-2)}.direction-list>li+li{border:0}.direction-list{gap:var(--space-2)}.direction-row{align-items:flex-start;gap:var(--space-3);border-radius:var(--radius-md);text-align:start;background:0 0;width:100%;padding:0;display:flex}.direction-row:hover{background:0 0}.direction-row:hover .direction-sign{filter:brightness(1.06)}.direction-row:active .direction-sign{transform:translateY(1px);box-shadow:inset 0 -1px #00000029}.direction-row__body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.direction-row__next{padding-inline:var(--space-1);font-size:var(--text-xs);color:var(--ink-faint)}.direction-row__time{min-width:84px;height:64px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);background:var(--metro-black);color:var(--metro-yellow);text-align:center;flex-direction:column;flex:none;justify-content:center;align-items:center;display:flex}.direction-row__time strong{font-size:var(--text-md);font-weight:900;line-height:1.3}.direction-row__time small{color:#d9d5c8;font-size:.6875rem;line-height:1.4}.platform-screen{gap:var(--space-4)}.direction-switch{gap:var(--space-2);padding:2px 2px var(--space-2);scrollbar-width:none;display:flex;overflow-x:auto}.direction-chip{border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-out);background:0 0;border:2px solid #0000;flex:none;padding:3px;display:flex}.direction-chip:hover{border-color:var(--line-strong)}.direction-chip.is-selected{border-color:var(--ink);background:0 0}.next-train{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--metro-black);color:#fff;flex-wrap:wrap;display:flex}.next-train__countdown{flex-direction:column;gap:2px;min-width:0;display:flex}.next-train__countdown strong{color:var(--metro-yellow);font-size:clamp(1.4rem,6.4vw,1.85rem);font-weight:900;line-height:1.3}.next-train__countdown span{font-size:var(--text-sm);color:#d5d1c4}.next-train .btn--primary{min-height:52px;padding-inline:var(--space-6);font-size:var(--text-md);font-weight:900}.departure{border-radius:var(--radius-md)}.departure.is-selected{background:var(--brand-soft);box-shadow:inset 0 0 0 1.5px var(--metro-yellow-deep)}.departure__time{font-weight:900}.departure__tag{border-radius:var(--radius-sm);font-weight:700}.station-row{border-radius:var(--radius-md)}.station-row:hover{background:var(--brand-soft)}.station-row__name{font-weight:700}.picker__search{border:2px solid var(--ink);border-radius:var(--radius-md);background:var(--surface)}.picker__search:focus-within{box-shadow:0 0 0 3px var(--metro-yellow)}.picker__heading{color:var(--ink);font-weight:800}.planner__endpoint{border-radius:var(--radius-md)}.planner__swap{background:var(--metro-black);color:var(--metro-yellow);border-color:var(--metro-black)}.itinerary__times strong{font-weight:900}@media (prefers-reduced-motion:reduce){.map-viewer__pulse{animation:none}}:root[data-reduced-motion] .map-viewer__pulse{animation:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tabbar{background:#22221f;box-shadow:0 10px 30px #0009,inset 0 0 0 1px #ffffff17}}:root[data-theme=dark] .tabbar{background:#22221f;box-shadow:0 10px 30px #0009,inset 0 0 0 1px #ffffff17}.chip--line,.picker__lines .chip{border-radius:var(--radius-md)}.line-badge{place-items:center;line-height:1;display:inline-grid}.line-badge>.num{text-box:trim-both cap alphabetic;line-height:1;display:block}.direction-row__time small{white-space:nowrap;font-size:.625rem}.line-badge--sm{width:24px;height:24px;font-size:.9375rem}.line-badge--md{width:32px;height:32px;font-size:1.1875rem}.line-badge--lg{width:44px;height:44px;font-size:1.5rem}.offline-sheet{gap:var(--space-4);flex-direction:column;display:flex}.offline-sheet__icon{border-radius:var(--radius-lg);background:var(--metro-black);width:64px;height:64px;color:var(--metro-yellow);align-self:center;place-items:center;display:grid}.offline-sheet__icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:34px;height:34px}.offline-sheet__icon circle{fill:currentColor;stroke:none}.offline-sheet__works{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-sunken);flex-direction:column;display:flex}.offline-sheet__works li{align-items:center;gap:var(--space-2);font-weight:700;display:flex}.offline-sheet__works li:before{content:"✓";border-radius:var(--radius-full);background:var(--positive);color:#fff;flex:none;place-items:center;width:22px;height:22px;font-size:.75rem;font-weight:900;display:grid}.offline-sheet__note{font-size:var(--text-sm);color:var(--ink-soft);line-height:1.9}.offline-sheet__actions{gap:var(--space-2);flex-direction:column;display:flex}.page-skeleton{gap:var(--space-3);flex-direction:column;display:flex}.sk{background:linear-gradient(90deg, var(--surface-sunken) 0%, var(--line) 50%, var(--surface-sunken) 100%);background-size:200% 100%;flex:none;animation:1.3s linear infinite sk-shimmer;display:block}.sk--sm{border-radius:var(--radius-sm)}.sk--md{border-radius:var(--radius-md)}.sk--lg{border-radius:var(--radius-lg)}.sk--full{border-radius:var(--radius-full)}.sk--wall{aspect-ratio:5/4;width:100%;max-height:440px}@keyframes sk-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.sk-card{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);flex-direction:column;display:flex}.sk-grid{gap:var(--space-2);display:grid}.sk-grid--2{grid-template-columns:repeat(2,1fr)}.sk-grid--3{grid-template-columns:repeat(3,1fr)}.sk-grid--4{grid-template-columns:repeat(4,1fr)}.sk-rows{flex-direction:column;display:flex}.sk-row{align-items:center;gap:var(--space-3);display:flex}.sk-row+.sk-row{border-block-start:1px solid var(--line)}.sk-direction{gap:var(--space-3);display:flex}.sk-map{gap:var(--space-2);min-height:calc(100dvh - 180px);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--surface-sunken);flex-direction:column;display:flex}@media (prefers-reduced-motion:reduce){.sk{animation:none}}:root[data-reduced-motion] .sk{animation:none}.planner{gap:var(--space-3)}.planner__form{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.planner__form .planner__endpoint{min-height:50px;padding-block:6px}.planner__form .planner__endpoint strong{font-size:var(--text-base)}.planner__when-row{align-items:center;gap:var(--space-2);display:flex}.planner__when-row .segmented{flex:1;min-width:0}.planner__when-button{min-width:76px;height:44px;padding-inline:var(--space-2);border-radius:var(--radius-md);background:var(--metro-black);color:var(--metro-yellow);flex-direction:column;flex:none;justify-content:center;align-items:center;line-height:1.2;display:flex}.planner__when-button span{color:#d6d2c5;font-size:.6875rem}.planner__when-button strong{font-size:var(--text-md);font-weight:900}.planner__when-button{position:relative}.planner__when-button svg{border-radius:var(--radius-full);background:var(--metro-yellow);width:20px;height:20px;color:var(--metro-black);box-shadow:0 0 0 2px var(--surface);fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;padding:3px;position:absolute;inset-block-start:-6px;inset-inline-end:-6px}.planner__when-button.is-applied{animation:when-applied .9s var(--ease-out) both}@keyframes when-applied{0%{box-shadow:0 0 0 0 var(--metro-yellow);transform:scale(1.08)}60%{box-shadow:0 0 0 6px color-mix(in srgb, var(--metro-yellow) 35%, transparent);transform:scale(1)}to{box-shadow:0 0 #0000}}:root[data-reduced-motion] .planner__when-button.is-applied{animation:none}@media (prefers-reduced-motion:reduce){.planner__when-button.is-applied{animation:none}}.planner__results-when{margin-top:calc(var(--space-2) * -1);font-size:var(--text-sm);color:var(--ink-soft);font-weight:700}.station-row__km strong{font-size:var(--text-md);font-weight:900}.saved__remove,.saved__forget,.saved__forget:hover:not(:disabled){color:var(--critical)}.saved__remove:hover,.saved__forget:hover:not(:disabled){background:var(--critical-soft)}.home__journey-tag{padding:2px var(--space-2);border-radius:var(--radius-full);color:#141414;background:#fff;border:1px solid #dcd9cf;align-items:center;gap:6px;display:inline-flex}.live-dot{border-radius:var(--radius-full);background:#0a7d3a;width:8px;height:8px;position:relative}.live-dot:after{content:"";border-radius:inherit;background:inherit;animation:live-ping 1.6s var(--ease-out) infinite;position:absolute;inset:0}@keyframes live-ping{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}@media (prefers-reduced-motion:reduce){.live-dot:after{animation:none}}:root[data-reduced-motion] .live-dot:after{animation:none}.page{gap:var(--space-4);min-width:0;animation:page-in .26s var(--ease-out) backwards;flex-direction:column;display:flex}.page>*{min-width:0;max-width:100%}@keyframes page-in{0%{opacity:0}}.sheet-layer--leaving{pointer-events:none}.sheet-layer--leaving .sheet-backdrop{animation:fade-out .22s var(--ease-in-out) both}.sheet-layer--leaving .sheet{animation:sheet-down .22s var(--ease-in-out) both}@keyframes fade-out{to{opacity:0}}@keyframes sheet-down{to{opacity:0;transform:translateY(40px)}}.line-list__stations{animation:accordion-in .26s var(--ease-out) both;transform-origin:top}@keyframes accordion-in{0%{opacity:0;transform:translateY(-6px)}}.tabbar__item.is-active{animation:tab-pop .32s var(--ease-out)}@keyframes tab-pop{0%{transform:scale(.92)}60%{transform:scale(1.03)}to{transform:none}}.home-tile,.recent-sign,.line-directory__row,.direction-row,.ride-action,.route-line__row,.line-list__head{transition:transform var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out)}.home-tile:active,.recent-sign:active,.line-directory__row:active,.direction-row:active,.line-list__head:active{transform:scale(.985)}.shell:has(.network-map--map) .shell__main{gap:0;max-width:none;padding:0}.shell:has(.network-map--map) .shell__dock{background:0 0;position:fixed;inset-block-end:0;inset-inline:0}.network-map--map{height:calc(100dvh - 61px - env(safe-area-inset-top));background:var(--bg-deep);min-height:420px;position:relative;overflow:hidden}.map-viewer{background:var(--bg-deep);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab;contain:strict;position:absolute;inset:0;overflow:hidden}.map-viewer.is-grabbing{cursor:grabbing}.map-viewer:focus-visible{outline:3px solid var(--metro-black);outline-offset:-3px;border-radius:0}.map-viewer__stage{inset-block-start:0;transform-origin:0 0;will-change:transform;opacity:0;transition:opacity var(--duration-slow) var(--ease-out);position:absolute;left:0}.map-viewer.is-loaded .map-viewer__stage{opacity:1}.map-viewer__stage img{pointer-events:none;width:2778px;max-width:none;height:1984px;display:block}.map-viewer__overlay{pointer-events:none;position:absolute;inset:0;overflow:visible}.map-viewer__veil{fill:#fff;opacity:.86}.map-viewer__pulse{fill:var(--metro-yellow);opacity:.55;transform-box:fill-box;transform-origin:50%;animation:map-pin-pulse 1.8s var(--ease-out) infinite}@keyframes map-pin-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}.map-viewer__loading{color:var(--metro-black);background:var(--metro-yellow);place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.map-overlay{z-index:5;pointer-events:none;position:absolute}.map-overlay>*{pointer-events:auto}.map-overlay--top{gap:var(--space-2);padding:var(--space-3) var(--space-3) 0;flex-direction:column;display:flex;inset-block-start:0;inset-inline:0}.map-toolbar{gap:var(--space-2);width:100%;max-width:40rem;margin-inline:auto;display:flex}.map-overlay--top .network-map__lines{width:100%;max-width:40rem;margin-inline:auto}.trip-toggle{min-height:36px;margin-top:calc(var(--space-2) * -1);padding:0 var(--space-3) 0 var(--space-2);border:1.5px dashed var(--ink-soft);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface) 94%, transparent);color:var(--ink);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);align-self:flex-start;align-items:center;gap:6px;font-weight:700;display:inline-flex;box-shadow:0 2px 8px #0000001f}.trip-toggle svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.trip-toggle.is-on{border-style:solid;border-color:var(--metro-black);background:var(--metro-black);color:var(--metro-yellow)}@media (width>=42rem){.trip-toggle{align-self:center}}.map-overlay--controls{border-radius:var(--radius-md);flex-direction:column;gap:1px;display:flex;inset-block-end:calc(var(--tabbar-height) + 10px + max(var(--space-3), env(safe-area-inset-bottom)) + var(--space-4));inset-inline-end:var(--space-3);overflow:hidden;box-shadow:0 6px 18px #00000038}.network-map--map:has(.map-station) .map-overlay--controls{display:none}.map-fab{background:var(--metro-black);color:#f5f3ea;width:46px;height:46px;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);flex:none;place-items:center;display:grid}.map-toolbar .map-fab{border-radius:var(--radius-md);box-shadow:0 4px 14px #0003}.map-fab:hover{color:var(--metro-yellow);background:#2a2a28}.map-fab:active{background:var(--metro-yellow);color:var(--metro-black)}.map-fab svg{width:22px;height:22px}.map-search{border-radius:var(--radius-md);background:var(--surface);border:2px solid var(--metro-black);flex:1;align-items:center;min-width:0;height:46px;display:flex;position:relative;box-shadow:0 4px 14px #00000024}.map-search__icon{width:20px;height:20px;margin-inline:var(--space-3) var(--space-2);color:var(--ink-soft);flex:none}.map-search input{min-width:0;height:100%;background:0 0;border:0;outline:none;flex:1;padding-inline-end:var(--space-3);font-weight:500}.map-search input::placeholder{color:var(--ink-faint)}.map-search input::-webkit-search-cancel-button{display:none}.map-search:focus-within{box-shadow:0 0 0 3px var(--metro-yellow), 0 4px 14px #00000024}.map-search__results{padding:var(--space-1);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);z-index:3;position:absolute;inset-block-start:calc(100% + 6px);inset-inline:-2px}.map-search__results button{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-align:start;display:flex}.map-search__results button:hover,.map-search__results button:focus-visible{background:var(--brand-soft)}.map-search__name{font-weight:700}.map-search__lines{gap:3px;display:flex}.network-map__lines{padding:2px 2px var(--space-2);scrollbar-width:none;contain:paint;gap:6px;display:flex;overflow-x:auto}.network-map__lines::-webkit-scrollbar{display:none}.line-pill{border-radius:var(--radius-md);background:var(--surface);height:36px;color:var(--ink);border:1px solid var(--line-strong);font-size:var(--text-sm);white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);flex:none;align-items:center;gap:6px;padding-inline:6px 12px;font-weight:700;display:inline-flex;box-shadow:0 2px 8px #0000001a}.line-pill:first-child{padding-inline:12px}.line-pill.is-selected{background:var(--metro-black);border-color:var(--metro-black);color:#fff}.line-pill.is-selected .line-badge{box-shadow:0 0 0 2px var(--metro-black), 0 0 0 3.5px var(--pill-color,transparent)}.map-station{z-index:6;inset-inline:var(--space-3);gap:var(--space-3);max-width:30rem;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:map-card-in var(--duration-base) var(--ease-out);flex-direction:column;margin-inline:auto;display:flex;position:absolute;inset-block-end:calc(var(--tabbar-height) + 10px + max(var(--space-3), env(safe-area-inset-bottom)) + var(--space-3))}@keyframes map-card-in{0%{opacity:0;transform:translateY(12px)}}.map-station__head{align-items:center;gap:var(--space-3);display:flex}.map-station__lines{gap:4px;display:flex}.map-station__titles{flex-direction:column;flex:1;min-width:0;display:flex}.map-station__name{font-size:var(--text-lg);font-weight:900;line-height:1.3}.map-station__latin{font-size:var(--text-xs);letter-spacing:.12em;color:var(--ink-faint);text-align:right;font-weight:600}.map-station__close{border-radius:var(--radius-md);width:40px;height:40px;color:var(--ink-soft);background:var(--surface-sunken);flex:none;place-items:center;display:grid}.map-station__close svg{width:18px;height:18px}.map-station__meta{font-size:var(--text-sm);color:var(--ink-soft)}.network-map--list,.network-map__list{gap:var(--space-3);flex-direction:column;display:flex}.network-map__list-head{display:flex}.network-map__list .line-pill{box-shadow:none}.line-list{gap:var(--space-4);flex-direction:column;display:flex}.line-list__line{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);overflow:hidden}.line-list__search{height:48px;min-height:48px;z-index:2;box-shadow:var(--shadow-md);flex:none;position:sticky;inset-block-start:calc(61px + env(safe-area-inset-top) + var(--space-2))}.line-list__empty{padding:var(--space-4);text-align:center;color:var(--ink-faint)}.line-list__head{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-block-start:6px solid var(--line-color);text-align:start;transition:background-color var(--duration-fast) var(--ease-out);display:flex}.line-list__head:hover:not(:disabled){background:var(--brand-soft)}.line-list__head:disabled{cursor:default;opacity:1}.line-list__line.is-open .line-list__head{border-block-end:1px solid var(--line)}.line-list__titles{flex-direction:column;flex:1;min-width:0;display:flex}.line-list__title{font-size:var(--text-lg);font-weight:900}.line-list__ends{font-size:var(--text-xs);color:var(--ink-faint)}.line-list__chevron{fill:none;width:22px;height:22px;stroke:var(--ink-soft);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--duration-base) var(--ease-out);flex:none}.line-list__line.is-open .line-list__chevron{transform:rotate(180deg)}.line-list__head:disabled .line-list__chevron{display:none}.line-list__stations{padding:var(--space-2) 0}.line-list__stations>li{position:relative}.line-list__stations>li:before{content:"";background:var(--line-color);width:6px;position:absolute;inset-block:0;inset-inline-start:calc(var(--space-4) + 7px)}.line-list__stations>li:first-child:before{inset-block-start:50%}.line-list__stations>li:last-child:before{inset-block-end:50%}.line-list__stations>li>button{align-items:center;gap:var(--space-3);width:100%;min-height:46px;padding:var(--space-1) var(--space-4);text-align:start;display:flex;position:relative}.line-list__stations>li>button:hover{background:var(--brand-soft)}.line-list__dot{border-radius:var(--radius-full);background:var(--surface);border:4px solid var(--line-color);flex:none;width:20px;height:20px}.is-interchange .line-list__dot{border-color:var(--metro-black);box-shadow:inset 0 0 0 3px var(--surface), inset 0 0 0 10px var(--metro-black)}.line-list__name{overflow-wrap:anywhere;flex:1;font-weight:600}.is-interchange .line-list__name{font-weight:800}.line-list__interchange{gap:3px;display:flex}@media (width>=900px){.map-overlay--top{padding-top:var(--space-4)}}.map-hint{z-index:6;width:max-content;max-width:calc(100% - 2 * var(--space-4));align-items:center;gap:var(--space-2);padding:10px var(--space-4);border-radius:var(--radius-full);background:var(--metro-black);color:#fff;font-size:var(--text-sm);pointer-events:none;animation:map-hint-in .42s var(--ease-out) both, map-hint-out .5s var(--ease-out) 6.5s both;margin-inline:auto;font-weight:700;display:flex;position:absolute;inset-block-end:calc(var(--tabbar-height) + 10px + max(var(--space-3), env(safe-area-inset-bottom)) + var(--space-4));inset-inline:0;box-shadow:0 8px 24px #00000047}.map-hint svg{fill:none;width:20px;height:20px;stroke:var(--metro-yellow);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;animation:map-hint-tap 1.4s var(--ease-in-out) infinite;flex:none}@keyframes map-hint-in{0%{opacity:0;transform:translateY(10px)}}@keyframes map-hint-out{to{opacity:0}}@keyframes map-hint-tap{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)scale(.94)}}.fit-text{white-space:nowrap;width:100%;min-width:0;display:block;overflow:hidden}.platform-scene{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin:0;overflow:hidden}.platform-scene__wall{aspect-ratio:5/4;background:linear-gradient(90deg,#00000021 1px,#0000 1px) 0 0/25% 100%,linear-gradient(0deg,#0000001a 1px,#0000 1px) 0 0/100% 22%,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.12 0 0 0 0 0.12 0 0 0 0 0.12 0 0 0 1.25 -0.42'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"),linear-gradient(#b9b6af 0%,#a9a69f 100%);width:100%;max-height:440px;position:relative;overflow:hidden;container-type:inline-size}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .platform-scene__wall{filter:brightness(.78)}}:root[data-theme=dark] .platform-scene__wall{filter:brightness(.78)}.platform-scene__cornice{background:linear-gradient(#f2c200 0%,#ffd83a 55%,#e0ae00 100%);height:8%;position:absolute;inset:0 0 auto;box-shadow:0 2px 6px #00000059}.platform-scene__cornice:after{content:"";background:#ffffff80;height:2px;position:absolute;inset:auto 0 -2px}.platform-scene__sign{position:absolute;inset-block-start:15%;inset-inline:9%}.platform-scene__seats{justify-content:center;display:flex;position:absolute;inset-block-end:9%;inset-inline:0}.platform-scene__bench{gap:.9cqi;padding:0 1.2cqi 2.4cqi;display:flex;position:relative}.platform-scene__bench:before{content:"";background:#161616;border-radius:.4cqi;height:1.8cqi;position:absolute;inset-block-end:1.3cqi;inset-inline:0}.platform-scene__bench:after{content:"";background:linear-gradient(#161616,#161616) 0/1.4cqi 100% no-repeat,linear-gradient(#161616,#161616) 100%/1.4cqi 100% no-repeat;height:1.4cqi;position:absolute;inset-block-end:0;inset-inline:8%}.platform-seat{z-index:1;filter:drop-shadow(0 .8cqi .8cqi #00000047);width:14cqi;height:14.5cqi;position:relative}.platform-seat__shell{fill:var(--seat,#e6bc00)}.platform-seat__shine{fill:var(--seat-light,#ffe45c);opacity:.55}.platform-seat__crease{fill:none;stroke:var(--seat-deep,#b89400);stroke-width:1.4px;stroke-linecap:round}.platform-scene__plinth{background:linear-gradient(#1e1e1e,#111);height:9%;position:absolute;inset:auto 0 0}.platform-scene__lamp{border-radius:var(--radius-sm);background:var(--metro-black);color:var(--metro-yellow);white-space:nowrap;padding:.6cqi 2.4cqi;font-size:max(11px,2.6cqi);font-weight:800;animation:1.1s step-end infinite lamp-blink;position:absolute;inset-block-start:10.5%;inset-inline-start:50%;transform:translate(50%)}@keyframes lamp-blink{50%{color:#8a7300}}.station-sign--wall .station-sign__panel{border-radius:1.6cqi;box-shadow:0 1.4cqi 3cqi #00000059}.station-sign--wall .station-sign__face{gap:.4cqi;padding:3.4cqi 3cqi 2.4cqi}.station-sign--wall .station-sign__name{font-size:7.2cqi;line-height:1.3}.station-sign--wall .station-sign__latin{letter-spacing:.22em;font-size:2.9cqi}.station-sign--wall .station-sign__strip{padding:1.3cqi 2.6cqi;font-size:max(10px,2.55cqi)}.station-sign__strip{flex-wrap:nowrap;justify-content:space-between}.station-sign__strip-fa.fit-text{text-align:start;flex:1.35 1 0;width:auto}.station-sign__strip-en.fit-text{text-align:left;flex:1 1 0;width:auto}.station-sign__name.fit-text,.station-sign__latin.fit-text{text-align:center}.route-card{gap:var(--space-2)}.route-card__to{font-size:var(--text-xs);color:var(--ink-faint);font-weight:700}.next-legs{gap:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--line);--dot-col:18px;flex-direction:column;display:flex}.next-legs__step{gap:var(--space-2);flex-direction:column;display:flex}.route-card__more{min-height:var(--touch-min);border-radius:var(--radius-md);background:var(--surface-sunken);font-size:var(--text-sm);align-self:stretch;font-weight:700}.route-card__more:hover{background:var(--brand-soft)}.route-card__hours,.route-card__hint{font-size:var(--text-xs);color:var(--ink-faint);text-align:center}.route-line{--rail-x:19px;position:relative}.route-line__rail,.route-line__travelled{border-radius:4px;width:8px;position:absolute;inset-block-start:calc(var(--route-row) / 2);inset-inline-start:calc(var(--rail-x) - 4px)}.route-line__rail{background:var(--route-color);inset-block-end:calc(var(--route-row) / 2)}.route-line__travelled{background:var(--line-strong);transition:height .9s linear}.route-line__stops{position:relative}.route-line__row{align-items:center;gap:var(--space-3);width:100%;height:var(--route-row);padding-inline:calc(var(--rail-x) - 9px) var(--space-1);border-radius:var(--radius-md);text-align:start;display:flex}button.route-line__row:hover{background:var(--brand-soft)}.route-line__dot{border-radius:var(--radius-full);background:var(--surface);border:4px solid var(--route-color);z-index:1;flex:none;width:18px;height:18px;position:relative}.is-interchange .route-line__dot{border-width:4px;width:16px;height:16px;margin-inline:1px}.is-passed .route-line__dot{border-color:var(--line-strong)}.route-line__name{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-base);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:700;display:flex;overflow:hidden}.is-interchange .route-line__name{font-weight:900}.is-change .route-line__tag{background:var(--metro-yellow);color:var(--metro-black)}.route-line__label.fit-text{text-align:start;flex:0 auto;width:auto}.route-line__name .route-line__tag{flex:none}.route-line__links,.route-line__time{flex-shrink:0}.is-passed .route-line__name,.is-passed .route-line__time{color:var(--ink-faint);font-weight:500}.is-here .route-line__row{background:var(--brand-soft)}.is-here .route-line__name{font-size:var(--text-md);color:var(--ink);font-weight:900}.route-line__tag{border-radius:var(--radius-sm);background:var(--metro-black);color:var(--metro-yellow);flex:none;padding:0 6px;font-size:.6875rem;font-weight:800;line-height:1.7}.route-line__links{flex:none;gap:2px;display:flex}.route-line__time{text-align:end;min-width:3.2em;font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex:none;font-weight:800}.route-line__train{z-index:2;border-radius:var(--radius-md);background:var(--metro-black);width:30px;height:30px;color:var(--metro-yellow);box-shadow:0 0 0 3px var(--surface), 0 4px 10px #0000004d;pointer-events:none;place-items:center;transition:transform .9s linear;display:grid;position:absolute;inset-block-start:calc(var(--route-row) / 2 - 15px);inset-inline-start:calc(var(--rail-x) - 15px)}.route-line__train svg{width:20px;height:20px}.route-line__train.is-moving:after{content:"";border-radius:calc(var(--radius-md) + 3px);border:2px solid var(--metro-yellow);animation:train-ping 1.6s var(--ease-out) infinite;position:absolute;inset:-3px}@keyframes train-ping{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.journey{gap:var(--space-4);flex-direction:column;display:flex}.ride-board,.transfer-board{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--metro-black);color:#fff;box-shadow:var(--shadow-md);border-block-start:6px solid var(--line-color,var(--metro-yellow));flex-direction:column;gap:2px;display:flex}.ride-board__head{justify-content:space-between;align-items:center;gap:var(--space-2);margin-block-end:var(--space-3);display:flex}.ride-board__status{font-size:var(--text-xs);color:var(--status-color,#d6d2c5);flex:none;align-items:center;gap:6px;font-weight:700;display:inline-flex}.ride-board__status-dot{border-radius:var(--radius-full);background:currentColor;flex:none;width:8px;height:8px;position:relative}.ride-board__status-dot:after{content:"";border-radius:var(--radius-full);animation:ride-status-pulse 1.8s var(--ease-out) infinite;border:2px solid;position:absolute;inset:-4px}.ride-board--boarding{--status-color:#ffd100}.ride-board--moving{--status-color:#5ed08f}.ride-board--at_station{--status-color:#ffa94d}.ride-board--arrived{--status-color:#79cbf1}.ride-board--boarding .ride-board__status-dot:after{animation-duration:2.2s}.ride-board--moving .ride-board__status-dot:after{animation-duration:1s}.ride-board--at_station .ride-board__status-dot:after{animation-duration:1.6s}.ride-board--arrived .ride-board__status-dot:after{animation-duration:2.8s}@keyframes ride-status-pulse{0%{opacity:.85;transform:scale(.65)}to{opacity:0;transform:scale(1.7)}}.ride-board__label{font-size:var(--text-sm);color:#d6d2c5;font-weight:600}.ride-board__station{color:var(--line-on-dark,var(--metro-yellow));font-size:clamp(1.5rem,7vw,2rem);font-weight:900;line-height:1.3}.ride-board__latin{font-size:var(--text-xs);letter-spacing:.18em;color:#bdb9ac;text-align:right;font-weight:700}.ride-board__clock{align-items:baseline;gap:var(--space-2);margin-block-start:var(--space-3);display:flex}.ride-board__clock strong{font-size:var(--text-xl);font-weight:900}.ride-board__clock span{font-size:var(--text-sm);color:#d6d2c5}.ride-board__hop{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:#d6d2c5;margin-block-start:var(--space-3);display:flex}.ride-board__hop-name{white-space:nowrap;text-overflow:ellipsis;flex:none;max-width:34%;overflow:hidden}.ride-board__hop-track{background:#3a3935;border-radius:3px;flex:1;height:6px;position:relative;overflow:hidden}.ride-board__hop-track span{background:var(--line-color);border-radius:3px;transition:width .9s linear;position:absolute;inset-block:0;inset-inline-start:0}.ride-board__meta{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:#d6d2c5;border-block-start:1px solid #33322e;margin-block-start:var(--space-3);padding-block-start:var(--space-3);display:flex}.ride-callout{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--metro-yellow);color:var(--metro-black);font-size:var(--text-base);font-weight:900;display:flex}.ride-callout .sign-arrow{font-size:24px}.auto-board{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line);border-inline-start:4px solid var(--metro-yellow);font-size:var(--text-sm);color:var(--ink);flex-direction:column;line-height:1.8;display:flex}.auto-board__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.auto-board__actions .btn{flex:1}.ride-actions{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.ride-action{min-width:0;min-height:68px;padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface);border:1.5px solid var(--ink);text-align:start;transition:background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;display:flex}.ride-action:hover{background:var(--brand-soft)}.ride-action:active{transform:scale(.98)}.ride-action strong{font-size:var(--text-base);font-weight:900}.ride-action small{font-size:var(--text-xs);color:var(--ink-faint)}.ride-action--primary{background:var(--metro-yellow);border-color:var(--metro-yellow);min-height:60px;color:var(--metro-black);grid-column:1/-1;box-shadow:inset 0 -3px #00000024}.ride-action--primary:hover{background:var(--metro-yellow-deep)}.ride-action--primary small{color:#4a3f00}.ride-footer{justify-content:center;gap:var(--space-2);display:flex}.transfer-board{gap:var(--space-2)}.transfer-board__walk{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:#d6d2c5;margin-block-start:var(--space-2);display:flex}.transfer-board .btn{margin-block-start:var(--space-2)}.alight-sheet,.stop-sheet{gap:var(--space-2);flex-direction:column;display:flex}.station-row__time{font-size:var(--text-sm);color:var(--ink-faint);flex:none;font-weight:700}@media (prefers-reduced-motion:reduce){.route-line__train.is-moving:after,.platform-scene__lamp,.ride-board__status-dot:after{animation:none}}:root[data-reduced-motion] .route-line__train.is-moving:after,:root[data-reduced-motion] .platform-scene__lamp,:root[data-reduced-motion] .ride-board__status-dot:after{animation:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) :is(.ride-board,.transfer-board,.next-train){box-shadow:inset 0 0 0 1px #34332e}}:root[data-theme=dark] :is(.ride-board,.transfer-board,.next-train){box-shadow:inset 0 0 0 1px #34332e}.train{z-index:3;inset-block-end:0;visibility:hidden;filter:drop-shadow(0 -.6cqi 1.4cqi #00000040);will-change:transform;width:244cqi;height:40cqi;position:absolute;left:0;transform:translate(104cqi)}.is-approaching .train,.is-stopped .train,.is-departing .train{visibility:visible}.is-approaching .train,.is-stopped .train{transition:transform 2.6s cubic-bezier(.12,.72,.24,1);transform:translate(-36cqi)}.is-departing .train{transition:transform 2s cubic-bezier(.55,0,.85,.35);transform:translate(-250cqi)}.train__body{fill:#e3e6e5;stroke:#a4aaa9;stroke-width:2px}.train__roof{fill:#c7cccb}.train__glass{fill:#25303a}.train__inside{fill:#15191c}.train__rail{stroke:var(--metro-yellow);stroke-width:5px;stroke-linecap:round}.train__leafbody{fill:#d3d8d7;stroke:#9ca2a1;stroke-width:1.5px}.train__leaf{transition:transform .9s cubic-bezier(.32,.72,.18,1)}.doors-open .train__leaf--a{transform:translate(-40px)}.doors-open .train__leaf--b{transform:translate(40px)}.train__lamp{fill:#fff2b0}.train__skirt,.train__gangway{fill:#2b2e2f}@media (prefers-reduced-motion:reduce){.train,.train__leaf{transition:none!important}}:root[data-reduced-motion] .train,:root[data-reduced-motion] .train__leaf{transition:none!important}.route-line-box{overscroll-behavior:contain;scrollbar-width:thin;border-radius:var(--radius-md);max-height:420px;margin-inline:-12px -2px;padding-block:8px;padding-inline:12px 2px;position:relative;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0,#000 18px calc(100% - 14px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 18px calc(100% - 14px),#0000 100%)}.route-line-box:focus-visible{outline-offset:2px}.route-line__train{background:var(--route-color);color:var(--route-ink);box-shadow:0 0 0 3px var(--surface), 0 4px 10px #0000004d}.route-line__train.is-moving:after{border-color:var(--route-color)}.is-skipped .route-line__name{color:var(--ink-faint);font-weight:500;text-decoration:line-through;text-decoration-thickness:2px}.is-skipped .route-line__dot{border-style:dashed;border-width:3px;width:12px;height:12px;margin-inline:3px}.is-skipped .route-line__tag{background:var(--critical-soft);color:var(--critical);text-decoration:none}.ride-action--wide{border-style:dashed;grid-column:1/-1;min-height:52px}.ride-callout--alert{background:var(--critical);color:#fff}
