:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-synthesis:none;--ink: #f2f2f2;--muted: rgba(255, 255, 255, .5);--panel: rgba(28, 28, 28, .88);--panel-strong: rgba(24, 24, 24, .96);--line: rgba(255, 255, 255, .16);--accent: #f2f2f2;--focus: rgba(255, 255, 255, .72)}*{box-sizing:border-box}html,body,#map-shell{width:100%;height:100%;margin:0;overflow:hidden;background:#1a1a1a}body{color:var(--ink)}button{border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--ink);font:inherit;font-size:12px;font-weight:500;letter-spacing:0;cursor:pointer}button:hover{border-color:#ffffff6b;background:#ffffff0f}button:focus-visible,#map-canvas:focus-visible{outline:2px solid var(--focus);outline-offset:2px}#map-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}#map-canvas.is-interacting{cursor:grabbing}.topbar{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:12px;min-height:54px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{display:none}.brand h1{margin:0;font-size:clamp(17px,2vw,22px);font-weight:600;letter-spacing:-.02em;white-space:nowrap}.brand p{margin:1px 0 0;overflow:hidden;color:var(--muted);font-size:11px;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.text-button{height:34px;padding:0 12px}.loading-panel,.error-panel{position:absolute;top:50%;left:50%;display:flex;align-items:center;gap:14px;width:min(390px,calc(100% - 32px));padding:18px;transform:translate(-50%,-50%);border:1px solid var(--line);border-radius:9px;background:var(--panel-strong);transition:opacity .25s ease}.loading-panel.is-complete{opacity:0}.loading-panel strong,.error-panel strong{font-size:15px}.loading-panel p,.error-panel p{margin:4px 0 0;color:var(--muted);font-size:12px}.loading-spinner{flex:0 0 auto;width:28px;height:28px;border:2px solid rgba(255,255,255,.18);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.error-panel{display:block;border-color:#e0795f73}.error-panel button{margin-top:14px;padding:8px 12px}.help-card{position:absolute;right:max(12px,env(safe-area-inset-right));bottom:calc(46px + env(safe-area-inset-bottom));display:flex;gap:13px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--muted);font-size:10px;backdrop-filter:blur(10px)}.help-card b{color:var(--ink)}.statusbar{position:absolute;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;min-height:34px;padding:5px max(12px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--panel-strong);color:var(--muted);font-size:11px}.performance-toggle{border:0;background:none;color:var(--muted);font-family:inherit;font-size:10px;text-transform:none}.performance-panel{position:absolute;right:12px;bottom:41px;width:210px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-strong)}.performance-panel div{display:flex;justify-content:space-between;gap:12px;padding:3px 0}.performance-panel dt,.performance-panel dd{margin:0}.performance-panel dd{color:var(--ink)}.performance-panel .source-row{display:block;padding-top:7px;border-top:1px solid var(--line)}.performance-panel a{color:var(--ink);font-size:9px;text-decoration-color:var(--line);text-underline-offset:2px}[hidden]{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:680px){.topbar{grid-template-columns:minmax(0,1fr) auto;gap:7px}.brand{grid-column:auto}.help-card{right:max(8px,env(safe-area-inset-right));bottom:calc(42px + env(safe-area-inset-bottom));gap:8px;max-width:calc(100% - 16px);padding:6px 8px;font-size:9px}}@media(prefers-reduced-motion:reduce){.loading-spinner{animation-duration:1.6s}.loading-panel{transition:none}}
