:root,[data-theme=dark]{--bg: #0b1220;--panel-bg: rgba(15, 23, 42, .88);--panel-border: rgba(255, 255, 255, .14);--text: #e2e8f0;--muted: #94a3b8;--accent: #00ffcc;--accent-2: #00b894;--accent-text: #0f172a;--input-bg: rgba(255, 255, 255, .06);--hover: rgba(255, 255, 255, .08);--info: #38bdf8;--ok: #34d399;--warn: #fbbf24;--error: #f87171;--shadow: 0 20px 40px rgba(0, 0, 0, .6)}[data-theme=light]{--bg: #dfe9f3;--panel-bg: rgba(255, 255, 255, .9);--panel-border: rgba(15, 23, 42, .12);--text: #0f172a;--muted: #475569;--accent: #0077ff;--accent-2: #0057c2;--accent-text: #ffffff;--input-bg: rgba(15, 23, 42, .05);--hover: rgba(15, 23, 42, .06);--info: #0369a1;--ok: #047857;--warn: #b45309;--error: #b91c1c;--shadow: 0 16px 32px rgba(15, 23, 42, .18)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;transition:background-color .3s}.ui-panel{position:absolute;top:16px;right:16px;width:min(330px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto;background:var(--panel-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--panel-border);border-radius:16px;padding:16px;box-shadow:var(--shadow);z-index:100;transition:background-color .3s,color .3s}.ui-panel.collapsed .panel-body{display:none}.panel-head{display:flex;align-items:center;gap:8px}h2{margin:0;font-size:16px;color:var(--accent);flex:1}p.desc{margin:10px 0 12px;font-size:12px;color:var(--muted);line-height:1.6}.icon-btn{width:32px;height:32px;flex:none;padding:0;border-radius:8px;border:1px solid var(--panel-border);background:var(--input-bg);color:var(--text);cursor:pointer;font-size:16px;line-height:1}.icon-btn:hover{background:var(--hover)}.switch{position:relative;display:inline-flex;align-items:center;cursor:pointer;flex:none}.switch input{position:absolute;opacity:0;width:0;height:0}.switch .track{width:54px;height:28px;border-radius:999px;background:var(--input-bg);border:1px solid var(--panel-border);position:relative;transition:background-color .3s}.switch .thumb{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:grid;place-items:center;font-size:12px;transition:transform .3s}.switch input:checked+.track .thumb{transform:translate(26px)}.switch input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:2px}label.field{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}.row{display:flex;gap:6px}input[type=search],select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--panel-border);background:var(--input-bg);color:var(--text);font:inherit;font-size:13px}select option{color:#0f172a}button.primary,button.secondary{border:none;border-radius:8px;padding:9px 10px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s}button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-text)}button.secondary{background:var(--input-bg);color:var(--text);border:1px solid var(--panel-border)}button.primary:hover,button.secondary:hover{transform:translateY(-1px)}button:disabled{opacity:.5;cursor:default;transform:none}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.segmented{display:flex;border:1px solid var(--panel-border);border-radius:8px;overflow:hidden}.segmented label{flex:1;text-align:center;font-size:12px;padding:7px 4px;cursor:pointer}.segmented input{display:none}.segmented label.on{background:var(--accent);color:var(--accent-text)}.results{list-style:none;margin:6px 0 0;padding:0}.results li{font-size:12px;padding:7px 8px;border-radius:6px;cursor:pointer;line-height:1.5;border-bottom:1px solid var(--panel-border)}.results li:hover{background:var(--hover)}.info{margin-top:12px;font-size:12px;line-height:1.7;color:var(--muted)}.info b{color:var(--text);font-weight:600}.status{margin-top:12px;font-size:12px;line-height:1.6;padding:8px 12px;border-radius:6px;background:var(--input-bg);color:var(--info);border-left:3px solid var(--info)}.status[data-type=ok]{color:var(--ok);border-color:var(--ok)}.status[data-type=warn]{color:var(--warn);border-color:var(--warn)}.status[data-type=error]{color:var(--error);border-color:var(--error)}#loader{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:101;display:flex;align-items:center;gap:8px;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:999px;padding:6px 14px;font-size:12px;box-shadow:var(--shadow)}#loader[hidden]{display:none}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid var(--panel-border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.attribution{position:absolute;bottom:8px;left:8px;z-index:95}.attr-btn{width:22px;height:22px;padding:0;border-radius:50%;cursor:pointer;font-size:13px;line-height:20px;color:var(--muted);background:var(--panel-bg);border:1px solid var(--panel-border);opacity:.75}.attr-btn:hover,.attr-btn[aria-expanded=true]{opacity:1;color:var(--text)}.attr-pop{position:absolute;bottom:28px;left:0;white-space:nowrap;font-size:11px;line-height:1.6;color:var(--muted);background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:8px;padding:6px 10px;box-shadow:var(--shadow)}.attr-pop a{color:var(--text)}.hint{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.5}.map-wrap{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg)}input[type=range]{width:100%;accent-color:var(--accent);margin:6px 0 0}@media (max-width: 600px){.ui-panel{top:auto;bottom:38px;right:8px;left:8px;width:auto;max-height:55vh}}.map-wrap canvas{cursor:grab}.map-wrap canvas:active{cursor:grabbing}.nav-widgets{position:absolute;top:16px;left:16px;z-index:90;display:flex;flex-direction:column;gap:6px;align-items:center}.nav-widgets .icon-btn{background:var(--panel-bg);box-shadow:var(--shadow);font-size:18px}.compass{width:54px;height:54px;padding:0;border-radius:50%;cursor:pointer;background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--shadow)}.compass svg{width:100%;height:100%;transition:transform .05s linear}.compass-ring{fill:none;stroke:var(--panel-border);stroke-width:2}.compass-north{fill:#ef4444}.compass-south{fill:var(--muted)}.compass-n{font-size:10px;font-weight:700;fill:var(--text)}.view-readout{margin-top:4px;font-variant-numeric:tabular-nums}label.check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);padding-top:22px;cursor:pointer}label.check input{accent-color:var(--accent)}.help{margin-top:10px;font-size:11px;color:var(--muted)}.help summary{cursor:pointer;color:var(--text);font-size:12px}.help ul{margin:6px 0 0;padding-left:16px;line-height:1.6}.minimap{position:absolute;right:16px;bottom:28px;z-index:80;overflow:hidden;cursor:pointer;border-radius:12px;border:1px solid var(--panel-border);box-shadow:var(--shadow);background:var(--bg)}[data-theme=dark] .minimap[data-tiles=osm] .pigeon-tiles img{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.6)}@media (max-width: 600px){.minimap{display:none}}
