: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: #f5f5f7;--color-bg-body-alt: #e5e7eb;--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: #ec4899;--color-accent-soft: rgba(236, 72, 153, .16);--color-accent-subtle: rgba(236, 72, 153, .08);--color-text-primary: #111827;--color-text-secondary: #4b5563;--color-text-muted: #6b7280;--map-label-color-strong: var(--color-text-secondary);--map-label-color-weak: #9ca3af;--map-line-halo-color: rgba(249, 250, 251, .96);--map-station-fill: var(--color-surface-white);--map-station-selected-halo: rgba(255, 182, 193, .45);--map-route-fallback-color: var(--color-accent);--map-endpoint-a: #22c1b4;--map-endpoint-b: #ef4444;--color-border-pink-strong: rgba(248, 187, 208, .85);--color-text-muted-soft: #9ca3af;--color-text-strong-muted: #374151;--color-text-plum: #4b164c;--color-text-transfer-pink: #b44a87;--color-text-raspberry: #be185d;--color-text-crimson: #9f1239;--color-text-violet: #6b21a8;--color-text-placeholder-pink: #d08bb2;--color-accent-outline: #ff8ac4;--color-bg-input: #f9fafb;--color-bg-input-hover: #f3f4f6;--color-danger: #b3261e;--color-warning: #f97316;--color-neutral-200: #e5e7eb;--color-neutral-300: #d1d5db;--color-surface-white: #ffffff;--color-surface-rose-50: #fff7fb;--color-surface-rose-25: #fff4fb;--color-surface-rose-100: #ffeaf8;--color-surface-rose-150: #ffe0f2;--color-surface-rose-200: #fee2f2;--color-surface-rose-300: #fecaca;--color-surface-rose-220: #fed7e2;--color-surface-rose-225: #fee2e2;--color-surface-rose-230: #fbcfe8;--color-surface-rose-bright-1: #ffeef8;--color-surface-rose-bright-2: #ffd1e3;--color-surface-lilac-50: #fdf2ff;--color-surface-lilac-100: #eef2ff;--color-surface-sky-100: #e0f2fe;--color-surface-violet-100: #f5f3ff;--color-surface-amber-50: #fefce8;--color-surface-amber-100: #fde68a;--color-surface-cream-100: #fef9c3;--color-surface-rose-highlight: #fdf2f8;--color-text-deep-plum: #2f102f;--color-text-success-strong: #166534;--color-border-neutral-soft: #e5e7eb;--color-border-neutral-strong: #d1d5db;--color-accent-salmon: #fb7185;--color-accent-hot-pink: #ff69b4;--color-accent-soft-pink-1: #ffd9f0;--color-accent-soft-pink-2: #ffc0e5;--color-accent-bubblegum: #ff9ecb;--color-accent-berry: #db2777;--radius-lg: 1.5rem;--radius-md: 1rem;--radius-sm: .75rem;--radius-pill: 999px;--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}#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:2.5rem 1.25rem 2.25rem;background:radial-gradient(circle at 0% 0%,#ffffff14,#ffffff05),radial-gradient(circle at 100% 100%,#d1d5db14,#0f172a0f);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-accent-outline);outline-offset:-3px}.app-splash--hidden{opacity:0;visibility:hidden;pointer-events:none}.app-splash-orbit{position:absolute;inset:10%;border-radius:9999px;border:none;display:none}.app-splash-orbit-inner{position:absolute;inset:13%;border-radius:inherit;background:transparent;opacity:0;filter:none}.app-splash-card{position:relative;z-index:1;width:100%;max-width:360px;padding:1.6rem 1.4rem 1.5rem;border-radius:1.6rem;background:linear-gradient(135deg,#fffffff0,#fff7fcf5);box-shadow:0 10px 26px #0f172a38,0 0 0 1px #f871be38;display:flex;flex-direction:column;align-items:center;gap:.85rem;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 .app-splash-card{border-radius:1.7rem;background:radial-gradient(circle at 0% 0%,#ffe4f1f5,#ffe4f166),linear-gradient(135deg,#fffffffa,#fff7fcfa);box-shadow:0 12px 32px #0f172a3d,0 0 0 1px #f8bbd0b3}.app-splash-hero{width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.6rem}.app-splash-hero-avatar{position:relative;width:3.6rem;height:3.6rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 0%,var(--color-surface-rose-200),var(--color-surface-rose-300)),radial-gradient(circle at 80% 100%,var(--color-surface-sky-100),var(--color-surface-violet-100));box-shadow:0 8px 20px #f871be61,0 0 0 1px #f8bbd0bf;overflow:hidden}.app-splash-hero-avatar-ring{position:absolute;inset:-18%;border-radius:inherit;background:conic-gradient(from 210deg,#f871be4d,#fbbf2440,#60a5fa47,#f871be59);opacity:.9;mix-blend-mode:screen;animation:app-splash-rays-spin 26s linear infinite}.app-splash-hero-text{flex:1;display:flex;flex-direction:column;gap:.1rem}.app-splash-logos-row{width:100%;display:flex;align-items:center;justify-content:center;gap:.75rem}.app-splash-metro-logo{width:2.6rem;height:2.6rem;border-radius:.9rem;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 0%,var(--color-surface-rose-300),var(--color-surface-rose-225));box-shadow:0 10px 24px #dc262673,0 0 0 1px #f87171b3}.app-splash-metro-m{font-weight:900;font-size:var(--font-size-2xl);color:var(--color-danger);text-shadow:0 2px 4px rgba(248,250,252,.9)}.app-splash-logo{width:4.1rem;height:4.1rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 0%,var(--color-surface-rose-200),var(--color-surface-rose-300)),radial-gradient(circle at 80% 100%,var(--color-surface-sky-100),var(--color-surface-violet-100));box-shadow:0 12px 30px #f871be66,0 0 0 1px #f472b6b3}.app-splash-logo-img{width:3.4rem;height:3.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-heart,.app-splash-star{position:absolute;width:2.3rem;height:2.3rem;opacity:0}.app-splash-heart{background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20shape-rendering='geometricPrecision'%20text-rendering='geometricPrecision'%20image-rendering='optimizeQuality'%20fill-rule='evenodd'%20clip-rule='evenodd'%20viewBox='0%200%20512%20456.075'%3e%3cpath%20fill='%23F77AA0'%20d='M253.648%2083.482c130.39-219.052%20509.899%2065.491-.513%20372.591-514.778-328.934-101.872-598.684.513-372.591z'/%3e%3cpath%20fill='%23EC557A'%20d='M121.414.647c48.667-4.845%20100.027%2017.922%20129.334%2076.927a197.378%20197.378%200%20013.538%2011.586c10.541%2034.289.093%2049.641-12.872%2050.551-18.137%201.274-20.215-14.849-24.967-27.641-23.756-63.973-57.673-99.447-100.014-110.208%201.655-.432%203.313-.838%204.981-1.215zm223.073%209.932C490.816-28.5%20661.321%20195.704%20279.469%20439.707%20561.641%20215.546%20470.391%2036.151%20344.487%2010.579z'/%3e%3cpath%20fill='%23FA9EBB'%20d='M130.561%2035.502C87.904%2031.256%2042.91%2059.4%2031.389%20101.568c-7.867%2025.592-.07%2037.051%209.607%2037.73%2013.536.948%2015.088-11.084%2018.634-20.632%2017.732-47.748%2043.045-74.225%2074.65-82.255a107.734%20107.734%200%2000-3.719-.909z'/%3e%3c/svg%3e") center/contain no-repeat;box-shadow:none;will-change:transform,opacity}.app-splash-heart:before,.app-splash-heart:after{content:none}.app-splash-star{border-radius:9999px;background:radial-gradient(circle at 50% 0%,var(--color-surface-amber-50),var(--color-surface-amber-100)),radial-gradient(circle at 80% 100%,var(--color-surface-rose-225),var(--color-warning));box-shadow:0 6px 16px #facc15a6,0 0 18px #fbbf24cc;display:none}.app-splash-heart--1{top:15%;left:14%;animation:app-splash-heart-float 11s ease-in-out infinite alternate;animation-delay:0ms}.app-splash-heart--2{top:70%;left:18%;animation:app-splash-heart-float 12s ease-in-out infinite alternate;animation-delay:80ms}.app-splash-heart--3{top:24%;right:12%;animation:app-splash-heart-float 13s ease-in-out infinite alternate;animation-delay:.14s}.app-splash-heart--4{top:42%;left:10%;animation:app-splash-heart-float 12s ease-in-out infinite alternate;animation-delay:.2s}.app-splash-heart--5{top:56%;right:18%;animation:app-splash-heart-float 13s ease-in-out infinite alternate;animation-delay:.26s}.app-splash-heart--6{top:62%;left:32%;animation:app-splash-heart-float 14s ease-in-out infinite alternate;animation-delay:.32s}.app-splash-heart--7{top:36%;right:30%;animation:app-splash-heart-float 12s ease-in-out infinite alternate;animation-delay:.38s}.app-splash-heart--8{top:70%;left:50%;animation:app-splash-heart-float 14s ease-in-out infinite alternate;animation-delay:.44s}.app-splash-heart--9{top:8%;left:50%;animation:app-splash-heart-float 15s ease-in-out infinite alternate;animation-delay:.5s}.app-splash-heart--10{top:6%;right:8%;animation:app-splash-heart-float 13s ease-in-out infinite alternate;animation-delay:.56s}.app-splash-heart--11{top:10%;left:6%;animation:app-splash-heart-float 12s ease-in-out infinite alternate;animation-delay:.62s}.app-splash-heart--12{top:82%;left:10%;animation:app-splash-heart-float 15s ease-in-out infinite alternate;animation-delay:.68s}.app-splash-heart--13{top:84%;right:16%;animation:app-splash-heart-float 16s ease-in-out infinite alternate;animation-delay:.74s}.app-splash-heart--14{top:50%;left:60%;animation:app-splash-heart-float 14s ease-in-out infinite alternate;animation-delay:.8s}.app-splash-heart--15{top:32%;left:40%;animation:app-splash-heart-float 13s ease-in-out infinite alternate;animation-delay:.86s}.app-splash-heart--16{top:88%;left:50%;animation:app-splash-heart-float 16s ease-in-out infinite alternate;animation-delay:.92s}.app-splash-star--1{top:78%;right:9%;animation:app-splash-star-twinkle 7.5s ease-in-out infinite;animation-delay:1.1s}.app-splash-star--2{top:10%;right:26%;animation:app-splash-star-twinkle 8.2s ease-in-out infinite;animation-delay:1.45s}.app-splash-star--3{top:64%;left:8%;animation:app-splash-star-twinkle 8.8s ease-in-out infinite;animation-delay:1.72s}.app-splash-sparkles{position:absolute;inset:-6%;display:none}.app-splash-sparkles .app-splash-sparkle{position:absolute;width:.55rem;height:.55rem;border-radius:9999px;background:radial-gradient(circle at 30% 0%,var(--color-surface-rose-50),var(--color-surface-rose-220)),radial-gradient(circle at 80% 100%,var(--color-surface-sky-100),var(--color-surface-rose-230));box-shadow:0 0 0 1px #f8bbd0bf,0 0 12px #f472b6a6;opacity:0;animation:app-splash-sparkle-twinkle 3s ease-in-out infinite}.app-splash-sparkles .app-splash-sparkle:nth-child(1){top:6%;left:24%;animation-delay:.12s}.app-splash-sparkles .app-splash-sparkle:nth-child(2){top:18%;right:18%;animation-delay:.24s}.app-splash-sparkles .app-splash-sparkle:nth-child(3){top:32%;left:6%;animation-delay:.36s}.app-splash-sparkles .app-splash-sparkle:nth-child(4){top:40%;right:6%;animation-delay:.48s}.app-splash-sparkles .app-splash-sparkle:nth-child(5){top:58%;left:20%;animation-delay:.6s}.app-splash-sparkles .app-splash-sparkle:nth-child(6){top:66%;right:22%;animation-delay:.72s}.app-splash-sparkles .app-splash-sparkle:nth-child(7){top:76%;left:32%;animation-delay:.84s}.app-splash-sparkles .app-splash-sparkle:nth-child(8){top:82%;right:30%;animation-delay:.96s}.app-splash-sparkles .app-splash-sparkle:nth-child(9){top:50%;left:40%;animation-delay:1.08s}.app-splash-sparkles .app-splash-sparkle:nth-child(10){top:30%;right:40%;animation-delay:1.2s}.app-splash-sparkles .app-splash-sparkle:nth-child(11){top:12%;left:44%;animation-delay:1.28s}.app-splash-sparkles .app-splash-sparkle:nth-child(12){top:88%;right:44%;animation-delay:1.36s}.app-splash-sparkles .app-splash-sparkle:nth-child(13){top:4%;right:6%;animation-delay:1.44s}.app-splash-sparkles .app-splash-sparkle:nth-child(14){top:94%;left:8%;animation-delay:1.52s}.app-splash-sparkles .app-splash-sparkle:nth-child(15){top:46%;left:48%;animation-delay:1.6s}.app-splash-sparkles .app-splash-sparkle:nth-child(16){top:54%;right:48%;animation-delay:1.68s}.app-splash-sparkles .app-splash-sparkle:nth-child(17){top:20%;left:12%;animation-delay:.18s}.app-splash-sparkles .app-splash-sparkle:nth-child(18){top:8%;right:12%;animation-delay:.3s}.app-splash-sparkles .app-splash-sparkle:nth-child(19){top:26%;right:22%;animation-delay:.42s}.app-splash-sparkles .app-splash-sparkle:nth-child(20){top:38%;left:26%;animation-delay:.54s}.app-splash-sparkles .app-splash-sparkle:nth-child(21){top:44%;right:28%;animation-delay:.66s}.app-splash-sparkles .app-splash-sparkle:nth-child(22){top:62%;left:14%;animation-delay:.78s}.app-splash-sparkles .app-splash-sparkle:nth-child(23){top:72%;right:16%;animation-delay:.9s}.app-splash-sparkles .app-splash-sparkle:nth-child(24){top:84%;left:36%;animation-delay:1.02s}.app-splash-sparkles .app-splash-sparkle:nth-child(25){top:12%;left:32%;animation-delay:1.14s}.app-splash-sparkles .app-splash-sparkle:nth-child(26){top:22%;right:34%;animation-delay:1.22s}.app-splash-sparkles .app-splash-sparkle:nth-child(27){top:34%;left:44%;animation-delay:1.3s}.app-splash-sparkles .app-splash-sparkle:nth-child(28){top:46%;right:42%;animation-delay:1.38s}.app-splash-sparkles .app-splash-sparkle:nth-child(29){top:68%;left:52%;animation-delay:1.46s}.app-splash-sparkles .app-splash-sparkle:nth-child(30){top:78%;right:52%;animation-delay:1.54s}.app-splash-sparkles .app-splash-sparkle:nth-child(31){top:90%;left:22%;animation-delay:1.62s}.app-splash-sparkles .app-splash-sparkle:nth-child(32){top:94%;right:20%;animation-delay:1.7s}.app-splash-title{margin:0;font-size:var(--font-size-hero);font-weight:800;letter-spacing:.03em}.app-splash-subtitle{margin:0;font-size:var(--font-size-sm);color:var(--color-text-crimson)}.app-splash-hello{font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:var(--font-size-2xs);color:var(--color-text-raspberry)}.app-splash-credits{margin:.35rem 0 0;font-size:var(--font-size-2xs);letter-spacing:.16em;text-transform:uppercase;color:#0f172a8c}.app-splash-badges{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.3rem;justify-content:flex-start}.app-splash-badge{padding:.25rem .55rem;border-radius:9999px;font-size:var(--font-size-2xs);font-weight:600;background:linear-gradient(135deg,#f472b629,#fbbf2424);color:var(--color-text-crimson);box-shadow:0 4px 10px #f871be59,0 0 0 1px #f8bbd0d9}.app-splash-hint{margin:.35rem 0 0;font-size:var(--font-size-xs);color:#0f172ab3}.app-splash-button{margin-top:.9rem;border-radius:9999px;border:none;padding:.75rem 1.5rem;font-size:var(--font-size-md);font-weight:700;background:linear-gradient(135deg,var(--color-accent-salmon),var(--color-accent),var(--color-warning));color:var(--color-surface-rose-50);box-shadow:0 14px 32px #be185d8c,0 0 0 1px #f8fafc99;cursor:pointer;transform:translateY(0);transition:transform .16s ease-out,box-shadow .16s ease-out,filter .16s ease-out}.app-splash-button:active{transform:translateY(1px) scale(.99);box-shadow:0 10px 24px #be185d8c,0 0 0 1px #f8fafc99;filter:brightness(.97)}.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:.35rem;padding:.45rem .55rem .55rem;border-radius:1rem;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:.45rem;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-deep-plum);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:9999px;box-shadow:0 0 0 2px #ffffffe6,0 0 0 1px #94a3b833;flex:0 0 auto}.station-pick-popover-actions{display:flex;gap:.3rem;width:100%}.station-pick-popover-button{flex:1 1 0;border:1px solid var(--color-border-soft);cursor:pointer;padding:.22rem .65rem;border-radius:9999px;font-weight:var(--font-weight-medium);font-size:var(--font-size-xs);letter-spacing:.02em;color:var(--color-text-primary);background:#ffffffe6;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[data-pressed=true]{background-color:#ec489917;border-color:#ec489973;filter:brightness(.96);transform:translateY(1px) scale(.99)}.station-pick-popover-button:hover{border-color:#ec489959;background-color:#ec48990f}.station-pick-popover-button:active{transform:translateY(1px) scale(.99);filter:brightness(.99)}.station-pick-popover-button:focus-visible{outline:3px solid var(--color-accent-outline);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:.5rem;pointer-events:auto;padding:calc(env(safe-area-inset-top,0) + .35rem) .5rem .35rem;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) + .5rem) .8rem .5rem;gap:.6rem}.app-header-logo{width:2.4rem;height:2.4rem}.app-header-logo-img{width:1.9rem;height:1.9rem}.app-header-title{font-size:calc(var(--font-size-lg) * 1.08)}.app-header-subtitle{font-size:calc(var(--font-size-sm) * 1.05)}.app-header-chip{padding:.4rem 1rem}.app-header-chip-title{font-size:calc(var(--font-size-sm) * 1.07)}.app-header-icon-button{width:2.2rem;height:2.2rem}}.app-header:before{content:"";position:absolute;inset:0;border-radius:inherit;background:transparent;opacity:0;z-index:-1}.app-header-left,.app-header-right{display:flex;align-items:center;flex-shrink:0}.app-header-left{margin-right:.25rem}.app-header-right{margin-left:.25rem}.app-header-logo{position:relative;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:9999px;background:radial-gradient(circle at 30% 0%,#fee2f2,#fecaca),radial-gradient(circle at 80% 100%,#e0f2fe,#f5f3ff);box-shadow:0 6px 16px #f871be59,0 0 0 1px #f8bbd0d9}.app-header-logo-img{width:1.6rem;height:1.6rem}.app-header-logo-initials{position:absolute;right:-.1rem;bottom:-.15rem;font-size:var(--font-size-2xs);font-weight:800}.app-header-text{display:flex;flex-direction:column;min-width:0}.app-header-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header-subtitle{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.app-header-actions{display:flex;align-items:center;gap:.5rem}.app-header-action{padding:.25rem .5rem;border-radius:.25rem;background:linear-gradient(135deg,var(--color-accent-outline),var(--color-accent-hot-pink));color:var(--color-surface-rose-25);font-size:var(--font-size-xs);cursor:pointer}.app-header-action:hover{background:linear-gradient(135deg,var(--color-accent-soft-pink-1),var(--color-accent-soft-pink-2))}.app-header-chip{flex:1;min-width:0;border-radius:9999px;border:1px solid rgba(148,163,184,.45);padding:.35rem .85rem;background:linear-gradient(135deg,#fffffffa,#fff8fcfa);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:0 10px 22px #94a3b83d;filter:brightness(1.01)}.app-header-chip:active{transform:translateY(1px) scale(.995);filter:brightness(.99)}.app-header-chip:focus-visible{outline:2px solid var(--color-accent-outline);outline-offset:2px}.app-header-chip--has-route{border-color:var(--color-accent);background:linear-gradient(135deg,#fce7f3fa,#f8bbd0f5)}.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-header-chip-meta{display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.app-header-icon-button{width:2.4rem;height:2.4rem;border-radius:9999px;border:1px solid rgba(148,163,184,.5);background:#ffffffe6;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-md);line-height:1;color:var(--color-text-primary);box-shadow:0 6px 14px #94a3b866}.app-header-icon-button:hover{background:var(--color-accent-subtle)}.app-main{flex:1;padding:3.5rem 1rem 5.25rem;overflow-y:auto;pointer-events:none}.field-suggestions{position:fixed;margin:0;padding:.25rem 0;list-style:none;border-radius:1rem;background:var(--color-surface-glass-strong);border:1px solid var(--color-border-soft);box-shadow:0 12px 28px #0f172a2e;backdrop-filter:blur(var(--blur-glass-soft));-webkit-backdrop-filter:blur(var(--blur-glass-soft));overflow:hidden;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{padding:.28rem .55rem;display:flex;align-items:center;gap:.45rem;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:9999px;background:var(--color-neutral-300);box-shadow:0 0 0 2px #ffffffe6,0 0 0 1px #0f172a1a;align-self:center;flex-shrink:0}.suggestion-item-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.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:.1rem;margin-bottom:.1rem;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:.5rem;border-radius:var(--radius-md);border:none;padding:.9rem 1.1rem;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);background:linear-gradient(135deg,var(--color-accent),#f97316);color:var(--color-surface-rose-highlight);box-shadow:0 8px 20px #0f172a59}.primary-button:active{transform:translateY(1px)}.route-placeholder{margin-top:.5rem;margin-bottom:.5rem;padding:.55rem .75rem;border-radius:.95rem;background:linear-gradient(135deg,#ffffffd1,#fff7fce6);border:1px solid rgba(248,187,208,.6);box-shadow:0 10px 26px #94a3b859,0 0 0 1px #f8bbd080;pointer-events:auto}.placeholder-text{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.error-text{margin:0;font-size:var(--font-size-sm);color:var(--color-danger)}.route-result{display:flex;flex-direction:column;gap:.6rem;padding:.85rem .85rem 1rem;margin-top:.55rem;margin-bottom:.35rem;border-radius:1.2rem;background:radial-gradient(circle at 0% 0%,#ffe6f5e6,#ffe6f54d),linear-gradient(135deg,#ffffffeb,#fff7fcfa);box-shadow:none;border:1px solid rgba(248,187,208,.7)}.route-result-scroll{display:flex;flex-direction:column;gap:.6rem;padding-bottom:.75rem;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:.3rem}}.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:.25rem .15rem .3rem;border-bottom:1px solid var(--color-border-soft)}.route-summary-main{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.summary-time{padding-right:.5rem}.summary-transfers{font-weight:var(--font-weight-medium)}.route-favorite-button{margin-left:.5rem;border-radius:9999px;border:1px solid rgba(248,187,208,.7);width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-md);background:#ffffffe6;color:#94a3b8e6;box-shadow:0 4px 10px #f8bbd080;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:radial-gradient(circle at 30% 0%,#ffe4f5,#fec5e5),linear-gradient(135deg,#ec4899,#db2777);color:#fff7fb;border-color:#f8bbd0e6;box-shadow:0 10px 22px #ec489940,0 4px 10px #f8bbd073;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:.5rem}.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:.55rem;padding:.55rem .65rem;border-radius:1rem;background:linear-gradient(135deg,#ffffffe6,#fff7fcf2);box-shadow:none;border:1px solid rgba(248,187,208,.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 .step-title{color:var(--color-text-transfer-pink)}.route-step--transfer{background:linear-gradient(135deg,#fff8ebfa,#fef0c7f5);border:1px dashed rgba(234,88,12,.7);box-shadow:none}.line-pill{width:7px;border-radius:9999px;align-self:stretch;background-color:var(--color-neutral-200);opacity:.98}.line-pill--dual{display:flex;flex-direction:column;width:8px;border-radius:9999px;overflow:hidden}.line-pill-half{flex:1}.step-dot{width:10px;height:10px;border-radius:9999px;margin-top:.2rem;background-color:var(--color-accent-bubblegum)}.step-dot--transfer{background-color:var(--color-warning)}.step-body{flex:1}.step-title{font-size:var(--font-size-sm);font-weight:600}.step-subtitle{font-size:var(--font-size-xs);color:var(--color-text-transfer-pink)}.step-meta{margin-top:.1rem;font-size:var(--font-size-xs);color:var(--color-text-muted-soft)}.step-station-list{margin:.35rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.14rem}.step-station-item{display:flex;align-items:center;gap:.35rem;font-size:var(--font-size-xs);color:var(--color-text-plum);padding:.06rem .1rem;border-radius:.35rem;background:transparent}.step-station-bullet{width:6px;height:6px;border-radius:9999px;background-color:#ec4899e6;box-shadow:0 0 0 2px #f8bbd0d9;flex-shrink:0}.step-station-name{flex:1}.smart-suggestions{margin:.3rem 0 .35rem;padding:.45rem .6rem .5rem;border-radius:.9rem;background:linear-gradient(135deg,#fffffff5,#fff7fcfa);box-shadow:0 8px 18px #0f172a33,0 0 0 1px #f8bbd08c;display:flex;flex-direction:column;gap:.4rem;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:.35rem}.smart-suggestions-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.2rem .45rem .1rem;border:none;background:transparent;color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.smart-suggestions-toggle-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted-soft)}.smart-suggestions-toggle-count{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.smart-suggestions-header{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.smart-suggestions-title-main{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.smart-suggestions-close{border:none;border-radius:9999px;width:1.8rem;height:1.8rem;display:inline-flex;align-items:center;justify-content:center;background:#f8bbd033;color:var(--color-text-muted);font-size:var(--font-size-xs)}.smart-suggestions-inline-chip{border-radius:9999px;border:1px solid rgba(148,163,184,.4);padding:.16rem .55rem;font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);background:#ffffffe6;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:.2rem}.smart-suggestions-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted-soft)}.smart-suggestions-row{display:flex;flex-wrap:wrap;gap:.3rem}.smart-suggestion-chip{border-radius:9999px;border:none;padding:.2rem .65rem;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:linear-gradient(135deg,#f472b61f,#fbbf241a);color:var(--color-text-primary);box-shadow:0 4px 10px #f8bbd073}.smart-suggestion-chip--secondary{background:linear-gradient(135deg,#818cf81f,#38bdf81f)}.smart-suggestion-chip--ghost{background:#ffffffe6;border:1px dashed rgba(148,163,184,.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:.1rem;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(148,163,184,.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:9999px;background:linear-gradient(180deg,#ffffffb3,#94a3b880)}.bottom-route-details--closed{opacity:0;transform:translateY(6px);overflow:hidden;flex:0 0 auto;min-height: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-orbit-spin{0%{transform:rotate(0) scale(.9);box-shadow:0 0 0 1px #fff1f6b3,0 14px 32px #be185d33}18%{transform:rotate(65deg) scale(1.05);box-shadow:0 0 0 3px #fff1f6f2,0 26px 60px #be185d73}35%{transform:rotate(130deg) scale(.96);box-shadow:0 0 0 2px #fff1f6d9,0 20px 45px #be185d52}52%{transform:rotate(195deg) scale(1.08);box-shadow:0 0 0 4px #fff1f6,0 30px 70px #be185d8c}75%{transform:rotate(280deg) scale(.94);box-shadow:0 0 0 2px #fff1f6d9,0 18px 38px #be185d47}to{transform:rotate(360deg) scale(.9);box-shadow:0 0 0 1px #fff1f6b3,0 14px 32px #be185d33}}@keyframes app-splash-rays-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes app-splash-backdrop-intro{0%{opacity:0;transform:scale(.96) translateY(18px)}50%{opacity:1;transform:scale(.99) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes app-splash-orbit-intro{0%{opacity:0}to{opacity:.95}}@keyframes app-splash-card-breathe{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-2px) scale(1.02)}70%{transform:translateY(0) scale(.995)}to{transform:translateY(0) scale(1)}}@keyframes app-splash-heart-float{0%{transform:translate3d(0,6px,0) scale(.96);opacity:0}6%{opacity:1}50%{transform:translate3d(0,-7px,0) scale(1.02);opacity:1}to{transform:translate3d(0,4px,0) scale(.99);opacity:.92}}@keyframes app-splash-star-twinkle{0%{transform:translateZ(0) scale(.95) rotate(0);opacity:.7;box-shadow:0 6px 14px #facc1566,0 0 12px #fbbf2499}40%{transform:translate3d(-4px,-6px,0) scale(1.08) rotate(10deg);opacity:1;box-shadow:0 8px 20px #facc15cc,0 0 24px #fbbf24f2}80%{transform:translate3d(2px,-10px,0) scale(1.02) rotate(-8deg);opacity:.9;box-shadow:0 7px 18px #facc1599,0 0 18px #fbbf24cc}to{transform:translateZ(0) scale(.95) rotate(0);opacity:.7;box-shadow:0 6px 14px #facc1566,0 0 12px #fbbf2499}}@keyframes app-splash-sparkle-twinkle{0%{opacity:0;transform:translate3d(0,4px,0) scale(.9);box-shadow:0 0 0 1px #f8bbd0b3,0 0 8px #f472b680}15%{opacity:1;transform:translateZ(0) scale(1.1);box-shadow:0 0 0 1px #f8bbd0f2,0 0 22px #f472b6}80%{opacity:1;transform:translate3d(0,-2px,0) scale(1.05);box-shadow:0 0 0 1px #f8bbd0e6,0 0 18px #f472b6e6}to{opacity:0;transform:translate3d(0,4px,0) scale(.9);box-shadow:0 0 0 1px #f8bbd099,0 0 6px #f472b666}}@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(--color-surface-rose-150),var(--color-surface-rose-100));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:.5rem;pointer-events:auto;opacity:1;transition:opacity .22s ease-out}.metro-map-zoom-button{width:2.4rem;height:2.4rem;border-radius:9999px;border:1px solid var(--color-border-pink-strong);background:radial-gradient(circle at 30% 0%,#ffe6f5fa,#ffe6f566),linear-gradient(135deg,#fffffff5,#fff7fcf5);color:var(--color-text-raspberry);font-size:var(--font-size-xl);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px #94a3b88c,0 0 0 1px #94a3b873;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-rose-bright-1),var(--color-surface-rose-bright-2));transform:translateY(-1px);box-shadow:0 10px 24px #94a3b88c}.metro-map-zoom-button:active{transform:scale(.96);box-shadow:0 8px 20px #94a3b880;filter:brightness(.96)}.metro-station-node{cursor:pointer}.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:9999px;border:1px solid var(--color-border-pink-strong);background:radial-gradient(circle at 30% 0%,#ffe6f5f5,#ffe6f566),linear-gradient(135deg,#fffffff5,#fff7fcf5);box-shadow:0 10px 26px #94a3b899,0 0 0 1px #f8bbd0cc;color:var(--color-text-raspberry);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:linear-gradient(135deg,var(--color-accent),var(--color-accent-berry));color:var(--color-surface-rose-25);box-shadow:0 10px 26px #be185d99}.editor-tools-stack{position:fixed;right:3.6rem;top:50%;transform:translateY(calc(-50% + 7rem));z-index:3;display:flex;flex-direction:row;gap:.4rem;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:9999px;padding:.35rem .75rem;border:1px solid rgba(248,187,208,.8);background:#ffffffeb;color:var(--color-text-plum);font-size:var(--font-size-xs);font-weight:600;box-shadow:0 10px 24px #0f172a2e;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:0 8px 20px #94a3b88c,0 0 0 1px #f8bbd0bf}.editor-fab--secondary{border-style:dashed;background:radial-gradient(circle at 30% 0%,#fff2f8f0,#fff2f866),linear-gradient(135deg,#fffffff5,#fffafcf5)}.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:.8rem .9rem .9rem;border-radius:.9rem;background:#fffffff7;box-shadow:0 14px 30px #0f172a38,0 0 0 1px #f8bbd099;display:flex;flex-direction:column;gap:.5rem;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:.4rem;padding-top:.4rem;border-top:1px solid rgba(248,187,208,.6);display:flex;justify-content:flex-end;gap:.5rem}.hub-editor-footer-button{border-radius:9999px;border:none;padding:.35rem .9rem;font-size:var(--font-size-xs);font-weight:600;background:linear-gradient(135deg,var(--color-accent-salmon),var(--color-accent));color:var(--color-surface-rose-50);box-shadow:0 8px 18px #be185d8c;cursor:pointer}.hub-editor-footer-history{display:flex;align-items:center;gap:.35rem}.hub-editor-footer-history-button{border-radius:9999px;border:1px solid rgba(209,213,219,.8);padding:.18rem .55rem;font-size:var(--font-size-2xs);background:#fffffff5;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(248,187,208,.6);padding-bottom:.4rem;margin-bottom:.2rem}.hub-editor-title-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.hub-editor-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-plum)}.hub-editor-close{border-radius:9999px;border:1px solid rgba(248,187,208,.9);background:#fffffff5;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-raspberry);cursor:pointer}.hub-editor-subtitle{margin-top:.2rem;font-size:var(--font-size-xs);color:var(--color-text-violet)}.hub-editor-tabs{display:flex;align-items:center;gap:.25rem;padding:.18rem;border-radius:9999px;background:#f9fafbe6}.hub-editor-tab{flex:1;border-radius:9999px;border:none;padding:.16rem .4rem;font-size:var(--font-size-2xs);background:transparent;color:var(--color-text-muted-soft);cursor:pointer;white-space:nowrap}.hub-editor-tab--active{background:#fff;color:var(--color-text-plum);box-shadow:0 3px 8px #0f172a29,0 0 0 1px #f8bbd0b3}.hub-editor-content{flex:1;min-height:0;overflow-y:auto;padding-right:.5rem}.hub-editor-section{padding-top:.2rem}.hub-editor-section-title{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-plum);margin-bottom:.15rem}.hub-editor-section-subtitle{font-size:var(--font-size-xs);color:var(--color-text-violet);margin-bottom:.2rem}.hub-editor-bulk-row{margin-top:.15rem;margin-bottom:.3rem}.hub-editor-bulk-actions{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.15rem}.hub-editor-bulk-button{border-radius:9999px;border:1px solid rgba(209,213,219,.9);padding:.18rem .6rem;font-size:var(--font-size-2xs);background:#fffffff5;color:var(--color-text-plum);cursor:pointer}.hub-editor-filter-chip{border-radius:9999px;border:1px solid rgba(209,213,219,.9);padding:.14rem .55rem;font-size:var(--font-size-2xs);background:#fffffff5;color:var(--color-text-muted);cursor:pointer}.hub-editor-filter-chip--active{border-color:#ec4899d9;background:radial-gradient(circle at 0% 0%,#ffe4f1f5,#ffe4f180),linear-gradient(135deg,#fffffffa,#fff7fcfa);color:var(--color-text-raspberry)}.hub-editor-list{list-style:none;margin:0;padding:0}.hub-editor-list-item{display:flex;align-items:center;gap:.35rem;font-size:var(--font-size-xs);color:var(--color-text-strong-muted);padding:.12rem 0}.hub-editor-list-item--clickable{cursor:pointer;border-radius:.4rem;padding:.16rem .3rem}.hub-editor-list-item--clickable:hover{background:#f9fafbf2}.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:9999px;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-plum)}.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-raspberry)}.hub-editor-connection-meta{font-size:var(--font-size-2xs);color:var(--color-text-muted)}.hub-editor-connection-toggle{border-radius:9999px;border:1px solid rgba(148,163,184,.6);padding:.1rem .5rem;font-size:var(--font-size-2xs);background:#fffffff5;color:var(--color-text-plum);cursor:pointer;white-space:nowrap}.hub-editor-connection-toggle--transfer{border-color:#ec4899d9;background:radial-gradient(circle at 0% 0%,#ffe4f1f5,#ffe4f180),linear-gradient(135deg,#fffffffa,#fff7fcfa);color:var(--color-text-raspberry)}.hub-editor-connection-minutes{width:3.1rem;border-radius:9999px;border:1px solid rgba(209,213,219,.9);padding:.05rem .4rem;font-size:var(--font-size-2xs);text-align:right;margin-right:.2rem}.hub-editor-connection-minutes-label{font-size:var(--font-size-2xs);opacity:.8}.hub-editor-edge-delete{border-radius:9999px;border:1px dashed rgba(248,187,208,.9);padding:.1rem .55rem;font-size:var(--font-size-2xs);background:#fffffff5;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:.4rem;margin-top:.25rem}.hub-editor-hub-select{flex:1;min-width:0;border-radius:9999px;border:1px solid rgba(248,187,208,.9);padding:.25rem .6rem;font-size:var(--font-size-xs);background:radial-gradient(circle at 0% 0%,#ffe6f5f5,#ffe6f580);color:var(--color-text-plum)}.hub-editor-hub-new{flex-shrink:0;border-radius:9999px;border:1px dashed rgba(248,187,208,.9);padding:.2rem .55rem;font-size:var(--font-size-xs);background:#fffffff5;color:var(--color-text-raspberry);cursor:pointer}.hub-editor-hub-remove-station{margin-left:.25rem;border-radius:9999px;border:1px dashed rgba(209,213,219,.9);padding:.1rem .45rem;font-size:var(--font-size-2xs);background:#fffffff5;color:var(--color-text-muted);cursor:pointer}.hub-editor-hub-remove-station:hover{color:var(--color-danger);border-color:var(--color-surface-rose-300)}.hub-editor-field{display:flex;flex-direction:column;gap:.15rem;margin-top:.25rem}.hub-editor-field-label{font-size:var(--font-size-xs);color:var(--color-text-violet)}.hub-editor-station-title-input{border-radius:9999px;border:1px solid rgba(248,187,208,.9);padding:.2rem .6rem;font-size:var(--font-size-xs)}.hub-editor-line-select{border-radius:9999px;border:1px solid rgba(248,187,208,.9);padding:.2rem .6rem;font-size:var(--font-size-xs);background:radial-gradient(circle at 0% 0%,#ffe6f5f5,#ffe6f580);color:var(--color-text-plum)}.hub-editor-hub-meta-row{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-top:.25rem;margin-bottom:.25rem}.hub-editor-hub-meta-label{font-size:var(--font-size-xs);color:var(--color-text-violet)}.hub-editor-hub-meta-input-wrap{display:flex;align-items:center;gap:.25rem}.hub-editor-hub-minutes-input{width:3.1rem;border-radius:9999px;border:1px solid rgba(209,213,219,.9);padding:.05rem .4rem;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:.35rem;display:flex;align-items:center;gap:.35rem}.hub-editor-hub-add-input{flex:1;min-width:0;border-radius:9999px;border:1px solid rgba(209,213,219,.9);padding:.18rem .55rem;font-size:var(--font-size-xs)}.hub-editor-hub-add-button{flex-shrink:0;border-radius:9999px;border:1px dashed rgba(248,187,208,.9);padding:.18rem .6rem;font-size:var(--font-size-xs);background:#fffffff5;color:var(--color-text-plum);cursor:pointer}.hub-editor-edge-add-row{margin-top:.35rem;display:flex;align-items:center;gap:.35rem}.hub-editor-edge-add-input{flex:1;min-width:0;border-radius:9999px;border:1px solid rgba(209,213,219,.9);padding:.18rem .55rem;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:.18rem;font-size:var(--font-size-2xs);color:var(--color-danger)}.hub-editor-edge-add-button{flex-shrink:0;border-radius:9999px;border:1px dashed rgba(248,187,208,.9);padding:.18rem .6rem;font-size:var(--font-size-xs);background:#fffffff5;color:var(--color-text-plum);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:1.3rem;border-top-right-radius:1.3rem;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:.6rem;width:100%;box-sizing:border-box;padding:.85rem .9rem calc(env(safe-area-inset-bottom,0) + .95rem);border-top-left-radius:1.5rem;border-top-right-radius:1.5rem;border-bottom-left-radius:0;border-bottom-right-radius:0;background:var(--color-surface-glass-strong);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft);backdrop-filter:blur(var(--blur-glass-soft)) saturate(160%);-webkit-backdrop-filter:blur(var(--blur-glass-soft)) saturate(160%);overflow:visible;touch-action:pan-x;-ms-touch-action:pan-x}.bottom-sheet-min{display:flex;flex-direction:column;gap:.6rem;overflow:visible}.bottom-fields-row{display:flex;flex-direction:row;align-items:stretch;gap:.5rem}.bottom-field{position:relative;flex:1;min-width:0}.bottom-input{width:100%;box-sizing:border-box;border-radius:var(--radius-md);border:1px solid rgba(148,163,184,.35);padding:.6rem 1.75rem .6rem .85rem;font-size:var(--font-size-xs);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}.bottom-input--with-line-dot{padding-left:1.7rem}.bottom-input-line-dot{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);width:.55rem;height:.55rem;border-radius:9999px;background:var(--color-neutral-300);box-shadow:0 0 0 1px #0f172a14;pointer-events:none}.bottom-input::placeholder{color:var(--color-text-placeholder-pink)}.bottom-input:focus{outline:2px solid var(--color-accent-outline);outline-offset:1px;border-color:var(--color-accent-outline)}.bottom-input--active{border-color:var(--color-accent)}.bottom-input-clear{position:absolute;right:.22rem;top:50%;transform:translateY(calc(-50% - 2px));width:1.2rem;height:1.2rem;border-radius:9999px;border:none;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-placeholder-pink);font-size:.95rem;line-height:1;cursor:pointer}.bottom-input-clear:hover{background-color:var(--color-accent-subtle);color:var(--color-text-raspberry)}.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:.15rem}.route-choices-controls{display:flex;justify-content:flex-end;gap:.4rem}.bottom-route-summary-scroll{display:flex;align-items:center;gap:.5rem;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:9999px;padding:.6rem .95rem;border:1px solid rgba(248,187,208,.7);background-color:#fffffff5;color:var(--color-text-deep-plum);display:flex;flex-direction:column;align-items:flex-start;box-shadow:none;margin-block:.05rem;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:#f8bbd0f2}.bottom-route-chip--active{background-color:#ffedf8fa;border-color:#f472b6f2}.bottom-route-chip--active .bottom-route-chip-main{color:var(--color-text-raspberry)}.bottom-route-chip--active .bottom-route-chip-sub{color:var(--color-text-crimson)}.bottom-route-chip-main{font-size:var(--font-size-sm);font-weight:600;display:flex;flex-wrap:wrap;align-items:baseline;gap:.45rem}.bottom-route-chip-feature{font-size:.68rem;font-weight:600;text-transform:none;letter-spacing:normal;color:var(--color-text-secondary)}.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:.15rem;margin-bottom:.4rem}.route-choices-desktop-track{display:flex;gap:.5rem;padding-bottom:.1rem;scrollbar-width:none;-ms-overflow-style:none}.route-choices-desktop-track::-webkit-scrollbar{width:0;height:0}.route-choice-chip{padding-inline:.9rem}.route-scroll-arrow{flex-shrink:0;width:1.9rem;height:1.9rem;border-radius:9999px;border:1px solid rgba(248,187,208,.8);background-color:#fffffff5;color:var(--color-text-raspberry);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none}.route-scroll-arrow:active{transform:translateY(1px);box-shadow:none}.bottom-sheet-handle{align-self:center;width:56px;height:auto;border-radius:9999px;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:9999px;background-color:#94a3b8f2}.update-banner{position:fixed;left:50%;bottom:1rem;transform:translate(-50%);z-index:5;display:inline-flex;align-items:center;gap:.75rem;padding:.55rem .85rem;border-radius:9999px;background:radial-gradient(circle at 0% 0%,#ffe6f5eb,#ffe6f54d),linear-gradient(135deg,#fffffff0,#fff7fcfa);backdrop-filter:blur(18px) saturate(170%);-webkit-backdrop-filter:blur(18px) saturate(170%);box-shadow:0 18px 40px #94a3b88c,0 0 0 1px #f8bbd0cc;animation:banner-slide-up .32s var(--ease-out-soft) both;will-change:transform,opacity}.update-banner-button{border:none;border-radius:9999px;padding:.35rem .9rem;font-size:var(--font-size-xs);font-weight:600;background:linear-gradient(135deg,var(--color-accent-salmon),var(--color-accent));color:var(--color-surface-rose-50);box-shadow:0 8px 18px #be185d80;cursor:pointer}.update-banner-button:active{transform:translateY(1px)}.update-banner-icon{width:1.9rem;height:1.9rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 0%,var(--color-surface-rose-200),var(--color-surface-rose-300)),radial-gradient(circle at 80% 100%,var(--color-surface-sky-100),var(--color-surface-violet-100));box-shadow:0 8px 18px #f871be80,0 0 0 1px #f8bbd0e6;font-size:var(--font-size-md);color:var(--color-text-raspberry);animation:update-icon-pop .42s cubic-bezier(.16,1,.3,1) .14s both}.update-banner-content{display:flex;flex-direction:column;gap:.05rem}.update-banner-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-plum)}.update-banner-subtitle{font-size:var(--font-size-xs);color:var(--color-text-muted)}.update-banner-actions{display:inline-flex;align-items:center;gap:.5rem}.update-banner-later{border:1px solid rgba(248,187,208,.85);border-radius:9999px;padding:.35rem .85rem;font-size:var(--font-size-xs);font-weight:600;background:#ffffffe0;color:var(--color-text-plum);box-shadow:none;cursor:pointer}.update-banner-later:hover{background:#fffffff5}.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:1.5rem 1.1rem;background:radial-gradient(circle at top,#0f172aa6,#0f172ad9);pointer-events:auto;animation:modal-backdrop-fade .22s ease-out both;will-change:opacity}.install-guide-card{width:100%;max-width:420px;border-radius:1.5rem;padding:1.25rem 1.15rem 1.1rem;background:radial-gradient(circle at 0% 0%,#ffe6f5f5,#ffe6f566),linear-gradient(135deg,#fffffffa,#fff7fcfa);backdrop-filter:blur(26px) saturate(180%);-webkit-backdrop-filter:blur(26px) saturate(180%);box-shadow:0 30px 70px #0f172abf,0 0 0 1px #f8bbd0cc;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:center;gap:.75rem;margin-bottom:.75rem}.install-guide-logo{flex-shrink:0;width:2.6rem;height:2.6rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 0%,#fee2f2,#fecaca),radial-gradient(circle at 80% 100%,#e0f2fe,#f5f3ff);box-shadow:0 10px 24px #f871be80,0 0 0 1px #f8bbd0e6;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 .4rem;font-size:var(--font-size-lg);font-weight:700;color:var(--color-text-plum)}.install-guide-subtitle{margin:0 0 .75rem;font-size:var(--font-size-sm);color:var(--color-text-muted)}.install-guide-platform-row{margin:0 0 .75rem}.install-guide-platform-chip{display:inline-flex;align-items:center;padding:.25rem .7rem;border-radius:9999px;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;background-color:#f8bbd02e;color:var(--color-text-transfer-pink);border:1px solid rgba(248,187,208,.7);animation:chip-pop-in .26s cubic-bezier(.16,1,.3,1) .22s both}.install-guide-steps{margin:0 0 .75rem;padding-left:1.1rem;font-size:var(--font-size-sm);color:var(--color-text-plum)}.install-guide-steps li+li{margin-top:.25rem}.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:9999px;padding:.45rem .9rem;font-size:var(--font-size-sm);font-weight:600;background:linear-gradient(135deg,var(--color-surface-rose-200),var(--color-neutral-200));color:var(--color-text-plum);box-shadow:0 8px 20px #94a3b873;cursor:pointer}@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:1.2rem;border-top-right-radius:1.2rem;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:1.5rem;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:.8rem;padding:.85rem .9rem .95rem;border-radius:1.5rem;background:var(--color-surface-glass-strong);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft);backdrop-filter:blur(var(--blur-glass-soft)) saturate(160%);-webkit-backdrop-filter:blur(var(--blur-glass-soft)) saturate(160%);max-height:100%;overflow:visible}.bottom-input{padding:.6rem 1.75rem .6rem .85rem;font-size:var(--font-size-xs);border-radius:9999px;border-color:#94a3b859;background:#fffffff5;box-shadow:none}.bottom-input--with-line-dot{padding-left:1.85rem}.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:.3rem}.swap-button{transform:rotate(0);width:2.05rem;height:2.05rem;border-radius:9999px;border:1px solid rgba(148,163,184,.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:.55rem;row-gap:.5rem;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-heart,.app-splash-star,.app-splash-sparkle,.app-splash-hero-avatar-ring{animation:none!important}.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%)}}:root{color-scheme:light}body{background:radial-gradient(circle at 0% 0%,#ffe4f1f5,#ffe4f166),radial-gradient(circle at 100% 100%,#dbeafef5,#dbeafe66),radial-gradient(circle at 15% 100%,rgba(254,249,195,.9),transparent 60%),linear-gradient(135deg,var(--color-surface-lilac-50) 0%,var(--color-surface-rose-200) 32%,var(--color-surface-lilac-100) 68%,var(--color-surface-cream-100) 100%)}#root{background:radial-gradient(circle at 0% 0%,#fffffff5,#ffffffb3),radial-gradient(circle at 100% 100%,#fffffff5,#e5e7ebbf);color:var(--color-text-primary)}.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-soft);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,.install-guide-card,.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-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,.bottom-route-chip-sub{color:var(--color-text-muted)}.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:0 16px 40px #0f172a59;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:linear-gradient(135deg,var(--color-accent),var(--color-warning));color:var(--color-surface-rose-highlight);border-color:transparent}.primary-button:hover,.update-banner-button:hover{filter:brightness(1.03)}.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%,#fffffff5,#e5e7ebe6)}.install-guide-backdrop{background:radial-gradient(circle at top,#0f172a2e,#0f172a66)}.route-steps{gap:.65rem}.step-station-list{gap:.22rem}.route-result,.route-step{box-shadow:none}
