: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%;overscroll-behavior:none}body{overflow:hidden}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);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.ui-panel,.panel-body{overscroll-behavior:contain}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;z-index:90;right:calc(16px + env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px;align-items:center}.nav-widgets .icon-btn{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--shadow);font-size:17px;color:var(--text)}.zoom-pair{display:flex;flex-direction:column;border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}.zoom-pair .icon-btn{border-radius:0;box-shadow:none}.zoom-pair .icon-btn+.icon-btn{border-top:none}.locate-btn{border-radius:50%!important}.locate-btn.inactive{color:var(--muted)}.locate-btn.following,.locate-btn.waiting{color:#1a73e8}[data-theme=dark] .locate-btn.following,[data-theme=dark] .locate-btn.waiting{color:#8ab4f8}.locate-btn.waiting svg{animation:locate-pulse 1.2s ease-in-out infinite}@keyframes locate-pulse{50%{opacity:.35}}@media (min-width: 601px){.ui-panel{max-height:calc(100vh - 156px)}}.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}@media (max-width: 600px){.nav-widgets{right:calc(10px + env(safe-area-inset-right));bottom:calc(38px + var(--panel-h, 60px) + 10px + env(safe-area-inset-bottom));gap:8px}.nav-widgets .icon-btn{width:36px;height:36px}}.panel-head h2{display:flex;align-items:center;gap:8px}.title-logo{width:22px;height:22px;border-radius:5px;flex:none}.building-status{display:flex;align-items:center;gap:8px}.building-status span{flex:1}.building-status .retry{flex:none;padding:4px 10px;font-size:12px}.basemap-row{align-items:center;margin-top:0}:where(body,.ui-panel,.ui-panel *,.nav-widgets button,.attribution *,.status){transition:background-color .4s ease,color .4s ease,border-color .4s ease,box-shadow .4s ease}.title-text{display:inline-flex;flex-direction:column;line-height:1.1}.title-text .subtitle{font-size:11px;font-weight:500;color:var(--muted, #8a94a6);letter-spacing:.02em}:root,[data-theme=dark]{--nl-fg: #f1f5f9;--nl-halo: #0b1020;--nl-place: #ffffff;--nl-street: #e2e8f0;--nl-icon-bg: #1e293b}[data-theme=light]{--nl-fg: #111827;--nl-halo: #ffffff;--nl-place: #0b1220;--nl-street: #1f2937;--nl-icon-bg: #ffffff}.name-labels{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:5;contain:strict}.nl{position:absolute;left:0;top:0;display:flex;align-items:center;gap:3px;white-space:nowrap;font:600 12px/1.15 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--nl-fg);text-shadow:-1px -1px 0 var(--nl-halo),0 -1px 0 var(--nl-halo),1px -1px 0 var(--nl-halo),-1px 0 0 var(--nl-halo),1px 0 0 var(--nl-halo),-1px 1px 0 var(--nl-halo),0 1px 0 var(--nl-halo),1px 1px 0 var(--nl-halo);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;opacity:0;transition:opacity .25s ease}.nl.on{opacity:1}.nl-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:11px;line-height:1;background:var(--nl-icon-bg);box-shadow:0 0 0 1px #0000002e,0 1px 2px #0000004d;text-shadow:none}.nl-street{font-weight:600;font-size:11px;color:var(--nl-street);letter-spacing:.01em}.nl-place{color:var(--nl-place);font-weight:600}.nl-country,.nl-continent{font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.nl-state,.nl-province{font-size:12px;letter-spacing:.06em;text-transform:uppercase}.nl-city{font-size:15px;font-weight:700}.nl-town{font-size:13px;font-weight:700}.nl-suburb,.nl-quarter,.nl-neighbourhood{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase}.nl-building .nl-text{font-weight:700}.search-bar{position:absolute;z-index:110;top:calc(16px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left));width:min(380px,calc(100vw - 386px));background:var(--panel-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--panel-border);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}.search-bar form{display:flex;align-items:center;gap:4px;padding:4px 4px 4px 14px}.search-bar .search-icon{flex:none;color:var(--muted)}.search-bar input[type=search]{flex:1;min-width:0;border:none;background:transparent;padding:9px 6px;font-size:14px;outline:none}.search-bar input[type=search]::-webkit-search-cancel-button{display:none}.search-bar button{flex:none;width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.search-clear{background:transparent;color:var(--muted);font-size:22px;line-height:1}.search-clear:hover{color:var(--text);background:var(--hover)}.search-go{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-text)}.search-bar:focus-within{border-color:var(--accent)}.search-bar .results{margin:0;padding:4px 6px 6px;max-height:min(50vh,360px);overflow-y:auto;border-top:1px solid var(--panel-border)}.search-bar .results li{color:var(--text)}.search-bar .results li:last-child{border-bottom:none}@media (max-width: 1100px){#loader{top:calc(76px + env(safe-area-inset-top))}}@media (max-width: 600px){.search-bar{top:calc(8px + env(safe-area-inset-top));left:8px;right:8px;width:auto}#loader{top:calc(64px + env(safe-area-inset-top))}}
