:root{
  --bg:#071019;--panel:rgba(8,18,29,.92);--panel2:#0e1c2a;--card:rgba(15,31,47,.82);--text:#eef7ff;--muted:#87a3b8;
  --line:rgba(131,191,224,.16);--accent:#32e6c8;--accent2:#4da8ff;--warn:#ffbb55;--danger:#ff667a;--shadow:0 18px 45px rgba(0,0,0,.3);
  --sidebar:390px;--topbar:68px;--radius:16px;
}
*{box-sizing:border-box}html,body,#app-shell{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.boot-screen{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,#12314b 0,#071019 48%,#03080d 100%);transition:.5s ease}.boot-screen.done{opacity:0;pointer-events:none}.boot-core{text-align:center}.boot-orbit{width:62px;height:62px;border:1px solid rgba(77,168,255,.26);border-radius:50%;margin:0 auto 18px;position:relative;animation:spin 1.2s linear infinite}.boot-orbit:before,.boot-orbit:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(50,230,200,.35);inset:8px}.boot-orbit:after{inset:17px;background:rgba(50,230,200,.16);box-shadow:0 0 28px rgba(50,230,200,.42)}.boot-orbit span{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--accent);top:-4px;left:27px;box-shadow:0 0 12px var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.boot-title{font-weight:800;letter-spacing:.2em}.boot-subtitle{color:var(--muted);font-size:12px;margin-top:7px}
.topbar{height:var(--topbar);position:fixed;z-index:50;top:0;left:0;right:0;display:flex;align-items:center;gap:22px;padding:0 18px;background:linear-gradient(180deg,rgba(5,14,23,.98),rgba(5,14,23,.86));border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.brand-block{display:flex;align-items:center;gap:12px;min-width:350px}.brand-mark{width:36px;height:36px;border:1px solid rgba(50,230,200,.4);border-radius:10px;position:relative;transform:rotate(45deg);box-shadow:inset 0 0 18px rgba(50,230,200,.1)}.brand-mark span,.brand-mark i{position:absolute;inset:7px;border:1px solid rgba(77,168,255,.65);border-radius:5px}.brand-mark i{inset:13px;background:var(--accent);border:0;box-shadow:0 0 16px var(--accent)}.brand-kicker,.eyebrow{font-size:9px;letter-spacing:.16em;color:var(--accent);font-weight:800}.brand-title{font-size:15px;font-weight:800;letter-spacing:.06em}.brand-title span{color:var(--muted);font-weight:600}.global-search-wrap{position:relative;max-width:620px;flex:1}.global-search-wrap input{width:100%;height:40px;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:0 45px 0 39px;outline:none;transition:.2s}.global-search-wrap input:focus{border-color:rgba(50,230,200,.55);box-shadow:0 0 0 3px rgba(50,230,200,.08)}.global-search-wrap input::placeholder{color:#698499}.search-icon{position:absolute;left:14px;top:8px;color:var(--muted);font-size:20px}.global-search-wrap kbd{position:absolute;right:12px;top:10px;color:var(--muted);font-size:11px;background:rgba(255,255,255,.05);border:1px solid var(--line);padding:2px 6px;border-radius:5px}.search-results{position:absolute;top:47px;left:0;right:0;max-height:350px;overflow:auto;background:#0a1723;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px}.search-result{width:100%;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:var(--text);padding:10px;border-radius:9px;text-align:left}.search-result:hover{background:rgba(77,168,255,.09)}.result-dot{width:9px;height:9px;border-radius:50%;background:var(--accent)}.result-copy{display:grid;gap:2px}.result-copy strong{font-size:12px}.result-copy small{font-size:10px;color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:8px}.status-pill{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:10px;font-weight:800}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px var(--accent)}.icon-btn{width:38px;height:38px;border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:10px;color:var(--text)}.icon-btn:hover{border-color:rgba(50,230,200,.45);background:rgba(50,230,200,.08)}.icon-btn.small{width:31px;height:31px}.mobile-only{display:none}
.sidebar{position:fixed;z-index:30;top:var(--topbar);left:0;bottom:0;width:var(--sidebar);background:linear-gradient(180deg,rgba(7,16,25,.97),rgba(7,16,25,.94));border-right:1px solid var(--line);backdrop-filter:blur(20px);display:flex;flex-direction:column}.sidebar-tabs{height:48px;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);padding:0 10px}.tab-btn{background:none;border:0;color:var(--muted);font-size:11px;font-weight:700;position:relative}.tab-btn.active{color:var(--text)}.tab-btn.active:after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:2px;background:var(--accent);box-shadow:0 0 9px var(--accent)}.sidebar-scroll{overflow:auto;flex:1;padding:18px}.tab-panel{display:none}.tab-panel.active{display:block}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.section-heading h2,.card-head h3{margin:4px 0 0;font-size:18px}.card-head h3{font-size:13px}.live-chip,.score-badge,.mini-stat{font-size:9px;font-weight:800;color:var(--accent);background:rgba(50,230,200,.08);border:1px solid rgba(50,230,200,.25);border-radius:999px;padding:5px 8px}.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}.kpi-card{padding:13px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,rgba(255,255,255,.045),rgba(255,255,255,.015));min-height:96px}.kpi-card.accent{border-color:rgba(50,230,200,.3);background:linear-gradient(135deg,rgba(50,230,200,.1),rgba(77,168,255,.04))}.kpi-label{font-size:10px;color:var(--muted);display:block}.kpi-card strong{font-size:24px;display:block;margin:8px 0 3px}.kpi-card small{font-size:9px;color:#6f8ba0}.panel-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px;box-shadow:0 8px 25px rgba(0,0,0,.11)}.panel-card.compact{padding:12px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.quick-btn{min-height:66px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.025);color:var(--text);display:flex;align-items:center;gap:9px;text-align:left;padding:9px}.quick-btn:hover,.quick-btn.active{border-color:rgba(50,230,200,.4);background:rgba(50,230,200,.07)}.quick-btn b{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:rgba(77,168,255,.12);color:var(--accent2)}.quick-btn span{font-size:10px;font-weight:700}.field-label{display:block;font-size:9px;color:var(--muted);margin:10px 0 5px;text-transform:uppercase;letter-spacing:.08em}.select-control{width:100%;height:36px;border-radius:9px;border:1px solid var(--line);background:#0b1925;color:var(--text);padding:0 9px;outline:none}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.text-btn{border:0;background:none;color:var(--accent);font-size:10px}.filter-summary{margin-top:11px;border-top:1px solid var(--line);padding-top:10px;font-size:10px;color:var(--muted);line-height:1.45}.diagnostic-list{display:grid;gap:7px}.diagnostic-item{display:flex;align-items:flex-start;gap:9px;padding:9px;background:rgba(255,255,255,.025);border-radius:10px}.diagnostic-icon{font-size:11px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:rgba(50,230,200,.1);color:var(--accent)}.diagnostic-icon.warn{background:rgba(255,187,85,.1);color:var(--warn)}.diagnostic-copy strong{display:block;font-size:10px}.diagnostic-copy small{display:block;font-size:9px;color:var(--muted);margin-top:2px;line-height:1.35}.sidebar-footer{height:38px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-size:9px;color:#668299}
.layer-list{display:grid;gap:8px;margin-bottom:12px}.layer-row{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);padding:10px}.layer-main{display:flex;align-items:center;gap:9px}.layer-toggle{appearance:none;width:32px;height:18px;border-radius:999px;background:#253848;position:relative;transition:.2s}.layer-toggle:after{content:"";position:absolute;width:12px;height:12px;top:3px;left:3px;border-radius:50%;background:white;transition:.2s}.layer-toggle:checked{background:var(--accent)}.layer-toggle:checked:after{left:17px}.swatch{width:10px;height:10px;border-radius:3px;flex:none}.layer-copy{flex:1}.layer-copy strong{display:block;font-size:11px}.layer-copy small{font-size:9px;color:var(--muted)}.opacity-wrap{display:flex;align-items:center;gap:8px;margin-top:8px}.opacity-wrap input{width:100%;accent-color:var(--accent)}.opacity-wrap small{width:28px;text-align:right;color:var(--muted);font-size:9px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;background:rgba(255,255,255,.03);padding:4px;border-radius:10px}.segmented button{border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:9px;padding:7px}.segmented button.active{background:rgba(50,230,200,.11);color:var(--text)}.primary-btn{width:100%;border:1px solid rgba(50,230,200,.34);border-radius:10px;background:linear-gradient(135deg,rgba(50,230,200,.14),rgba(77,168,255,.1));color:var(--text);padding:10px;font-size:10px;font-weight:800}.bar-chart{display:grid;gap:9px}.bar-row{display:grid;grid-template-columns:90px 1fr 28px;align-items:center;gap:8px}.bar-label{font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:7px;background:rgba(255,255,255,.05);border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:999px}.bar-value{font-size:9px;text-align:right}.matrix-list{display:grid;gap:6px;max-height:250px;overflow:auto}.matrix-row{display:grid;grid-template-columns:1fr 45px 45px;gap:6px;align-items:center;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:9px}.matrix-row span:not(:first-child){text-align:right;color:var(--accent)}
.map-stage{position:absolute;top:var(--topbar);left:var(--sidebar);right:0;bottom:0;background:#071019}.map-stage #map{position:absolute;inset:0}.map-vignette{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 120px rgba(0,0,0,.35);z-index:2}.scanline{pointer-events:none;position:absolute;z-index:3;left:0;right:0;height:1px;top:22%;background:linear-gradient(90deg,transparent,rgba(50,230,200,.25),transparent);opacity:.38;animation:scan 8s ease-in-out infinite}@keyframes scan{50%{top:74%}}.mapboxgl-ctrl-top-right{top:14px;right:12px}.mapboxgl-ctrl-group{background:#0a1722!important;border:1px solid var(--line);box-shadow:var(--shadow)!important}.mapboxgl-ctrl-group button{filter:invert(1);opacity:.8}.mapboxgl-popup-content{background:#0b1925!important;color:var(--text);border:1px solid var(--line);border-radius:12px!important;box-shadow:var(--shadow)!important;padding:12px!important}.mapboxgl-popup-tip{border-top-color:#0b1925!important;border-bottom-color:#0b1925!important}.mapboxgl-popup-close-button{color:var(--text);font-size:18px}.popup-title{font-size:12px;font-weight:800;padding-right:20px}.popup-meta{font-size:9px;color:var(--accent);margin-bottom:7px}.popup-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:9px}.popup-grid dt{color:var(--muted)}.popup-grid dd{margin:0;word-break:break-word}.map-top-left{position:absolute;z-index:5;top:14px;left:14px}.map-context-card{display:flex;align-items:center;gap:9px;background:rgba(6,16,25,.82);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:12px;padding:9px 11px;box-shadow:var(--shadow)}.context-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:0 0 10px var(--accent)}.map-context-card small{display:block;font-size:8px;color:var(--muted);letter-spacing:.1em}.map-context-card strong{display:block;font-size:10px;margin-top:2px}.map-tools{position:absolute;z-index:7;right:16px;top:105px;display:grid;gap:6px;background:rgba(6,16,25,.84);border:1px solid var(--line);border-radius:13px;padding:6px;backdrop-filter:blur(14px);box-shadow:var(--shadow)}.tool-btn{width:35px;height:35px;border:0;border-radius:8px;background:transparent;color:var(--text);font-size:12px;font-weight:700}.tool-btn:hover,.tool-btn.active{background:rgba(50,230,200,.11);color:var(--accent)}.tool-separator{height:1px;background:var(--line)}.measure-hud{position:absolute;z-index:8;top:15px;left:50%;transform:translateX(-50%);min-width:250px;text-align:center;background:rgba(6,16,25,.9);border:1px solid rgba(50,230,200,.3);border-radius:12px;padding:8px 14px;box-shadow:var(--shadow)}.measure-hud span{font-size:8px;color:var(--accent);letter-spacing:.12em}.measure-hud strong{display:block;font-size:11px;margin:3px}.measure-hud small{font-size:8px;color:var(--muted)}.feature-inspector{position:absolute;z-index:8;right:66px;top:105px;width:300px;max-height:65vh;background:rgba(6,16,25,.94);border:1px solid var(--line);border-radius:14px;backdrop-filter:blur(18px);box-shadow:var(--shadow);overflow:hidden}.inspector-head{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid var(--line)}.inspector-head h3{margin:3px 0 0;font-size:14px}.inspector-body{padding:12px;overflow:auto;max-height:calc(65vh - 64px)}.prop-grid{display:grid;grid-template-columns:95px 1fr;gap:7px 8px;font-size:9px}.prop-grid dt{color:var(--muted)}.prop-grid dd{margin:0;overflow-wrap:anywhere}.map-bottom-bar{position:absolute;z-index:6;left:14px;bottom:14px;display:flex;align-items:center;gap:18px;background:rgba(6,16,25,.84);border:1px solid var(--line);border-radius:12px;padding:8px 11px;backdrop-filter:blur(14px);box-shadow:var(--shadow)}.bottom-label{display:block;font-size:7px;letter-spacing:.12em;color:var(--muted)}.map-bottom-bar strong{font-size:9px}.bottom-action{border:0;background:rgba(50,230,200,.08);color:var(--accent);border-radius:7px;padding:6px 8px;font-size:8px}.toast-stack{position:absolute;z-index:100;left:50%;bottom:70px;transform:translateX(-50%);display:grid;gap:7px;pointer-events:none}.toast{background:#0a1722;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:10px;box-shadow:var(--shadow);animation:toastin .2s ease}@keyframes toastin{from{opacity:0;transform:translateY(5px)}}
body.light{--bg:#eef4f7;--panel:rgba(247,251,253,.95);--panel2:#fff;--card:rgba(255,255,255,.88);--text:#10212d;--muted:#5d788b;--line:rgba(25,64,88,.14);--shadow:0 18px 45px rgba(33,65,80,.16)}body.light .topbar{background:rgba(247,251,253,.94)}body.light .select-control,body.light .search-results,body.light .mapboxgl-popup-content{background:#fff!important}body.light .mapboxgl-popup-tip{border-top-color:#fff!important;border-bottom-color:#fff!important}body.light .mapboxgl-ctrl-group{background:#fff!important}body.light .mapboxgl-ctrl-group button{filter:none}body.light .map-context-card,body.light .map-tools,body.light .feature-inspector,body.light .map-bottom-bar,body.light .measure-hud{background:rgba(250,253,255,.92)}
@media(max-width:1050px){:root{--sidebar:340px}.brand-block{min-width:auto}.brand-kicker{display:none}.status-pill{display:none}.desktop-only{display:none}}
@media(max-width:780px){:root{--topbar:60px}.mobile-only{display:block}.topbar{gap:8px;padding:0 10px}.brand-block{min-width:0}.brand-title{font-size:12px}.brand-mark{width:30px;height:30px}.global-search-wrap{position:absolute;left:58px;right:94px}.topbar-actions{margin-left:auto}.theme-toggle{}.sidebar{width:min(92vw,370px);transform:translateX(-105%);transition:.25s;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.map-stage{left:0}.map-top-left{top:10px;left:10px}.map-context-card{padding:7px 9px}.map-tools{right:10px;top:84px}.feature-inspector{left:10px;right:55px;top:84px;width:auto}.map-bottom-bar{left:10px;right:10px;bottom:10px;gap:10px;justify-content:space-between}.map-bottom-bar>div:nth-child(2){display:none}.global-search-wrap kbd{display:none}.scanline{display:none}}
@media(max-width:500px){.brand-block>div:last-child{display:none}.global-search-wrap{left:54px;right:94px}.quick-grid,.kpi-grid{grid-template-columns:1fr 1fr}.field-row{grid-template-columns:1fr}.map-context-card{display:none}.measure-hud{top:8px;min-width:210px}.feature-inspector{top:70px}.map-bottom-bar{font-size:8px}.sidebar-scroll{padding:14px}}
