:root{--font-family-base: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-family-base);line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--motion-fast: .14s;--motion-base: .2s;--motion-medium: .26s;--motion-slow: .42s;--motion-splash: .56s;--ease-out-soft: cubic-bezier(.16, 1, .3, 1);--ease-out-splash: cubic-bezier(.19, 1, .22, 1);--ease-out: ease-out;--color-bg-body: #f4f5f7;--color-bg-body-alt: #e9ebef;--rgb-card: 255, 255, 255;--rgb-card-tint: 248, 249, 251;--rgb-wash: 238, 241, 245;--rgb-border-hair: 214, 219, 227;--rgb-border-slate: 148, 163, 184;--rgb-border-neutral: 209, 213, 219;--rgb-input-surface: 245, 246, 249;--rgb-accent: 47, 61, 91;--rgb-accent-soft: 79, 93, 122;--rgb-warm-wash-1: 243, 245, 248;--rgb-warm-wash-2: 232, 236, 242;--rgb-warm-line: 130, 142, 160;--rgb-shadow-ink: 15, 23, 42;--rgb-shadow-cool: 148, 163, 184;--rgb-scrim: 15, 23, 42;--app-bg-1: #f7f8fa;--app-bg-2: #edeff3;--map-canvas-top: #f7f8fa;--map-canvas-bottom: #f1f3f6;--map-canvas-veil-1: rgba(255, 255, 255, .96);--map-canvas-veil-2: rgba(236, 239, 244, .9);--color-surface-glass: rgba(255, 255, 255, .82);--color-surface-glass-strong: rgba(255, 255, 255, .94);--color-surface-glass-soft: rgba(255, 255, 255, .72);--color-surface-glass-dark: rgba(15, 23, 42, .12);--color-border-soft: rgba(148, 163, 184, .3);--color-border-strong: rgba(148, 163, 184, .55);--color-accent: #2f3d5b;--color-accent-soft: rgba(47, 61, 91, .12);--color-accent-subtle: rgba(47, 61, 91, .06);--color-accent-outline: #4b5a73;--color-accent-deep: #232c40;--color-accent-muted: #495471;--color-text-primary: #111827;--color-text-secondary: #4b5563;--color-text-muted: #6b7280;--map-label-color-strong: var(--color-text-secondary);--map-label-color-weak: #6b7280;--map-line-halo-color: rgba(249, 250, 251, .96);--map-station-fill: var(--color-surface-white);--map-station-selected-halo: rgba(47, 61, 91, .22);--map-route-fallback-color: var(--color-accent);--map-route-casing: rgba(17, 24, 39, .55);--map-hub-link: rgba(71, 85, 105, .9);--map-endpoint-a: #22c1b4;--map-endpoint-b: #ef4444;--map-label-halo: rgba(255, 255, 255, .92);--map-hub-capsule-fill: rgba(255, 255, 255, .82);--map-hub-capsule-stroke: rgba(100, 116, 139, .45);--map-route-build-overlay: #f3f4f6;--map-route-build-glow: rgba(148, 163, 184, .35);--map-endpoint-shadow: rgba(15, 23, 42, .25);--map-endpoint-stroke: rgba(15, 23, 42, .18);--color-border-hair-strong: rgba(203, 210, 222, .9);--color-text-muted-soft: #6f7787;--color-text-strong-muted: #374151;--color-text-heading: #1f2937;--color-text-heading-strong: #111827;--color-text-transfer: #4b5563;--color-text-accent: #2f3d5b;--color-text-quiet: #3b4968;--color-text-placeholder: #6b7280;--color-bg-input: #f5f6f9;--color-bg-input-hover: #eef0f4;--color-danger: #b3261e;--color-neutral-200: #e5e7eb;--color-neutral-300: #d1d5db;--color-surface-white: #ffffff;--color-on-accent: #ffffff;--color-surface-tint: #eef0f4;--color-surface-tint-strong: #dfe3ea;--color-surface-hover-1: #f7f8fa;--color-surface-hover-2: #eceff4;--color-text-success-strong: #166534;--color-border-neutral-soft: #e5e7eb;--color-border-neutral-strong: #d1d5db;--space-05: 2px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--radius-xs: .5rem;--radius-lg: 1.5rem;--radius-md: 1rem;--radius-sm: .75rem;--radius-pill: 999px;--shadow-raised: 0 2px 8px rgba(15, 23, 42, .12);--shadow-overlay: 0 12px 32px rgba(15, 23, 42, .18);--shadow-modal: 0 30px 80px rgba(15, 23, 42, .4);--color-primary-surface: #28344f;--color-primary-surface-hover: #1c2536;--color-primary-on: #ffffff;--color-focus-ring: #2f3d5b;--shadow-soft: 0 6px 18px rgba(15, 23, 42, .18);--shadow-strong: 0 30px 80px rgba(15, 23, 42, .45);--blur-glass-strong: 22px;--blur-glass-soft: 18px;--font-size-2xs: .7rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.4rem;--font-size-hero: 1.3rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800}html,body{overscroll-behavior:none}body{margin:0;font-family:var(--font-family-base);min-width:320px;min-height:100vh}#root{min-height:100vh}a{color:inherit;text-decoration:none}button,input,textarea,select,option,optgroup{font:inherit}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--rgb-card: 27, 32, 41;--rgb-card-tint: 33, 39, 49;--rgb-wash: 38, 45, 56;--rgb-border-hair: 66, 76, 92;--rgb-border-slate: 110, 122, 140;--rgb-border-neutral: 86, 96, 112;--rgb-input-surface: 25, 30, 38;--rgb-accent: 135, 129, 177;--rgb-accent-soft: 122, 116, 160;--rgb-warm-wash-1: 38, 44, 54;--rgb-warm-wash-2: 45, 52, 64;--rgb-warm-line: 128, 140, 158;--rgb-shadow-ink: 0, 0, 0;--rgb-shadow-cool: 0, 0, 0;--rgb-scrim: 6, 8, 12;--app-bg-1: #171b23;--app-bg-2: #0f131a;--color-bg-body: #12161d;--color-bg-body-alt: #1b2029;--color-surface-glass: rgba(27, 32, 41, .84);--color-surface-glass-strong: rgba(27, 32, 41, .94);--color-surface-glass-soft: rgba(27, 32, 41, .72);--color-surface-glass-dark: rgba(0, 0, 0, .35);--color-border-soft: rgba(148, 163, 184, .22);--color-border-strong: rgba(148, 163, 184, .42);--color-border-hair-strong: rgba(110, 122, 140, .5);--color-border-neutral-soft: #2a313c;--color-border-neutral-strong: #3a4250;--color-bg-input: #1a1f27;--color-bg-input-hover: #222833;--color-neutral-200: #2a313c;--color-neutral-300: #3a4250;--color-surface-white: #232a34;--color-accent: #8781b1;--color-accent-soft: rgba(135, 129, 177, .22);--color-accent-subtle: rgba(135, 129, 177, .12);--color-accent-outline: #928bbc;--color-accent-deep: #7d77a3;--color-accent-muted: #8781b1;--color-danger: #f2938d;--color-text-success-strong: #86d3a6;--color-text-primary: #e8eaef;--color-text-secondary: #c3c8d2;--color-text-muted: #9aa1ad;--color-text-muted-soft: #8b929e;--color-text-strong-muted: #d4d9e1;--color-text-heading: #e8eaef;--color-text-heading-strong: #f2f4f7;--color-text-transfer: #b9bfca;--color-text-accent: #928bbc;--color-text-quiet: #928bbc;--color-text-placeholder: #868d99;--color-on-accent: #12161d;--color-surface-tint: #262d38;--color-surface-tint-strong: #313945;--color-surface-hover-1: #232a34;--color-surface-hover-2: #2c333f;--map-canvas-top: #0c0f14;--map-canvas-bottom: #080a0e;--map-canvas-veil-1: #0a0d11;--map-canvas-veil-2: #070a0d;--map-label-color-strong: #dfe3ea;--map-label-color-weak: #9aa1ad;--map-line-halo-color: rgba(10, 13, 18, .94);--map-station-fill: #202730;--map-station-selected-halo: rgba(203, 213, 225, .35);--map-route-fallback-color: #cbd5e1;--map-route-casing: rgba(255, 255, 255, .62);--map-hub-link: rgba(223, 227, 234, .82);--map-endpoint-a: #2ed3c4;--map-endpoint-b: #ff6b6b;--map-label-halo: rgba(10, 13, 18, .92);--map-hub-capsule-fill: rgba(32, 39, 48, .85);--map-hub-capsule-stroke: rgba(223, 227, 234, .28);--map-route-build-overlay: #dfe3ea;--map-route-build-glow: rgba(148, 163, 184, .35);--map-endpoint-shadow: rgba(223, 227, 234, .28);--map-endpoint-stroke: rgba(255, 255, 255, .35);--shadow-soft: 0 6px 18px rgba(0, 0, 0, .55);--shadow-strong: 0 30px 80px rgba(0, 0, 0, .75);--shadow-raised: 0 2px 8px rgba(0, 0, 0, .5);--shadow-overlay: 0 12px 32px rgba(0, 0, 0, .62);--shadow-modal: 0 30px 80px rgba(0, 0, 0, .75);--color-primary-surface: #928bbc;--color-primary-surface-hover: #9790c2;--color-primary-on: #12161d;--color-focus-ring: #9790c2}}:root[data-theme=dark]{color-scheme:dark;--rgb-card: 27, 32, 41;--rgb-card-tint: 33, 39, 49;--rgb-wash: 38, 45, 56;--rgb-border-hair: 66, 76, 92;--rgb-border-slate: 110, 122, 140;--rgb-border-neutral: 86, 96, 112;--rgb-input-surface: 25, 30, 38;--rgb-accent: 135, 129, 177;--rgb-accent-soft: 122, 116, 160;--rgb-warm-wash-1: 38, 44, 54;--rgb-warm-wash-2: 45, 52, 64;--rgb-warm-line: 128, 140, 158;--rgb-shadow-ink: 0, 0, 0;--rgb-shadow-cool: 0, 0, 0;--rgb-scrim: 6, 8, 12;--app-bg-1: #171b23;--app-bg-2: #0f131a;--color-bg-body: #12161d;--color-bg-body-alt: #1b2029;--color-surface-glass: rgba(27, 32, 41, .84);--color-surface-glass-strong: rgba(27, 32, 41, .94);--color-surface-glass-soft: rgba(27, 32, 41, .72);--color-surface-glass-dark: rgba(0, 0, 0, .35);--color-border-soft: rgba(148, 163, 184, .22);--color-border-strong: rgba(148, 163, 184, .42);--color-border-hair-strong: rgba(110, 122, 140, .5);--color-border-neutral-soft: #2a313c;--color-border-neutral-strong: #3a4250;--color-bg-input: #1a1f27;--color-bg-input-hover: #222833;--color-neutral-200: #2a313c;--color-neutral-300: #3a4250;--color-surface-white: #232a34;--color-accent: #8781b1;--color-accent-soft: rgba(135, 129, 177, .22);--color-accent-subtle: rgba(135, 129, 177, .12);--color-accent-outline: #928bbc;--color-accent-deep: #7d77a3;--color-accent-muted: #8781b1;--color-danger: #f2938d;--color-text-success-strong: #86d3a6;--color-text-primary: #e8eaef;--color-text-secondary: #c3c8d2;--color-text-muted: #9aa1ad;--color-text-muted-soft: #8b929e;--color-text-strong-muted: #d4d9e1;--color-text-heading: #e8eaef;--color-text-heading-strong: #f2f4f7;--color-text-transfer: #b9bfca;--color-text-accent: #928bbc;--color-text-quiet: #928bbc;--color-text-placeholder: #868d99;--color-on-accent: #12161d;--color-surface-tint: #262d38;--color-surface-tint-strong: #313945;--color-surface-hover-1: #232a34;--color-surface-hover-2: #2c333f;--map-canvas-top: #0c0f14;--map-canvas-bottom: #080a0e;--map-canvas-veil-1: #0a0d11;--map-canvas-veil-2: #070a0d;--map-label-color-strong: #dfe3ea;--map-label-color-weak: #9aa1ad;--map-line-halo-color: rgba(10, 13, 18, .94);--map-station-fill: #202730;--map-station-selected-halo: rgba(203, 213, 225, .35);--map-route-fallback-color: #cbd5e1;--map-route-casing: rgba(255, 255, 255, .62);--map-hub-link: rgba(223, 227, 234, .82);--map-endpoint-a: #2ed3c4;--map-endpoint-b: #ff6b6b;--map-label-halo: rgba(10, 13, 18, .92);--map-hub-capsule-fill: rgba(32, 39, 48, .85);--map-hub-capsule-stroke: rgba(223, 227, 234, .28);--map-route-build-overlay: #dfe3ea;--map-route-build-glow: rgba(148, 163, 184, .35);--map-endpoint-shadow: rgba(223, 227, 234, .28);--map-endpoint-stroke: rgba(255, 255, 255, .35);--shadow-soft: 0 6px 18px rgba(0, 0, 0, .55);--shadow-strong: 0 30px 80px rgba(0, 0, 0, .75);--shadow-raised: 0 2px 8px rgba(0, 0, 0, .5);--shadow-overlay: 0 12px 32px rgba(0, 0, 0, .62);--shadow-modal: 0 30px 80px rgba(0, 0, 0, .75);--color-primary-surface: #928bbc;--color-primary-surface-hover: #9790c2;--color-primary-on: #12161d;--color-focus-ring: #9790c2}:root[data-theme=light]{color-scheme:light}#root{margin:0;padding:0;min-height:100vh;display:flex;justify-content:center}.app-root{position:relative;flex:1;display:flex;flex-direction:column;width:100%;max-width:480px;margin:0 auto;padding:env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0) 0;overflow:hidden}.app-status-bar-fill{position:fixed;top:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;height:env(safe-area-inset-top,0);z-index:1;background:var(--color-surface-glass-strong)}.app-splash{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-5) var(--space-7);background:radial-gradient(circle at 0% 0%,rgba(var(--rgb-wash),.72),rgba(var(--rgb-card),.6)),radial-gradient(circle at 100% 100%,rgba(var(--rgb-card-tint),.68),rgba(var(--rgb-scrim),.1));backdrop-filter:blur(8px) saturate(140%);-webkit-backdrop-filter:blur(8px) saturate(140%);will-change:opacity;transition:opacity var(--motion-slow) var(--ease-out-splash),visibility var(--motion-slow) var(--ease-out)}.app-splash:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:-3px}.app-splash--hidden{opacity:0;visibility:hidden;pointer-events:none}.app-splash-card{position:relative;z-index:1;width:100%;max-width:360px;padding:var(--space-6) var(--space-5);border-radius:var(--radius-lg);background:radial-gradient(circle at 0% 0%,rgba(var(--rgb-wash),.96),rgba(var(--rgb-wash),.4)),linear-gradient(135deg,rgba(var(--rgb-card),.98),rgba(var(--rgb-card-tint),.98));box-shadow:var(--shadow-overlay),0 0 0 1px rgba(var(--rgb-border-hair),.7);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);will-change:transform,opacity;transform:translateY(10px) scale(.97);opacity:0;animation:app-splash-pop-in var(--motion-splash) var(--ease-out-soft) var(--motion-fast) forwards}.app-splash-hero{width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-2)}.app-splash-hero-avatar{position:relative;width:4.4rem;height:4.4rem;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;background:rgba(var(--rgb-card),.9);box-shadow:0 0 0 1px rgba(var(--rgb-border-hair),.6);overflow:hidden}.app-splash-logo-img{width:4.4rem;height:4.4rem}.app-splash-floaters{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.app-root--splash-active .metro-map-zoom-controls{opacity:0;pointer-events:none}.app-splash-node{position:absolute;width:2.1rem;height:2.1rem;opacity:0;background-color:rgba(var(--rgb-accent),.34);mask:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2064%2064'%20fill='none'%20stroke='%23000'%20stroke-width='6'%20stroke-linecap='round'%3e%3cpath%20d='M11%2011%2024%2024'/%3e%3cpath%20d='M53%2011%2040%2024'/%3e%3cpath%20d='M32%2040v13'/%3e%3ccircle%20cx='32'%20cy='32'%20r='9'%20stroke-width='5.5'/%3e%3c/svg%3e") center / contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2064%2064'%20fill='none'%20stroke='%23000'%20stroke-width='6'%20stroke-linecap='round'%3e%3cpath%20d='M11%2011%2024%2024'/%3e%3cpath%20d='M53%2011%2040%2024'/%3e%3cpath%20d='M32%2040v13'/%3e%3ccircle%20cx='32'%20cy='32'%20r='9'%20stroke-width='5.5'/%3e%3c/svg%3e") center / contain no-repeat;will-change:transform,opacity}.app-splash-node--1{top:15%;left:14%;animation:app-splash-node-drift 11s ease-in-out infinite alternate;animation-delay:0ms}.app-splash-node--2{top:70%;left:18%;animation:app-splash-node-drift 12s ease-in-out infinite alternate;animation-delay:.12s}.app-splash-node--3{top:24%;right:12%;animation:app-splash-node-drift 13s ease-in-out infinite alternate;animation-delay:.24s}.app-splash-node--4{top:44%;left:9%;animation:app-splash-node-drift 12s ease-in-out infinite alternate;animation-delay:.36s}.app-splash-node--5{top:58%;right:16%;animation:app-splash-node-drift 13s ease-in-out infinite alternate;animation-delay:.48s}.app-splash-node--6{top:8%;left:46%;animation:app-splash-node-drift 14s ease-in-out infinite alternate;animation-delay:.6s}.app-splash-node--7{top:84%;right:22%;animation:app-splash-node-drift 15s ease-in-out infinite alternate;animation-delay:.72s}.app-splash-node--8{top:88%;left:40%;animation:app-splash-node-drift 16s ease-in-out infinite alternate;animation-delay:.84s}.app-splash-title{margin:0;font-size:var(--font-size-hero);font-weight:var(--font-weight-bold);line-height:1.2;letter-spacing:-.01em}.app-splash-subtitle{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.app-splash-hello{font-weight:var(--font-weight-medium);letter-spacing:normal;text-transform:none;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.app-splash-credits{margin:var(--space-1) 0 0;font-size:var(--font-size-xs);letter-spacing:normal;text-transform:none;color:var(--color-text-muted)}.app-map-layer{position:fixed;inset:0;z-index:0}.station-pick-popover{position:fixed;z-index:6;display:inline-flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-2) var(--space-2);border-radius:var(--radius-md);background:var(--color-surface-glass-strong);border:1px solid var(--color-border-soft);backdrop-filter:blur(var(--blur-glass-soft));-webkit-backdrop-filter:blur(var(--blur-glass-soft));box-shadow:var(--shadow-soft);pointer-events:auto;-webkit-user-select:none;user-select:none;transform-origin:50% 80%;opacity:0;transform:translateY(8px) scale(.96);animation:station-pick-popover-in .18s cubic-bezier(.16,1,.3,1) forwards}.station-pick-popover--closing{animation:station-pick-popover-out .16s cubic-bezier(.4,0,1,1) forwards}@keyframes station-pick-popover-in{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes station-pick-popover-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(10px) scale(.98)}}@media(prefers-reduced-motion:reduce){.station-pick-popover{animation:none;opacity:1;transform:none}.station-pick-popover--closing{animation:none}}.station-pick-popover-header{display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:10rem;max-width:min(18rem,72vw)}.station-pick-popover-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-heading-strong);line-height:1.2;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.station-pick-popover-line-dot{width:.55rem;height:.55rem;border-radius:var(--radius-pill);box-shadow:0 0 0 2px rgba(var(--rgb-card),.9),0 0 0 1px rgba(var(--rgb-shadow-cool),.2);flex:0 0 auto}.station-pick-popover-actions{display:flex;gap:var(--space-1);width:100%}.station-pick-popover-button{flex:1 1 0;border:1px solid var(--color-border-soft);cursor:pointer;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-weight:var(--font-weight-medium);font-size:var(--font-size-xs);letter-spacing:.02em;color:var(--color-text-primary);background:rgba(var(--rgb-card),.9);box-shadow:none;transition:transform .14s ease-out,filter .14s ease-out,background-color .14s ease-out,border-color .14s ease-out}.station-pick-popover-button-label{display:block}.station-pick-popover-button-sub{display:block;margin-top:1px;font-size:var(--font-size-2xs);font-weight:var(--font-weight-normal);letter-spacing:normal;line-height:1.25;color:var(--color-text-muted);overflow-wrap:anywhere}.station-pick-popover-button[data-pressed=true]{background-color:rgba(var(--rgb-accent),.09);border-color:rgba(var(--rgb-accent),.45);filter:brightness(.96);transform:translateY(1px) scale(.99)}.station-pick-popover-button:hover{border-color:rgba(var(--rgb-accent),.35);background-color:rgba(var(--rgb-accent),.06)}.station-pick-popover-button:active{transform:translateY(1px) scale(.99);filter:brightness(.99)}.station-pick-popover-button:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.app-overlay{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100vh;background:transparent;pointer-events:none}.app-header{position:fixed;top:0;left:50%;transform:translate(-50%);width:calc(100% - 2rem);max-width:480px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);pointer-events:auto;padding:calc(env(safe-area-inset-top,0) + var(--space-1)) var(--space-2) var(--space-1);background:var(--color-surface-glass-strong);backdrop-filter:blur(var(--blur-glass-soft));-webkit-backdrop-filter:blur(var(--blur-glass-soft));color:var(--color-text-primary);box-shadow:var(--shadow-soft);border-radius:var(--radius-lg);overflow:visible;animation:app-header-drop-in var(--motion-medium) var(--ease-out-soft) .11s both}@media(min-width:430px)and (max-width:1023px){.app-header{top:0;padding:calc(env(safe-area-inset-top,0) + var(--space-2)) var(--space-3) var(--space-2);gap:var(--space-2)}.app-header-logo{width:2.4rem;height:2.4rem}.app-header-logo-img{width:1.9rem;height:1.9rem}.app-header-chip{padding:var(--space-2) var(--space-4)}.app-header-chip-title{font-size:calc(var(--font-size-sm) * 1.07)}}.app-header:before{content:"";position:absolute;inset:0;border-radius:inherit;background:transparent;opacity:0;z-index:-1}.app-header-left{display:flex;align-items:center;flex-shrink:0}.app-header-left{margin-right:var(--space-1)}.app-header-logo{position:relative;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-pill);background:linear-gradient(160deg,var(--color-surface-tint),var(--color-surface-tint-strong));box-shadow:var(--shadow-raised),0 0 0 1px rgba(var(--rgb-border-hair),.85)}.app-header-logo-img{width:1.6rem;height:1.6rem}.app-header-chip{flex:1;min-width:0;min-height:44px;border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-slate),.45);padding:var(--space-1) var(--space-3);background:linear-gradient(135deg,rgba(var(--rgb-card),.98),rgba(var(--rgb-card-tint),.98));box-shadow:none;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;pointer-events:auto;cursor:pointer;outline:none;will-change:transform,box-shadow,filter;transition:transform .14s ease-out,box-shadow .16s ease-out,filter .16s ease-out}.app-header-chip:hover{box-shadow:var(--shadow-overlay);filter:brightness(1.01)}.app-header-chip:active{transform:translateY(1px) scale(.995);filter:brightness(.99)}.app-header-chip:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.app-header-chip--has-route{border-color:var(--color-accent);background:var(--color-accent-subtle)}.app-header-chip--sheet-open{opacity:.85;box-shadow:none}.app-header-chip-title{display:block;max-width:100%;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-main{flex:1;padding:3.5rem 1rem 5.25rem;overflow-y:auto;pointer-events:none}.field-suggestions{position:fixed;margin:0;padding:var(--space-1) 0;list-style:none;border-radius:var(--radius-md);background:var(--color-surface-solid-gradient);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-overlay);backdrop-filter:blur(var(--blur-glass-soft));-webkit-backdrop-filter:blur(var(--blur-glass-soft));overflow-x:hidden;overflow-y:auto;transform-origin:50% 0%;will-change:transform,opacity;opacity:0;transform:translateY(-4px) scale(.985);animation:field-suggestions-in .18s cubic-bezier(.16,1,.3,1) forwards}.field-suggestions--closing{animation:field-suggestions-out .16s cubic-bezier(.4,0,1,1) forwards}@keyframes field-suggestions-in{0%{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes field-suggestions-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(.99)}}@media(prefers-reduced-motion:reduce){.field-suggestions{animation:none;opacity:1;transform:none}.field-suggestions--closing{animation:none}}.suggestion-item{min-height:44px;padding:var(--space-1) var(--space-3);display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .14s ease-out,transform .14s ease-out}.suggestion-line-dot{width:.5rem;height:.5rem;border-radius:var(--radius-pill);background:var(--color-neutral-300);box-shadow:0 0 0 2px rgba(var(--rgb-card),.9),0 0 0 1px rgba(var(--rgb-shadow-ink),.1);align-self:center;flex-shrink:0}.suggestion-item-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suggestion-empty{display:flex;flex-direction:column;gap:var(--space-05);padding:var(--space-3) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:default;-webkit-user-select:none;user-select:none}.suggestion-empty-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.suggestion-item-text{display:flex;flex-direction:column;min-width:0;flex:1}.suggestion-item-line{flex-shrink:0;max-width:45%;font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bottom-field-hint{margin:var(--space-1) 0 0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.bottom-field-hint--error{color:var(--color-danger)}.suggestion-item:hover{background-color:var(--color-accent-subtle)}.suggestion-item--active{background-color:var(--color-accent-subtle);transform:translate(1px)}.swap-button{align-self:center;margin-top:var(--space-05);margin-bottom:var(--space-05);width:2.15rem;height:2.15rem;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:1px solid var(--color-border-soft);background:var(--color-bg-input);color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:1;flex-shrink:0;transform:rotate(90deg);will-change:transform,background-color,filter;transition:transform .14s ease-out,background-color .14s ease-out,filter .14s ease-out}.swap-button:hover{background:var(--color-bg-input-hover)}.swap-button:active{transform:rotate(90deg) translateY(1px) scale(.98);filter:brightness(.98)}@media(prefers-reduced-motion:reduce){.app-header-chip,.swap-button{transition:none}}.primary-button{margin-top:var(--space-2);border-radius:var(--radius-md);border:none;padding:var(--space-4) var(--space-4);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);min-height:44px;background:var(--color-primary-surface);color:var(--color-primary-on);box-shadow:var(--shadow-raised)}.primary-button:active{transform:translateY(1px)}.route-placeholder{padding:var(--space-3);pointer-events:auto}.error-text{margin:0;font-size:var(--font-size-sm);color:var(--color-danger)}.route-result{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-4);margin-top:var(--space-2);margin-bottom:var(--space-1);border-radius:var(--radius-md);background:radial-gradient(circle at 0% 0%,rgba(var(--rgb-wash),.9),rgba(var(--rgb-wash),.3)),linear-gradient(135deg,rgba(var(--rgb-card),.92),rgba(var(--rgb-card-tint),.98));box-shadow:none;border:1px solid rgba(var(--rgb-border-hair),.7)}.route-result-scroll{display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-3);overflow-x:hidden}@media(min-width:1024px){.bottom-route-details{max-height:none;overflow:visible;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.route-result{height:100%;min-height:0;display:flex;flex-direction:column}.route-result-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:var(--space-1)}}@property --scroll-fade-top{syntax: "<length>"; inherits: false; initial-value: 0px;}.route-result-scroll{mask-image:linear-gradient(to bottom,transparent 0,rgb(0 0 0) var(--scroll-fade-top),rgb(0 0 0) 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgb(0 0 0) var(--scroll-fade-top),rgb(0 0 0) 100%)}@supports (animation-timeline: scroll()){.route-result-scroll{animation:route-scroll-fade linear both;animation-timeline:scroll(self block);animation-range:0 18px}}@keyframes route-scroll-fade{0%{--scroll-fade-top: 0px}to{--scroll-fade-top: 18px}}.route-summary{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);padding:var(--space-1) var(--space-05) var(--space-1);border-bottom:1px solid var(--color-border-soft)}.route-summary-main{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.summary-time{padding-right:var(--space-2)}.summary-transfers{font-weight:var(--font-weight-medium)}.route-favorite-button{margin-left:var(--space-2);border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-hair),.7);width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-md);background:rgba(var(--rgb-card),.9);color:rgba(var(--rgb-border-slate),.9);box-shadow:var(--shadow-raised);will-change:transform,box-shadow,filter;transition:transform .16s ease-out,box-shadow .18s ease-out,filter .16s ease-out}.route-favorite-button:active{transform:translateY(1px) scale(.98);filter:brightness(.99)}.route-favorite-button--active{background:var(--color-accent);color:var(--color-on-accent);border-color:rgba(var(--rgb-border-hair),.9);box-shadow:var(--shadow-overlay),var(--shadow-raised);animation:route-favorite-pop .26s cubic-bezier(.16,1,.3,1) both}@keyframes route-favorite-pop{0%{transform:scale(.92);filter:brightness(.98)}to{transform:scale(1);filter:brightness(1)}}@media(prefers-reduced-motion:reduce){.route-favorite-button--active{animation:none}}.route-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.route-steps--animate .route-step{opacity:0;transform:translateY(6px);animation:route-step-stagger-in .42s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(var(--stagger-index, 0) * 48ms)}@keyframes route-step-stagger-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.route-steps--animate .route-step{opacity:1;transform:none;animation:none}}.route-step{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:linear-gradient(135deg,rgba(var(--rgb-card),.9),rgba(var(--rgb-card-tint),.95));box-shadow:none;border:1px solid rgba(var(--rgb-border-hair),.4);transition:transform .15s ease-out,box-shadow .15s ease-out,background-color .15s ease-out;will-change:transform,box-shadow,background-color}.route-step--transfer{background:linear-gradient(135deg,rgba(var(--rgb-warm-wash-1),.98),rgba(var(--rgb-warm-wash-2),.96));border:1px dashed rgba(var(--rgb-warm-line),.7);box-shadow:none}.line-pill{width:7px;border-radius:var(--radius-pill);align-self:stretch;background-color:var(--color-neutral-200);opacity:.98}.line-pill--dual{display:flex;flex-direction:column;width:8px;border-radius:var(--radius-pill);overflow:hidden}.line-pill-half,.step-body{flex:1}.step-title{font-size:var(--font-size-sm);font-weight:600}.step-meta{margin-top:var(--space-05);font-size:var(--font-size-sm);color:var(--color-text-muted-soft)}.step-station-list{margin:.35rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-05)}.step-station-item{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-heading);padding:var(--space-05) var(--space-05);border-radius:var(--radius-xs);background:transparent}.step-station-bullet{width:7px;height:7px;border-radius:var(--radius-pill);background-color:var(--step-line-color, rgba(var(--rgb-border-slate), .9));box-shadow:0 0 0 2px rgba(var(--rgb-card),.95);flex-shrink:0}.step-station-name{flex:1}.smart-suggestions{margin:.3rem 0 .35rem;padding:var(--space-2) var(--space-2) var(--space-2);border-radius:var(--radius-md);background:linear-gradient(135deg,rgba(var(--rgb-card),.96),rgba(var(--rgb-card-tint),.98));box-shadow:var(--shadow-raised),0 0 0 1px rgba(var(--rgb-border-hair),.55);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:auto;animation:fade-in-up .2s ease-out;will-change:transform,opacity}.smart-suggestions-inline{margin:.2rem 0 .1rem;display:flex;justify-content:flex-start;gap:var(--space-1)}.smart-suggestions-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.smart-suggestions-close{border:none;border-radius:var(--radius-pill);width:1.8rem;height:1.8rem;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--rgb-border-hair),.2);color:var(--color-text-muted);font-size:var(--font-size-xs)}.smart-suggestions-inline-chip{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-slate),.4);padding:var(--space-05) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:rgba(var(--rgb-card),.9);color:var(--color-text-secondary)}.smart-suggestions-clear{border:none;background:transparent;padding:0;font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.smart-suggestions-section{display:flex;flex-direction:column;gap:var(--space-1)}.smart-suggestions-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted)}.smart-suggestions-row{display:flex;flex-wrap:wrap;gap:var(--space-1)}.smart-suggestion-chip{border-radius:var(--radius-pill);border:none;padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:rgba(var(--rgb-accent),.1);color:var(--color-text-primary);box-shadow:none}.smart-suggestion-chip--secondary{background:rgba(var(--rgb-border-slate),.14)}.smart-suggestion-chip--ghost{background:rgba(var(--rgb-card),.9);border:1px dashed rgba(var(--rgb-border-slate),.6);box-shadow:none}.smart-suggestions-hint{font-size:var(--font-size-xs);color:var(--color-text-muted-soft)}.smart-suggestions-error{font-size:var(--font-size-xs);color:var(--color-danger)}.bottom-route-details{margin-top:var(--space-05);flex:1 1 auto;min-height:0;overflow-x:visible;overflow-y:auto;transition:opacity .16s ease-out,transform .16s ease-out,visibility .16s ease-out;will-change:opacity,transform;contain:layout paint}.bottom-route-details,.route-result-scroll{scrollbar-width:thin;scrollbar-color:rgba(var(--rgb-border-slate),.4) transparent}.bottom-route-details::-webkit-scrollbar,.route-result-scroll::-webkit-scrollbar{width:4px}.bottom-route-details::-webkit-scrollbar-track,.route-result-scroll::-webkit-scrollbar-track{background:transparent}.bottom-route-details::-webkit-scrollbar-thumb,.route-result-scroll::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:linear-gradient(180deg,rgba(var(--rgb-card),.7),rgba(var(--rgb-border-slate),.5))}.bottom-route-details--closed{opacity:0;transform:translateY(6px);overflow:hidden;flex:0 0 0;height:0;min-height:0;max-height:0;margin-top:0;pointer-events:none;visibility:hidden}.bottom-route-details--open{opacity:1;transform:translateY(0);pointer-events:auto;visibility:visible}@keyframes fade-in-up{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes app-splash-node-drift{0%{transform:translate3d(0,6px,0);opacity:0}8%{opacity:1}50%{transform:translate3d(0,-6px,0);opacity:1}to{transform:translate3d(0,4px,0);opacity:.85}}@keyframes app-splash-pop-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bottom-sheet-intro{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes app-header-drop-in{0%{opacity:0}to{opacity:1}}@keyframes float-soft{0%{transform:translateY(0)}to{transform:translateY(-2px)}}@keyframes chip-pop-in{0%{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fab-pop-in{0%{opacity:0;transform:translateY(calc(-50% + 7rem)) scale(.9)}to{opacity:1;transform:translateY(calc(-50% + 7rem)) scale(1)}}@keyframes banner-slide-up{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes update-icon-pop{0%{transform:scale(.4) rotate(-18deg);opacity:0}60%{transform:scale(1.08) rotate(0);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes install-logo-pop{0%{transform:translateY(4px) scale(.9);opacity:0}60%{transform:translateY(-1px) scale(1.04);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}@keyframes modal-backdrop-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-card-pop{0%{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.metro-map-wrapper{position:absolute;inset:0;border-radius:0;background:radial-gradient(circle at top left,var(--map-canvas-top),var(--map-canvas-bottom));overflow:hidden}.metro-map-svg,.metro-map-labels{position:absolute;inset:0;width:100%;height:100%;display:block}.metro-map-svg{touch-action:none}.metro-map-labels{pointer-events:none}.metro-map-zoom-controls{position:absolute;right:1rem;top:50%;bottom:auto;transform:translateY(-50%);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:auto;opacity:1;transition:opacity .22s ease-out}.metro-map-zoom-button{width:2.75rem;height:2.75rem;border-radius:var(--radius-pill);border:1px solid var(--color-border-hair-strong);background:radial-gradient(circle at 30% 0%,rgba(var(--rgb-wash),.98),rgba(var(--rgb-wash),.4)),linear-gradient(135deg,rgba(var(--rgb-card),.96),rgba(var(--rgb-card-tint),.96));color:var(--color-text-accent);font-size:var(--font-size-xl);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-overlay),0 0 0 1px rgba(var(--rgb-shadow-cool),.45);transition:transform .15s ease-out,box-shadow .15s ease-out,background-color .15s ease-out;will-change:transform,box-shadow,background-color}.metro-map-zoom-button:hover{background:linear-gradient(135deg,var(--color-surface-hover-1),var(--color-surface-hover-2));transform:translateY(-1px);box-shadow:var(--shadow-overlay)}.metro-map-zoom-button:active{transform:scale(.96);box-shadow:var(--shadow-raised);filter:brightness(.96)}.editor-fab{position:fixed;right:1rem;top:50%;bottom:auto;transform:translateY(calc(-50% + 7rem));z-index:3;width:2.3rem;height:2.3rem;border-radius:var(--radius-pill);border:1px solid var(--color-border-hair-strong);background:radial-gradient(circle at 30% 0%,rgba(var(--rgb-wash),.96),rgba(var(--rgb-wash),.4)),linear-gradient(135deg,rgba(var(--rgb-card),.96),rgba(var(--rgb-card-tint),.96));box-shadow:var(--shadow-overlay),0 0 0 1px rgba(var(--rgb-border-hair),.8);color:var(--color-text-accent);font-size:var(--font-size-lg);display:flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;transition:transform var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out),background-color var(--motion-fast) var(--ease-out);animation:fab-pop-in .36s var(--ease-out-soft) .22s both;will-change:transform,box-shadow}.editor-fab--active{background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-overlay)}.editor-tools-stack{position:fixed;right:3.6rem;top:50%;transform:translateY(calc(-50% + 7rem));z-index:3;display:flex;flex-direction:row;gap:var(--space-2);pointer-events:auto}.editor-toast{position:fixed;right:1rem;top:50%;transform:translateY(calc(-50% + 10.2rem));z-index:4;max-width:min(360px,84vw);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);border:1px solid rgba(var(--rgb-border-hair),.8);background:rgba(var(--rgb-card),.92);color:var(--color-text-heading);font-size:var(--font-size-xs);font-weight:600;box-shadow:var(--shadow-overlay);pointer-events:none}.editor-fab--small{position:static;right:auto;top:auto;bottom:auto;transform:none;width:2rem;height:2rem;font-size:var(--font-size-sm);box-shadow:var(--shadow-raised),0 0 0 1px rgba(var(--rgb-border-hair),.75)}.editor-fab--secondary{border-style:dashed;background:radial-gradient(circle at 30% 0%,rgba(var(--rgb-wash),.94),rgba(var(--rgb-wash),.4)),linear-gradient(135deg,rgba(var(--rgb-card),.96),rgba(var(--rgb-card-tint),.96))}.hub-editor-panel{position:fixed;left:.9rem;top:50%;transform:translateY(calc(-50% + 3rem));z-index:3;width:min(360px,90vw);max-height:82vh;padding:var(--space-3) var(--space-4) var(--space-4);border-radius:var(--radius-md);background:rgba(var(--rgb-card),.97);box-shadow:var(--shadow-overlay),0 0 0 1px rgba(var(--rgb-border-hair),.6);display:flex;flex-direction:column;gap:var(--space-2);overflow:hidden;pointer-events:auto}@media(min-width:1024px){.hub-editor-panel{left:1.25rem;width:min(420px,38vw);max-height:84vh}}.hub-editor-footer{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid rgba(var(--rgb-border-hair),.6);display:flex;justify-content:flex-end;gap:var(--space-2)}.hub-editor-footer-button{border-radius:var(--radius-pill);border:none;padding:var(--space-1) var(--space-4);font-size:var(--font-size-xs);font-weight:600;background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-raised);cursor:pointer}.hub-editor-footer-history{display:flex;align-items:center;gap:var(--space-1)}.hub-editor-footer-history-button{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral),.8);padding:var(--space-05) var(--space-2);font-size:var(--font-size-2xs);background:rgba(var(--rgb-card),.96);color:var(--color-text-muted);cursor:pointer}.hub-editor-footer-history-button:disabled{opacity:.45;cursor:default}.hub-editor-header{border-bottom:1px solid rgba(var(--rgb-border-hair),.6);padding-bottom:var(--space-2);margin-bottom:var(--space-1)}.hub-editor-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.hub-editor-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-heading)}.hub-editor-close{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-hair),.9);background:rgba(var(--rgb-card),.96);width:1.4rem;height:1.4rem;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);line-height:1;color:var(--color-text-accent);cursor:pointer}.hub-editor-subtitle{margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-quiet)}.hub-editor-tabs{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-05);border-radius:var(--radius-pill);background:rgba(var(--rgb-input-surface),.9)}.hub-editor-tab{flex:1;border-radius:var(--radius-pill);border:none;padding:var(--space-05) var(--space-2);font-size:var(--font-size-2xs);background:transparent;color:var(--color-text-muted-soft);cursor:pointer;white-space:nowrap}.hub-editor-tab--active{background:var(--color-surface-white);color:var(--color-text-heading);box-shadow:var(--shadow-raised),0 0 0 1px rgba(var(--rgb-border-hair),.7)}.hub-editor-content{flex:1;min-height:0;overflow-y:auto;padding-right:var(--space-2)}.hub-editor-section{padding-top:var(--space-1)}.hub-editor-section-title{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-heading);margin-bottom:var(--space-05)}.hub-editor-section-subtitle{font-size:var(--font-size-xs);color:var(--color-text-quiet);margin-bottom:var(--space-1)}.hub-editor-bulk-row{margin-top:var(--space-05);margin-bottom:var(--space-1)}.hub-editor-bulk-actions{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-05)}.hub-editor-bulk-button{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral),.9);padding:var(--space-05) var(--space-2);font-size:var(--font-size-2xs);background:rgba(var(--rgb-card),.96);color:var(--color-text-heading);cursor:pointer}.hub-editor-filter-chip{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral),.9);padding:var(--space-05) var(--space-2);font-size:var(--font-size-2xs);background:rgba(var(--rgb-card),.96);color:var(--color-text-muted);cursor:pointer}.hub-editor-filter-chip--active{border-color:rgba(var(--rgb-accent),.85);background:radial-gradient(circle at 0% 0%,rgba(var(--rgb-wash),.96),rgba(var(--rgb-wash),.5)),linear-gradient(135deg,rgba(var(--rgb-card),.98),rgba(var(--rgb-card-tint),.98));color:var(--color-text-accent)}.hub-editor-list{list-style:none;margin:0;padding:0}.hub-editor-list-item{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-strong-muted);padding:var(--space-05) 0}.hub-editor-list-item--clickable{cursor:pointer;border-radius:var(--radius-xs);padding:var(--space-05) var(--space-1)}.hub-editor-list-item--clickable:hover{background:rgba(var(--rgb-input-surface),.95)}.hub-editor-list-item--muted{color:var(--color-text-muted-soft)}.hub-editor-list-item--edge-disabled{opacity:.55}.hub-editor-line-dot{width:.55rem;height:.55rem;border-radius:var(--radius-pill);background:var(--color-neutral-300)}.hub-editor-station-name,.hub-editor-connection-main{flex:1}.hub-editor-connection-main{border:none;padding:0;margin:0;background:transparent;text-align:left;font:inherit;color:var(--color-text-heading)}.hub-editor-connection-main--link{cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.hub-editor-connection-main--link:hover{color:var(--color-text-accent)}.hub-editor-connection-meta{font-size:var(--font-size-2xs);color:var(--color-text-muted)}.hub-editor-connection-toggle{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-slate),.6);padding:var(--space-05) var(--space-2);font-size:var(--font-size-2xs);background:rgba(var(--rgb-card),.96);color:var(--color-text-heading);cursor:pointer;white-space:nowrap}.hub-editor-connection-toggle--transfer{border-color:rgba(var(--rgb-accent),.85);background:radial-gradient(circle at 0% 0%,rgba(var(--rgb-wash),.96),rgba(var(--rgb-wash),.5)),linear-gradient(135deg,rgba(var(--rgb-card),.98),rgba(var(--rgb-card-tint),.98));color:var(--color-text-accent)}.hub-editor-connection-minutes{width:3.1rem;border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral),.9);padding:var(--space-05) var(--space-2);font-size:var(--font-size-2xs);text-align:right;margin-right:var(--space-1)}.hub-editor-connection-minutes-label{font-size:var(--font-size-2xs);opacity:.8}.hub-editor-edge-delete{border-radius:var(--radius-pill);border:1px dashed rgba(var(--rgb-border-hair),.9);padding:var(--space-05) var(--space-2);font-size:var(--font-size-2xs);background:rgba(var(--rgb-card),.96);color:var(--color-danger);cursor:pointer}.hub-editor-edge-delete--restore{border-style:solid;color:var(--color-text-success-strong)}.hub-editor-hub-select-row{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}.hub-editor-hub-select{flex:1;min-width:0;border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-hair),.9);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);background:radial-gradient(circle at 0% 0%,rgba(var(--rgb-wash),.96),rgba(var(--rgb-wash),.5));color:var(--color-text-heading)}.hub-editor-hub-new{flex-shrink:0;border-radius:var(--radius-pill);border:1px dashed rgba(var(--rgb-border-hair),.9);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);background:rgba(var(--rgb-card),.96);color:var(--color-text-accent);cursor:pointer}.hub-editor-hub-remove-station{margin-left:var(--space-1);border-radius:var(--radius-pill);border:1px dashed rgba(var(--rgb-border-neutral),.9);padding:var(--space-05) var(--space-2);font-size:var(--font-size-2xs);background:rgba(var(--rgb-card),.96);color:var(--color-text-muted);cursor:pointer}.hub-editor-hub-remove-station:hover{color:var(--color-danger);border-color:var(--color-surface-tint-strong)}.hub-editor-field{display:flex;flex-direction:column;gap:var(--space-05);margin-top:var(--space-1)}.hub-editor-field-label{font-size:var(--font-size-xs);color:var(--color-text-quiet)}.hub-editor-station-title-input{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-hair),.9);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs)}.hub-editor-line-select{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-hair),.9);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);background:radial-gradient(circle at 0% 0%,rgba(var(--rgb-wash),.96),rgba(var(--rgb-wash),.5));color:var(--color-text-heading)}.hub-editor-hub-meta-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:var(--space-1);margin-bottom:var(--space-1)}.hub-editor-hub-meta-label{font-size:var(--font-size-xs);color:var(--color-text-quiet)}.hub-editor-hub-meta-input-wrap{display:flex;align-items:center;gap:var(--space-1)}.hub-editor-hub-minutes-input{width:3.1rem;border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral),.9);padding:var(--space-05) var(--space-2);font-size:var(--font-size-2xs);text-align:right}.hub-editor-hub-minutes-suffix{font-size:var(--font-size-2xs);opacity:.8}.hub-editor-hub-add-row{margin-top:var(--space-1);display:flex;align-items:center;gap:var(--space-1)}.hub-editor-hub-add-input{flex:1;min-width:0;border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral),.9);padding:var(--space-05) var(--space-2);font-size:var(--font-size-xs)}.hub-editor-hub-add-button{flex-shrink:0;border-radius:var(--radius-pill);border:1px dashed rgba(var(--rgb-border-hair),.9);padding:var(--space-05) var(--space-2);font-size:var(--font-size-xs);background:rgba(var(--rgb-card),.96);color:var(--color-text-heading);cursor:pointer}.hub-editor-edge-add-row{margin-top:var(--space-1);display:flex;align-items:center;gap:var(--space-1)}.hub-editor-edge-add-input{flex:1;min-width:0;border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral),.9);padding:var(--space-05) var(--space-2);font-size:var(--font-size-xs)}.hub-editor-hub-add-input--invalid,.hub-editor-edge-add-input--invalid{border-color:var(--color-danger)}.hub-editor-error-text{margin-top:var(--space-05);font-size:var(--font-size-2xs);color:var(--color-danger)}.hub-editor-edge-add-button{flex-shrink:0;border-radius:var(--radius-pill);border:1px dashed rgba(var(--rgb-border-hair),.9);padding:var(--space-05) var(--space-2);font-size:var(--font-size-xs);background:rgba(var(--rgb-card),.96);color:var(--color-text-heading);cursor:pointer}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;z-index:8;padding:0;max-height:none;pointer-events:auto;overflow-x:hidden;overflow-y:visible;transform:translateY(0);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-bottom-left-radius:0;border-bottom-right-radius:0;will-change:transform,opacity;transition:border-radius .22s ease-out;contain:layout paint}.bottom-sheet--with-route{animation:none}.bottom-sheet-inner{display:flex;flex-direction:column;gap:var(--space-2);width:100%;box-sizing:border-box;padding:var(--space-3) var(--space-3) calc(env(safe-area-inset-bottom,0) + var(--space-4));border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-bottom-left-radius:0;border-bottom-right-radius:0;background:var(--color-surface-solid-gradient);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft);overflow:visible;touch-action:pan-x;-ms-touch-action:pan-x}.bottom-sheet-min{display:flex;flex-direction:column;gap:var(--space-2);overflow:visible}@media(max-width:1023.98px){.bottom-sheet-min{position:sticky;top:var(--space-3);z-index:2}.bottom-sheet-min:before{content:"";position:absolute;inset:calc(var(--space-3) * -1) calc(var(--space-3) * -1) 0;z-index:-1;background:var(--color-surface-solid-gradient);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);pointer-events:none}.bottom-sheet-min:after{content:"";position:absolute;left:calc(var(--space-3) * -1);right:calc(var(--space-3) * -1);top:100%;height:var(--space-5);z-index:-1;opacity:0;background:linear-gradient(to bottom,rgba(var(--rgb-card),.92),rgba(var(--rgb-card),0));pointer-events:none}@supports (animation-timeline: scroll()){.bottom-sheet-min:after{animation:scroll-edge-fade-in linear both;animation-timeline:scroll(nearest block);animation-range:0 14px}}}@keyframes scroll-edge-fade-in{0%{opacity:0}to{opacity:1}}@media(max-width:1023.98px){.bottom-sheet--with-route .smart-suggestions-inline{display:none}}.bottom-fields-row{display:flex;flex-direction:row;align-items:stretch;gap:var(--space-2)}.bottom-field{position:relative;flex:1;min-width:0}.bottom-input{width:100%;box-sizing:border-box;min-height:44px;border-radius:var(--radius-md);border:1px solid rgba(var(--rgb-border-slate),.35);padding:.6rem 1.75rem .6rem .85rem;font-size:var(--font-size-md);background:var(--color-bg-input);color:var(--color-text-primary);transition:border-color .16s ease-out,box-shadow .16s ease-out,background-color .16s ease-out,transform .12s ease-out}@media not all and (pointer:coarse){.bottom-input,.bottom-input-clear{font-size:var(--font-size-sm)}}.bottom-input--with-line-dot{padding-left:var(--space-6)}.bottom-input-line-dot{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);width:.55rem;height:.55rem;border-radius:var(--radius-pill);background:var(--color-neutral-300);box-shadow:0 0 0 1px rgba(var(--rgb-shadow-ink),.08);pointer-events:none}.bottom-input::placeholder{color:var(--color-text-placeholder)}.bottom-input:focus{outline:3px solid var(--color-focus-ring);outline-offset:1px;border-color:var(--color-accent-outline)}.bottom-input-clear{position:absolute;right:.22rem;top:50%;transform:translateY(calc(-50% - 2px));width:1.2rem;height:1.2rem;border-radius:var(--radius-pill);border:none;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-placeholder);font-size:.95rem;line-height:1;cursor:pointer}.bottom-input-clear:hover{background-color:var(--color-accent-subtle);color:var(--color-text-accent)}.bottom-input-clear:active{transform:translateY(calc(-50% - 3px)) scale(.96);background-color:var(--color-accent-soft)}.bottom-route-summary-wrapper{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-05)}.bottom-route-summary-scroll{display:flex;align-items:center;gap:var(--space-2);flex:1;overflow-x:auto;overflow-y:visible;scrollbar-width:none;-ms-overflow-style:none}.bottom-route-summary-scroll::-webkit-scrollbar{width:0;height:0}.bottom-route-chip{flex-shrink:0;border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);border:1px solid rgba(var(--rgb-border-hair),.7);background-color:rgba(var(--rgb-card),.96);color:var(--color-text-heading-strong);display:flex;flex-direction:column;align-items:flex-start;box-shadow:none;margin-block:var(--space-05);animation:chip-pop-in var(--motion-medium) var(--ease-out-soft) both;transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out);will-change:transform,background-color,border-color}.bottom-route-chip:hover{transform:translateY(-1px);border-color:rgba(var(--rgb-border-hair),.95)}.bottom-route-chip--active{background-color:rgba(var(--rgb-wash),.98);border-color:var(--color-accent);border-width:2px;padding:calc(var(--space-2) - 1px) calc(var(--space-4) - 1px)}.bottom-route-chip-main{font-size:var(--font-size-sm);font-weight:600;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2)}.bottom-route-chip-sub{font-size:var(--font-size-xs);color:var(--color-text-muted)}.route-choices-desktop{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-05);margin-bottom:var(--space-2)}.route-choices-desktop-track{display:flex;gap:var(--space-2);overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-1)}.route-choices-desktop-track::-webkit-scrollbar{width:0;height:3px}.route-choices-desktop-track::-webkit-scrollbar-track{background:transparent}.route-choices-desktop-track::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:rgba(var(--rgb-border-slate),.35)}.route-choices-desktop-track:hover::-webkit-scrollbar-thumb{background:rgba(var(--rgb-border-slate),.6)}@property --choices-fade-right{syntax: "<length>"; inherits: false; initial-value: 0px;}.route-choices-desktop-track,.bottom-route-summary-scroll{mask-image:linear-gradient(to right,rgb(0 0 0) 0,rgb(0 0 0) calc(100% - var(--choices-fade-right)),transparent 100%);-webkit-mask-image:linear-gradient(to right,rgb(0 0 0) 0,rgb(0 0 0) calc(100% - var(--choices-fade-right)),transparent 100%)}@media not all and (pointer:coarse){.route-choices-desktop-track,.bottom-route-summary-scroll{cursor:grab}.route-choices-desktop-track[data-dragging=true],.bottom-route-summary-scroll[data-dragging=true]{cursor:grabbing;-webkit-user-select:none;user-select:none}}@supports (animation-timeline: scroll()){.route-choices-desktop-track,.bottom-route-summary-scroll{animation:route-choices-fade linear both;animation-timeline:scroll(self inline);animation-range:0 100%}}@keyframes route-choices-fade{0%{--choices-fade-right: 44px}to{--choices-fade-right: 0px}}.route-choice-chip{padding-inline:var(--space-4)}.bottom-sheet-handle{align-self:center;width:56px;height:auto;border-radius:var(--radius-pill);border:none;background:transparent;box-shadow:none;display:flex;align-items:center;justify-content:center}.bottom-sheet-handle:before{content:"";width:28px;height:4px;border-radius:var(--radius-pill);background-color:rgba(var(--rgb-border-slate),.95)}.update-banner{position:fixed;left:50%;bottom:1rem;transform:translate(-50%);z-index:12;pointer-events:auto;display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:radial-gradient(circle at 0% 0%,rgba(var(--rgb-wash),.92),rgba(var(--rgb-wash),.3)),linear-gradient(135deg,rgba(var(--rgb-card),.94),rgba(var(--rgb-card-tint),.98));backdrop-filter:blur(18px) saturate(170%);-webkit-backdrop-filter:blur(18px) saturate(170%);box-shadow:var(--shadow-overlay),0 0 0 1px rgba(var(--rgb-border-hair),.8);animation:banner-slide-up .32s var(--ease-out-soft) both;will-change:transform,opacity}.update-banner-button{border:none;border-radius:var(--radius-pill);padding:var(--space-1) var(--space-4);font-size:var(--font-size-xs);font-weight:600;background:var(--color-primary-surface);color:var(--color-on-accent);box-shadow:var(--shadow-raised);cursor:pointer}.update-banner-button:active{transform:translateY(1px)}.update-banner-icon{width:1.9rem;height:1.9rem;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--color-surface-tint),var(--color-surface-tint-strong));box-shadow:var(--shadow-raised),0 0 0 1px rgba(var(--rgb-border-hair),.9);font-size:var(--font-size-md);color:var(--color-text-accent);animation:update-icon-pop .42s cubic-bezier(.16,1,.3,1) .14s both}.update-banner-content{display:flex;flex-direction:column;gap:var(--space-05)}.update-banner-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-heading)}.update-banner-subtitle{font-size:var(--font-size-xs);color:var(--color-text-muted)}.update-banner-actions{display:inline-flex;align-items:center;gap:var(--space-2)}.update-banner-later{border:1px solid rgba(var(--rgb-border-hair),.85);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:600;background:rgba(var(--rgb-card),.88);color:var(--color-text-heading);box-shadow:none;cursor:pointer}.update-banner-later:hover{background:rgba(var(--rgb-card),.96)}.update-banner-later:active{transform:translateY(1px)}.install-guide-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:var(--space-6) var(--space-4);background:radial-gradient(circle at top,rgba(var(--rgb-scrim),.58),rgba(var(--rgb-scrim),.76));pointer-events:auto;animation:modal-backdrop-fade .22s ease-out both;will-change:opacity}.install-guide-card{width:100%;max-width:420px;border-radius:var(--radius-lg);padding:var(--space-5) var(--space-5) var(--space-4);background:radial-gradient(circle at 0% 0%,rgba(var(--rgb-wash),.85),rgba(var(--rgb-wash),.25)),var(--color-surface-solid-gradient);box-shadow:var(--shadow-modal),0 0 0 1px rgba(var(--rgb-border-hair),.8);transform:translateY(6px) scale(.96);animation:modal-card-pop .26s cubic-bezier(.16,1,.3,1) forwards;will-change:transform,opacity}.install-guide-header{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3)}.install-guide-logo{flex-shrink:0;margin-top:var(--space-05);width:2.6rem;height:2.6rem;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--color-surface-tint),var(--color-surface-tint-strong));box-shadow:var(--shadow-overlay),0 0 0 1px rgba(var(--rgb-border-hair),.9);animation:install-logo-pop .36s cubic-bezier(.16,1,.3,1) 80ms both}.install-guide-logo-img{width:1.9rem;height:1.9rem}.install-guide-header-text{flex:1;min-width:0}.install-guide-title{margin:0 0 var(--space-1);font-size:var(--font-size-xl);line-height:1.2;font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.install-guide-subtitle{margin:0 0 var(--space-3);font-size:var(--font-size-sm);line-height:1.45;color:var(--color-text-muted)}.install-guide-platform-row{margin:0 0 .75rem}.install-guide-platform-chip{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:600;background-color:rgba(var(--rgb-border-hair),.18);color:var(--color-text-transfer);border:1px solid rgba(var(--rgb-border-hair),.7);animation:chip-pop-in .26s cubic-bezier(.16,1,.3,1) .22s both}.install-guide-steps{margin:0 0 .75rem;padding-left:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-heading)}.install-guide-steps li+li{margin-top:var(--space-1)}.install-guide-note{margin:0 0 .75rem;font-size:var(--font-size-xs);color:var(--color-text-muted-soft)}.install-guide-actions{display:flex;justify-content:flex-end}.install-guide-close-button{border:none;border-radius:var(--radius-pill);min-height:44px;padding:var(--space-2) var(--space-6);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);background:var(--color-primary-surface);color:var(--color-primary-on);box-shadow:var(--shadow-raised);cursor:pointer}.install-guide-close-button:hover{background:var(--color-primary-surface-hover)}@media(max-width:1023.98px){.app-root{max-width:100%}.app-header{left:0;right:0;transform:none;width:auto;max-width:100%;box-sizing:border-box;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.bottom-field{width:100%}.route-result{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md);border-bottom-left-radius:0;border-bottom-right-radius:0}.bottom-sheet-inner{flex-direction:column}}@media(min-width:768px){.app-root{max-width:720px}.bottom-sheet-inner{max-width:540px;margin:0 auto}}@media(min-width:1024px){.app-root{max-width:100%}.app-header{left:1.75rem;top:1.5rem;transform:none;width:340px;max-width:340px}.bottom-sheet{top:5.1rem;bottom:1.75rem;left:1.75rem;right:auto;transform:none;width:clamp(340px,30vw,420px);max-height:calc(100vh - 6.85rem);overflow-y:visible;overflow-x:visible;padding:0;border-radius:var(--radius-lg);box-shadow:none;background:transparent;display:block}.bottom-sheet.bottom-sheet--with-route{animation:none}.bottom-sheet-inner{flex-direction:column;max-width:none;margin:0;width:100%;box-sizing:border-box;gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface-solid-gradient);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft);max-height:100%;overflow:visible}.bottom-input{padding:.6rem 1.75rem .6rem .85rem;border-radius:var(--radius-pill);border-color:rgba(var(--rgb-border-slate),.35);background:rgba(var(--rgb-card),.96);box-shadow:none}.bottom-input--with-line-dot{padding-left:var(--space-7)}.bottom-input-line-dot{left:.95rem}.bottom-route-details{max-height:none;overflow:visible;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.route-result{height:100%;min-height:0;display:flex;flex-direction:column}.route-result-scroll{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;padding-right:var(--space-1)}.swap-button{transform:rotate(0);width:2.05rem;height:2.05rem;border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-slate),.4);background:var(--color-surface-glass-strong);box-shadow:var(--shadow-soft)}.bottom-fields-row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:var(--space-2);row-gap:var(--space-2);align-items:center}.bottom-fields-row>.bottom-field:first-child{grid-column:1;grid-row:1}.bottom-fields-row>.bottom-field:last-child{grid-column:1;grid-row:2}.bottom-fields-row>.swap-button{grid-column:2;grid-row:1 / span 2;align-self:center}.bottom-field{border-radius:0;padding:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.app-splash-node{animation:none!important;opacity:.85}.app-splash{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.app-splash-card{animation:none!important;transform:none!important;opacity:1!important}.bottom-route-chip{animation:none!important}.update-banner{animation:none!important;transform:translate(-50%)!important;opacity:1!important}}@media(max-width:430px){.app-splash{backdrop-filter:blur(6px) saturate(125%);-webkit-backdrop-filter:blur(6px) saturate(125%)}}.inline-icon{flex:0 0 auto;width:1.05em;height:1.05em;vertical-align:-.15em;margin-right:.28em}.route-line-pills{display:flex;align-items:center;gap:2px;margin-block:var(--space-1) var(--space-1);max-width:100%;overflow:hidden}.bottom-route-chip .route-line-pills{max-width:4.5rem}.route-line-pills-item{display:block;width:.85rem;height:.28rem;min-width:.5rem;border-radius:var(--radius-pill);background:var(--color-neutral-300);box-shadow:0 0 0 1px rgba(var(--rgb-shadow-ink),.06)}.route-loading-live{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.route-loading{display:flex;flex-direction:column;gap:var(--space-2)}.route-loading-head{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.route-loading-spinner{width:.95rem;height:.95rem;flex:0 0 auto;border-radius:var(--radius-pill);border:2px solid var(--color-accent-soft);border-top-color:var(--color-accent);animation:route-loading-spin .72s linear infinite}@keyframes route-loading-spin{to{transform:rotate(360deg)}}.route-loading-skeleton{display:flex;align-items:center;gap:var(--space-2);overflow:hidden}.route-loading-skeleton-chip{flex:0 0 auto;width:6.2rem;height:2.85rem;border-radius:var(--radius-pill);border:1px solid var(--color-border-soft);background:linear-gradient(100deg,rgba(var(--rgb-card),0) 30%,rgba(var(--rgb-card),.75),rgba(var(--rgb-card),0) 70%),var(--color-accent-subtle);background-size:220% 100%,auto;animation:route-loading-shimmer 1.2s ease-in-out infinite}.route-loading-skeleton-chip:nth-child(2){animation-delay:.12s}.route-loading-skeleton-chip:nth-child(3){animation-delay:.24s}@keyframes route-loading-shimmer{0%{background-position:140% 0,0 0}to{background-position:-40% 0,0 0}}@media(prefers-reduced-motion:reduce){.route-loading-spinner,.route-loading-skeleton-chip{animation:none!important}}.route-retry-button{margin-top:var(--space-2);align-self:flex-start;min-height:44px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-hair),.7);background:rgba(var(--rgb-card),.96);color:var(--color-text-accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer}.route-retry-button:hover{background:var(--color-accent-subtle)}.route-retry-button:active{transform:translateY(1px)}.route-summary-actions{display:flex;align-items:center;gap:var(--space-1);margin-left:auto}.route-share-button{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-hair),.7);width:2rem;height:2rem;position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-md);background:rgba(var(--rgb-card),.9);color:var(--color-text-secondary);box-shadow:var(--shadow-raised);cursor:pointer;transition:transform var(--motion-fast) var(--ease-out)}.route-share-button:hover{color:var(--color-text-accent)}.route-share-button:active{transform:translateY(1px) scale(.98)}.route-share-hint:empty{display:none}.route-share-hint{margin-top:var(--space-1);font-size:var(--font-size-2xs);color:var(--color-text-muted)}.onboarding-hint{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-hair),.7);background:rgba(var(--rgb-accent),.08);animation:chip-pop-in var(--motion-medium) var(--ease-out-soft) both}.onboarding-hint-text{flex:1;min-width:0;font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.onboarding-hint-close{position:relative;flex:0 0 auto;width:1.6rem;height:1.6rem;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-pill);background:rgba(var(--rgb-card),.85);color:var(--color-text-muted);font-size:var(--font-size-xs);cursor:pointer}@media(prefers-reduced-motion:reduce){.onboarding-hint{animation:none!important}}.swap-button,.smart-suggestions-close,.onboarding-hint-close,.route-favorite-button,.route-share-button,.bottom-sheet-handle{position:relative}.bottom-input-clear:after,.swap-button:after,.smart-suggestions-close:after,.onboarding-hint-close:after,.route-favorite-button:after,.route-share-button:after,.bottom-sheet-handle:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:var(--radius-pill)}.bottom-sheet-handle:after{width:56px}.bottom-input-clear:after{width:34px}.bottom-input-clear{width:1.5rem;height:1.5rem;font-size:var(--font-size-xs)}.smart-suggestions-inline-chip{display:inline-flex;align-items:center;gap:var(--space-05);min-height:30px;padding-inline:var(--space-3);cursor:pointer}@media(pointer:coarse){.smart-suggestions-inline-chip{min-height:44px;padding-block:var(--space-1);padding-inline:var(--space-3)}.smart-suggestions-inline{gap:var(--space-2);margin-bottom:var(--space-1)}}.bottom-route-chip-time,.summary-time{display:inline-flex;align-items:center}:root{color-scheme:light;--color-surface-solid: rgb(var(--rgb-card));--color-surface-solid-tint: rgb(var(--rgb-card-tint));--color-surface-solid-gradient: linear-gradient( 135deg, var(--color-surface-solid), var(--color-surface-solid-tint) )}body{background:linear-gradient(180deg,var(--app-bg-1) 0%,var(--app-bg-2) 100%);background-attachment:fixed}#root,.app-root{color:var(--color-text-primary)}.app-header,.bottom-sheet{background:var(--color-surface-glass-strong);border-radius:var(--radius-lg);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-overlay);backdrop-filter:blur(var(--blur-glass-soft));-webkit-backdrop-filter:blur(var(--blur-glass-soft))}@media(max-width:1023.98px){:root.perf-interaction .app-header,:root.perf-interaction .bottom-sheet,:root.perf-interaction .bottom-sheet-inner{backdrop-filter:none;-webkit-backdrop-filter:none}}@media(max-width:1023.98px){.app-header{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}}.route-placeholder,.route-result,.route-step,.update-banner,.app-splash-card{background:var(--color-surface-glass-strong);border-radius:var(--radius-lg);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-raised)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.app-skip-link{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;background:none;color:inherit;font:inherit}.app-skip-link:focus-visible{position:fixed;top:var(--space-2);left:var(--space-2);z-index:100000;min-width:44px;min-height:44px;width:auto;height:auto;margin:0;padding:var(--space-2) var(--space-4);overflow:visible;clip-path:none;border:1px solid var(--color-border-soft);border-radius:var(--radius-sm);background:var(--color-surface-solid);color:var(--color-text-primary);box-shadow:var(--shadow-overlay);cursor:pointer}.install-guide-card{border-radius:var(--radius-lg);border:1px solid var(--color-border-soft)}.route-step{border-radius:var(--radius-md)}.app-header-title,.summary-time,.bottom-route-chip-main,.install-guide-title{color:var(--color-text-primary)}.app-header-subtitle,.summary-transfers,.step-meta,.install-guide-subtitle,.install-guide-note{color:var(--color-text-muted)}.bottom-route-chip-sub{color:var(--color-text-secondary)}.error-text{color:var(--color-danger)}.editor-fab,.metro-map-zoom-button,.install-guide-close-button,.update-banner-button,.primary-button{background:var(--color-surface-glass-strong);border-radius:var(--radius-pill);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-raised);color:var(--color-text-primary)}.editor-fab:hover,.metro-map-zoom-button:hover,.install-guide-close-button:hover,.update-banner-button:hover,.primary-button:hover{background:linear-gradient(135deg,var(--color-surface-glass-strong),var(--color-accent-subtle))}.primary-button,.update-banner-button{background:var(--color-primary-surface);color:var(--color-primary-on);border-color:transparent;box-shadow:var(--shadow-raised)}.primary-button:hover,.update-banner-button:hover{background:var(--color-primary-surface-hover);filter:none}.bottom-sheet{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}@media(min-width:1024px){.bottom-sheet{border-radius:var(--radius-lg);background:transparent;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}}@media(max-width:1023px){.bottom-sheet{border-bottom-left-radius:unset;border-bottom-right-radius:unset}}.metro-map-wrapper{background:radial-gradient(circle at 0% 0%,var(--map-canvas-veil-1),var(--map-canvas-veil-2))}.install-guide-backdrop{background:radial-gradient(circle at top,rgba(var(--rgb-scrim),.58),rgba(var(--rgb-scrim),.76))}.route-steps{gap:var(--space-2)}.step-station-list{gap:var(--space-05)}.route-result,.route-step{box-shadow:none}.theme-toggle-dock{position:fixed;top:calc(env(safe-area-inset-top,0px) + 4rem);left:50%;transform:translate(-50%);width:calc(100% - var(--space-7));max-width:480px;z-index:1;display:flex;justify-content:flex-end;pointer-events:none}@media(min-width:430px){.theme-toggle-dock{top:calc(env(safe-area-inset-top,0px) + 4.6rem)}}@media(min-width:1024px){.theme-toggle-dock{left:0;right:0;width:auto;max-width:none;transform:none;top:var(--space-6);padding-right:var(--space-4)}}.theme-toggle{display:inline-flex;align-items:center;gap:var(--space-05);padding:var(--space-05);border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-slate),.35);background:rgba(var(--rgb-card),.9);backdrop-filter:blur(var(--blur-glass-soft, 18px));-webkit-backdrop-filter:blur(var(--blur-glass-soft, 18px));box-shadow:var(--shadow-raised);pointer-events:auto}.theme-toggle-option{position:relative;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .16s ease-out,color .16s ease-out}.theme-toggle-option:after{content:"";position:absolute;left:50%;top:50%;width:calc(100% + var(--space-05));height:44px;transform:translate(-50%,-50%)}.theme-toggle-option svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.theme-toggle-option[data-theme-option=dark] svg path{fill:currentColor;stroke:none}.theme-toggle-option:hover{color:var(--color-text-primary);background:rgba(var(--rgb-border-slate),.16)}.theme-toggle-option:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:1px}.theme-toggle-option[aria-pressed=true]{color:var(--color-text-primary);background:rgba(var(--rgb-border-slate),.22);box-shadow:inset 0 0 0 1px rgba(var(--rgb-border-slate),.35)}.app-root--splash-active .theme-toggle-dock{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.theme-toggle-option{transition:none}}.theme-station-hint-dock{position:fixed;top:calc(env(safe-area-inset-top,0px) + 5.9rem);left:50%;transform:translate(-50%);width:calc(100% - 2rem);max-width:480px;z-index:4;display:flex;justify-content:center;pointer-events:none}@media(min-width:430px){.theme-station-hint-dock{top:calc(env(safe-area-inset-top,0px) + 6.6rem)}}.theme-station-hint{display:inline-flex;align-items:center;gap:var(--space-2);max-width:100%;padding:var(--space-1) var(--space-3) var(--space-1) var(--space-2);border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-slate),.45);background:linear-gradient(135deg,rgba(var(--rgb-card),.96),rgba(var(--rgb-card-tint),.96));backdrop-filter:blur(var(--blur-glass-soft, 18px));-webkit-backdrop-filter:blur(var(--blur-glass-soft, 18px));box-shadow:var(--shadow-soft);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);animation:theme-station-hint-in .22s var(--ease-out-soft, ease-out) both}.theme-station-hint[data-kind=info]{padding-left:var(--space-3);color:var(--color-text-secondary)}.theme-station-hint-badge{flex:0 0 auto;width:1.35rem;height:1.35rem;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:700;color:var(--color-on-accent, #fff);background:var(--map-endpoint-a, var(--color-accent))}.theme-station-hint[data-kind=to] .theme-station-hint-badge{background:var(--map-endpoint-b, var(--color-accent))}.theme-station-hint-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes theme-station-hint-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.theme-station-hint{animation:none}}.theme-error-log-backdrop{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#00000073;pointer-events:auto}.theme-error-log{width:100%;max-width:420px;max-height:min(80vh,560px);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg, 1.5rem);border:1px solid rgba(var(--rgb-border-slate),.45);background:linear-gradient(135deg,rgba(var(--rgb-card),.99),rgba(var(--rgb-card-tint),.99));box-shadow:var(--shadow-strong);color:var(--color-text-primary)}.theme-error-log-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.theme-error-log-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold, 600)}.theme-error-log-close{width:1.9rem;height:1.9rem;border:none;border-radius:var(--radius-pill);background:rgba(var(--rgb-border-slate),.2);color:var(--color-text-secondary);font-size:1.15rem;line-height:1;cursor:pointer}.theme-error-log-note{margin:0;font-size:var(--font-size-xs);line-height:1.45;color:var(--color-text-muted, var(--color-text-secondary))}.theme-error-log-list{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-2)}.theme-error-log-empty{padding:var(--space-3) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.theme-error-log-item{padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);border:1px solid rgba(var(--rgb-border-slate),.3);background:rgba(var(--rgb-border-slate),.1)}.theme-error-log-item-head{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted, var(--color-text-secondary))}.theme-error-log-kind{font-weight:700;color:var(--color-text-accent, var(--color-accent))}.theme-error-log-count{margin-left:auto}.theme-error-log-message,.theme-error-log-source{margin-top:var(--space-1);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xs);line-height:1.4;word-break:break-word}.theme-error-log-source{color:var(--color-text-muted, var(--color-text-secondary))}.theme-error-log-actions{display:flex;gap:var(--space-2)}.theme-error-log-button{flex:1;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid rgba(var(--rgb-border-slate),.45);background:transparent;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer}.theme-error-log-button--primary{border-color:transparent;background:var(--color-accent);color:var(--color-on-accent, #fff)}.theme-error-log-button:disabled{opacity:.5;cursor:default}.theme-error-log-trigger{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-slate),.45);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer;pointer-events:auto}.theme-error-log-trigger:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}
