:root{--radius:.75rem;--primary:#4f46e5;--primary-foreground:#fff;--primary-ink:#4f46e5;--secondary:#7c3aed;--secondary-foreground:#fff;--accent:#4f46e5;--accent-foreground:#fff;--background:#fafafe;--foreground:#0f172a;--card:#ffffffd9;--card-foreground:#0f172a;--popover:#fffffff2;--popover-foreground:#0f172a;--muted:#f1f5f9;--muted-foreground:#475569;--destructive:#cf2222;--destructive-foreground:#fff;--destructive-ink:#b91c1c;--border:#4f46e538;--input:#4f46e526;--ring:#4f46e5;--chart-1:#4f46e5;--chart-2:#7c3aed;--chart-3:#6366f1;--chart-4:#e2e8f0;--chart-5:#0f172a;--sidebar:#ffffffe6;--sidebar-foreground:#0f172a;--sidebar-primary:#4f46e5;--sidebar-primary-foreground:#fff;--sidebar-accent:#4f46e50d;--sidebar-accent-foreground:#4f46e5;--sidebar-border:#4f46e51a;--sidebar-ring:#4f46e5;--app-bg-start:#eef2ff;--app-bg-middle:#fafafe;--app-bg-end:#fdf2f8;--toast-top-offset:var(--toast-top-offset-desktop);--toast-top-offset-desktop:1rem;--toast-top-offset-mobile-min:1rem;--toast-top-offset-mobile-fluid:8svh;--toast-top-offset-mobile-max:1.5rem}.dark{--background:#1a1a1a;--foreground:#f5f5f5;--card:#2d2d2d;--card-foreground:#f5f5f5;--popover:#2d2d2d;--popover-foreground:#f5f5f5;--primary:#6a5acd;--primary-foreground:#fff;--primary-ink:#a5b4fc;--secondary:#9370db;--secondary-foreground:#fff;--accent:#4f46e5;--accent-foreground:#fff;--muted:#404040;--muted-foreground:#a9a9a9;--destructive:#7f1d1d;--destructive-foreground:#f5f5f5;--destructive-ink:#fca5a5;--border:#404040;--input:#404040;--ring:#9370db;--chart-1:#6a5acd;--chart-2:#9370db;--chart-3:#818cf8;--chart-4:#404040;--chart-5:#f5f5f5;--sidebar:#2d2d2db8;--sidebar-foreground:#f5f5f5;--sidebar-primary:#6a5acd;--sidebar-primary-foreground:#fff;--sidebar-accent:#404040;--sidebar-accent-foreground:#f5f5f5;--sidebar-border:#404040;--sidebar-ring:#9370db;--app-bg-start:#030712;--app-bg-middle:#111827;--app-bg-end:#030712}:root{--gc-sky:#e8f3ff;--gc-sky-edge:#c4ddf7;--gc-sky-chip:#d3e8ff;--gc-sky-ink:#1d5fb4;--gc-cream:#fff4dc;--gc-cream-edge:#f1d8a1;--gc-cream-chip:#fde6b3;--gc-cream-ink:#8a5600;--gc-mint:#e5f6ec;--gc-mint-edge:#bce3cc;--gc-mint-chip:#cdeedb;--gc-mint-ink:#17744a;--gc-lilac:#efeafe;--gc-lilac-edge:#d6cbf7;--gc-lilac-chip:#e0d6fc;--gc-lilac-ink:#5b3cc4;--gc-peach:#ffebe0;--gc-peach-edge:#f6cdb8;--gc-peach-chip:#ffd9c6;--gc-peach-ink:#a9431a;--gc-tile:#ffffffc7}.dark{--gc-sky:#172a3d;--gc-sky-edge:#27466a;--gc-sky-chip:#1f3a58;--gc-sky-ink:#8cc4ff;--gc-cream:#302819;--gc-cream-edge:#554627;--gc-cream-chip:#463920;--gc-cream-ink:#f5ce7a;--gc-mint:#152c21;--gc-mint-edge:#285040;--gc-mint-chip:#1d4130;--gc-mint-ink:#80daa9;--gc-lilac:#241e3a;--gc-lilac-edge:#3f3464;--gc-lilac-chip:#342b56;--gc-lilac-ink:#c2b2ff;--gc-peach:#35231b;--gc-peach-edge:#5e3b2d;--gc-peach-chip:#4d3024;--gc-peach-ink:#ffab86;--gc-tile:#00000038}:root{--mascot-shadow:#0f172a1a;--mascot-body:#fffbeb;--mascot-roof:#fb923c;--mascot-trim:#f97316;--mascot-window:#bae6fd;--mascot-glint:#ffffff80;--mascot-ink:#1e293b;--mascot-cheek:#fda4afb3;--mascot-cheek-worried:#fda4af66;--mascot-tongue:#fb7185;--mascot-puff:#ffffffe6;--mascot-paper:#fff;--mascot-paper-edge:#7dd3fc;--mascot-sky:#38bdf8;--mascot-zzz:#94a3b8;--mascot-cloud:#cbd5e1}.dark{--mascot-shadow:#00000059;--mascot-body:#f5f5f4;--mascot-roof:#f97316;--mascot-trim:#ea580c;--mascot-window:#7dd3fc;--mascot-puff:#e2e8f0cc;--mascot-paper:#f1f5f9;--mascot-paper-edge:#0ea5e9;--mascot-zzz:#cbd5e1;--mascot-cloud:#64748b}@supports (color:oklch(0% 0 0)) and (color:color-mix(in oklab, red, red)){:root{--mascot-shadow:oklab(20.8% -.00310889 -.0418848/.1);--mascot-body:oklch(98.7% .022 95.277);--mascot-roof:oklch(75% .183 55.934);--mascot-trim:oklch(70.5% .213 47.604);--mascot-window:oklch(90.1% .058 230.902);--mascot-glint:oklab(100% 0 5.96046e-8/.5);--mascot-ink:oklch(27.9% .041 260.031);--mascot-cheek:oklab(81% .114595 .0236021/.7);--mascot-cheek-worried:oklab(81% .114595 .0236021/.4);--mascot-tongue:oklch(71.2% .194 13.428);--mascot-puff:oklab(100% 0 5.96046e-8/.9);--mascot-paper-edge:oklch(82.8% .111 230.318);--mascot-sky:oklch(74.6% .16 232.661);--mascot-zzz:oklch(70.4% .04 256.788);--mascot-cloud:oklch(86.9% .022 252.894)}.dark{--mascot-shadow:oklab(0% none none/.35);--mascot-body:oklch(97% .001 106.424);--mascot-roof:oklch(70.5% .213 47.604);--mascot-trim:oklch(64.6% .222 41.116);--mascot-window:oklch(82.8% .111 230.318);--mascot-puff:oklab(92.9% -.00325318 -.0125864/.8);--mascot-paper:oklch(96.8% .007 247.896);--mascot-paper-edge:oklch(68.5% .169 237.323);--mascot-zzz:oklch(86.9% .022 252.894);--mascot-cloud:oklch(55.4% .046 257.417)}}@keyframes casual-chip-in{0%{transform:translate(var(--dx), var(--dy)) scale(.85);opacity:0}15%{opacity:1}75%{opacity:1;transform:translate(0)scale(.5)}to{opacity:0;transform:translate(0)scale(.4)}}@keyframes casual-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes casual-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes casual-puff{0%{opacity:0;transform:translateY(0)scale(.6)}30%{opacity:.85}to{opacity:0;transform:translateY(-16px)scale(1.15)}}@keyframes casual-drift{0%,to{transform:translate(0)}50%{transform:translate(8px)}}.casual-anim-chip,.casual-anim-bob,.casual-anim-blink,.casual-anim-puff,.casual-anim-drift{transform-box:fill-box;transform-origin:50%}@media (prefers-reduced-motion:no-preference){.casual-anim-chip{animation:3.6s ease-in-out infinite casual-chip-in}.casual-anim-bob{animation:2.6s ease-in-out infinite casual-bob}.casual-anim-blink{animation:4.2s ease-in-out infinite casual-blink}.casual-anim-puff{animation:3s ease-out infinite casual-puff}.casual-anim-drift{animation:7s ease-in-out infinite casual-drift}}@font-face{font-family:Pretendard;font-weight:400;font-display:swap;src:url(/assets/Pretendard-Regular.subset-BZqc2FCe.woff2)format("woff2")}@font-face{font-family:Pretendard;font-weight:600;font-display:swap;src:url(/assets/Pretendard-SemiBold.subset-DdMYyxPR.woff2)format("woff2")}:root{--bg:var(--background);--surface:var(--card);--map-border:var(--border);--text:var(--foreground);--text-muted:var(--muted-foreground);--map-accent:var(--primary-ink);--map-selection:#272435;--map-selection-edge:#a5b4fc8c;--map-selection-ring:#6a5acd40;--map-control-border:var(--border);--map-divider:var(--border);--map-badge-surface:var(--surface);--map-badge-fill:85%;--map-track:#0000004d;--map-track-face:#ffffff26;--map-float-shadow:0 8px 24px #00000059;--map-column-width:420px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Apple SD Gothic Neo,Malgun Gothic,sans-serif}html[data-font-runtime=ios]{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,sans-serif}html[data-font-runtime=android]{font-family:system-ui,Roboto,sans-serif}.maplibregl-map{font-family:inherit}@supports (color:color-mix(in srgb, black, white)){:root{--map-selection:color-mix(in srgb, var(--primary) 16%, var(--background));--map-selection-edge:color-mix(in srgb, var(--primary-ink) 55%, transparent);--map-selection-ring:color-mix(in srgb, var(--primary) 25%, transparent);--map-border:color-mix(in srgb, var(--border) 50%, transparent);--map-control-border:color-mix(in srgb, var(--border) 60%, transparent);--map-divider:color-mix(in srgb, var(--border) 35%, transparent);--map-badge-surface:color-mix(in srgb, var(--surface) var(--map-badge-fill), transparent)}}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0}.shell{height:100dvh;position:relative;overflow:hidden}.map{position:absolute;inset:0}button,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:var(--text);cursor:pointer}button:focus-visible,summary:focus-visible{outline:2px solid var(--ring);outline-offset:3px}.topbar{top:max(10px,env(safe-area-inset-top));z-index:4;border:1px solid var(--map-border);background:var(--surface);border-radius:16px;grid-template-columns:36px minmax(0,1fr) 36px 36px;align-items:center;gap:6px;padding:8px;display:grid;position:absolute;left:12px;right:12px}.title{min-width:0}.topbar h1{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:600;overflow:hidden}.ghost,.apartment-info summary,.map-sources summary{background:0 0;border:0;border-radius:10px;place-items:center;width:36px;height:36px;padding:0;display:grid}.apartment-info summary,.map-sources summary{cursor:pointer;color:var(--text-muted)}summary{list-style:none}summary::-webkit-details-marker{display:none}.info-content,.legend{background:var(--popover);border:1px solid var(--map-border);max-height:50dvh;box-shadow:var(--map-float-shadow);border-radius:16px;margin:0;padding:16px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:auto}.info-content{z-index:2;font-size:13px;line-height:1.6}.info-content p{color:var(--text-muted);margin:6px 0 0}.map-toolbar{border-top:1px solid var(--map-divider);grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;padding-top:6px;display:flex}.radius,.map-view-modes,.legend .legend-tabs,.place-filter{background:var(--map-track);border-radius:16px;gap:2px;padding:4px;display:flex}.radius button,.map-view-modes button,.legend-tabs button,.place-filter button{min-height:36px;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:12px;padding:0 10px;font-size:12px}.radius button{min-width:54px}.radius button.on,.map-view-modes button[aria-pressed=true],.legend-tabs button[aria-selected=true],.place-filter button[aria-pressed=true]{color:var(--primary-ink);background:var(--map-track-face);border-color:var(--map-border);font-weight:600}.legend-panel summary{cursor:pointer;min-height:36px;color:var(--text-muted);border-radius:8px;align-items:center;gap:5px;padding:0 6px;font-size:12px;display:flex}.legend-panel[open]>summary{color:var(--text)}.legend{color:var(--text-muted);grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;font-size:12px;list-style:none;display:grid}.legend li{align-items:center;gap:6px;display:flex}.legend .dot{border-radius:3px;flex:none;width:10px;height:10px}.legend .legend-group{grid-column:1/-1;margin-bottom:-6px;font-size:11px;font-weight:600}.legend .legend-wide{grid-column:1/-1}.map-toolbar .place-filter{margin-left:auto}.filter-off-life .station-marker,.filter-off-life .station-exit,.filter-off-life .school-zone-pin{visibility:hidden}@media (width<=480px){.legend-panel>summary>span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.legend-tabs button{flex:1}.nearby-list{width:100%;color:var(--text);gap:4px;display:grid}.nearby-group summary{min-height:36px;color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:0 6px;font-size:12px;font-weight:600;display:flex}.nearby-group[open] summary{color:var(--text)}.nearby-count{color:var(--text-muted);font-weight:400}.nearby-group ul{margin:0;padding:0;list-style:none}.legend .nearby-group li{display:block}.nearby-group button{width:100%;min-height:36px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:0 6px;font-size:12px;display:grid}.nearby-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nearby-kind,.nearby-distance{color:var(--text-muted);font-size:11px}.nearby-chip{white-space:nowrap;height:20px;color:var(--chip);background:color-mix(in srgb, var(--chip) 16%, transparent);border-radius:999px;align-items:center;padding:0 8px;font-size:11px;display:inline-flex}.nearby-distance{font-variant-numeric:tabular-nums}.legend-glyphs{border-top:1px solid var(--map-border);width:100%;padding-top:4px}.legend-glyphs summary{min-height:36px;color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:0 6px;font-size:12px;font-weight:600;display:flex}.legend-glyphs summary>svg{flex:none}.legend-glyphs[open] summary{color:var(--text)}.legend-glyphs[open] summary>svg{transform:rotate(180deg)}.legend-glyphs ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 0;padding:0 6px 4px;list-style:none;display:grid}.legend-area{box-sizing:border-box;border:1px solid #0000;border-radius:2px;flex:none;width:16px;height:11px}.legend-point{border-radius:50%;flex:none;width:8px;height:8px}.legend-line{border-top:2px dashed;flex:none;width:16px;height:0}.legend-peak{border-bottom:8px solid;border-left:5px solid #0000;border-right:5px solid #0000;flex:none;width:0;height:0}.legend-planned{box-sizing:border-box;border:1.5px dashed #d79360;border-radius:999px;flex:none;width:18px;height:11px}.legend-infra{flex:none;align-items:center;gap:4px;display:inline-flex}.legend-icon{flex:none}.legend .legend-subway{border-bottom:1px solid var(--map-divider);flex-wrap:wrap;grid-column:1/-1;padding-bottom:12px}.bottom-dock{left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom));z-index:3;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:absolute}.bottom-dock>*{pointer-events:auto}.controls{flex-wrap:wrap-reverse;justify-content:flex-end;align-self:flex-end;align-items:center;gap:8px;max-width:100%;display:flex}.controls>.control-group{margin-left:auto}.control,.control-group{border:1px solid var(--map-control-border);background:var(--surface);border-radius:12px}.control{justify-content:center;align-items:center;gap:6px;min-width:40px;height:40px;padding:0 12px;font-size:12px;display:inline-flex}.control.recenter svg{color:var(--map-accent)}.control-group{display:flex;overflow:hidden}.control-group .control{background:0 0;border:0;border-radius:0;height:38px;padding:0}.control-group .control+.control{border-left:1px solid var(--map-control-border)}.control:hover{background:var(--muted)}.control.compass,.control.recenter{padding:0}.control.compass svg{transition:transform .5s}.compass-n{fill:var(--destructive-ink);font-size:6px;font-weight:600}.compass-north{fill:var(--destructive-ink)}.compass-north-shade{fill:var(--destructive-ink);opacity:.7}.compass-south{fill:var(--text-muted)}@media (prefers-reduced-motion:reduce){.control.compass svg{transition:none}}.walk-panel{border:1px solid var(--map-border);background:var(--surface);border-radius:16px;padding:12px}.walk-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.walk-heading>span{align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.map-icon-chip{background:var(--gc-peach-chip);width:28px;height:28px;color:var(--gc-peach-ink);border-radius:12px;place-items:center;display:grid}.walk-heading small{color:var(--text-muted);font-size:11px}.walk{scrollbar-width:none;gap:8px;padding:2px;display:flex;overflow-x:auto}.walk::-webkit-scrollbar{display:none}.walk-chip{border:1px solid var(--map-border);background:var(--background);border-radius:12px;flex-direction:column;flex:none;align-items:flex-start;gap:8px;min-width:104px;padding:10px 12px;display:flex}.walk-destination{color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;font-size:11px;display:flex}.walk-chip strong{font-size:20px;font-weight:700;line-height:1}.walk-chip strong small{color:var(--text-muted);margin-left:3px;font-size:11px;font-weight:400}.walk-chip.on{border-color:var(--map-selection-edge);background:var(--map-selection);box-shadow:0 0 0 2px var(--map-selection-ring)}.walk-chip .line-badge{min-width:15px;height:15px;padding:0 4px;font-size:9px}.card{border:1px solid var(--map-border);background:var(--surface);border-radius:16px;max-height:25dvh;padding:14px 48px 14px 14px;position:relative;overflow:auto}.card h2{margin:0 0 6px;font-size:14px;line-height:1.45}.card p{color:var(--text-muted);margin:0;font-size:12px;line-height:1.6}.card p.walk-slope{flex-wrap:wrap;align-items:center;column-gap:10px;margin-top:6px;display:flex}.walk-slope span{align-items:center;gap:4px;display:inline-flex}.walk-slope i{border-radius:2px;width:14px;height:4px}.card-close{width:36px;height:36px;color:var(--text-muted);background:0 0;border:0;border-radius:10px;place-items:center;padding:0;display:grid;position:absolute;top:7px;right:7px}.card-close:hover{background:var(--muted);color:var(--text)}.map-error{z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:absolute;inset:0}.map-error p{max-width:320px;color:var(--text);word-break:keep-all;margin:0;font-size:14px;line-height:1.6}.map-error-actions{gap:8px;display:flex}.map-error-actions button{border-radius:12px;min-height:40px;padding:0 18px;font-size:13px;font-weight:600}.map-error-primary{background:var(--primary);color:var(--primary-foreground);border:0}.map-error-secondary{border:1px solid var(--map-control-border);background:var(--surface)}.map-error-secondary:hover{background:var(--muted)}@media (width>=768px){.topbar{width:var(--map-column-width);top:16px;left:16px;right:auto}.bottom-dock{width:var(--map-column-width);left:16px;right:auto;bottom:max(16px, env(safe-area-inset-bottom))}}@media (height<=600px){.walk-panel{padding:8px}.walk-chip{flex-direction:row;align-items:center;min-width:0;padding:8px}.walk-heading{margin-bottom:6px}.card{max-height:22dvh}}.station-marker{border:1px solid var(--map-border);background:var(--map-badge-surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 6px 3px 8px;font-size:12px;font-weight:600;display:inline-flex}.line-badge{color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.legend .legend-subway{border-right:0;gap:4px;margin-right:2px;padding-right:10px}.legend-subway-title{color:var(--text);margin-right:2px;font-weight:600}.legend .line-badge{border-radius:9px;width:auto;height:18px}.maplibregl-marker.station-marker{z-index:3}.station-marker{gap:4px;padding:2px 4px 2px 8px;font-size:12px;box-shadow:0 1px 6px #0000004d}.station-marker:after{content:"";background:var(--text-muted);width:1.5px;height:6px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.station-marker .line-badge{border-radius:8px;min-width:15px;height:15px;padding:0 5px;font-size:9.5px}.station-marker.planned{border:1.5px dashed #d79360;padding-right:4px;box-shadow:0 1px 4px #0000002e}.station-marker.planned .station-name{color:var(--text-muted)}.station-marker.planned:after{background:#d79360}.planned-badge{color:#d79360;background:#d793601f;border:1px solid #d79360;border-radius:8px;align-items:center;height:15px;padding:0 6px;font-size:9.5px;font-weight:700;line-height:1;display:inline-flex}.fountain{pointer-events:none;width:110px;height:96px;position:relative}.fountain-pool{background:radial-gradient(#a0d7ff47,#3f8fd226 70%,#0000 72%);border-radius:50%;width:80px;height:18px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.fountain-ripple{border:1px solid #bee6ffcc;border-radius:50%;width:34px;height:9px;margin-left:-17px;animation:2.2s ease-out infinite fountain-ripple;position:absolute;bottom:2px;left:50%}.fountain-ripple.late{animation-delay:1.1s}.fountain-jet{transform-origin:bottom;background:linear-gradient(#ebf8fff2,#78bef559);border-radius:3px 3px 1px 1px;width:3px;height:72px;margin-left:-1.5px;animation:1.2s ease-in-out infinite alternate fountain-jet;position:absolute;bottom:5px;left:50%;box-shadow:0 0 5px #bee6ff4d}.fountain-drop{opacity:0;background:#e6f6ff;border-radius:50%;width:2px;height:3px;margin-left:-2px;animation:1s infinite fountain-drop;position:absolute;bottom:74px;left:50%;box-shadow:0 0 2px #c8ebff59}@keyframes fountain-jet{0%{transform:scaleY(.82)}to{transform:scaleY(1)}}@keyframes fountain-drop{0%{opacity:.65;animation-timing-function:ease-out;transform:translate(0)}35%{transform:translate(calc(var(--dx) * .45), -12px);opacity:.65;animation-timing-function:ease-in}to{transform:translate(var(--dx), 68px);opacity:0}}@keyframes fountain-ripple{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(2.4)}}.fountain-jet:before,.fountain-jet:after{content:"";background:inherit;border-radius:inherit;transform-origin:bottom;width:2px;height:78%;position:absolute;bottom:0}.fountain-jet:before{transform:rotate(-14deg)}.fountain-jet:after{transform:rotate(14deg)}.fountain-mist{pointer-events:none;background:radial-gradient(at bottom,#d2ebf538,#0000 70%);width:58px;height:28px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.fountain *{animation:none}}.infra-tag{border:1px solid var(--map-border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:10px;align-items:center;gap:5px;padding:3px 8px 3px 5px;font-size:11px;line-height:1.2;display:inline-flex;position:relative}.infra-tag:after{content:"";border-right:1px solid var(--map-border);border-bottom:1px solid var(--map-border);background:var(--surface);width:8px;height:8px;margin-left:-4px;position:absolute;bottom:-5px;left:50%;transform:rotate(45deg)}.infra-tag svg{fill:none;width:15px;height:15px;stroke:var(--text-muted);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.infra-tag-text{text-align:left;flex-direction:column;display:flex}.infra-tag-text b{font-weight:600}.infra-tag-text small{color:var(--text-muted);font-size:10px}.infra-smoke{pointer-events:none;width:10px;height:40px;position:absolute;bottom:100%;left:12px}.infra-smoke i{filter:blur(1px);background:#c8c8cd8c;border-radius:50%;width:10px;height:10px;animation:3s ease-out infinite infra-smoke;position:absolute;bottom:0;left:0}.infra-smoke i:nth-child(2){animation-delay:1s}.infra-smoke i:nth-child(3){animation-delay:2s}@keyframes infra-smoke{0%{opacity:.8;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(10px,-38px)scale(2.4)}}@media (prefers-reduced-motion:reduce){.infra-smoke i{opacity:.4;animation:none}}.build-progress{z-index:3;left:50%;top:var(--build-card-top,50%);max-height:calc(100dvh - var(--build-header-bottom,0px) - 20px - env(safe-area-inset-bottom));overscroll-behavior:contain;width:min(var(--map-column-width),calc(100% - 24px));border:1px solid var(--map-border);background:var(--surface);border-radius:16px;padding:16px;position:absolute;overflow:auto;transform:translate(-50%)}.build-progress summary{cursor:pointer;align-items:center;gap:10px;min-height:36px;font-size:14px;font-weight:600;display:flex}.build-icon{background:var(--muted);width:28px;height:28px;color:var(--primary-ink);border-radius:12px;flex:none;place-items:center;display:grid}.build-spinner{color:var(--map-accent);animation:1.8s linear infinite build-spin}.build-summary-copy{flex:1;min-width:0}.build-chevron{color:var(--text-muted);flex:none;transition:transform .18s}.build-progress details[open] .build-chevron{transform:rotate(180deg)}.build-open-title{display:none}.build-progress details[open] .build-open-title{display:block}.build-progress details[open] .build-stage-slot{display:none}.build-stage-slot{height:22px;line-height:22px;display:block;overflow:hidden}.build-stage-entry{text-overflow:ellipsis;white-space:nowrap;animation:.38s cubic-bezier(.2,.8,.2,1) both build-slot-in;display:block;overflow:hidden}.build-description{color:var(--text-muted);margin:12px 0 0;font-size:12px;line-height:1.6}.build-body{min-width:0}.build-stages{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:18px;margin:20px 0;padding:0;list-style:none;display:grid}.build-stages li{color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;font-size:11px;display:flex;position:relative}.build-stages li:not(:nth-child(4n)):not(:last-child):after{content:"";background:var(--map-border);width:calc(100% - 38px);height:1px;position:absolute;top:13px;left:calc(50% + 19px)}.build-stages li.done:after{background:var(--map-selection-edge)}.build-stages li.active{color:var(--text);font-weight:600}.build-step{border:1px solid var(--map-border);background:var(--background);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;justify-content:center;align-items:center;width:27px;height:27px;font-size:11px;line-height:1;display:flex}.build-step-number{line-height:1;display:block;transform:translateY(1px)}.done .build-step{color:var(--map-accent);border-color:var(--map-selection-edge)}.active .build-step{background:var(--map-selection);border-color:var(--map-accent);color:var(--map-accent)}.build-task{border:1px solid var(--map-border);background:var(--background);border-radius:12px;align-items:center;gap:8px;padding:12px;font-size:12px;display:flex}.build-task-label{flex:1;line-height:1.5}.build-state{color:var(--map-accent);flex:none;font-size:11px}.build-stat{color:var(--text-muted);align-items:center;gap:7px;padding:12px 2px 0;font-size:11px;display:flex}.build-stat strong{color:var(--text);font-variant-numeric:tabular-nums;margin-left:auto;font-size:18px;font-weight:600}.build-stat small{color:var(--text-muted);margin-left:4px;font-size:11px;font-weight:400}.build-footer{border-top:1px solid var(--map-divider);justify-content:space-between;align-items:center;gap:8px;margin-top:14px;padding-top:12px;display:flex}.build-timer{background:var(--background);color:var(--text-muted);border-radius:8px;align-items:center;gap:6px;padding:6px 9px;font-size:11px;display:flex}.build-timer strong{text-align:center;min-width:5ch;color:var(--text);font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,monospace;font-size:16px;font-weight:500}.build-timer-colon{color:var(--text-muted);padding:0 1px}.build-footer-state{color:var(--text-muted);text-align:right;font-size:11px}.build-progress.preview{padding:12px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes build-spin{to{transform:rotate(360deg)}}@keyframes build-slot-in{0%{opacity:0;transform:translateY(85%)}to{opacity:1;transform:translateY(0)}}@media (width>=768px){.build-progress.preview{width:var(--map-column-width);left:16px;transform:none}}@media (prefers-reduced-motion:reduce){.build-spinner,.build-stage-entry{animation:none}.build-chevron{transition:none}}.routes-pending{border:1px solid var(--map-border);background:var(--surface);color:var(--text-muted);border-radius:12px;margin:0;padding:12px;font-size:12px}.ghost:hover,.apartment-info summary:hover,.map-sources summary:hover,.legend-panel summary:hover,.nearby-group summary:hover,.nearby-group button:hover,.legend-glyphs summary:hover{background:var(--muted)}.station-exit{background:0 0;border:0;place-items:center;min-width:36px;height:36px;padding:4px;display:grid}.station-exit-badge{border:1px solid var(--text-muted);background:var(--surface);min-width:24px;min-height:24px;color:var(--text);white-space:nowrap;border-radius:7px;place-items:center;padding:2px 6px;font-size:12px;font-weight:600;line-height:18px;display:grid}.station-exit:hover .station-exit-badge,.station-exit:focus-visible .station-exit-badge{border-color:var(--map-accent);background:var(--muted)}.maplibregl-marker.station-exit{z-index:4}.title{align-items:center;gap:8px;display:flex}.map-mode{background:var(--map-selection);border:1px solid var(--map-selection-edge);width:30px;height:26px;color:var(--primary-ink);border-radius:8px;flex:none;place-items:center;font-size:11px;font-weight:600;display:grid}.place-panel{border:1px solid var(--map-border);background:var(--surface);border-radius:16px;overflow:hidden}.place-panel .card,.place-panel .walk-panel{background:0 0;border:0;border-radius:0}.place-panel .card+.walk-panel{border-top:1px solid var(--map-divider)}.walk-toggle{text-align:left;background:0 0;border:0;width:100%;min-height:36px;margin:0;padding:0;display:flex}.walk-summary{color:var(--text-muted);font-size:11px!important;font-weight:400!important}.walk-toggle svg{transition:transform .18s}.walk-toggle .is-open,.legend-panel[open]>summary>svg:last-child{transform:rotate(180deg)}.walk[hidden]{display:none}.walk:not([hidden]){margin-top:8px;padding:2px 6px 2px 2px}.walk{scroll-snap-type:x proximity}.walk-chip{scroll-snap-align:start}@media (prefers-reduced-motion:reduce){.walk-toggle svg{transition:none}}.station-exit-badge{z-index:1;position:relative}.station-exit-connector{background:var(--text-muted);transform-origin:0;pointer-events:none;height:1px;position:absolute;top:50%;left:50%}.map-view-modes{grid-column:1/-1}.map-view-modes button:disabled{opacity:.5;cursor:default}.map-view-modes button{white-space:nowrap;flex:auto}.topbar,.bottom-dock{transition:opacity .18s,transform .18s}.map-focused .topbar{opacity:0;pointer-events:none;transform:translateY(-12px)}.map-focused .bottom-dock{opacity:0;pointer-events:none;transform:translateY(12px)}.map-focused .bottom-dock *{pointer-events:none}@media (prefers-reduced-motion:reduce){.topbar,.bottom-dock{transition:none}}.map-attribution .maplibregl-ctrl-attrib-inner{color:var(--text-muted);overflow-wrap:anywhere;margin-top:6px;font-size:12px;line-height:1.6}.map-attribution a{color:var(--text-muted)}.card .landmark-source{cursor:pointer;min-height:36px;color:var(--primary-ink);text-underline-offset:3px;background:0 0;border:0;align-items:center;gap:2px;margin-right:16px;padding:0;font-size:12px;text-decoration:none;display:inline-flex}.card .landmark-source:hover{text-decoration:underline}.map-focus-toggle{border:1px solid var(--map-control-border);background:var(--surface);min-height:40px;color:var(--text-muted);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;gap:7px;margin-right:auto;padding:0 10px;font-size:12px;display:flex}.map-menu-restore{z-index:8;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));border:1px solid var(--map-control-border);background:var(--surface);min-height:40px;color:var(--text);border-radius:12px;align-items:center;gap:8px;padding:0 14px;font-size:13px;display:flex;position:absolute}.map-focus-toggle:hover,.map-menu-restore:hover{background:var(--muted)}.map-focus-toggle.report-pick{margin-right:auto}.map-focus-toggle.icon-only{min-width:40px;margin-right:0;padding:0}.map-focus-toggle.report-pick[aria-pressed=true]{border-color:var(--primary);color:var(--text)}.map-focused .topbar,.map-focused .bottom-dock{visibility:hidden}.topbar.with-share{grid-template-columns:36px minmax(0,1fr) 36px 36px 36px}a.ghost{color:var(--text);text-decoration:none}.share-button{color:var(--text-muted)}.share-button:disabled{opacity:.5;cursor:default}.title-text{flex-direction:column;min-width:0;display:flex}.share-origin{text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:11px;line-height:1.4;text-decoration:none;overflow:hidden}.share-origin:hover{color:var(--text)}.share-signup{border:1px solid var(--map-border);background:var(--surface);border-radius:16px;align-items:center;gap:12px;padding:12px 12px 12px 14px;display:flex}.share-signup>div{flex:1;min-width:0}.share-signup strong{font-size:14px;line-height:1.4;display:block}.share-signup p{color:var(--text-muted);word-break:keep-all;margin:2px 0 0;font-size:12px;line-height:1.45}.card .complex-trades-button{background:var(--primary);min-height:40px;color:var(--primary-foreground);cursor:pointer;border:0;border-radius:12px;align-items:center;margin-top:10px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.card .complex-trades-button:disabled{opacity:.6;cursor:default}.card .complex-trades-spinner{margin-right:6px;animation:1s linear infinite build-spin}.card .complex-trades-skeleton{gap:8px;margin:8px 0 4px;display:grid}@media (prefers-reduced-motion:reduce){.card .complex-trades-spinner{animation:none}}.share-signup-button{background:var(--primary);min-height:40px;color:var(--primary-foreground);border-radius:12px;flex:none;align-items:center;padding:0 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}[data-sonner-toaster]{z-index:6!important}[data-sonner-toast][data-styled=true]:has([data-close-button]){padding-right:2.5rem!important}[data-sonner-toast][data-styled=true] [data-close-button]{opacity:.6;color:inherit!important;background:0 0!important;border-color:#0000!important;top:.625rem!important;left:auto!important;right:.625rem!important;transform:none!important}[data-sonner-toast][data-styled=true] [data-close-button]:hover{opacity:1;background:color-mix(in srgb, currentColor 10%, transparent)!important}.map-skel{background:var(--muted);border-radius:6px;flex:none;max-width:100%;height:12px;animation:1.6s ease-in-out infinite map-skel-pulse;display:block}.map-skel.small{height:9px}@keyframes map-skel-pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.map-skel{animation:none}}.map>.maplibregl-canvas-container{isolation:isolate}.school-zone-pin,.walk-assigned-tag{--school-zone:#63ae8c}.school-zone-pin{flex-direction:column;align-items:center;display:flex}.maplibregl-marker.school-zone-pin{z-index:2}.school-zone-marker{border:1px solid var(--school-zone);background:color-mix(in srgb, color-mix(in srgb, var(--school-zone) 18%, var(--surface)) var(--map-badge-fill), transparent);min-height:20px;color:var(--text);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:1px 8px 1px 4px;font-size:11px;font-weight:600;display:flex;box-shadow:0 1px 6px #0000004d}.school-zone-marker:focus{outline:none}.school-zone-marker:focus-visible{outline:2px solid var(--ring);outline-offset:3px}.school-zone-marker-tag{background:var(--school-zone);color:var(--background);border-radius:999px;padding:1px 5px;font-size:9px;font-weight:700;line-height:1.3}.school-zone-pin-stem{background:var(--school-zone);width:1.5px;height:6px}.walk-assigned-tag{background:var(--school-zone);color:var(--background);border-radius:999px;padding:1px 5px;font-size:9px;font-weight:700;line-height:1.3}.walking-range-status,.bottom-dock>.map-price-note{border:1px solid var(--map-border);background:var(--surface);color:var(--text-muted);border-radius:12px;margin:0;padding:8px 12px;font-size:12px;line-height:1.5}.walking-range-status p{margin:6px 0 0}.walking-range-status button{border:1px solid var(--map-control-border);background:var(--surface);min-height:36px;color:var(--text);border-radius:999px;margin-left:4px;padding:0 12px;font-size:12px}.walking-range-status button:hover{border-color:var(--map-selection-edge);color:var(--primary-ink)}.walking-range-legend{color:var(--text);gap:16px;font-size:12px;display:flex}.walking-range-legend span{align-items:center;gap:5px;display:inline-flex}.walking-range-legend i{border:2px solid var(--walking-range-color);background:color-mix(in srgb,var(--walking-range-color) 35%,var(--surface));border-radius:3px;flex-shrink:0;width:14px;height:14px}.walking-range-skeleton .walking-range-legend span{height:18px}.walking-range-skeleton .map-skel.chip{border-radius:3px;height:14px}.walking-range-skeleton p{gap:6px;padding:3px 0;display:grid}.map-price-legend{border:1px solid var(--map-border);background:var(--surface);border-radius:12px;padding:10px 12px;font-size:11px}.map-price-legend strong{font-size:12px}.map-price-scale{margin:8px 0}.map-price-bar{gap:2px;display:flex}.map-price-bar i{border-radius:2px;flex:1;height:10px}.map-price-ticks{height:14px;margin-top:4px;position:relative}.map-price-ticks span{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:10px;line-height:14px;position:absolute;top:0;transform:translate(-50%)}.map-price-legend p,.map-price-details p,.map-price-note{color:var(--text-muted);margin:4px 0 0;font-size:11px;line-height:1.5}.map-price-details{border-top:1px solid var(--map-divider);margin-top:10px;padding-top:10px}.map-price-details strong{color:var(--primary-ink);font-size:13px}.map-price-legend-skeleton>.map-skel:first-child{margin:2px 0 9px}.map-price-legend-skeleton .map-skel.bar{border-radius:2px;height:10px}.map-price-legend-skeleton .map-price-ticks .map-skel{position:absolute;top:3px;transform:translate(-50%)}.map-price-legend-skeleton-lines{gap:10.5px;padding:3px 0 3.5px;display:grid}.map-price-legend-skeleton-lines .map-skel{height:10px}.map-forecast{overscroll-behavior:contain;border:1px solid var(--map-border);background:var(--surface);--map-up-ink:#6ee7b7;--map-down-ink:#fda4af;--map-forecast-ink:#93c5fd;--map-forecast-edge:#3b82f633;border-radius:16px;gap:10px;max-height:58dvh;padding:12px;font-size:12px;display:grid;overflow:auto}.map-chip{border-radius:8px;flex:none;place-items:center;width:24px;height:24px;display:inline-grid}.map-chip.cream{background:var(--gc-cream-chip);color:var(--gc-cream-ink)}.map-chip.sky{background:var(--gc-sky-chip);color:var(--gc-sky-ink)}.map-chip.lilac{background:var(--gc-lilac-chip);color:var(--gc-lilac-ink)}.map-badge{white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;padding:3px 8px 2px;font-size:10px;font-weight:600;line-height:1.4;display:inline-flex}.map-badge.emerald{color:#6ee7b7;background:#10b98126;border-color:#10b98133}.map-badge.teal{color:#5eead4;background:#14b8a626;border-color:#14b8a633}.map-badge.indigo{color:#a5b4fc;background:#6366f126;border-color:#6366f133}.map-badge.amber{color:#fcd34d;background:#f59e0b26;border-color:#f59e0b33}.map-badge.rose{color:#fda4af;background:#f43f5e26;border-color:#f43f5e33}.map-badge.slate{color:#cbd5e1;background:#64748b26;border-color:#64748b33}.map-forecast-tiles{grid-template-columns:1fr 1fr;gap:8px;display:grid}.map-forecast-tile,.map-forecast-empty{border:1px solid var(--map-border);background:var(--background);border-radius:12px;min-width:0;padding:10px 12px}.map-forecast-tile.forecast{border-color:var(--map-forecast-edge);color:var(--map-forecast-ink)}.map-forecast-tile-title{color:var(--text-muted);align-items:center;gap:6px;margin:0;font-size:12px;font-weight:600;display:flex}.map-forecast-tile.forecast .map-forecast-tile-title{color:inherit}.map-forecast-tile>strong{letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--text);flex-wrap:wrap;align-items:baseline;gap:2px 6px;margin-top:6px;font-size:20px;font-weight:700;line-height:1.25;display:flex}.map-forecast-tile.forecast>strong{color:inherit}.map-forecast-change{color:var(--text-muted);font-size:12px;font-weight:600}.map-forecast-change.up{color:var(--map-up-ink)}.map-forecast-change.down{color:var(--map-down-ink)}.map-forecast-tile-foot{border-top:1px solid var(--map-divider);gap:2px;margin-top:8px;padding-top:6px;display:grid}.map-forecast-tile-foot>span{color:var(--text-muted);font-size:11px}.map-forecast-tile-foot>b{font-variant-numeric:tabular-nums;color:var(--text);font-size:12px;font-weight:600}.map-forecast-empty p:last-child{color:var(--text-muted);margin:6px 0 0;font-size:12px;line-height:1.5}.map-forecast-range{gap:4px;display:grid}.map-forecast-range-head{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;gap:2px 6px;font-size:10px;display:flex}.map-forecast-range-bar{height:14px;margin:0 4px;position:relative}.map-forecast-range-bar:before{content:"";opacity:.15;background:currentColor;border-radius:999px;height:6px;position:absolute;top:4px;left:0;right:0}.map-forecast-range-bar:after{content:"";opacity:.4;border-left:1px solid;border-right:1px solid;position:absolute;inset:3px 0}.map-forecast-range-bar i{background:currentColor;border-radius:999px;width:4px;height:14px;position:absolute;top:0;transform:translate(-50%)}.map-forecast-range-ends{font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;font-size:11px;font-weight:600;display:flex}.map-forecast-flow{border:1px solid var(--map-border);background:var(--background);border-radius:12px;gap:6px;padding:10px 12px;display:grid}.map-forecast-flow-head{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.map-forecast-flow-head h3{margin:0;font-size:12px;font-weight:600}.map-forecast-unit{color:var(--text-muted);margin-left:auto;font-size:10px}.map-forecast-sub{color:var(--text-muted);font-variant-numeric:tabular-nums;margin:0;font-size:11px;line-height:1.5}.map-forecast-chart{width:100%;height:auto;display:block}.map-forecast-chart text{fill:var(--text-muted);font-size:8px}.map-forecast-chart .grid{stroke:var(--map-divider);stroke-width:1px}.map-forecast-chart .now{stroke:var(--text-muted);stroke-dasharray:2 2;opacity:.6}.map-forecast-chart .band{fill:var(--primary-ink);opacity:.16}.map-forecast-chart .trade{fill:var(--text-muted);opacity:.55}.map-forecast-chart .trade.dimmed{opacity:.25}.map-forecast-chart .trade.dong{fill:var(--primary-ink);opacity:1;stroke:var(--background);stroke-width:.6px}.map-forecast-chart .median{fill:none;stroke:var(--text);stroke-width:1.4px;stroke-linejoin:round}.map-forecast-chart .forecast{stroke:var(--primary-ink);stroke-width:1.8px;stroke-dasharray:4 3}.map-forecast-chart .current{fill:var(--text)}.map-forecast-chart .predicted{fill:var(--primary-ink)}.map-forecast-legend{color:var(--text-muted);flex-wrap:wrap;gap:4px 12px;font-size:10px;display:flex}.map-forecast-legend span{align-items:center;gap:5px;display:inline-flex}.map-forecast-legend .line{border-top:1.5px solid var(--text);width:14px}.map-forecast-legend .line.dashed{border-top:1.5px dashed var(--primary-ink)}.map-forecast-legend .dot{background:var(--text-muted);border-radius:50%;width:5px;height:5px}.map-forecast-dong{align-items:center;gap:6px;display:flex}.map-forecast-dong i{background:var(--primary-ink);border-radius:50%;flex:none;width:7px;height:7px}.map-forecast-facts{margin:0;display:grid}.map-forecast-facts>div{border-top:1px solid var(--map-divider);justify-content:space-between;align-items:baseline;gap:12px;padding:6px 2px;display:flex}.map-forecast-facts>div:first-child{border-top:0}.map-forecast-facts dt{color:var(--text-muted);font-size:11px}.map-forecast-facts dd{font-variant-numeric:tabular-nums;text-align:right;align-items:baseline;gap:6px;margin:0;font-size:12px;font-weight:600;display:flex}.map-forecast-facts small{color:var(--text-muted);font-size:10px;font-weight:400}.map-forecast-link{min-height:36px;color:var(--primary-ink);text-underline-offset:3px;justify-self:start;align-items:center;gap:2px;margin:-6px 0;font-size:12px;text-decoration:none;display:inline-flex}.map-forecast-link:hover{text-decoration:underline}.map-forecast-note{color:var(--text-muted);margin:0;font-size:10px;line-height:1.5}@media (height<=600px){.map-forecast-chart{max-height:84px}}.map-skel.value,.map-skel.chip{border-radius:8px;height:24px}.map-skel.chart{aspect-ratio:320/132;border-radius:8px;height:auto}.map-forecast-skeleton .map-forecast-tile>strong{margin-top:8px}.map-forecast-skeleton .map-forecast-tile-foot{gap:6px}.map-forecast-skeleton .map-forecast-legend{gap:4px 12px}.map-forecast-skeleton .map-forecast-facts>div{align-items:center;padding:8px 2px}.map-forecast-skeleton-link{height:13px;margin:5px 0}.map-forecast-skeleton-note{gap:6px;padding:2px 0;display:grid}.map-forecast-skeleton-note>.map-skel{height:10px}@media (height<=600px){.map-skel.chart{aspect-ratio:auto;height:84px}}.map-pitch{width:100%;display:none}@media (hover:hover) and (pointer:fine){.map-pitch{display:block}}.map-pitch-control{border:1px solid var(--map-control-border);background:var(--surface);height:40px;color:var(--text);border-radius:12px;align-items:center;gap:8px;padding:0 12px;font-size:12px;display:flex}.map-pitch-control label{flex-shrink:0}.map-pitch-control input{min-width:0;height:36px;accent-color:var(--map-accent);cursor:pointer;flex:1;margin:0}.map-pitch-control input:focus-visible{outline:2px solid var(--map-accent);outline-offset:2px}.map-pitch-control output{text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;width:4ch}.map-pitch-hint{color:var(--text-muted);text-align:right;margin:4px 0 0;font-size:11px}.map-sun{border:1px solid var(--map-border);background:var(--surface);border-radius:16px;gap:8px;padding:12px;font-size:12px;display:grid}.map-sun-head{flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:0;display:flex}.map-sun-head strong{color:var(--text);font-size:14px;font-weight:600}.map-sun-head span{color:var(--text-muted)}.map-sun-track{background:var(--map-track);border-radius:16px;gap:2px;padding:4px;display:flex}.map-sun-track button{min-width:0;min-height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;flex:1;padding:0 2px;font-size:12px}.map-sun-track button[aria-pressed=true]{color:var(--primary-ink);background:var(--map-track-face);border-color:var(--map-border);font-weight:600}.map-sun-note{color:var(--text-muted);margin:0;font-size:11px;line-height:1.5}.dong-sun{border-top:1px solid var(--map-divider);gap:4px;margin-top:8px;padding-top:8px;display:grid}.card p.dong-sun-title{color:var(--text);font-weight:600}.dong-sun ul{gap:2px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}.dong-sun li{justify-content:space-between;gap:12px;display:flex}.dong-sun li span{color:var(--text-muted)}.dong-sun li strong{font-variant-numeric:tabular-nums;font-weight:600}.card p.dong-sun-note{font-size:11px;line-height:1.5}.card p.dong-sun-empty{margin-top:8px}.card.report-card{max-height:55dvh}.landmark-report{flex-direction:column;gap:10px;display:flex}.landmark-report h2{margin:0}.landmark-report-issues{border:0;flex-wrap:wrap;gap:6px;margin:0;padding:0;display:flex}.landmark-report-issues legend{color:var(--text-muted);margin-bottom:6px;padding:0;font-size:12px}.landmark-report-issues label{border:1px solid var(--map-border);min-height:32px;color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.landmark-report-issues label.on{border-color:var(--primary);color:var(--text);background:var(--muted)}.landmark-report-issues input{opacity:0;pointer-events:none;position:absolute}.landmark-report-issues label:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.landmark-report-field{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.landmark-report-field input,.landmark-report-field textarea{box-sizing:border-box;border:1px solid var(--map-border);background:var(--background);width:100%;min-height:40px;color:var(--text);font:inherit;resize:vertical;border-radius:10px;padding:8px 10px;font-size:14px}.landmark-report-field input:focus-visible,.landmark-report-field textarea:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.card p.landmark-report-result{color:var(--text)}.card p.landmark-report-result.is-error{color:var(--destructive-ink)}.landmark-report-submit{background:var(--primary);min-height:40px;color:var(--primary-foreground);cursor:pointer;border:0;border-radius:12px;align-self:flex-start;align-items:center;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.landmark-report-submit:disabled{opacity:.6;cursor:default}.card .landmark-report-open{margin-top:6px}.card p.landmark-report-point{color:var(--text)}.landmark-report-point-actions{flex-wrap:wrap;display:flex}.landmark-report-pin{background:var(--primary);border:3px solid var(--background);width:14px;height:14px;box-shadow:0 0 0 1px var(--primary);pointer-events:none;border-radius:50%}
