:root{
  --bg:#F4F6F5; --panel:#FFFFFF; --panel2:#EEF2F0; --fg:#16211C; --muted:#5B6B63; --line:#D5DDD9;
  --accent:#1F8A70; --accent2:#B7791F; --accentB:#7B4FC4; --warn:#B4441F; --sea:#DCE6EA; --nodata:#CBD2CF;
  --shadow:0 2px 10px rgba(0,0,0,.12);
}
:root[data-theme="dark"]{
  --bg:#0B120F; --panel:#15201A; --panel2:#1D2B24; --fg:#EDF2EF; --muted:#8FA398; --line:#2A382F;
  --accent:#3FA68C; --accent2:#D9A441; --accentB:#A98BE8; --warn:#E0784A; --sea:#10201D; --nodata:#2B3631;
  --shadow:0 2px 10px rgba(0,0,0,.5);
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{margin:0;background:var(--bg);color:var(--fg);font-family:Inter,"IBM Plex Sans",system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45;display:flex;flex-direction:column;}
a{color:var(--accent);}
h2{font-size:19px;margin:0 0 6px;font-weight:650;} h3{font-size:16px;margin:0 0 6px;font-weight:650;}
h4{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px;font-weight:600;}
.lede,.hint{color:var(--muted);font-size:13.5px;margin:4px 0 8px;}
.hint{font-size:12.5px;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 18px;border-bottom:1px solid var(--line);background:var(--panel);flex-shrink:0;gap:12px;flex-wrap:wrap;}
.brand{display:flex;flex-direction:column;}.brand-mark{font-weight:750;font-size:18px;letter-spacing:.02em;}.brand-tag{color:var(--muted);font-size:11.5px;}
.topnav{display:flex;gap:6px;align-items:center;}
.nav-btn,.nav-link{background:transparent;border:1px solid var(--line);color:var(--muted);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:13px;text-decoration:none;font-family:inherit;}
.nav-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;}
.nav-btn.icon{padding:6px 9px;}
.nav-link:hover,.nav-btn:hover{border-color:var(--accent);color:var(--fg);}
.boot-error{background:#FDECEA;color:#8A1F11;padding:10px 18px;border-bottom:1px solid #E7B2AA;font-size:14px;}
.theme-popup{position:fixed;z-index:2000;right:16px;bottom:16px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:10px 12px;display:flex;gap:8px;align-items:center;font-size:13px;max-width:420px;flex-wrap:wrap;}
button{font-family:inherit;}
.theme-popup button,.btn{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:5px 10px;cursor:pointer;font-size:12.5px;}
.theme-popup .ghost,.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line);}
.explore{flex:1;display:flex;min-height:0;height:calc(100vh - 58px);}
.map-col{flex:1 1 58%;min-width:0;display:flex;flex-direction:column;}
.map-wrap{position:relative;flex:1;min-height:360px;}
#map{position:absolute;inset:0;background:var(--sea);}
.map-top{position:absolute;z-index:1000;top:10px;left:56px;right:10px;display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;pointer-events:none;}
.map-top>*{pointer-events:auto;}
.searchbox{position:relative;width:min(340px,100%);}
.searchbox input{width:100%;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--fg);font-size:14px;box-shadow:var(--shadow);}
.search-results{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-height:300px;overflow:auto;box-shadow:var(--shadow);}
.search-results button{display:flex;justify-content:space-between;width:100%;text-align:left;background:transparent;border:0;color:var(--fg);padding:7px 12px;cursor:pointer;font-size:13.5px;}
.search-results button:hover,.search-results button.sel{background:var(--panel2);}
.search-results small{color:var(--muted);}
.slot-pick{display:flex;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:4px 6px;box-shadow:var(--shadow);font-size:12px;color:var(--muted);}
.slot-btn{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:5px;padding:4px 8px;font-size:12px;cursor:pointer;}
.slot-btn.active[data-slot="A"]{background:var(--accent);color:#fff;border-color:var(--accent);}
.slot-btn.active[data-slot="B"]{background:var(--accentB);color:#fff;border-color:var(--accentB);}
.layer-bar{position:absolute;z-index:1000;bottom:12px;left:250px;display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px;box-shadow:var(--shadow);max-width:calc(100% - 260px);flex-wrap:wrap;justify-content:center;}
.layer-btn{white-space:nowrap;}
.layer-btn{border:0;background:transparent;color:var(--muted);padding:6px 11px;border-radius:7px;font-size:12.5px;cursor:pointer;}
.layer-btn.active{background:var(--accent);color:#fff;font-weight:600;}
.layer-btn.soon{opacity:.55;cursor:default;}
.map-legend{position:absolute;z-index:1000;left:10px;bottom:12px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:11.5px;box-shadow:var(--shadow);max-width:220px;}
.map-legend .lg-title{font-weight:650;margin-bottom:4px;font-size:12px;}
.lg-row{display:flex;align-items:center;gap:6px;color:var(--muted);line-height:1.5;}
.lg-sw{width:16px;height:10px;border-radius:2px;flex:none;border:1px solid rgba(0,0,0,.15);}
.source-line{padding:5px 12px;font-size:12px;color:var(--muted);border-top:1px solid var(--line);background:var(--panel);}
.side{flex:0 0 440px;max-width:46%;overflow:auto;padding:10px;background:var(--bg);border-left:1px solid var(--line);}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px;}
.chip{font-size:10.5px;border:1px solid var(--accent);color:var(--accent);border-radius:10px;padding:1px 7px;vertical-align:middle;margin-left:6px;font-weight:600;}
.slots{display:grid;gap:8px;}
.slot{border:1px solid var(--line);border-radius:8px;padding:8px 10px;border-left-width:4px;}
.slot.A{border-left-color:var(--accent);}.slot.B{border-left-color:var(--accentB);}
.slot .lab{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;display:flex;justify-content:space-between;}
.slot .nm{font-size:16px;font-weight:650;}
.slot .path{font-size:12px;color:var(--muted);}
.slot .big{font-size:22px;font-weight:700;}
.slot .big small{font-size:12px;color:var(--muted);font-weight:400;}
.slot .acts{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap;}
.tier{display:inline-block;font-size:10.5px;padding:1px 7px;border-radius:9px;border:1px solid var(--line);color:var(--muted);}
.tier-a{border-color:var(--accent);color:var(--accent);}.tier-b{border-color:var(--accent2);color:var(--accent2);}.tier-c{border-color:var(--warn);color:var(--warn);}
.ctl{margin:9px 0;}
.ctl label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:3px;}
.ctl label b{font-variant-numeric:tabular-nums;}
.ctl input[type=range]{width:100%;accent-color:var(--accent);}
.seg{display:flex;flex-wrap:wrap;gap:4px;}
.seg button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:6px;padding:4px 8px;font-size:12px;cursor:pointer;}
.seg button.on{background:var(--accent);border-color:var(--accent);color:#fff;}
.ctl select{width:100%;padding:5px;border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--fg);font-size:13px;}
.ctl.inline{display:flex;gap:8px;align-items:center;}
.bars{margin-top:6px;}
.bar-row{display:grid;grid-template-columns:88px 1fr 62px;gap:6px;align-items:center;font-size:12.5px;margin:5px 0;}
.bar-row .nm{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bar-track{height:16px;background:var(--panel2);border-radius:4px;position:relative;overflow:hidden;display:flex;}
.bar-seg{height:100%;}
.bar-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;}
.legend-inline{display:flex;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin-top:4px;}
.legend-inline i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px;}
.delta{font-size:13px;margin-top:6px;padding:6px 8px;background:var(--panel2);border-radius:6px;}
.strip svg{width:100%;height:auto;display:block;}
.missing{color:var(--muted);font-size:13px;border:1px dashed var(--line);border-radius:6px;padding:6px 8px;}
details summary{cursor:pointer;font-weight:600;font-size:14px;}
.probe-row{border-top:1px solid var(--line);padding:6px 0;font-size:13px;}.probe-ind{font-weight:650;}
.probe-cell{margin:2px 0;}.probe-where em{color:var(--muted);}
.footnote{color:var(--muted);font-size:12px;}
.page{flex:1;overflow:auto;}
.page-inner{max-width:980px;margin:0 auto;padding:20px;}
.page table{border-collapse:collapse;width:100%;font-size:13px;margin:6px 0 16px;}
.page th,.page td{border-bottom:1px solid var(--line);padding:5px 8px;text-align:left;vertical-align:top;}
.page td.num{text-align:right;font-variant-numeric:tabular-nums;}
.table-scroll{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:8px;}
.leaflet-container{font-family:inherit;}
.leaflet-tooltip{font-size:12.5px;}
.pin{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);color:#fff;font-weight:700;font-size:12px;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.5);}
.pin span{transform:rotate(45deg);}
@media (max-width:900px){
  .explore{flex-direction:column;height:auto;}
  .map-col{flex:none;height:62vh;}
  .side{flex:none;max-width:none;border-left:0;}
}
:root[data-theme="dark"] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.9) contrast(.9);}
[hidden]{display:none !important;}
