:root{--bg:#fff;--surface:#f7f7f9;--surface-2:#fff;--text:#1f2937;--muted:#4b5563;--border:#d1d5db;--shadow:0 10px 20px #0000001f;--accent:#155eef;--accent-2:#0b3ea9;--danger:#b42318;--warning:#b54708;--ok:#067647;--focus:#111827;--radius:12px;--radius-sm:10px;--gap:12px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--map-tile-filter:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.5 var(--sans);letter-spacing:.2px;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{height:100%}body{background:var(--bg);color:var(--text);margin:0}body[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1020;--surface:#0f172a;--surface-2:#0b1224;--text:#e5e7eb;--muted:#cbd5e1;--border:#24304b;--shadow:0 12px 24px #00000073;--accent:#7aa2ff;--accent-2:#c7d2fe;--danger:#fda29b;--warning:#fec84b;--ok:#6ce9a6;--focus:#e5e7eb;--map-tile-filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(1.1) saturate(.7)}body[data-theme=contrast]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#fff;--surface-2:#fff;--text:#000;--muted:#111827;--border:#000;--shadow:none;--accent:#00e;--accent-2:#00a;--danger:#b00000;--warning:#7a3e00;--ok:#005a2b;--focus:#000;--map-tile-filter:contrast(1.25) brightness(1.03) saturate(1.05)}#root{height:100%}a{color:var(--accent)}code,pre{font-family:var(--mono)}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.appShell{grid-template-rows:auto 1fr;height:100%;display:grid}.appHeader{justify-content:space-between;align-items:center;gap:var(--gap);border-bottom:1px solid var(--border);background:linear-gradient(0deg, var(--surface), var(--surface-2));padding:10px 12px;display:flex}.brand{align-items:baseline;gap:10px;min-width:0;display:flex}.brand h1{letter-spacing:.2px;margin:0;font-size:16px}.badge{color:var(--muted);border:1px solid var(--border);background:var(--surface-2);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px}.headerActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.main{height:100%;position:relative;overflow:hidden}.map{position:absolute;inset:0}.btn{appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:inline-flex}.btnPrimary{background:var(--accent);color:#fff;border-color:#0000}.btnGoogle{color:#1f2937;background:#fff;border-color:#d1d5db;justify-content:center;width:100%}body[data-theme=dark] .btnGoogle{color:#111827;background:#fff;border-color:#d1d5db}.btnGoogle:hover:not(:disabled){background:#f9fafb}.btnDanger{background:var(--danger);color:#fff;border-color:#0000}.btn:disabled{opacity:.6;cursor:not-allowed}.select,.input{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:10px;padding:7px 10px}.hierDrop{position:relative}.hierDropTrigger{cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.hierDropTriggerLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.hierDropCaret{color:var(--muted);flex:none}.hierDropPanel{z-index:2200;border:1px solid var(--border);background:var(--surface-2);box-shadow:var(--shadow);border-radius:12px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden}.hierDropPanelTop{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.btn.hierDropClear{white-space:nowrap;border-radius:999px;padding:6px 10px}.hierDropList{max-height:260px;padding:6px;overflow:auto}.hierTreeRow{cursor:pointer;border-radius:10px;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.hierTreeRow:hover{background:var(--surface)}.hierTreeName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.hierTreeLevel{color:var(--muted);border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:2px 8px;font-size:12px}.hierSimpleEmpty{color:var(--muted);padding:8px}.pill{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:34ch;padding:6px 10px;font-size:13px;overflow:hidden}.kbdHint{font-family:var(--mono);color:var(--muted);font-size:12px}.toastRegion{inset-inline:12px;pointer-events:none;z-index:3200;justify-content:center;display:flex;position:absolute;bottom:12px}.toast{pointer-events:auto;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:var(--radius);box-shadow:var(--shadow);max-width:min(900px,95vw);padding:10px 12px}.authDivider{background:var(--border);opacity:.9;height:1px}.authMode{grid-template-columns:1fr 1fr;gap:8px;display:grid}.btn.authModeBtn{justify-content:center}.btn.authModeBtnActive{background:var(--accent);color:#fff;border-color:#0000}.authForm{flex-direction:column;gap:10px;display:flex}.authGrid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.authField{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.authField .input{color:var(--text);font-size:14px}.authError{border:1px solid var(--border);background:color-mix(in srgb, var(--danger) 14%, var(--surface-2));color:var(--text);border-radius:12px;padding:10px 12px}.authHint{color:var(--muted);justify-content:center;font-size:13px;display:flex}.btn.authLinkBtn{color:var(--accent);background:0 0;border:0;border-radius:6px;padding:0}.btn.authLinkBtn:hover:not(:disabled){text-decoration:underline}.leaflet-container{background:var(--surface);width:100%;height:100%}.dsaMapLeaflet .leaflet-tile-pane{filter:var(--map-tile-filter)}.dsaMapLeaflet .leaflet-bar{border:1px solid var(--border);box-shadow:var(--shadow);background:var(--surface-2);border-radius:12px}.dsaMapLeaflet .leaflet-bar a{color:var(--text);border-bottom:1px solid var(--border);background:0 0}.dsaMapLeaflet .leaflet-bar a:last-child{border-bottom:0}.dsaMapLeaflet .leaflet-bar a:hover{background:var(--surface);color:var(--text)}.dsaMapLeaflet .leaflet-bar a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.dsaMapLeaflet .leaflet-control-attribution{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;padding:6px 8px}.dsaMapLeaflet .leaflet-control-attribution a{color:var(--accent)}.dsaMapLeaflet .leaflet-tooltip{background:var(--surface-2);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px}.dsaMapLeaflet .leaflet-tooltip:before{border-top-color:var(--border)}
