:root{--font-family-base:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-family-base);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;--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:#fffffff5;--map-canvas-veil-2:#eceff4e6;--color-surface-glass:#ffffffd1;--color-surface-glass-strong:#fffffff0;--color-surface-glass-soft:#ffffffb8;--color-surface-glass-dark:#0f172a1f;--color-border-soft:#94a3b84d;--color-border-strong:#94a3b88c;--color-accent:#2f3d5b;--color-accent-soft:#2f3d5b1f;--color-accent-subtle:#2f3d5b0f;--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:#f9fafbf5;--map-station-fill:var(--color-surface-white);--map-station-selected-halo:#2f3d5b38;--map-route-fallback-color:var(--color-accent);--map-route-casing:#1118278c;--map-hub-link:#475569e6;--map-endpoint-a:#22c1b4;--map-endpoint-b:#ef4444;--map-label-halo:#ffffffeb;--map-hub-capsule-fill:#ffffffd1;--map-hub-capsule-stroke:#64748b73;--map-route-build-overlay:#f3f4f6;--map-route-build-glow:#94a3b859;--map-endpoint-shadow:#0f172a40;--map-endpoint-stroke:#0f172a2e;--color-border-hair-strong:#cbd2dee6;--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:#fff;--color-on-accent:#fff;--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 #0f172a1f;--shadow-overlay:0 12px 32px #0f172a2e;--shadow-modal:0 30px 80px #0f172a66;--color-primary-surface:#28344f;--color-primary-surface-hover:#1c2536;--color-primary-on:#fff;--color-focus-ring:#2f3d5b;--shadow-soft:0 6px 18px #0f172a2e;--shadow-strong:0 30px 80px #0f172a73;--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;font-weight:400;line-height:1.5}html,body{overscroll-behavior:none}body{font-family:var(--font-family-base);min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}a{color:inherit;text-decoration:none}button,input,textarea,select,button,option,optgroup{font:inherit}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;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:#1b2029d6;--color-surface-glass-strong:#1b2029f0;--color-surface-glass-soft:#1b2029b8;--color-surface-glass-dark:#00000059;--color-border-soft:#94a3b838;--color-border-strong:#94a3b86b;--color-border-hair-strong:#6e7a8c80;--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:#8781b138;--color-accent-subtle:#8781b11f;--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:#0a0d12f0;--map-station-fill:#202730;--map-station-selected-halo:#cbd5e159;--map-route-fallback-color:#cbd5e1;--map-route-casing:#ffffff9e;--map-hub-link:#dfe3ead1;--map-endpoint-a:#2ed3c4;--map-endpoint-b:#ff6b6b;--map-label-halo:#0a0d12eb;--map-hub-capsule-fill:#202730d9;--map-hub-capsule-stroke:#dfe3ea47;--map-route-build-overlay:#dfe3ea;--map-route-build-glow:#94a3b859;--map-endpoint-shadow:#dfe3ea47;--map-endpoint-stroke:#ffffff59;--shadow-soft:0 6px 18px #0000008c;--shadow-strong:0 30px 80px #000000bf;--shadow-raised:0 2px 8px #00000080;--shadow-overlay:0 12px 32px #0000009e;--shadow-modal:0 30px 80px #000000bf;--color-primary-surface:#928bbc;--color-primary-surface-hover:#9790c2;--color-primary-on:#12161d;--color-focus-ring:#9790c2}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;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:#1b2029d6;--color-surface-glass-strong:#1b2029f0;--color-surface-glass-soft:#1b2029b8;--color-surface-glass-dark:#00000059;--color-border-soft:#94a3b838;--color-border-strong:#94a3b86b;--color-border-hair-strong:#6e7a8c80;--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:#8781b138;--color-accent-subtle:#8781b11f;--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:#0a0d12f0;--map-station-fill:#202730;--map-station-selected-halo:#cbd5e159;--map-route-fallback-color:#cbd5e1;--map-route-casing:#ffffff9e;--map-hub-link:#dfe3ead1;--map-endpoint-a:#2ed3c4;--map-endpoint-b:#ff6b6b;--map-label-halo:#0a0d12eb;--map-hub-capsule-fill:#202730d9;--map-hub-capsule-stroke:#dfe3ea47;--map-route-build-overlay:#dfe3ea;--map-route-build-glow:#94a3b859;--map-endpoint-shadow:#dfe3ea47;--map-endpoint-stroke:#ffffff59;--shadow-soft:0 6px 18px #0000008c;--shadow-strong:0 30px 80px #000000bf;--shadow-raised:0 2px 8px #00000080;--shadow-overlay:0 12px 32px #0000009e;--shadow-modal:0 30px 80px #000000bf;--color-primary-surface:#928bbc;--color-primary-surface-hover:#9790c2;--color-primary-on:#12161d;--color-focus-ring:#9790c2}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}#root{justify-content:center;min-height:100vh;margin:0;padding:0;display:flex}.app-root{width:100%;max-width:480px;padding:env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0) 0;flex-direction:column;flex:1;margin:0 auto;display:flex;position:relative;overflow:hidden}.app-status-bar-fill{width:100%;max-width:480px;height:env(safe-area-inset-top,0);z-index:1;background:var(--color-surface-glass-strong);position:fixed;top:0;left:50%;transform:translate(-50%)}.app-splash{z-index:10;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));-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);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.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{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);align-items:center;gap:var(--space-2);will-change:transform, opacity;opacity:0;animation:app-splash-pop-in var(--motion-splash) var(--ease-out-soft) var(--motion-fast) forwards;flex-direction:column;display:flex;position:relative;transform:translateY(10px)scale(.97)}.app-splash-hero{justify-content:center;align-items:center;gap:var(--space-2);flex-direction:column;width:100%;display:flex}.app-splash-hero-avatar{border-radius:var(--radius-pill);background:rgba(var(--rgb-card), .9);width:4.4rem;height:4.4rem;box-shadow:0 0 0 1px rgba(var(--rgb-border-hair), .6);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.app-splash-logo-img{width:4.4rem;height:4.4rem}.app-splash-floaters{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.app-root--splash-active .metro-map-zoom-controls{opacity:0;pointer-events:none}.app-splash-node{opacity:0;background-color:rgba(var(--rgb-accent), .34);will-change:transform, opacity;width:2.1rem;height:2.1rem;position:absolute;-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") 50%/contain no-repeat;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") 50%/contain no-repeat}.app-splash-node--1{animation:.42s ease-out forwards app-splash-node-fade-in,11s ease-in-out infinite alternate app-splash-node-drift;top:15%;left:14%}.app-splash-node--2{animation:.42s ease-out .12s forwards app-splash-node-fade-in,12s ease-in-out .12s infinite alternate app-splash-node-drift;top:70%;left:18%}.app-splash-node--3{animation:.42s ease-out .24s forwards app-splash-node-fade-in,13s ease-in-out .24s infinite alternate app-splash-node-drift;top:24%;right:12%}.app-splash-node--4{animation:.42s ease-out .36s forwards app-splash-node-fade-in,12s ease-in-out .36s infinite alternate app-splash-node-drift;top:44%;left:9%}.app-splash-node--5{animation:.42s ease-out .48s forwards app-splash-node-fade-in,13s ease-in-out .48s infinite alternate app-splash-node-drift;top:58%;right:16%}.app-splash-node--6{animation:.42s ease-out .6s forwards app-splash-node-fade-in,14s ease-in-out .6s infinite alternate app-splash-node-drift;top:8%;left:46%}.app-splash-node--7{animation:.42s ease-out .72s forwards app-splash-node-fade-in,15s ease-in-out .72s infinite alternate app-splash-node-drift;top:84%;right:22%}.app-splash-node--8{animation:.42s ease-out .84s forwards app-splash-node-fade-in,16s ease-in-out .84s infinite alternate app-splash-node-drift;top:88%;left:40%}.app-splash-title{font-size:var(--font-size-hero);font-weight:var(--font-weight-bold);letter-spacing:-.01em;margin:0;line-height:1.2}.app-splash-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.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{z-index:0;position:fixed;inset:0}.station-pick-popover{z-index:6;gap:var(--space-1);padding:var(--space-1) var(--space-2) var(--space-2);border-radius:var(--radius-md);background:var(--color-surface-glass-strong);border:1px solid var(--color-border-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;flex-direction:column;animation:.18s cubic-bezier(.16,1,.3,1) forwards station-pick-popover-in;display:inline-flex;position:fixed;transform:translateY(8px)scale(.96)}.station-pick-popover--closing{animation:.16s cubic-bezier(.4,0,1,1) forwards station-pick-popover-out}@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{opacity:1;animation:none;transform:none}.station-pick-popover--closing{animation:none}}.station-pick-popover-header{justify-content:center;align-items:center;gap:var(--space-2);min-width:8rem;max-width:min(16rem,72vw);display:flex}.station-pick-popover-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-heading-strong);text-align:center;white-space:nowrap;text-overflow:ellipsis;line-height:1.2;overflow:hidden}.station-pick-popover-line-dot{border-radius:var(--radius-pill);width:.55rem;height:.55rem;box-shadow:0 0 0 2px rgba(var(--rgb-card), .9), 0 0 0 1px rgba(var(--rgb-shadow-cool), .2);flex:none}.station-pick-popover-actions{gap:var(--space-1);width:100%;display:flex}.station-pick-popover-button{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;flex:1 1 0;transition:transform .14s ease-out,filter .14s ease-out,background-color .14s ease-out,border-color .14s ease-out}.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{filter:brightness(.99);transform:translateY(1px)scale(.99)}.station-pick-popover-button:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.app-overlay{z-index:1;pointer-events:none;background:0 0;flex-direction:column;min-height:100vh;display:flex;position:relative}.app-header{z-index:2;align-items:center;gap:var(--space-2);pointer-events:auto;width:calc(100% - 2rem);max-width:480px;padding:calc(env(safe-area-inset-top,0) + var(--space-1)) var(--space-2) var(--space-1);background:var(--color-surface-glass-strong);-webkit-backdrop-filter:blur(var(--blur-glass-soft));color:var(--color-text-primary);box-shadow:var(--shadow-soft);border-radius:var(--radius-lg);animation:app-header-drop-in var(--motion-medium) var(--ease-out-soft) .11s both;display:flex;position:fixed;top:0;left:50%;overflow:visible;transform:translate(-50%)}@media (width>=430px) and (width<=1023px) and (height>=501px){.app-header{padding:calc(env(safe-area-inset-top,0) + var(--space-2)) var(--space-3) var(--space-2);gap:var(--space-2);top:0}.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-left{margin-right:var(--space-1);flex-shrink:0;align-items:center;display:flex}.app-header-logo{border-radius:var(--radius-pill);background:linear-gradient(160deg, var(--color-surface-tint), var(--color-surface-tint-strong));width:2rem;height:2rem;box-shadow:var(--shadow-raised), 0 0 0 1px rgba(var(--rgb-border-hair), .85);justify-content:center;align-items:center;display:flex;position:relative}.app-header-logo-img{width:1.6rem;height:1.6rem}.app-header-chip{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-slate), .45);min-width:0;min-height:44px;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;pointer-events:auto;cursor:pointer;will-change:transform, box-shadow, filter;outline:none;flex-direction:column;flex:1;justify-content:center;align-items:flex-start;gap:1px;transition:transform .14s ease-out,box-shadow .16s ease-out,filter .16s ease-out;display:flex}.app-header-chip:hover{box-shadow:var(--shadow-overlay);filter:brightness(1.01)}.app-header-chip:active{filter:brightness(.99);transform:translateY(1px)scale(.995)}.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{max-width:100%;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.app-header-brand{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.app-header-brand-name{font-size:var(--font-size-md);line-height:1.25;font-weight:var(--font-weight-semibold,600);letter-spacing:-.01em;color:var(--color-text-heading);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-header-brand-sub{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;line-height:1.2;overflow:hidden}.app-main{pointer-events:none;flex:1;padding:3.5rem 1rem 5.25rem;overflow-y:auto}.field-suggestions{padding:var(--space-1) 0;border-radius:var(--radius-md);background:var(--color-surface-solid-gradient);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-overlay);-webkit-backdrop-filter:blur(var(--blur-glass-soft));transform-origin:50% 0;will-change:transform, opacity;opacity:0;margin:0;list-style:none;animation:.18s cubic-bezier(.16,1,.3,1) forwards field-suggestions-in;position:fixed;overflow:hidden auto;transform:translateY(-4px)scale(.985)}.field-suggestions--closing{animation:.16s cubic-bezier(.4,0,1,1) forwards field-suggestions-out}@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{opacity:1;animation:none;transform:none}.field-suggestions--closing{animation:none}}.suggestion-item{min-height:44px;padding:var(--space-1) var(--space-3);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;display:flex}.suggestion-line-dot{border-radius:var(--radius-pill);background:var(--color-neutral-300);width:.5rem;height:.5rem;box-shadow:0 0 0 2px rgba(var(--rgb-card), .9), 0 0 0 1px rgba(var(--rgb-shadow-ink), .1);flex-shrink:0;align-self:center}.suggestion-item-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.suggestion-empty{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;flex-direction:column;display:flex}.suggestion-empty-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.suggestion-item-text{flex-direction:column;flex:1;min-width:0;display:flex}.suggestion-item-line{max-width:45%;font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;overflow:hidden}.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{margin-top:calc(22px - 1.075rem);margin-bottom:var(--space-05);border-radius:var(--radius-md);border:1px solid var(--color-border-soft);background:var(--color-bg-input);width:2.15rem;height:2.15rem;color:var(--color-text-primary);font-size:var(--font-size-sm);will-change:transform, background-color, filter;flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;line-height:1;transition:transform .14s ease-out,background-color .14s ease-out,filter .14s ease-out;display:inline-flex;transform:rotate(90deg)}.swap-button:hover{background:var(--color-bg-input-hover)}.swap-button:active{filter:brightness(.98);transform:rotate(90deg)translateY(1px)scale(.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);padding:var(--space-4) var(--space-4);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);background:var(--color-primary-surface);min-height:44px;color:var(--color-primary-on);box-shadow:var(--shadow-raised);border:none}.primary-button:active{transform:translateY(1px)}.route-placeholder{padding:var(--space-3);pointer-events:auto}.error-text{font-size:var(--font-size-sm);color:var(--color-danger);margin:0}.route-result{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);flex-direction:column;display:flex}.route-result-scroll{gap:var(--space-2);padding-bottom:var(--space-3);flex-direction:column;display:flex;overflow-x:hidden}@media (width>=1024px),(height<=500px){.bottom-route-details{flex-direction:column;flex:auto;min-height:0;max-height:none;display:flex;overflow:visible}.route-result{flex-direction:column;height:100%;min-height:0;display:flex}.route-result-scroll{min-height:0;padding-right:var(--space-1);flex:auto;overflow-y:auto}}@property --scroll-fade-top{syntax:"<length>";inherits:false;initial-value:0}.route-result-scroll{-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--scroll-fade-top), #000 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--scroll-fade-top), #000 100%);-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--scroll-fade-top), #000 100%)}@supports (animation-timeline:scroll()){.route-result-scroll{animation:linear both route-scroll-fade;animation-timeline:scroll(self);animation-range:0 18px}}@keyframes route-scroll-fade{0%{--scroll-fade-top:0px}to{--scroll-fade-top:18px}}.route-summary{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);justify-content:space-between;align-items:center;display:flex}.route-summary-main{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.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;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;justify-content:center;align-items:center;transition:transform .16s ease-out,box-shadow .18s ease-out,filter .16s ease-out;display:inline-flex}.route-favorite-button:active{filter:brightness(.99);transform:translateY(1px)scale(.98)}.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:.26s cubic-bezier(.16,1,.3,1) both route-favorite-pop}@keyframes route-favorite-pop{0%{filter:brightness(.98);transform:scale(.92)}to{filter:brightness();transform:scale(1)}}@media (prefers-reduced-motion:reduce){.route-favorite-button--active{animation:none}}.route-steps{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.route-steps--animate .route-step{opacity:0;animation:.42s cubic-bezier(.16,1,.3,1) forwards route-step-stagger-in;animation-delay:calc(var(--stagger-index,0) * 48ms);transform:translateY(6px)}@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;animation:none;transform:none}}.route-step{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);will-change:transform, box-shadow, background-color;transition:transform .15s ease-out,box-shadow .15s ease-out,background-color .15s ease-out;display:flex}.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{border-radius:var(--radius-pill);background-color:var(--color-neutral-200);opacity:.98;align-self:stretch;width:7px}.line-pill--dual{border-radius:var(--radius-pill);flex-direction:column;width:8px;display:flex;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{gap:var(--space-05);flex-direction:column;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.step-station-item{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:0 0;display:flex}.step-station-bullet{border-radius:var(--radius-pill);background-color:var(--step-line-color,rgba(var(--rgb-border-slate), .9));width:7px;height:7px;box-shadow:0 0 0 2px rgba(var(--rgb-card), .95);flex-shrink:0}.step-station-name{flex:1}.smart-suggestions{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);gap:var(--space-2);pointer-events:auto;will-change:transform, opacity;flex-direction:column;margin:.3rem 0 .35rem;animation:.2s ease-out fade-in-up;display:flex}.smart-suggestions-inline{justify-content:flex-start;gap:var(--space-1);margin:.2rem 0 .1rem;display:flex}.smart-suggestions-header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.smart-suggestions-close{border-radius:var(--radius-pill);background:rgba(var(--rgb-border-hair), .2);width:1.8rem;height:1.8rem;color:var(--color-text-muted);font-size:var(--font-size-xs);border:none;justify-content:center;align-items:center;display:inline-flex}.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{font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:0 0;border:none;padding:0}.smart-suggestions-section{gap:var(--space-1);flex-direction:column;display:flex}.smart-suggestions-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted)}.smart-suggestions-row{gap:var(--space-1);flex-wrap:wrap;display:flex}.smart-suggestion-chip{border-radius:var(--radius-pill);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;border: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);will-change:opacity, transform;contain:layout paint;flex:auto;min-height:0;transition:opacity .16s ease-out,transform .16s ease-out,visibility .16s ease-out;overflow:visible auto}.bottom-route-details,.route-result-scroll{scrollbar-width:thin;scrollbar-color:rgba(var(--rgb-border-slate), .4) transparent}.bottom-route-details::-webkit-scrollbar{width:4px}.route-result-scroll::-webkit-scrollbar{width:4px}.bottom-route-details::-webkit-scrollbar-track{background:0 0}.route-result-scroll::-webkit-scrollbar-track{background:0 0}.bottom-route-details::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:linear-gradient(180deg, rgba(var(--rgb-card), .7), rgba(var(--rgb-border-slate), .5))}.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;pointer-events:none;visibility:hidden;flex:0 0 0;height:0;min-height:0;max-height:0;margin-top:0;overflow:hidden;transform:translateY(6px)}.bottom-route-details--open{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes app-splash-node-fade-in{0%{opacity:0}to{opacity:1}}@keyframes app-splash-node-drift{0%{transform:translateY(6px)}50%{transform:translateY(-6px)}to{transform:translateY(4px)}}@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%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@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(7rem - 50%))scale(.9)}to{opacity:1;transform:translateY(calc(7rem - 50%))scale(1)}}@keyframes banner-slide-up{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes update-icon-pop{0%{opacity:0;transform:scale(.4)rotate(-18deg)}60%{opacity:1;transform:scale(1.08)rotate(0)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes install-logo-pop{0%{opacity:0;transform:translateY(4px)scale(.9)}60%{opacity:1;transform:translateY(-1px)scale(1.04)}to{opacity:1;transform:translateY(0)scale(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{background:radial-gradient(circle at top left, var(--map-canvas-top), var(--map-canvas-bottom));border-radius:0;position:absolute;inset:0;overflow:hidden}.metro-map-svg,.metro-map-labels{width:100%;height:100%;display:block;position:absolute;inset:0}.metro-map-svg{touch-action:none}.metro-map-labels{pointer-events:none}.metro-map-zoom-controls{gap:var(--space-2);pointer-events:auto;opacity:1;flex-direction:column;transition:opacity .22s ease-out;display:flex;position:absolute;top:50%;bottom:auto;right:1rem;transform:translateY(-50%)}.metro-map-zoom-button{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));width:2.75rem;height:2.75rem;color:var(--color-text-accent);font-size:var(--font-size-xl);box-shadow:var(--shadow-overlay), 0 0 0 1px rgba(var(--rgb-shadow-cool), .45);will-change:transform, box-shadow, background-color;justify-content:center;align-items:center;transition:transform .15s ease-out,box-shadow .15s ease-out,background-color .15s ease-out;display:flex}.metro-map-zoom-button:hover{background:linear-gradient(135deg, var(--color-surface-hover-1), var(--color-surface-hover-2));box-shadow:var(--shadow-overlay);transform:translateY(-1px)}.metro-map-zoom-button:active{box-shadow:var(--shadow-raised);filter:brightness(.96);transform:scale(.96)}.editor-fab{z-index:3;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));width:2.3rem;height:2.3rem;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);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;justify-content:center;align-items:center;display:flex;position:fixed;top:50%;bottom:auto;right:1rem;transform:translateY(calc(7rem - 50%))}.editor-fab--active{background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-overlay)}.editor-tools-stack{z-index:3;gap:var(--space-2);pointer-events:auto;flex-direction:row;display:flex;position:fixed;top:50%;right:3.6rem;transform:translateY(calc(7rem - 50%))}.editor-toast{z-index:4;border-radius:var(--radius-pill);max-width:min(360px,84vw);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);box-shadow:var(--shadow-overlay);pointer-events:none;font-weight:600;position:fixed;top:50%;right:1rem;transform:translateY(calc(10.2rem - 50%))}.editor-fab--small{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);position:static;top:auto;bottom:auto;right:auto;transform:none}.editor-fab--secondary{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));border-style:dashed}.hub-editor-panel{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);gap:var(--space-2);pointer-events:auto;flex-direction:column;display:flex;position:fixed;top:50%;left:.9rem;overflow:hidden;transform:translateY(calc(3rem - 50%))}@media (width>=1024px),(height<=500px){.hub-editor-panel{width:min(420px,38vw);max-height:84vh;left:1.25rem}}.hub-editor-footer{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid rgba(var(--rgb-border-hair), .6);justify-content:flex-end;gap:var(--space-2);display:flex}.hub-editor-footer-button{border-radius:var(--radius-pill);padding:var(--space-1) var(--space-4);font-size:var(--font-size-xs);background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-raised);cursor:pointer;border:none;font-weight:600}.hub-editor-footer-history{align-items:center;gap:var(--space-1);display:flex}.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{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.hub-editor-title{font-size:var(--font-size-sm);color:var(--color-text-heading);font-weight:600}.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;font-size:var(--font-size-sm);color:var(--color-text-accent);cursor:pointer;justify-content:center;align-items:center;line-height:1;display:flex}.hub-editor-subtitle{margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-quiet)}.hub-editor-tabs{align-items:center;gap:var(--space-1);padding:var(--space-05);border-radius:var(--radius-pill);background:rgba(var(--rgb-input-surface), .9);display:flex}.hub-editor-tab{border-radius:var(--radius-pill);padding:var(--space-05) var(--space-2);font-size:var(--font-size-2xs);color:var(--color-text-muted-soft);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:1}.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{min-height:0;padding-right:var(--space-2);flex:1;overflow-y:auto}.hub-editor-section{padding-top:var(--space-1)}.hub-editor-section-title{font-size:var(--font-size-xs);color:var(--color-text-heading);margin-bottom:var(--space-05);font-weight:600}.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{gap:var(--space-1);margin-top:var(--space-05);flex-wrap:wrap;display:flex}.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{margin:0;padding:0;list-style:none}.hub-editor-list-item{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-strong-muted);padding:var(--space-05) 0;display:flex}.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{border-radius:var(--radius-pill);background:var(--color-neutral-300);width:.55rem;height:.55rem}.hub-editor-station-name,.hub-editor-connection-main{flex:1}.hub-editor-connection-main{text-align:left;font:inherit;color:var(--color-text-heading);background:0 0;border:none;margin:0;padding:0}.hub-editor-connection-main--link{cursor:pointer;text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.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{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral), .9);width:3.1rem;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{color:var(--color-text-success-strong);border-style:solid}.hub-editor-hub-select-row{align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.hub-editor-hub-select{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-hair), .9);min-width:0;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);flex:1}.hub-editor-hub-new{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;flex-shrink:0}.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{gap:var(--space-05);margin-top:var(--space-1);flex-direction:column;display:flex}.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-connection-kind{flex:0 auto;width:auto;min-width:0;max-width:9rem}.hub-editor-hub-meta-row{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-1);margin-bottom:var(--space-1);display:flex}.hub-editor-hub-meta-label{font-size:var(--font-size-xs);color:var(--color-text-quiet)}.hub-editor-hub-meta-input-wrap{align-items:center;gap:var(--space-1);display:flex}.hub-editor-hub-minutes-input{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral), .9);width:3.1rem;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);align-items:center;gap:var(--space-1);display:flex}.hub-editor-hub-add-input{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral), .9);min-width:0;padding:var(--space-05) var(--space-2);font-size:var(--font-size-xs);flex:1}.hub-editor-hub-add-button{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;flex-shrink:0}.hub-editor-edge-add-row{margin-top:var(--space-1);align-items:center;gap:var(--space-1);display:flex}.hub-editor-edge-add-input{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-neutral), .9);min-width:0;padding:var(--space-05) var(--space-2);font-size:var(--font-size-xs);flex:1}.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{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;flex-shrink:0}.bottom-sheet{z-index:8;pointer-events:auto;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);will-change:transform, opacity;contain:layout paint;border-bottom-right-radius:0;border-bottom-left-radius:0;max-height:none;padding:0;transition:border-radius .22s ease-out;position:fixed;bottom:0;left:0;right:0;overflow:hidden visible;transform:translateY(0)}.bottom-sheet--with-route{animation:none}.bottom-sheet-inner{gap:var(--space-2);box-sizing:border-box;width:100%;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);background:var(--color-surface-solid-gradient);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft);touch-action:pan-x;-ms-touch-action:pan-x;border-bottom-right-radius:0;border-bottom-left-radius:0;flex-direction:column;display:flex;overflow:visible}.bottom-sheet-min{gap:var(--space-2);flex-direction:column;display:flex;overflow:visible}@media (width<=1023.98px) and (height>=501px){.bottom-sheet-min{top:var(--space-3);z-index:2;position:sticky}.bottom-sheet-min:before{content:"";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;position:absolute}.bottom-sheet-min:after{content:"";left:calc(var(--space-3) * -1);right:calc(var(--space-3) * -1);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;position:absolute;top:100%}@supports (animation-timeline:scroll()){.bottom-sheet-min:after{animation:linear both scroll-edge-fade-in;animation-timeline:scroll();animation-range:0 14px}}}@keyframes scroll-edge-fade-in{0%{opacity:0}to{opacity:1}}@media (width<=1023.98px) and (height>=501px){.bottom-sheet--with-route .smart-suggestions-inline{display:none}}.bottom-fields-row{align-items:stretch;gap:var(--space-2);flex-direction:row;display:flex}.bottom-field{flex:1;min-width:0;position:relative}.bottom-field-control{position:relative}.bottom-input{box-sizing:border-box;border-radius:var(--radius-md);border:1px solid rgba(var(--rgb-border-slate), .35);width:100%;min-height:44px;font-size:var(--font-size-md);background:var(--color-bg-input);color:var(--color-text-primary);padding:.6rem 1.75rem .6rem .85rem;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{border-radius:var(--radius-pill);background:var(--color-neutral-300);width:.55rem;height:.55rem;box-shadow:0 0 0 1px rgba(var(--rgb-shadow-ink), .08);pointer-events:none;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.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{border-radius:var(--radius-pill);color:var(--color-text-placeholder);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:absolute;top:50%;right:.22rem;transform:translateY(-50%)}.bottom-input-clear:hover{background-color:var(--color-accent-subtle);color:var(--color-text-accent)}.bottom-input-clear:active{background-color:var(--color-accent-soft);transform:translateY(-50%)scale(.96)}.bottom-route-summary-wrapper{align-items:stretch;gap:var(--space-05);flex-direction:column;display:flex}.bottom-route-summary-scroll{align-items:center;gap:var(--space-2);scrollbar-width:none;-ms-overflow-style:none;flex:1;display:flex;overflow:auto visible}.bottom-route-summary-scroll::-webkit-scrollbar{width:0;height:0}.bottom-route-chip{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);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;flex-direction:column;flex-shrink:0;align-items:flex-start;display:flex}.bottom-route-chip:hover{border-color:rgba(var(--rgb-border-hair), .95);transform:translateY(-1px)}.bottom-route-chip--active{background-color:rgba(var(--rgb-wash), .98);border-color:var(--color-accent);padding:calc(var(--space-2) - 1px) calc(var(--space-4) - 1px);border-width:2px}.bottom-route-chip-main{font-size:var(--font-size-sm);align-items:baseline;gap:var(--space-2);flex-wrap:wrap;font-weight:600;display:flex}.bottom-route-chip-sub{font-size:var(--font-size-xs);color:var(--color-text-muted)}.route-choices-desktop{align-items:stretch;gap:var(--space-05);margin-bottom:var(--space-2);flex-direction:column;display:flex}.route-choices-desktop-track{gap:var(--space-2);overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-1);display:flex;overflow:auto hidden}.route-choices-desktop-track::-webkit-scrollbar{width:0;height:3px}.route-choices-desktop-track::-webkit-scrollbar-track{background:0 0}.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:0}.route-choices-desktop-track,.bottom-route-summary-scroll{-webkit-mask-image:linear-gradient(to right, #000 0, #000 calc(100% - var(--choices-fade-right)), transparent 100%);mask-image:linear-gradient(to right, #000 0, #000 calc(100% - var(--choices-fade-right)), transparent 100%);-webkit-mask-image:linear-gradient(to right, #000 0, #000 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:linear both route-choices-fade;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{border-radius:var(--radius-pill);width:56px;height:auto;box-shadow:none;background:0 0;border:none;justify-content:center;align-self:center;align-items:center;display:flex}.bottom-sheet-handle:before{content:"";border-radius:var(--radius-pill);background-color:rgba(var(--rgb-border-slate), .95);width:28px;height:4px}.update-banner{z-index:12;pointer-events:auto;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));-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;display:inline-flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.update-banner-button{border-radius:var(--radius-pill);padding:var(--space-1) var(--space-4);font-size:var(--font-size-xs);background:var(--color-primary-surface);color:var(--color-on-accent);box-shadow:var(--shadow-raised);cursor:pointer;border:none;font-weight:600}.update-banner-button:active{transform:translateY(1px)}.update-banner-icon{border-radius:var(--radius-pill);background:linear-gradient(160deg, var(--color-surface-tint), var(--color-surface-tint-strong));width:1.9rem;height:1.9rem;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);justify-content:center;align-items:center;animation:.42s cubic-bezier(.16,1,.3,1) .14s both update-icon-pop;display:flex}.update-banner-content{gap:var(--space-05);flex-direction:column;display:flex}.update-banner-title{font-size:var(--font-size-sm);color:var(--color-text-heading);font-weight:600}.update-banner-subtitle{font-size:var(--font-size-xs);color:var(--color-text-muted)}.update-banner-actions{align-items:center;gap:var(--space-2);display:inline-flex}.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);background:rgba(var(--rgb-card), .88);color:var(--color-text-heading);box-shadow:none;cursor:pointer;font-weight:600}.update-banner-later:hover{background:rgba(var(--rgb-card), .96)}.update-banner-later:active{transform:translateY(1px)}.install-guide-backdrop{z-index:40;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;will-change:opacity;justify-content:center;align-items:center;animation:.22s ease-out both modal-backdrop-fade;display:flex;position:fixed;inset:0}.install-guide-card{border-radius:var(--radius-lg);width:100%;max-width:420px;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);will-change:transform, opacity;animation:.26s cubic-bezier(.16,1,.3,1) forwards modal-card-pop;transform:translateY(6px)scale(.96)}.install-guide-header{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.install-guide-logo{margin-top:var(--space-05);border-radius:var(--radius-pill);background:linear-gradient(160deg, var(--color-surface-tint), var(--color-surface-tint-strong));width:2.6rem;height:2.6rem;box-shadow:var(--shadow-overlay), 0 0 0 1px rgba(var(--rgb-border-hair), .9);flex-shrink:0;justify-content:center;align-items:center;animation:.36s cubic-bezier(.16,1,.3,1) 80ms both install-logo-pop;display:flex}.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);color:var(--color-text-muted);line-height:1.45}.install-guide-platform-row{margin:0 0 .75rem}.install-guide-platform-chip{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-xs);background-color:rgba(var(--rgb-border-hair), .18);color:var(--color-text-transfer);border:1px solid rgba(var(--rgb-border-hair), .7);align-items:center;font-weight:600;animation:.26s cubic-bezier(.16,1,.3,1) .22s both chip-pop-in;display:inline-flex}.install-guide-steps{padding-left:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-heading);margin:0 0 .75rem}.install-guide-steps li+li{margin-top:var(--space-1)}.install-guide-note{font-size:var(--font-size-xs);color:var(--color-text-muted-soft);margin:0 0 .75rem}.install-guide-actions{justify-content:flex-end;display:flex}.install-guide-close-button{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;border:none}.install-guide-close-button:hover{background:var(--color-primary-surface-hover)}@media (width<=1023.98px) and (height>=501px){.app-root{max-width:100%}.app-header{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);width:auto;max-width:100%;left:0;right:0;transform:none}.bottom-field{width:100%}.route-result{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md);border-bottom-right-radius:0;border-bottom-left-radius:0}.bottom-sheet-inner{flex-direction:column}}@media (width>=768px){.app-root{max-width:720px}.bottom-sheet-inner{max-width:540px;margin:0 auto}}@media (width>=1024px),(height<=500px){.app-root{--panel-inset:1.75rem;--panel-top:1.5rem;--panel-bottom:1.75rem;--panel-width:clamp(340px, 30vw, 420px);--panel-header-h:3.375rem;--panel-pad-x:var(--space-4);max-width:100%}.app-root .app-header{left:var(--panel-inset);top:var(--panel-top);width:var(--panel-width);box-sizing:border-box;max-width:none;height:var(--panel-header-h);padding:0 var(--panel-pad-x);gap:var(--space-3);background:var(--color-surface-solid-gradient);-webkit-backdrop-filter:none;box-shadow:0 -6px 18px rgba(var(--rgb-shadow-cool), .18);border-bottom:none;border-bottom-right-radius:0;border-bottom-left-radius:0;animation:none;transform:none}.app-root .app-header:after{content:"";left:var(--panel-pad-x);right:var(--panel-pad-x);background:rgba(var(--rgb-border-hair), .55);pointer-events:none;height:1px;position:absolute;bottom:0}.app-header-logo{width:2.25rem;height:2.25rem;box-shadow:none;background:0 0}.app-header-logo-img{width:100%;height:100%}.app-header-left{margin-right:0}.bottom-sheet{top:calc(var(--panel-top) + var(--panel-header-h));bottom:var(--panel-bottom);left:var(--panel-inset);width:var(--panel-width);max-height:calc(100vh - var(--panel-top) - var(--panel-header-h) - var(--panel-bottom));border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:none;background:0 0;padding:0;display:block;right:auto;overflow:visible;transform:none}.bottom-sheet.bottom-sheet--with-route{animation:none}.bottom-sheet-inner{box-sizing:border-box;gap:var(--space-3);width:100%;max-width:none;padding:var(--space-3) var(--panel-pad-x) var(--space-4);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--color-surface-solid-gradient);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft);border-top:none;flex-direction:column;max-height:100%;margin:0;overflow:visible}.bottom-input{border-radius:var(--radius-pill);border-color:rgba(var(--rgb-border-slate), .35);background:rgba(var(--rgb-card), .96);box-shadow:none;padding:.6rem 1.75rem .6rem .85rem}.bottom-input--with-line-dot{padding-left:var(--space-7)}.bottom-input-line-dot{left:.95rem}.bottom-route-details{flex-direction:column;flex:auto;min-height:0;max-height:none;display:flex;overflow:visible}.route-result{flex-direction:column;height:100%;min-height:0;display:flex}.route-result-scroll{min-height:0;max-height:none;padding-right:var(--space-1);flex:auto;overflow-y:auto}.swap-button{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-slate), .4);background:var(--color-surface-glass-strong);width:2.05rem;height:2.05rem;box-shadow:var(--shadow-soft);transform:rotate(0)}.bottom-fields-row{column-gap:var(--space-2);row-gap:var(--space-2);grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;display:grid}.bottom-fields-row>.bottom-field:first-child{grid-area:1/1}.bottom-fields-row>.bottom-field:last-child{grid-area:2/1}.bottom-fields-row>.swap-button{margin-top:calc(44px + var(--space-2) / 2 - 2.15rem / 2);grid-area:1/2/span 2;align-self:start;margin-bottom:0}.bottom-field{-webkit-backdrop-filter:none;box-shadow:none;background:0 0;border-radius:0;padding:0}}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.app-splash-node{opacity:.85;animation:none!important}.app-splash{-webkit-backdrop-filter:none!important}.app-splash-card{opacity:1!important;animation:none!important;transform:none!important}.bottom-route-chip{animation:none!important}.update-banner{opacity:1!important;animation:none!important;transform:translate(-50%)!important}}@media (width<=430px) and (height>=501px){.app-splash{-webkit-backdrop-filter:blur(6px)saturate(125%)}}.inline-icon{vertical-align:-.15em;flex:none;width:1.05em;height:1.05em;margin-right:.28em}.route-line-pills{margin-block:var(--space-1) var(--space-1);align-items:center;gap:2px;max-width:100%;display:flex;overflow:hidden}.bottom-route-chip .route-line-pills{max-width:4.5rem}.route-line-pills-item{border-radius:var(--radius-pill);background:var(--color-neutral-300);width:.85rem;min-width:.5rem;height:.28rem;box-shadow:0 0 0 1px rgba(var(--rgb-shadow-ink), .06);display:block}.route-loading-live{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.route-loading{gap:var(--space-2);flex-direction:column;display:flex}.route-loading-head{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);display:flex}.route-loading-spinner{border-radius:var(--radius-pill);border:2px solid var(--color-accent-soft);border-top-color:var(--color-accent);flex:none;width:.95rem;height:.95rem;animation:.72s linear infinite route-loading-spin}@keyframes route-loading-spin{to{transform:rotate(360deg)}}.route-loading-skeleton{align-items:center;gap:var(--space-2);display:flex;overflow:hidden}.route-loading-skeleton-chip{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) 50%, rgba(var(--rgb-card), 0) 70%), var(--color-accent-subtle);background-size:220% 100%,auto;flex:none;width:6.2rem;height:2.85rem;animation:1.2s ease-in-out infinite route-loading-shimmer}.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);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;align-self:flex-start}.route-retry-button:hover{background:var(--color-accent-subtle)}.route-retry-button:active{transform:translateY(1px)}.route-summary-actions{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.route-share-button{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-hair), .7);width:2rem;height:2rem;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);justify-content:center;align-items:center;display:inline-flex;position:relative}.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{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;display:flex}.onboarding-hint-text{min-width:0;font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);flex:1}.onboarding-hint-close{border-radius:var(--radius-pill);background:rgba(var(--rgb-card), .85);width:1.6rem;height:1.6rem;color:var(--color-text-muted);font-size:var(--font-size-xs);cursor:pointer;border:none;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}@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:"";border-radius:var(--radius-pill);width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bottom-sheet-handle:after{width:56px}.bottom-sheet-handle{touch-action:none}.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{align-items:center;gap:var(--space-05);min-height:30px;padding-inline:var(--space-3);cursor:pointer;display:inline-flex}@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{align-items:center;display:inline-flex}.editor-save{left:50%;bottom:var(--space-3);z-index:6;gap:var(--space-2);width:min(560px,100vw - 2rem);max-height:46vh;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);border:1px solid rgba(var(--rgb-border-hair), .9);background:rgba(var(--rgb-card), .96);-webkit-backdrop-filter:blur(var(--blur-glass-soft));box-shadow:var(--shadow-overlay);color:var(--color-text-primary);font-size:var(--font-size-xs);pointer-events:auto;flex-direction:column;display:flex;position:fixed;overflow-y:auto;transform:translate(-50%)}.editor-save-row{align-items:center;gap:var(--space-3);display:flex}.editor-save-button{padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-on-accent);font-size:var(--font-size-sm);cursor:pointer;border:1px solid #0000;flex:none;font-weight:700}.editor-save-button:disabled{background:rgba(var(--rgb-border-hair), .55);color:var(--color-text-muted);cursor:default}.editor-save-status{color:var(--color-text-muted);flex:auto;line-height:1.35}.editor-save-result,.editor-save-error,.editor-save-unsupported{border-top:1px solid rgba(var(--rgb-border-hair), .7);padding-top:var(--space-2);line-height:1.4}.editor-save-ok{color:var(--color-text-heading);font-weight:600}.editor-save-solver{color:var(--color-text-muted)}.editor-save-solver-failed,.editor-save-error{color:var(--color-danger);font-weight:600}.editor-save-hint{color:var(--color-text-muted);font-weight:400}.editor-save-changes,.editor-save-unsupported ul{margin:var(--space-1) 0 0;padding-left:var(--space-4);color:var(--color-text-muted)}.editor-save-unsupported-title{color:var(--color-text-heading);font-weight:600}@media (height<=500px){.app-root{--panel-inset:var(--space-3);--panel-top:var(--space-2);--panel-bottom:var(--space-2);--panel-width:clamp(300px, 40vw, 360px);--panel-pad-x:var(--space-3)}.bottom-sheet-inner{gap:var(--space-2);padding:var(--space-2) var(--panel-pad-x) var(--space-3);overscroll-behavior:contain;overflow-y:auto}.bottom-sheet-handle{display:none}.theme-toggle-dock{top:var(--space-2);padding-right:var(--space-3)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;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);-webkit-backdrop-filter:blur(var(--blur-glass-soft))}@media (width<=1023.98px) and (height>=501px){:root.perf-interaction .app-header,:root.perf-interaction .bottom-sheet,:root.perf-interaction .bottom-sheet-inner{-webkit-backdrop-filter:none}.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{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-skip-link{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;color:inherit;font:inherit;background:0 0;border:0;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-skip-link:focus-visible{top:var(--space-2);left:var(--space-2);z-index:100000;width:auto;min-width:44px;height:auto;min-height:44px;padding:var(--space-2) var(--space-4);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;margin:0;position:fixed;overflow:visible}.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,.install-guide-close-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);box-shadow:var(--shadow-raised);border-color:#0000}.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 (width>=1024px),(height<=500px){.bottom-sheet{border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:none}}@media (width<=1023px) and (height>=501px){.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{top:calc(env(safe-area-inset-top,0px) + 4rem);width:calc(100% - var(--space-7));z-index:1;pointer-events:none;justify-content:flex-end;max-width:480px;display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (width>=430px){.theme-toggle-dock{top:calc(env(safe-area-inset-top,0px) + 4.6rem)}}@media (width>=1024px),(height<=500px){.theme-toggle-dock{width:auto;max-width:none;left:0;right:0;top:var(--space-6);padding-right:var(--space-4);transform:none}}.theme-toggle{border-radius:var(--radius-pill);border:1px solid rgba(var(--rgb-border-slate), .35);background:rgba(var(--rgb-card), .9);width:2.25rem;height:2.25rem;-webkit-backdrop-filter:blur(var(--blur-glass-soft,18px));box-shadow:var(--shadow-raised);color:var(--color-text-secondary);cursor:pointer;pointer-events:auto;transition:background-color .16s var(--ease-out-soft,ease-out), color .16s var(--ease-out-soft,ease-out), transform .16s var(--ease-out-soft,ease-out);justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.theme-toggle:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:1.05rem;height:1.05rem}.theme-toggle[data-theme-next=dark] svg path{fill:currentColor;stroke:none}.theme-toggle:hover{color:var(--color-text-primary);background:rgba(var(--rgb-card), 1)}.theme-toggle:active{transform:scale(.94)}.theme-toggle:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.app-root--splash-active .theme-toggle-dock{opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){.theme-toggle{transition:none}.theme-toggle:active{transform:none}}.theme-station-hint-dock{top:calc(env(safe-area-inset-top,0px) + 5.9rem);z-index:4;pointer-events:none;justify-content:center;width:calc(100% - 2rem);max-width:480px;display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (width>=430px){.theme-station-hint-dock{top:calc(env(safe-area-inset-top,0px) + 6.6rem)}}.theme-station-hint-dock--anchored{width:auto;max-width:none;display:block;inset:0;transform:none}.theme-station-hint{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));-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;display:inline-flex}.theme-station-hint-dock--anchored .theme-station-hint{max-width:min(20rem,100vw - 2rem);position:fixed}.theme-station-hint[data-kind=info]{padding-left:var(--space-3);color:var(--color-text-secondary)}.theme-station-hint-dot{width:.55rem;height:.55rem;margin-left:var(--space-1);border-radius:var(--radius-pill);background:var(--color-accent);box-shadow:0 0 0 2px rgba(var(--rgb-card), .9), 0 0 0 1px rgba(var(--rgb-shadow-cool), .2);flex:none}.theme-station-hint-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@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{z-index:30;padding:var(--space-4);pointer-events:auto;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.theme-error-log{gap:var(--space-2);width:100%;max-width:420px;max-height:min(80vh,560px);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);flex-direction:column;display:flex}.theme-error-log-header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.theme-error-log-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold,600);margin:0}.theme-error-log-close{border-radius:var(--radius-pill);background:rgba(var(--rgb-border-slate), .2);width:1.9rem;height:1.9rem;color:var(--color-text-secondary);cursor:pointer;border:none;font-size:1.15rem;line-height:1}.theme-error-log-note{font-size:var(--font-size-xs);color:var(--color-text-muted,var(--color-text-secondary));margin:0;line-height:1.45}.theme-error-log-list{gap:var(--space-2);flex-direction:column;flex:auto;min-height:0;display:flex;overflow-y:auto}.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{align-items:baseline;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted,var(--color-text-secondary));display:flex}.theme-error-log-kind{color:var(--color-text-accent,var(--color-accent));font-weight:700}.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);word-break:break-word;line-height:1.4}.theme-error-log-source{color:var(--color-text-muted,var(--color-text-secondary))}.theme-error-log-actions{gap:var(--space-2);display:flex}.theme-error-log-button{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid rgba(var(--rgb-border-slate), .45);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;flex:1}.theme-error-log-button--primary{background:var(--color-accent);color:var(--color-on-accent,#fff);border-color:#0000}.theme-error-log-button:disabled{opacity:.5;cursor:default}.theme-error-log-trigger{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);color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer;pointer-events:auto;background:0 0;display:inline-flex}.theme-error-log-trigger:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}
