@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=dark]{--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-12:12px;--space-14:14px;--space-16:16px;--space-20:20px;--space-24:24px;--space-32:32px;--radius-tile:12px;--radius-control:14px;--radius-card:18px;--radius-card-lg:22px;--radius-panel:26px;--radius-sheet:28px;--radius-rise:30px;--radius-pill:999px;--touch:44px;--icon:22px;--icon-sm:16px;--icon-nav:19px;--tile:38px;--tile-lg:56px;--round-button:44px;--button:46px;--button-sm:36px;--field:52px;--row:64px;--seg:32px;--chip:30px;--toggle-w:44px;--toggle-h:26px;--tabbar:62px;--tabbar-bottom:16px;--sidebar:176px;--list-pane:316px;--panel:300px;--phone-w:440px;--phone-h:956px;--glass-blur:22px;--glass-saturate:1.5;--focus-width:2px;--route-width:1.4px;--route-width-one:2.4px;--hairline:1px;--font-sans:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--surface-bg:#050912;--surface-card:#111a2b;--surface-card-2:#1a2439;--surface-raised:#1a2439;--surface-sidebar:#080d18;--surface-sheet:#0b111e;--surface-sidebar-on:#ffffff1a;--surface-scrim:#02040a99;--text-fg:#f2f5fa;--text-mute:#8a96ab;--text-disabled:#5a6680;--text-on-map:#f2f5fa;--text-on-map-mute:#ffffffb8;--text-on-sidebar:#f2f5fa;--text-on-sidebar-mute:#f2f5fa99;--line-hair:#ffffff17;--line-sidebar:#ffffff17;--line-control:#66758f;--accent-main:#7cc4ff;--accent-on:#050912;--accent-soft:#7cc4ff24;--focus-ring:#3b82c4;--primary-fill:#f2f5fa;--primary-on:#050912;--seg-track:#ffffff17;--seg-on:#f2f5fa;--seg-on-text:#050912;--toggle-thumb:#fff;--glass-fill:#0e14218f;--glass-line:#ffffff24;--glass-seg-on:#fff;--glass-seg-on-text:#050912;--glass-card:#ffffff14;--glass-accent:#7cc4ff;--mapsheet-fill:#0e14218f;--mapsheet-line:#ffffff24;--mapsheet-text:#f2f5fa;--mapsheet-mute:#ffffffb8;--mapsheet-card:#ffffff14;--success-ink:#6fd3a8;--success-soft:#6fd3a824;--warning-ink:#f2c46d;--warning-soft:#f2c46d24;--error-ink:#ff9a94;--error-soft:#ff9a9424;--error-on:#050912;--info-ink:var(--accent-main);--info-soft:var(--accent-soft);--status-upcoming:var(--accent-main);--status-landed:var(--success-ink);--status-delayed:var(--warning-ink);--kind-flight:#7cc4ff;--kind-train:#7fd6c8;--kind-bus:#b9b3f5;--kind-stay:#3b82c4;--kind-on:#fff;--tile-fallback:#3a4a66;--chart-bar:#34466a;--rating-star:#ffd166;--rating-off:#ffffff2e;--full-1:#cfe9ff;--full-2:#9fd0fb;--full-3:#6fa9de;--full-4:#4a7fb5;--full-5:#34587f;--map-space:#02040a;--map-ocean:#0a1626;--map-ocean-political:#0f2747;--map-globe-hi:#122036;--map-globe-lo:#070d18;--map-globe-political-hi:#17406f;--map-globe-political-lo:#0a1d3a;--map-land:#26344d;--map-land-been:#4b77b3;--map-border:#ffffff24;--map-border-political:#050912bf;--map-graticule:#ffffff0f;--map-glow:#6eb4ff6b;--map-route:#9ad4ff;--map-route-satellite:#fff;--map-route-train:#7fd6c8;--map-route-bus:#b9b3f5;--map-route-estimated:#ffffff8c;--map-visited:#5282c0;--map-lived:#e3f2ff;--map-city:#fff;--device-black:#000;--map-pin:var(--kind-stay);--map-pol-1:#3d6fa8;--map-pol-2:#4a8f7b;--map-pol-3:#8a6fb0;--map-pol-4:#b08a4f;--map-pol-5:#a8617a;--map-pol-6:#5f8fb5;--map-pol-7:#7a9a55;--map-pol-8:#9a7a5a;--shadow-float:0 6px 24px #0006;--shadow-panel:0 10px 40px #00000059}[data-theme=light]{--surface-bg:#fff;--surface-card:#f2f4f8;--surface-card-2:#e8ecf2;--surface-raised:#fff;--surface-sidebar:#0a1730;--surface-sheet:#fff;--surface-scrim:#0a173073;--text-fg:#0b1220;--text-mute:#5f6979;--text-disabled:#a3abb8;--line-hair:#e7eaf0;--line-sidebar:#fff0;--line-control:#748092;--accent-main:#2f6fb6;--accent-on:#fff;--accent-soft:#e6eff9;--primary-fill:#0a1730;--primary-on:#fff;--seg-track:#e8ecf2;--seg-on:#fff;--seg-on-text:#0b1220;--mapsheet-fill:#fff;--mapsheet-line:#fff0;--mapsheet-text:#0b1220;--mapsheet-mute:#5f6979;--mapsheet-card:#f2f4f8;--success-ink:#1b7553;--success-soft:#e3f3ec;--warning-ink:#855600;--warning-soft:#fbf0d9;--error-ink:#b3362f;--error-soft:#fbe6e4;--error-on:#fff;--kind-flight:#2f6fb6;--kind-train:#1d766d;--kind-bus:#5a53b0;--tile-fallback:#5b6779;--chart-bar:#b9c4d4;--rating-star:#0b1220;--rating-off:#d5dae2;--full-1:#12335c;--full-2:#2f6fb6;--full-3:#5f95d0;--full-4:#94b9e3;--full-5:#c5d9ef;--map-space:#0a1730;--shadow-float:0 6px 24px #0a173024}:root{--font-sans:"Geist Variable", "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--ease:cubic-bezier(.2,.8,.2,1);--safe-t:env(safe-area-inset-top);--safe-b:env(safe-area-inset-bottom);--safe-l:env(safe-area-inset-left);--safe-r:env(safe-area-inset-right);color-scheme:dark}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--surface-bg);height:100%;color:var(--text-fg);font:400 15px/1.4 var(--font-sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0}body{overflow:hidden}#root{height:100dvh}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}input,textarea,select{font:400 16px/1.3 var(--font-sans);color:var(--text-fg)}:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}h1,h2,h3,p{margin:0}.i{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}.mute{color:var(--text-mute)}.tab{font-variant-numeric:tabular-nums}.vh{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}::view-transition-old(root),::view-transition-new(root){animation-duration:.22s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.shell{flex-direction:column;height:100dvh;display:flex;position:relative}.page{-webkit-overflow-scrolling:touch;min-height:0;padding:calc(var(--safe-t) + 10px) calc(16px + var(--safe-r)) calc(110px + var(--safe-b)) calc(16px + var(--safe-l));overscroll-behavior:contain;flex:1;overflow:hidden auto}.page--flush{padding:0}.hd{align-items:center;gap:8px;min-height:44px;display:flex}.hd .wordmark{color:var(--text-fg)}.hd__sp{flex:1}.title{font:600 26px/1.15 var(--font-sans);letter-spacing:-.02em;align-items:baseline;gap:8px;margin:10px 0 12px;display:flex}.title small{font:500 13px var(--font-sans);color:var(--text-mute);letter-spacing:0}.label{font:600 12px/1 var(--font-sans);color:var(--text-mute);letter-spacing:.02em;align-items:center;gap:8px;margin:18px 4px 8px;display:flex}.tabbar{z-index:30;left:50%;bottom:calc(var(--safe-b) + 10px);background:var(--glass-fill);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-line);box-shadow:var(--shadow-float);border-radius:999px;align-items:center;gap:2px;padding:6px;display:flex;position:fixed;transform:translate(-50%)}:root[data-theme=light] .tabbar{border-color:var(--line-hair);background:#ffffffd1}.tabbar>a{width:54px;height:46px;color:var(--text-mute);transition:color .18s var(--ease), transform .18s var(--ease);border-radius:999px;place-items:center;display:grid;position:relative}.tabbar>a[aria-current=page]{color:var(--text-fg)}.tabbar>a:active{transform:scale(.92)}.tabbar>a[data-badge]:after{content:"";background:var(--accent-main);border-radius:50%;width:7px;height:7px;position:absolute;top:10px;right:13px}.tabbar>.scanbtn{background:var(--primary-fill);width:58px;height:46px;color:var(--primary-on)}.tabbar>.scanbtn .i{width:24px;height:24px}.wide{grid-template-columns:var(--sidebar) var(--list-pane) minmax(0, 1fr);background:var(--surface-bg);height:100dvh;display:grid}.wide.is-narrow{grid-template-columns:72px var(--list-pane) minmax(0, 1fr)}.wide.no-list{grid-template-columns:var(--sidebar) minmax(0, 1fr)}.wide.is-narrow.no-list{grid-template-columns:72px minmax(0,1fr)}.wide>*{min-width:0}.side{background:var(--surface-sidebar);color:var(--text-on-sidebar);padding:calc(var(--safe-t) + 18px) 10px calc(var(--safe-b) + 14px) calc(10px + var(--safe-l));flex-direction:column;gap:4px;display:flex}.side .wordmark{color:var(--text-on-sidebar);margin:2px 10px 22px}.side .mark{color:var(--text-on-sidebar);margin:0 auto 22px}.side a{height:40px;color:var(--text-on-sidebar-mute);font:500 14px var(--font-sans);transition:background .18s var(--ease), color .18s;border-radius:12px;align-items:center;gap:12px;padding:0 12px;display:flex}.side a:hover{background:#ffffff0d}.side a[aria-current=page]{background:var(--surface-sidebar-on);color:var(--text-on-sidebar)}.side a .dot{background:var(--accent-main);border-radius:50%;width:7px;height:7px;margin-left:auto}.side__sp{flex:1}.side .scanbtn{background:var(--text-on-sidebar);color:#050912;border-radius:999px;justify-content:flex-start;height:46px;font-weight:600}.side .scanbtn kbd{font:500 11px var(--font-sans);opacity:.5;margin-left:auto}.is-narrow .side a{justify-content:center;padding:0}.is-narrow .side a span,.is-narrow .side .scanbtn kbd{display:none}.is-narrow .side .scanbtn{justify-content:center;width:48px;margin:0 auto}.listpane{border-right:1px solid var(--line-hair);overscroll-behavior:contain;padding:calc(var(--safe-t) + 14px) 12px 40px;overflow-y:auto}.detail{overscroll-behavior:contain;position:relative;overflow-y:auto}.detail__in{max-width:760px;margin:0 auto;padding:0 24px 60px}.detail__empty{height:100%;color:var(--text-mute);place-items:center;display:grid}.wide .page{padding:calc(var(--safe-t) + 14px) 28px 60px}.rows{flex-direction:column;gap:8px;display:flex}.row{background:var(--surface-card);border-radius:var(--radius-card);transition:background .2s,box-shadow .2s;overflow:hidden}.row__main{text-align:left;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 14px;display:flex}.row__route{min-width:0;font:500 17px/1.2 var(--font-sans);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:6px;display:flex;overflow:hidden}.row__route .arrow{color:var(--text-mute);font-weight:300}.row__route--ground{font-size:15px;font-weight:600}.row__meta{text-align:right;flex:none}.row__date{font:600 12px/1.3 var(--font-sans);font-variant-numeric:tabular-nums}.row__sub{font:400 11.5px/1.4 var(--font-sans);color:var(--text-mute);font-variant-numeric:tabular-nums}.row--train{background:color-mix(in srgb, var(--kind-train) 14%, var(--surface-card))}.row--bus{background:color-mix(in srgb, var(--kind-bus) 14%, var(--surface-card))}.row.is-sel{box-shadow:inset 0 0 0 1.5px var(--accent-main)}.row__wait{background:var(--accent-main);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.row__more{transition:grid-template-rows .32s var(--ease);grid-template-rows:0fr;display:grid}.row.open .row__more{grid-template-rows:1fr}.row__more>div{overflow:hidden}.row__body{flex-direction:column;gap:12px;padding:0 14px 14px;display:flex}.row__line{font:500 13px var(--font-sans);color:var(--text-mute);align-items:center;gap:10px;display:flex}.row__line b{color:var(--text-fg);font-weight:600}.row__icons{flex-wrap:wrap;gap:6px;display:flex}.row__icons span{background:var(--surface-card-2);height:28px;font:500 12px var(--font-sans);color:var(--text-mute);border-radius:999px;align-items:center;gap:5px;padding:0 9px;display:inline-flex}.row__icons .i{width:15px;height:15px}.row__foot{align-items:center;gap:8px;display:flex}.row__foot .sp{flex:1}.check{border:1.5px solid var(--line-control);border-radius:8px;flex:none;place-items:center;width:24px;height:24px;transition:all .15s;display:grid}.check.on{background:var(--accent-main);border-color:var(--accent-main);color:var(--accent-on)}.citycodes{align-items:center;gap:10px;display:flex}.citycodes .c{flex-direction:column;gap:4px;min-width:0;display:flex}.citycodes .c:last-child{text-align:right;align-items:flex-end}.citycodes .c span{font:500 12px var(--font-sans);color:var(--text-mute);align-items:center;gap:6px;display:flex}.citycodes .line{background:var(--line-control);opacity:.7;border-radius:2px;flex:1;min-width:30px;height:2px;position:relative}.citycodes .line .i{color:var(--kind-flight);background:var(--surface-card);box-sizing:content-box;animation:glide 1.4s var(--ease) both;padding:0 4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}@keyframes glide{0%{opacity:0;left:0}to{opacity:1;left:50%}}.upcoming{background:var(--surface-card);border-radius:var(--radius-card-lg);border:1px solid color-mix(in srgb, var(--accent-main) 35%, transparent);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.upcoming__top{font:600 12px var(--font-sans);justify-content:space-between;align-items:center;display:flex}.pill{height:24px;font:600 11.5px var(--font-sans);background:var(--accent-soft);color:var(--accent-main);border-radius:999px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.pill--ok{background:var(--success-soft);color:var(--success-ink)}.pill--warn{background:var(--warning-soft);color:var(--warning-ink)}.pill--mute{background:var(--surface-card-2);color:var(--text-mute)}.pill .live{background:currentColor;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out 3 live}@keyframes live{50%{opacity:.3}}.big{font:200 44px/1 var(--font-sans);letter-spacing:-.045em}.waitrow{border-radius:var(--radius-card);background:var(--surface-card);align-items:center;gap:12px;padding:12px 14px;display:flex}.waitrow>div{flex:1}.onthisday{border-radius:var(--radius-card);background:var(--accent-soft);color:var(--text-fg);font:500 13px var(--font-sans);text-align:left;align-items:center;gap:10px;width:100%;margin-bottom:8px;padding:10px 14px;display:flex}.tile{object-fit:cover;color:#fff;letter-spacing:.02em;flex:none;place-items:center;font-weight:700;display:grid}.tile--kind{color:var(--kind-on)}.tile--train{background:var(--kind-train);color:#05201d}.tile--bus{background:var(--kind-bus);color:#15123a}.tile--stay{background:var(--kind-stay)}.tile--flight{background:var(--kind-flight)}.flag{box-shadow:0 0 0 1px var(--line-hair);object-fit:cover;vertical-align:middle;border-radius:3px;flex:none;display:inline-block}.stars{gap:2px;display:inline-flex}.star svg{fill:var(--rating-off);transition:fill .15s, transform .18s var(--ease);display:block}.star.on svg{fill:var(--rating-star)}.stars--edit .star{padding:6px}.star.pop svg{transform:scale(1.35)}.smark{width:22px;height:22px;font:700 13px var(--font-sans);border-radius:50%;flex:none;place-items:center;display:inline-grid}.smark--yes{background:var(--success-soft);color:var(--success-ink)}.smark--no{background:var(--error-soft);color:var(--error-ink)}.smark--paid{background:var(--warning-soft);color:var(--warning-ink)}.btn{height:var(--button);font:600 14px var(--font-sans);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;transition:transform .12s,background .18s,opacity .18s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45}.btn--sm{height:var(--button-sm);padding:0 14px;font-size:13px}.btn--block{width:100%}.btn--primary{background:var(--primary-fill);color:var(--primary-on)}.btn--secondary{background:var(--surface-card-2);color:var(--text-fg)}.btn--quiet{color:var(--text-fg);padding:0 10px}.btn--danger{background:var(--error-soft);color:var(--error-ink)}.btn--accent{background:var(--accent-main);color:var(--accent-on)}.rbtn{width:var(--round-button);height:var(--round-button);background:var(--surface-card);color:var(--text-fg);border-radius:50%;flex:none;place-items:center;transition:transform .12s,background .18s;display:grid}.rbtn:active{transform:scale(.92)}.rbtn--glass{background:var(--glass-fill);color:var(--text-on-map);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}.rbtn.is-on{background:var(--glass-seg-on);color:var(--glass-seg-on-text)}.seg{background:var(--seg-track);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.seg button{height:30px;font:600 12.5px var(--font-sans);color:var(--text-mute);white-space:nowrap;border-radius:999px;padding:0 13px;transition:background .18s,color .18s}.seg button.on{background:var(--seg-on);color:var(--seg-on-text)}.seg--glass{background:var(--glass-fill);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(var(--glass-blur))}.seg--glass button{color:var(--text-on-map-mute)}.seg--glass button.on{background:var(--glass-seg-on);color:var(--glass-seg-on-text)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{height:var(--chip);background:var(--surface-card-2);font:500 12.5px var(--font-sans);color:var(--text-fg);border-radius:999px;align-items:center;display:inline-flex}.chip>button:first-child{align-items:center;gap:5px;height:100%;padding:0 12px;display:inline-flex}.chip.on{background:var(--primary-fill);color:var(--primary-on)}.chip__x{opacity:.7;place-items:center;height:100%;padding:0 9px 0 0;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field>span{font:600 12px var(--font-sans);color:var(--text-mute)}.input{height:var(--field);border-radius:var(--radius-control);background:var(--surface-card);border:1px solid #0000;outline:none;width:100%;padding:0 14px;transition:border-color .15s}.input:focus{border-color:var(--accent-main)}.input.missing{border:1.5px dashed var(--warning-ink)}textarea.input{resize:vertical;height:auto;min-height:90px;padding:12px 14px}.search{background:var(--surface-card);height:44px;color:var(--text-mute);border-radius:999px;align-items:center;gap:8px;padding:0 14px;display:flex}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0}.spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}.spin--lg{width:26px;height:26px;color:var(--text-mute)}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--text-mute);flex-direction:column;align-items:center;gap:8px;padding:70px 24px;display:flex}.empty h3{color:var(--text-fg);font:600 17px var(--font-sans)}.empty p{max-width:280px;margin-bottom:8px;font-size:13.5px}.empty__icon{background:var(--surface-card);border-radius:50%;place-items:center;width:52px;height:52px;margin-bottom:4px;display:grid}.offline{z-index:40;top:calc(var(--safe-t) + 6px);background:var(--surface-card-2);height:32px;color:var(--text-mute);font:500 12px var(--font-sans);box-shadow:var(--shadow-float);border-radius:999px;align-items:center;gap:8px;padding:0 14px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.sheet-wrap{z-index:60;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-wrap--center{align-items:center}.scrim{background:var(--surface-scrim);animation:.25s both fade;position:absolute;inset:0}@keyframes fade{0%{opacity:0}}.sheet{width:100%;max-height:calc(100dvh - var(--safe-t) - 24px);background:var(--surface-sheet);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;padding:0 16px calc(var(--safe-b) + 16px);animation:rise .32s var(--ease) both;transition:transform .25s var(--ease);box-shadow:var(--shadow-panel);position:relative;overflow-y:auto}.sheet--full{height:calc(100dvh - var(--safe-t) - 12px)}.sheet__grab{z-index:2;touch-action:none;cursor:grab;background:var(--surface-sheet);place-items:center;height:26px;margin:0 -16px;display:grid;position:sticky;top:0}.sheet__grab i{background:var(--line-control);opacity:.6;border-radius:3px;width:38px;height:5px}@keyframes rise{0%{transform:translateY(100%)}}@media (width>=700px){.sheet-wrap{align-items:center}.sheet{border-radius:var(--radius-panel);width:min(560px,100vw - 48px);max-height:min(860px,100dvh - 48px);animation:pop .26s var(--ease) both;padding-bottom:20px}.sheet--full{height:min(820px,100dvh - 48px)}.sheet__grab{height:18px}.sheet__grab i{display:none}}@keyframes pop{0%{opacity:0;transform:scale(.96)}}.dialog{background:var(--surface-sheet);border-radius:var(--radius-panel);width:min(380px,100vw - 32px);animation:pop .22s var(--ease) both;box-shadow:var(--shadow-panel);flex-direction:column;gap:8px;padding:22px;display:flex;position:relative}.dialog h3{font:600 18px var(--font-sans)}.dialog p{color:var(--text-mute);font-size:14px}.dialog__actions{gap:8px;margin-top:12px;display:flex}.dialog__actions .btn{flex:1}.toasts{z-index:80;left:50%;bottom:calc(var(--safe-b) + 84px);pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;transform:translate(-50%)}@media (width>=700px){.toasts{bottom:28px}}.toast{pointer-events:auto;background:var(--primary-fill);min-height:46px;color:var(--primary-on);font:500 13.5px var(--font-sans);box-shadow:var(--shadow-float);animation:toastin .35s var(--ease) both;border-radius:999px;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:0 8px 0 16px;display:flex}.toast>span{padding-right:8px}.toast button{background:color-mix(in srgb, var(--primary-on) 12%, transparent);border-radius:999px;height:34px;padding:0 14px;font-weight:600}.toast--error{background:var(--error-soft);color:var(--error-ink)}@keyframes toastin{0%{opacity:0;transform:translateY(16px)scale(.96)}}.flash{animation:flash .9s var(--ease)}@keyframes flash{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--success-ink) 70%, transparent);transform:scale(.98)}40%{transform:scale(1.01)}to{transform:none;box-shadow:0 0 0 14px #0000}}.landing{animation:landing .7s var(--ease) both}@keyframes landing{0%{opacity:0;transform:translateY(-28px)scale(.96)}}.map{background:var(--map-space);position:relative;overflow:hidden}.map__gl{position:absolute;inset:0}.map__ctrl{top:calc(12px + var(--map-top,0px));z-index:2;flex-direction:column;gap:8px;display:flex;position:absolute;right:12px}.map__btn{flex-direction:row-reverse;align-items:center;gap:8px;display:flex}.map__btn .seg{animation:slidein .2s var(--ease) both}@keyframes slidein{0%{opacity:0;transform:translate(10px)}}.map__expand{z-index:2;position:absolute;bottom:12px;right:12px}.map__legend{z-index:2;background:var(--glass-fill);border:1px solid var(--glass-line);color:var(--text-on-map-mute);font:500 11px var(--font-sans);-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:999px;flex-wrap:wrap;gap:10px;padding:7px 11px;display:flex;position:absolute;bottom:12px;left:12px}.map__legend span{align-items:center;gap:6px;display:inline-flex}.lg{border-top:2px solid var(--map-route);width:18px;height:0;display:inline-block}.lg--est{border-top:2px dashed var(--map-route-estimated)}.lg--train{border-top:2px dotted var(--map-route-train)}.lg--bus{border-top:2px dashed var(--map-route-bus)}.maplibregl-ctrl-attrib{font:10px var(--font-sans)!important;color:#fff9!important;background:#00000059!important}.maplibregl-ctrl-attrib a{color:inherit!important}.maplibregl-ctrl-attrib-button{filter:invert()}.jp{min-height:100%;position:relative}.jp__map{height:var(--jp-map,46dvh);z-index:0;transition:height .35s var(--ease);--map-top:var(--safe-t);position:sticky;top:0}.jp__map.full{height:calc(100dvh - 86px)}.jp__top{z-index:5;top:calc(var(--safe-t) + 8px);pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;left:12px;right:12px}.jp__top>*{pointer-events:auto}.jp__top .wordmark{color:#f2f5fa;filter:drop-shadow(0 1px 6px #0009);margin:0 auto}.jp__sheet{z-index:3;background:var(--surface-bg);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;padding:8px 16px calc(var(--safe-b) + 120px);min-height:60dvh;margin-top:-24px;position:relative}.wide .jp__sheet{padding-bottom:60px}.jp__grab{background:var(--line-control);opacity:.5;border-radius:3px;width:38px;height:5px;margin:0 auto 10px}.hero{align-items:flex-start;gap:12px;padding:10px 2px 6px;display:flex}.hero__c{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.hero__c:last-child{text-align:right;align-items:flex-end}.hero__code{font:200 54px/1 var(--font-sans);letter-spacing:-.05em}.hero__code--city{letter-spacing:-.03em;overflow-wrap:anywhere;font-size:clamp(26px,8vw,38px);font-weight:300;line-height:1.05}.hero__city{font:500 13px var(--font-sans);color:var(--text-mute);overflow-wrap:anywhere;align-items:center;gap:6px;display:flex}.hero__c:last-child .hero__city{flex-direction:row-reverse}.hero__mid{flex:0 90px;align-self:center;min-width:40px;margin-top:-18px}.hero__mid .line{background:var(--line-control);opacity:.8;border-radius:2px;height:2px;position:relative}.hero__mid .i{background:var(--surface-bg);box-sizing:content-box;color:var(--kind-flight);animation:glide 1.5s var(--ease) both;padding:0 4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.hero__mid .i.k-train{color:var(--kind-train);transform:translate(-50%,-50%)}.hero__mid .i.k-bus{color:var(--kind-bus);transform:translate(-50%,-50%)}.minibar{z-index:4;padding:calc(var(--safe-t) + 8px) 16px 8px;background:color-mix(in srgb, var(--surface-bg) 88%, transparent);-webkit-backdrop-filter:blur(16px);font:600 15px var(--font-sans);opacity:0;pointer-events:none;align-items:center;gap:10px;margin:0 -16px;transition:opacity .2s;display:flex;position:sticky;top:0}.minibar.show{opacity:1;pointer-events:auto}.group{margin-top:22px}.group>h2{font:600 13px var(--font-sans);color:var(--text-mute);justify-content:space-between;align-items:center;margin:0 4px 8px;display:flex}.group>h2 small{font-size:11.5px;font-weight:500}.cards{grid-template-columns:1fr 1fr;gap:8px;display:grid}.card{background:var(--surface-card);border-radius:var(--radius-card);flex-direction:column;gap:4px;min-width:0;padding:14px;display:flex}.card--wide{grid-column:1/-1}.card--btn{text-align:left;transition:transform .12s}.card--btn:active{transform:scale(.98)}.card__v{font:500 19px/1.2 var(--font-sans);letter-spacing:-.01em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.card__v small{color:var(--text-mute);margin-left:3px;font-size:12px;font-weight:500}.card__l{font:500 11.5px/1.35 var(--font-sans);color:var(--text-mute)}.card__row{align-items:center;gap:12px;display:flex}.card__row>div{flex:1;min-width:0}.airline{align-items:center;gap:14px;display:flex}.airline h3{font:600 17px var(--font-sans)}.answer{align-items:center;gap:10px;display:flex}.answer__v{font:500 15px var(--font-sans)}.photo-row{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;display:grid}.photo-row button{aspect-ratio:1;background:var(--surface-card-2);border-radius:12px;position:relative;overflow:hidden}.photo-row img{object-fit:cover;width:100%;height:100%;display:block}.photo-row .tag{color:#fff;font:600 10px var(--font-sans);background:#0000008c;border-radius:999px;padding:2px 7px;position:absolute;bottom:6px;left:6px}.photo-add{color:var(--text-mute);place-items:center;display:grid;border:1.5px dashed var(--line-control)!important;background:0 0!important}.ticket{border-radius:var(--radius-card);background:var(--surface-card);text-align:left;align-items:center;gap:12px;width:100%;padding:10px;display:flex;overflow:hidden}.ticket img{object-fit:cover;border-radius:10px;flex:none;width:64px;height:64px}.ticket--missing{border:1.5px dashed var(--line-control);background:0 0}.aircraft-img{aspect-ratio:16/9;object-fit:cover;background:var(--surface-card-2);border-radius:12px;width:100%;display:block}.credit{font:500 11px var(--font-sans);color:var(--text-mute)}.credit a{text-underline-offset:2px;text-decoration:underline}.links{flex-wrap:wrap;gap:6px;display:flex}.links a{background:var(--surface-card-2);height:32px;font:600 12px var(--font-sans);border-radius:999px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.actions{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.actions .btn{flex:1}.note{border-radius:var(--radius-card);background:var(--accent-soft);font:500 13px/1.45 var(--font-sans);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.note .i{color:var(--accent-main);margin-top:1px}.note--warn{background:var(--warning-soft)}.note--warn .i{color:var(--warning-ink)}.lightbox{z-index:90;background:#000;flex-direction:column;animation:.2s both fade;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;flex:1;width:100%;min-height:0}.lightbox__bar{padding:calc(var(--safe-t) + 10px) 12px 10px;color:#fff;align-items:center;gap:8px;display:flex}.lightbox__tags{padding:10px 12px calc(var(--safe-b) + 12px);gap:6px;display:flex;overflow-x:auto}.lightbox .chip{color:#fff;background:#ffffff1f}.lightbox .chip.on{color:#000;background:#fff}.wiz{flex-direction:column;min-height:100%;display:flex}.wiz__top{align-items:center;gap:10px;padding:4px 0 6px;display:flex}.wiz__bar{background:var(--seg-track);border-radius:4px;flex:1;height:4px;overflow:hidden}.wiz__bar i{background:var(--accent-main);height:100%;transition:width .35s var(--ease);border-radius:4px;display:block}.wiz__ctx{font:500 12px var(--font-sans);color:var(--text-mute);margin:4px 2px 0}.wiz__q{font:500 28px/1.15 var(--font-sans);letter-spacing:-.02em;margin:18px 2px 4px}.wiz__hint{font:400 13px var(--font-sans);color:var(--text-mute);margin:0 2px 14px}.wiz__body{animation:stepin .3s var(--ease) both;flex:1}.wiz__body.back{animation-name:stepback}@keyframes stepin{0%{opacity:0;transform:translate(26px)}}@keyframes stepback{0%{opacity:0;transform:translate(-26px)}}.wiz__foot{align-items:center;gap:8px;padding-top:14px;display:flex}.wiz__foot .sp{flex:1}.answers{grid-template-columns:1fr 1fr;gap:8px;display:grid}.answers--one{grid-template-columns:1fr}.answers--three{grid-template-columns:1fr 1fr 1fr}.ans{border-radius:var(--radius-card);background:var(--surface-card);text-align:left;min-height:64px;font:600 14px var(--font-sans);align-items:center;gap:12px;padding:12px 14px;transition:transform .12s,background .18s,box-shadow .18s;display:flex}.ans small{font:400 11.5px var(--font-sans);color:var(--text-mute);margin-top:2px;display:block}.ans__ic{background:var(--surface-card-2);border-radius:12px;flex:none;place-items:center;width:38px;height:38px;display:grid}.ans--col{text-align:center;flex-direction:column;justify-content:center;gap:8px;min-height:92px}.ans:active{transform:scale(.97)}.ans.on{background:var(--primary-fill);color:var(--primary-on)}.ans.on small{color:inherit;opacity:.7}.ans.on .ans__ic{background:color-mix(in srgb, var(--primary-on) 12%, transparent)}.ans.guess:not(.on){box-shadow:inset 0 0 0 1.5px var(--accent-main)}.full-dots{grid-template-columns:repeat(5,8px);gap:3px;display:grid}.full-dots i{background:var(--line-control);opacity:.35;border-radius:2px;width:8px;height:8px}.full-dots i.f{opacity:1;background:currentColor}.bigstars{justify-content:center;margin:30px 0 14px;display:flex}.bigstars .star{padding:6px}.bigword{text-align:center;font:300 30px var(--font-sans);letter-spacing:-.02em;min-height:40px}.drop{border:1.5px dashed var(--line-control);border-radius:var(--radius-card-lg);text-align:center;color:var(--text-mute);flex-direction:column;align-items:center;gap:10px;padding:34px 20px;transition:border-color .18s,background .18s;display:flex}.drop.over{border-color:var(--accent-main);background:var(--accent-soft)}.scan-ways{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.reading{flex-direction:column;align-items:center;gap:16px;padding:30px 0;display:flex}.reading__img{background:var(--surface-card);border-radius:16px;width:200px;height:140px;position:relative;overflow:hidden}.reading__img img{object-fit:cover;opacity:.85;width:100%;height:100%}.reading__img:after{content:"";background:var(--accent-main);height:3px;box-shadow:0 0 18px var(--accent-main);animation:1.6s ease-in-out infinite alternate sweep;position:absolute;left:0;right:0}@keyframes sweep{0%{top:6%}to{top:92%}}.steps{font:500 13px var(--font-sans);color:var(--text-mute);flex-direction:column;gap:8px;display:flex}.steps span{align-items:center;gap:8px;display:flex}.steps .done{color:var(--text-fg)}.found{flex-direction:column;gap:10px;display:flex}.found__head{align-items:center;gap:12px;display:flex}.cells{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.cell{background:var(--surface-card-2);text-align:left;border-radius:12px;flex-direction:column;gap:2px;min-width:0;padding:8px 10px;display:flex}.cell span{font:500 10.5px var(--font-sans);color:var(--text-mute)}.cell b{font:600 14px var(--font-sans);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cell.missing{box-shadow:inset 0 0 0 1.5px var(--warning-ink);background:0 0}.cell input{font:600 15px var(--font-sans);width:100%;color:var(--text-fg);background:0 0;border:0;outline:none;padding:0}.picklist{flex-direction:column;gap:4px;max-height:300px;display:flex;overflow-y:auto}.picklist button{text-align:left;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.picklist button:hover,.picklist button:focus-visible{background:var(--surface-card)}.picklist b{font-weight:600}.trips{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;padding-top:10px;display:grid}.tripcard{text-align:left;width:100%;transition:transform .2s var(--ease);padding-top:12px;display:block;position:relative}.tripcard:active{transform:scale(.98)}.tripcard:before,.tripcard:after{content:"";border-radius:var(--radius-card-lg);background:var(--surface-card-2);opacity:.55;height:30px;position:absolute;top:6px;left:16px;right:16px}.tripcard:after{opacity:.3;top:0;left:8px;right:8px}.tripcard__in{z-index:1;border-radius:var(--radius-card-lg);background:var(--surface-card);position:relative;overflow:hidden}.tripcard__cover{background:var(--map-space);height:130px;position:relative;overflow:hidden}.tripcard__cover img{object-fit:cover;width:100%;height:100%;display:block}.tripcard__cover svg{width:100%;height:100%;position:absolute;inset:0}.tripcard__body{flex-direction:column;gap:6px;padding:12px 14px 14px;display:flex}.tripcard h3{font:600 18px var(--font-sans);letter-spacing:-.01em}.tripcard__line{font:500 12px var(--font-sans);color:var(--text-mute);align-items:center;gap:6px;display:flex}.inside{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.inside span{background:var(--surface-card-2);width:24px;height:24px;color:var(--text-mute);border-radius:7px;place-items:center;display:grid}.inside span.k-stay{background:var(--kind-stay);color:#fff}.inside span.k-train{color:var(--kind-train)}.inside span.k-bus{color:var(--kind-bus)}.inside .i{width:14px;height:14px}.story{flex-direction:column;gap:8px;padding-left:22px;display:flex;position:relative}.story:before{content:"";background:var(--line-hair);border-radius:2px;width:2px;position:absolute;top:12px;bottom:12px;left:8px}.story>div{position:relative}.story>div:before{content:"";background:var(--surface-bg);border:2px solid var(--line-control);border-radius:50%;width:10px;height:10px;position:absolute;top:26px;left:-18px}.story>div.k-stay:before{border-color:var(--kind-stay)}.sugg{border-radius:var(--radius-card);background:var(--surface-card);border:1px dashed color-mix(in srgb, var(--accent-main) 50%, transparent);align-items:center;gap:10px;padding:10px 12px;display:flex}.sugg>div{flex:1;min-width:0}.sugg__tag{color:var(--accent-main);font:600 11px var(--font-sans);align-items:center;gap:4px;display:inline-flex}.replay{background:var(--glass-fill);border:1px solid var(--glass-line);color:var(--text-on-map);-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:999px;align-items:center;gap:10px;padding:8px 10px;display:flex}.replay input{accent-color:var(--accent-main);flex:1}.dash-hero{flex-direction:column;gap:2px;margin:6px 2px 14px;display:flex}.dash-hero .big{font-size:64px}.dash-hero .big small{letter-spacing:0;color:var(--text-mute);margin-left:4px;font-size:22px}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{background:var(--surface-card);border-radius:var(--radius-card);text-align:left;flex-direction:column;gap:2px;padding:12px;display:flex}.stat b{font:500 22px var(--font-sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat span{font:500 11.5px var(--font-sans);color:var(--text-mute)}.flagstrip{border-radius:var(--radius-card);background:var(--surface-card);flex-wrap:wrap;gap:6px;margin-top:8px;padding:12px;display:flex}.bars{background:var(--surface-card);border-radius:var(--radius-card);align-items:flex-end;gap:6px;height:140px;padding:14px 12px 8px;display:flex}.bars>div{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.bars i{background:var(--chart-bar);transform-origin:bottom;width:100%;max-width:30px;animation:grow .6s var(--ease) both;border-radius:6px 6px 3px 3px}.bars>div.on i{background:var(--accent-main)}.bars span{font:600 10.5px var(--font-sans);color:var(--text-mute);font-variant-numeric:tabular-nums}.bars em{font:600 10.5px var(--font-sans);font-variant-numeric:tabular-nums;font-style:normal}@keyframes grow{0%{transform:scaleY(0)}}.rank{background:var(--surface-card);border-radius:var(--radius-card);flex-direction:column;gap:10px;padding:14px;display:flex}.rank>div{align-items:center;gap:10px;display:flex}.rank .barline{background:var(--surface-card-2);border-radius:6px;flex:1;height:8px;overflow:hidden}.rank .barline i{background:var(--accent-main);height:100%;animation:growx .7s var(--ease) both;transform-origin:0;border-radius:6px;display:block}@keyframes growx{0%{transform:scaleX(0)}}.rank b{font:600 13px var(--font-sans);text-align:right;font-variant-numeric:tabular-nums;min-width:26px}.dash-map{border-radius:var(--radius-card-lg);height:340px;margin-top:8px;overflow:hidden}.dash-map.full{z-index:50;border-radius:0;height:auto;position:fixed;inset:0}.avatar{background:var(--surface-card-2);width:40px;height:40px;font:600 13px var(--font-sans);border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.yir{z-index:85;background:var(--map-space);color:#f2f5fa;padding:calc(var(--safe-t) + 12px) 22px calc(var(--safe-b) + 20px);flex-direction:column;animation:.25s both fade;display:flex;position:fixed;inset:0}.yir__bars{gap:4px;display:flex}.yir__bars i{background:#ffffff40;border-radius:3px;flex:1;height:3px;overflow:hidden}.yir__bars i.on{background:#fff}.yir__body{animation:stepin .4s var(--ease) both;flex-direction:column;flex:1;justify-content:center;gap:10px;display:flex}.yir .big{font-size:88px}.yir h2{font:300 34px/1.15 var(--font-sans);letter-spacing:-.02em}.sgroup{background:var(--surface-card);border-radius:var(--radius-card);overflow:hidden}.srow{text-align:left;border-top:1px solid var(--line-hair);align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 14px;display:flex}.srow:first-child{border-top:0}.srow>div{flex:1;min-width:0}.srow small{color:var(--text-mute);font-size:12px;display:block}.srow--danger{color:var(--error-ink)}.me{border-radius:var(--radius-card-lg);background:var(--surface-card);align-items:center;gap:14px;padding:16px;display:flex}.me .avatar{width:56px;height:56px;font-size:18px}.toggle{background:var(--seg-track);border-radius:13px;flex:none;width:44px;height:26px;transition:background .18s;position:relative}.toggle:after{content:"";background:var(--toggle-thumb);width:20px;height:20px;transition:transform .2s var(--ease);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle.on{background:var(--success-ink)}.toggle.on:after{transform:translate(18px)}.selbar{bottom:calc(var(--safe-b) + 76px);z-index:20;background:var(--surface-raised);box-shadow:var(--shadow-float);border:1px solid var(--line-hair);font:500 13px var(--font-sans);border-radius:999px;align-items:center;gap:8px;margin-top:12px;padding:8px 8px 8px 16px;display:flex;position:sticky}.selbar>span{flex:1}.wide .selbar,.sheet .selbar{bottom:12px}.detail__map{height:100%}.detail .jp__sheet{min-height:50%}.card__l b{font-weight:600}select.chip{appearance:none;font:600 12.5px var(--font-sans);color:var(--text-fg);cursor:pointer}.flagstrip button{line-height:0}.hd .avatar{width:36px;height:36px}.card.airline{flex-direction:row;align-items:center}.btn>span{align-items:center;gap:4px;display:inline-flex}.map{width:100%;height:100%}.map .map__gl,.map .map__gl.maplibregl-map{position:absolute;inset:0}
