:root{
  --bg:#070c12;
  --bg2:#0b121b;
  --panel:#0f1823;
  --panel2:#0c141e;
  --border:#1b2a3a;
  --border2:#22364a;
  --text:#e7eef7;
  --muted:#8496a8;
  --muted2:#5f7285;
  --accent:#38bdf8;
  --accent2:#22d3ee;
  --green:#34d399;
  --red:#ff3b30;
  --orange:#ff9500;
  --yellow:#ffd60a;
  --blue:#0a84ff;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --radius:12px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:
    radial-gradient(1200px 600px at 70% -10%, rgba(56,189,248,.10), transparent 60%),
    radial-gradient(900px 500px at 10% 110%, rgba(34,211,238,.06), transparent 60%),
    var(--bg);
  color:var(--text);
  font-family:"Microsoft YaHei","PingFang SC","Segoe UI",Roboto,Arial,sans-serif;
  font-size:13px;
  overflow:hidden;
}
h1,h2,h3,p,ul{margin:0}
ul{padding:0;list-style:none}
button,select,input{font-family:inherit}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#22364a;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:#2e4862}

/* boot */
#boot-screen{
  position:fixed;inset:0;z-index:9999;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  transition:opacity .5s ease, visibility .5s ease;
}
#boot-screen.hidden{opacity:0;visibility:hidden;display:none!important}
.boot-logo{
  width:74px;height:74px;border-radius:18px;display:grid;place-items:center;
  font-size:30px;font-weight:800;color:#06202e;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  box-shadow:0 0 40px rgba(56,189,248,.35);
}
.boot-title{font-size:18px;font-weight:700;letter-spacing:.5px}
.boot-sub{color:var(--muted);font-size:12px}
.boot-bar{width:220px;height:3px;background:#12202d;border-radius:3px;overflow:hidden}
.boot-bar i{display:block;width:40%;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));animation:boot 1.2s infinite}
@keyframes boot{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}

/* topbar */
#topbar{
  height:64px;display:flex;align-items:center;justify-content:space-between;
  padding:0 18px;border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,rgba(15,24,35,.96),rgba(10,16,24,.96));
  backdrop-filter:blur(10px);position:relative;z-index:20;
}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand-mark{
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  font-weight:800;color:#06202e;background:linear-gradient(135deg,var(--accent),var(--accent2));
  box-shadow:0 0 24px rgba(56,189,248,.25);flex:0 0 auto;
}
.brand-text h1{font-size:16px;font-weight:700;letter-spacing:.4px;white-space:nowrap}
.brand-text p{font-size:11px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-text .dot{color:var(--muted2);margin:0 4px}
.top-actions{display:flex;align-items:center;gap:14px}
.status-strip{
  display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);
  padding:7px 11px;border:1px solid var(--border);border-radius:999px;background:rgba(10,17,25,.7);
  white-space:nowrap;
}
.status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}
.status-dot.busy{background:var(--orange);box-shadow:0 0 10px var(--orange);animation:pulse 1.2s infinite}
.status-dot.error{background:var(--red);box-shadow:0 0 10px var(--red)}
.sep{color:var(--border2)}
.refresh-btn{
  display:flex;align-items:center;gap:8px;border:0;border-radius:10px;cursor:pointer;
  padding:10px 15px;font-size:12px;font-weight:700;color:#041a26;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  box-shadow:0 6px 22px rgba(34,211,238,.22);
  transition:transform .15s ease, box-shadow .15s ease, opacity .2s;
}
.refresh-btn:hover{transform:translateY(-1px);box-shadow:0 8px 26px rgba(34,211,238,.32)}
.refresh-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.refresh-btn.loading .refresh-icon{display:inline-block;animation:spin 1s linear infinite}
.refresh-icon{font-size:15px;line-height:1}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* layout */
#layout{
  height:calc(100vh - 64px - 34px);
  display:grid;grid-template-columns:332px minmax(0,1fr) 374px;
  gap:0;overflow:hidden;
}
aside{
  background:linear-gradient(180deg,rgba(12,20,30,.98),rgba(8,14,21,.98));
  border-right:1px solid var(--border);overflow-y:auto;padding:10px;
}
#right-panel{border-right:0;border-left:1px solid var(--border)}
.panel{
  border:1px solid var(--border);border-radius:var(--radius);
  background:linear-gradient(180deg,rgba(17,27,39,.85),rgba(12,20,30,.85));
  padding:11px;margin-bottom:10px;box-shadow:0 4px 14px rgba(0,0,0,.14);
}
.panel-grow{display:flex;flex-direction:column}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.panel-head h2{font-size:12px;font-weight:700;letter-spacing:.6px;color:#cfe1f3}
.panel-tag{
  font-size:9px;font-weight:700;letter-spacing:.8px;color:#7dd3fc;
  background:rgba(56,189,248,.09);border:1px solid rgba(56,189,248,.22);
  padding:2px 6px;border-radius:999px;white-space:nowrap;
}
.hint{font-size:10px;color:var(--muted2);line-height:1.55;margin-top:7px}
.empty{color:var(--muted2);font-size:11px;padding:8px 4px}

/* KPI */
.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.kpi{
  position:relative;border:1px solid var(--border);border-radius:9px;padding:9px 9px 8px;
  background:rgba(8,14,21,.55);overflow:hidden;
}
.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent)}
.kpi.danger:before{background:var(--red)}
.kpi-label{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}
.kpi strong{font-size:22px;font-weight:800;letter-spacing:.4px;color:#f3f8ff}
.kpi strong.small{font-size:13px;font-weight:700}
.kpi em{font-style:normal;font-size:9px;color:var(--muted2);margin-left:4px}

/* legend */
.level-legend{display:flex;flex-direction:column;gap:6px}
.level-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:7px;font-size:11px;color:#c8d6e5}
.level-row b{font-weight:600;color:var(--muted2);font-size:10px}
.level-dot{display:inline-block;width:8px;height:8px;border-radius:50%}
.level-dot.red{background:var(--red);box-shadow:0 0 8px rgba(255,59,48,.7)}
.level-dot.orange{background:var(--orange);box-shadow:0 0 8px rgba(255,149,0,.6)}
.level-dot.yellow{background:var(--yellow);box-shadow:0 0 8px rgba(255,214,10,.55)}
.level-dot.blue{background:var(--blue);box-shadow:0 0 8px rgba(10,132,255,.55)}

/* layers */
.layer-list{display:flex;flex-direction:column;gap:5px}
.switch{display:flex;align-items:center;gap:8px;font-size:11px;color:#c4d3e2;cursor:pointer;padding:3px 2px;border-radius:6px}
.switch:hover{background:rgba(56,189,248,.05)}
.switch input{appearance:none;width:28px;height:15px;border-radius:999px;background:#1a2a3a;border:1px solid #24384c;position:relative;cursor:pointer;transition:.2s;flex:0 0 auto}
.switch input:checked{background:rgba(56,189,248,.35);border-color:rgba(56,189,248,.6)}
.switch input:after{content:"";position:absolute;width:11px;height:11px;border-radius:50%;background:#7d8fa1;top:1px;left:2px;transition:.2s}
.switch input:checked:after{left:14px;background:var(--accent);box-shadow:0 0 8px var(--accent)}
.field-row{margin-top:9px}
.field-label{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}
select{
  width:100%;background:#0a121b;color:var(--text);border:1px solid var(--border2);
  border-radius:8px;padding:7px 8px;font-size:11px;outline:none;
}
select:focus{border-color:var(--accent)}
.wide-select{width:100%}

/* hotspot list */
.hotspot-list{display:flex;flex-direction:column;gap:5px;max-height:330px;overflow:auto;padding-right:2px}
.hs-item{
  display:grid;grid-template-columns:22px 1fr auto;gap:7px;align-items:center;
  padding:7px 7px;border:1px solid var(--border);border-radius:8px;cursor:pointer;
  background:rgba(8,14,21,.45);transition:.15s;
}
.hs-item:hover{border-color:rgba(56,189,248,.45);background:rgba(56,189,248,.06);transform:translateX(1px)}
.hs-rank{font-size:10px;color:var(--muted2);font-weight:700;text-align:center}
.hs-main{min-width:0}
.hs-name{font-size:11px;font-weight:700;color:#dfeaf5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-meta{font-size:9px;color:var(--muted2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-score{text-align:right}
.hs-score b{display:block;font-size:13px;font-weight:800}
.hs-score span{font-size:8px;letter-spacing:.4px;color:var(--muted2)}
.badge{display:inline-block;padding:1px 5px;border-radius:999px;font-size:8px;font-weight:700;margin-left:4px;vertical-align:1px}
.badge.red{background:rgba(255,59,48,.16);color:#ff8a80;border:1px solid rgba(255,59,48,.35)}
.badge.orange{background:rgba(255,149,0,.16);color:#ffc266;border:1px solid rgba(255,149,0,.35)}
.badge.yellow{background:rgba(255,214,10,.14);color:#ffe56a;border:1px solid rgba(255,214,10,.3)}
.badge.blue{background:rgba(10,132,255,.16);color:#79b8ff;border:1px solid rgba(10,132,255,.35)}

/* catalog */
.catalog-list{display:flex;flex-wrap:wrap;gap:5px}
.catalog-chip{
  font-size:9px;padding:3px 6px;border-radius:6px;border:1px solid var(--border);
  color:#b9c9d8;background:rgba(8,14,21,.5);cursor:pointer;transition:.15s;
}
.catalog-chip:hover{border-color:var(--accent)}
.catalog-chip.validated{border-color:rgba(52,211,153,.4);color:#a7f3d0}
.catalog-chip.screening{border-color:rgba(255,214,10,.28);color:#ffe56a}
.catalog-chip.risk{border-color:rgba(255,59,48,.28);color:#ff9f97}

/* map */
#map-shell{position:relative;min-width:0;background:#0a1017;overflow:hidden}
#map{position:absolute;inset:0;background:#0a1017}
.leaflet-container{background:#0a1017;font-family:inherit}
.leaflet-control-zoom a{background:#0f1a26!important;color:#cfe1f3!important;border-color:#22364a!important}
.leaflet-control-zoom a:hover{background:#16283a!important}
.leaflet-control-attribution{background:rgba(10,16,24,.75)!important;color:#6d8093!important;font-size:9px!important}
.leaflet-control-attribution a{color:#7dd3fc!important}
.map-legend{
  position:absolute;left:12px;bottom:12px;z-index:500;display:flex;align-items:center;gap:6px;
  background:rgba(10,16,24,.82);border:1px solid var(--border);border-radius:999px;
  padding:7px 11px;font-size:10px;color:#c8d6e5;backdrop-filter:blur(8px);box-shadow:var(--shadow);
}
.legend-title{font-weight:700;color:#dfeaf5;margin-right:2px}
.legend-sep{width:1px;height:12px;background:var(--border2);margin:0 3px}
.map-corner{
  position:absolute;right:12px;bottom:12px;z-index:500;display:flex;flex-direction:column;gap:2px;
  background:rgba(10,16,24,.75);border:1px solid var(--border);border-radius:8px;
  padding:6px 9px;font-size:9px;color:#6d8093;backdrop-filter:blur(8px);
}
.map-corner span:before{content:"· ";color:var(--accent)}
#legend-note{color:var(--muted2)}

/* hotspot marker */
.hs-marker{position:relative;width:18px;height:18px;display:grid;place-items:center}
.hs-marker i{
  width:12px;height:12px;border-radius:50%;background:var(--c,#ff3b30);
  border:2px solid rgba(255,255,255,.85);box-shadow:0 0 12px var(--c,#ff3b30);
  display:block;
}
.hs-marker span{
  position:absolute;inset:-7px;border-radius:50%;border:1px solid var(--c,#ff3b30);
  opacity:.5;animation:ring 2.2s infinite;
}
@keyframes ring{0%{transform:scale(.5);opacity:.8}100%{transform:scale(1.8);opacity:0}}
.police-marker{
  width:22px;height:22px;border-radius:7px;display:grid;place-items:center;
  background:rgba(14,30,48,.9);border:1px solid rgba(56,189,248,.55);
  box-shadow:0 0 10px rgba(56,189,248,.25);font-size:11px;color:#7dd3fc;
}
.place-marker{font-size:9px;color:#b9c9d8;white-space:nowrap;text-shadow:0 0 4px #000}

/* detail */
.detail-body{min-height:120px}
.empty-state{text-align:center;padding:18px 6px;color:var(--muted2)}
.empty-icon{font-size:28px;color:#2e4862;margin-bottom:6px}
.empty-state p{font-size:11px;color:#9fb1c2;margin-bottom:3px}
.empty-state span{font-size:9px;color:var(--muted2)}
.detail-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}
.detail-title h3{font-size:13px;font-weight:800;color:#f0f7ff;line-height:1.4}
.detail-title .score{font-size:24px;font-weight:800;line-height:1;white-space:nowrap}
.detail-sub{font-size:10px;color:var(--muted);margin-bottom:9px}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:9px}
.detail-cell{background:rgba(8,14,21,.5);border:1px solid var(--border);border-radius:7px;padding:6px 7px}
.detail-cell span{display:block;font-size:9px;color:var(--muted2);margin-bottom:2px}
.detail-cell b{font-size:11px;color:#dfeaf5;font-weight:700}
.section-label{font-size:10px;font-weight:700;color:#9fb1c2;letter-spacing:.4px;margin:9px 0 5px}
.factor-row{display:grid;grid-template-columns:64px 1fr 34px;gap:6px;align-items:center;margin-bottom:4px}
.factor-row span{font-size:9px;color:var(--muted);white-space:nowrap}
.factor-row .bar{height:5px;border-radius:999px;background:#13202d;overflow:hidden}
.factor-row .bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.factor-row b{font-size:9px;color:#b9c9d8;text-align:right;font-weight:600}
.reason-list{display:flex;flex-direction:column;gap:4px;margin-top:5px}
.reason-list li{font-size:9.5px;color:#b9c9d8;line-height:1.5;padding-left:10px;position:relative}
.reason-list li:before{content:"";position:absolute;left:0;top:6px;width:4px;height:4px;border-radius:50%;background:var(--accent)}
.action-box{margin-top:8px;border:1px solid rgba(56,189,248,.25);background:rgba(56,189,248,.06);border-radius:8px;padding:7px 8px;font-size:10px;line-height:1.55;color:#c9e8fb}
.action-box b{color:#7dd3fc}
.detail-actions{display:flex;gap:6px;margin-top:9px}
.mini-btn{
  flex:1;border:1px solid var(--border2);background:#0d1824;color:#cfe1f3;border-radius:7px;
  padding:7px 8px;font-size:10px;cursor:pointer;transition:.15s;
}
.mini-btn:hover{border-color:var(--accent);color:#fff}
.mini-btn.primary{background:linear-gradient(135deg,rgba(56,189,248,.22),rgba(34,211,238,.18));border-color:rgba(56,189,248,.5);color:#bdebfd}

/* natural */
.natural-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow:auto;padding-right:2px}
.nat-card{
  display:grid;grid-template-columns:72px 1fr;gap:8px;align-items:center;
  border:1px solid var(--border);border-radius:8px;background:rgba(8,14,21,.45);
  padding:5px;cursor:pointer;transition:.15s;
}
.nat-card:hover{border-color:rgba(56,189,248,.45);background:rgba(56,189,248,.05)}
.nat-card img{width:72px;height:52px;object-fit:cover;border-radius:6px;background:#0a121b;display:block}
.nat-card .ph{width:72px;height:52px;border-radius:6px;background:linear-gradient(135deg,#10202e,#0a141d);display:grid;place-items:center;color:#2e4862;font-size:16px}
.nat-card h4{font-size:10px;font-weight:700;color:#dfeaf5;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nat-card p{font-size:8.5px;color:var(--muted2);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nat-card .tags{display:flex;gap:4px;margin-top:3px}
.nat-card .tag{font-size:8px;color:#7dd3fc;background:rgba(56,189,248,.08);border:1px solid rgba(56,189,248,.2);border-radius:4px;padding:0 4px}

/* weather */
.weather-panel{display:flex;flex-direction:column;gap:5px}
.weather-row{display:grid;grid-template-columns:62px repeat(4,1fr);gap:4px;align-items:center;font-size:9px;color:var(--muted)}
.weather-row.head{color:var(--muted2);font-size:8px;letter-spacing:.3px}
.weather-row b{font-size:10px;color:#dfeaf5;font-weight:700}
.weather-row .w-name{font-size:9px;color:#9fb1c2}
.weather-row .w-val{text-align:right}
.weather-row .w-val.hot{color:#ff9f97}
.weather-row .w-val.wet{color:#7dd3fc}

/* model */
.model-panel{display:flex;flex-direction:column;gap:5px}
.model-method{font-size:9px;color:var(--muted2);margin-bottom:2px}
.model-weights{display:flex;flex-direction:column;gap:3px}
.mw-row{display:grid;grid-template-columns:64px 1fr 32px;gap:5px;align-items:center;font-size:9px;color:var(--muted)}
.mw-row .bar{height:4px;border-radius:999px;background:#13202d;overflow:hidden}
.mw-row .bar i{display:block;height:100%;background:linear-gradient(90deg,#818cf8,#22d3ee)}
.mw-row b{text-align:right;font-size:9px;color:#b9c9d8;font-weight:600}
.model-chart{width:100%;border-radius:8px;border:1px solid var(--border);margin-top:6px;background:#0a121b;display:block}
.model-actions{display:flex;gap:6px;margin-top:8px}
.ghost-btn{
  flex:1;border:1px solid var(--border2);background:rgba(8,14,21,.6);color:#b9c9d8;
  border-radius:7px;padding:7px 6px;font-size:9.5px;cursor:pointer;transition:.15s;
}
.ghost-btn:hover{border-color:var(--accent);color:#e6f6ff}
.ghost-btn:disabled{opacity:.55;cursor:not-allowed}
.model-output{font-size:9px;color:var(--muted2);line-height:1.5;margin-top:6px;word-break:break-all}
.model-output a{color:#7dd3fc}

/* tasks */
.task-list{display:flex;flex-direction:column;gap:5px;max-height:170px;overflow:auto}
.task-item{border:1px solid var(--border);border-radius:7px;background:rgba(8,14,21,.45);padding:6px 7px}
.task-item h4{font-size:10px;color:#dfeaf5;font-weight:700;display:flex;justify-content:space-between;gap:6px}
.task-item p{font-size:8.5px;color:var(--muted2);margin-top:3px;line-height:1.45}
.task-status{font-size:8px;color:#ffc266;border:1px solid rgba(255,149,0,.3);border-radius:4px;padding:0 4px;white-space:nowrap}

/* refresh overlay */
.refresh-overlay{
  position:absolute;inset:0;z-index:1200;display:grid;place-items:center;
  background:rgba(5,9,14,.62);backdrop-filter:blur(4px);transition:.2s;
}
.refresh-overlay.hidden{display:none}
.refresh-card{
  width:min(420px,88vw);border:1px solid rgba(56,189,248,.28);border-radius:16px;
  background:linear-gradient(180deg,rgba(16,28,42,.98),rgba(9,16,25,.98));
  box-shadow:0 20px 60px rgba(0,0,0,.55),0 0 40px rgba(56,189,248,.08);
  padding:22px 24px;text-align:center;
}
.refresh-card h3{font-size:14px;margin:12px 0 5px;color:#eaf6ff}
.refresh-card p{font-size:10.5px;color:var(--muted);line-height:1.6}
.spinner{
  width:38px;height:38px;border-radius:50%;margin:0 auto;
  border:3px solid rgba(56,189,248,.15);border-top-color:var(--accent);
  animation:spin .9s linear infinite;
}
.progress{height:4px;background:#12202d;border-radius:999px;overflow:hidden;margin:13px 0 10px}
.progress i{display:block;width:8%;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:999px;transition:width .5s}

/* toast */
.toast{
  position:absolute;left:50%;bottom:52px;transform:translateX(-50%) translateY(10px);z-index:1300;
  background:rgba(10,20,30,.95);border:1px solid rgba(56,189,248,.35);border-radius:10px;
  padding:9px 14px;font-size:11px;color:#dcefff;box-shadow:var(--shadow);
  opacity:0;transition:.25s;max-width:min(520px,86vw);pointer-events:none;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.warn{border-color:rgba(255,149,0,.4);color:#ffd9a3}
.toast.error{border-color:rgba(255,59,48,.4);color:#ffb3ad}

/* footer */
#footer{
  height:34px;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:0 16px;border-top:1px solid var(--border);background:rgba(8,13,20,.98);
  font-size:9px;color:var(--muted2);white-space:nowrap;overflow:hidden;
}
#footer .warn{color:#b98a3d}

/* responsive */
@media (max-width:1280px){
  #layout{grid-template-columns:300px minmax(0,1fr) 340px}
  .brand-text p{display:none}
}
@media (max-width:1120px){
  body{overflow:auto}
  #topbar{height:auto;min-height:64px;flex-wrap:wrap;gap:10px;padding:10px 14px}
  #layout{display:flex;flex-direction:column;height:auto;overflow:visible}
  #left-panel,#right-panel{border:0;max-height:none;overflow:visible;padding:10px}
  #map-shell{order:1;height:64vh;min-height:420px}
  #left-panel{order:2}
  #right-panel{order:3}
  #footer{height:auto;min-height:34px;flex-wrap:wrap;padding:7px 12px;white-space:normal;line-height:1.5}
  .top-actions{width:100%;justify-content:space-between}
  .status-strip{display:none}
  .hotspot-list{max-height:none}
}
@media (max-width:560px){
  .brand-text h1{font-size:13px}
  .refresh-btn{padding:9px 11px;font-size:11px}
  .kpi strong{font-size:18px}
  #map-shell{height:58vh;min-height:360px}
  .map-corner{display:none}
}

/* leaflet popup / tooltip */
.eco-popup .leaflet-popup-content-wrapper{
  background:linear-gradient(180deg,rgba(17,29,43,.98),rgba(10,18,27,.98));
  color:#dfeaf5;border:1px solid #22364a;border-radius:10px;
  box-shadow:0 14px 38px rgba(0,0,0,.5),0 0 24px rgba(56,189,248,.06);
}
.eco-popup .leaflet-popup-content{margin:10px 12px;font-size:11px;line-height:1.55}
.eco-popup .leaflet-popup-tip{background:#0f1a26;border:1px solid #22364a}
.eco-popup .leaflet-popup-close-button{color:#7d8fa1!important;font-size:16px!important;padding:4px 6px 0 0!important}
.pop-title{font-weight:800;color:#eaf6ff;margin-bottom:5px;font-size:11px}
.pop-row{display:flex;justify-content:space-between;gap:14px;font-size:10px;color:#9fb1c2;padding:1px 0}
.pop-row b{color:#dfeaf5;font-weight:600}
.pop-note{font-size:9px;color:#8496a8;margin-top:6px;line-height:1.45;border-top:1px solid #1b2a3a;padding-top:5px}
.leaflet-tooltip{
  background:rgba(10,18,27,.94)!important;color:#cfe1f3!important;border:1px solid #22364a!important;
  border-radius:6px!important;font-size:10px!important;box-shadow:0 6px 18px rgba(0,0,0,.35)!important;
}
.leaflet-tooltip-top:before{border-top-color:#22364a!important}
.leaflet-tooltip-bottom:before{border-bottom-color:#22364a!important}
.leaflet-tooltip-left:before{border-left-color:#22364a!important}
.leaflet-tooltip-right:before{border-right-color:#22364a!important}
