:root{
  --dash-bg:#050b14;
  --dash-panel:#0b1624;
  --dash-panel-2:#0e1d2d;
  --dash-panel-hover:#102238;
  --dash-line:#1d3c55;
  --dash-line-strong:#24516f;
  --dash-text:#f4f8fc;
  --dash-muted:#8fa4b8;
  --dash-accent:#3ba7ff;
  --dash-cyan:#56e0ff;
  --dash-green:#42d392;
  --dash-amber:#ffb84d;
  --dash-shadow:0 18px 55px rgba(0,0,0,.34);
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;background:var(--dash-bg);color:var(--dash-text);font:13px Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{padding:18px;overflow-x:hidden;background:radial-gradient(circle at 50% -12%,#12314b 0,rgba(8,25,40,.72) 22%,transparent 46%),var(--dash-bg)}
.dashboard{max-width:1900px;margin:auto;min-height:calc(100vh - 36px);display:grid;grid-template-rows:82px 82px 88px 450px 280px;gap:12px}
.dashboard header{display:flex;align-items:center;justify-content:space-between;padding:2px 10px 2px 6px}
.header-logo{height:76px;width:auto;display:block;object-fit:contain}
.dashboard header>a{display:block;line-height:0}
.eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dash-accent);font-weight:800}
h1{font-size:28px;line-height:1;letter-spacing:-.04em;margin:6px 0 0;color:var(--dash-text)}
.controls,.card,.panel{background:linear-gradient(145deg,rgba(14,29,45,.96),rgba(7,18,29,.98));border:1px solid var(--dash-line);border-radius:9px;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.controls{padding:12px 14px;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr auto;gap:10px;align-items:end}
.control label{display:block;color:#9fc0d7;font-size:9px;text-transform:uppercase;letter-spacing:.1em;margin:0 0 6px;font-weight:800}
.control select{width:100%;height:40px;background:#081521;color:var(--dash-text);border:1px solid #24516f;border-radius:7px;padding:0 11px;outline:none;box-shadow:inset 0 0 18px rgba(0,0,0,.16)}
.control select:hover{border-color:#357ba8}
.control select:focus{border-color:var(--dash-accent);box-shadow:0 0 0 3px rgba(59,167,255,.12)}
button.reset{height:40px;border:1px solid var(--dash-accent);background:#071521;color:#d9efff;border-radius:7px;padding:0 16px;cursor:pointer;font-weight:750;transition:.18s}
button.reset:hover{background:#10324b;transform:translateY(-1px)}
button.reset:focus-visible{outline:3px solid rgba(59,167,255,.25);outline-offset:2px}
.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.card{padding:13px 17px;min-height:88px;position:relative;overflow:hidden}
.kpi-card{display:flex;align-items:center;gap:13px}
.kpi-content{min-width:0;flex:1}
.kpi-icon{width:50px;height:50px;flex:0 0 50px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.045);box-shadow:inset 0 0 22px rgba(0,0,0,.2)}
.kpi-icon svg{width:31px;height:31px}
.kpi-icon-blue{color:#2ea8ff;background:rgba(46,168,255,.09)}
.kpi-icon-purple{color:#a35cff;background:rgba(163,92,255,.09)}
.kpi-icon-green{color:#19e6a0;background:rgba(25,230,160,.08)}
.kpi-icon-amber{color:#ff9f2f;background:rgba(255,159,47,.09)}
.kpi-icon-cyan{color:#4ddfff;background:rgba(77,223,255,.08)}
.card:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--dash-accent),transparent 72%);opacity:.65}
.card .label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#91bad5;font-weight:800}
.card .value{font-size:27px;font-weight:800;margin-top:8px;letter-spacing:-.04em;color:var(--dash-text)}
.card .sub{font-size:10px;color:var(--dash-muted);margin-top:3px}
.main-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;min-height:0;height:450px}
.bottom-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:12px;min-height:0;height:280px}
.panel{padding:13px 15px;min-height:0;overflow:hidden}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.panel-actions{display:flex;align-items:center;gap:8px}
.map-reset{height:28px;border:1px solid #24516f;background:#071521;color:#bfe5ff;border-radius:6px;padding:0 9px;font-size:10px;font-weight:750;cursor:pointer;transition:.18s}
.map-reset:hover{background:#10324b;border-color:var(--dash-accent);color:var(--dash-text)}
.map-reset:focus-visible{outline:3px solid rgba(59,167,255,.25);outline-offset:2px}
.panel h2{font-size:14px;letter-spacing:-.01em;margin:0;color:#eef7ff}
.panel-note{font-size:10px;color:var(--dash-muted)}
.chart-wrap{position:relative;height:calc(100% - 27px);min-height:0}
.map{height:398px;min-height:0;border-radius:6px;background:#06121d;border:1px solid #15334a}
.table-wrap{height:238px;overflow:auto}
.table{width:100%;border-collapse:collapse;font-size:11px}
.table th{position:sticky;top:0;background:#0d2031;color:#9fc0d7;font-size:9px;text-transform:uppercase;letter-spacing:.07em;text-align:left;padding:8px;border-bottom:1px solid var(--dash-line)}
.table td{padding:7px;border-bottom:1px solid #173044;white-space:nowrap}
.table tbody tr:hover{background:#102538}
.table td.num{text-align:right;font-variant-numeric:tabular-nums}
.party-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}
.empty{display:grid;place-items:center;height:100%;color:var(--dash-muted)}
.dashboard-state{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(5,11,20,.82);backdrop-filter:blur(8px)}
.dashboard-state[hidden]{display:none}
.state-card{width:min(420px,100%);padding:25px;background:linear-gradient(145deg,#102238,#091622);border:1px solid var(--dash-line-strong);border-radius:14px;box-shadow:var(--dash-shadow);text-align:center}
.state-title{font-size:17px;font-weight:800;margin-bottom:8px}
.state-text{color:var(--dash-muted);font-size:12px;line-height:1.6}
.spinner{width:28px;height:28px;margin:0 auto 14px;border:3px solid #23445c;border-top-color:var(--dash-accent);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.leaflet-container{font:11px Inter,ui-sans-serif,system-ui,sans-serif;background:#06121d}
.leaflet-control-zoom a{background:#0b1d2c!important;color:#dff2ff!important;border-color:#24516f!important}
.leaflet-control-attribution{background:rgba(5,11,20,.82)!important;color:#7891a5!important}
.leaflet-control-attribution a{color:#70bfff!important}
.leaflet-tooltip{background:#081521;color:#eef8ff;border:1px solid #2d6084;box-shadow:0 8px 22px rgba(0,0,0,.35)}
@media(max-width:1100px){
  .dashboard{display:block}
  .controls,.cards,.main-grid,.bottom-grid{margin-bottom:12px}
  .controls{grid-template-columns:repeat(2,1fr)}
  .cards{grid-template-columns:repeat(3,1fr)}
  .main-grid,.bottom-grid{grid-template-columns:1fr;height:auto}
  .panel{height:420px}
  .bottom-grid .panel{height:300px}
}
@media(max-width:650px){
  body{padding:10px}
  .dashboard{min-height:calc(100vh - 20px)}
  .dashboard header{padding:4px 3px;min-height:82px}
  .header-logo{height:58px;max-width:220px}
  h1{font-size:22px}
  .controls{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
  .panel{height:420px}
}