:root{--bg:#16181d;--fg:#e9eaee;--mut:#9aa0ab;--card:#20232a;--line:#2e323b;--acc:#ff6a2b;
--activo:#e5312b;--en_control:#ff9800;--controlado:#f2c94c;--extinguido:#3fae5a;--sin_dato:#8a8f98;--inferido:#a259ff}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font:14px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:#7cc4ff}
#app{display:flex;height:100%;height:100dvh}
#map{flex:1;min-width:0}
#panel{width:380px;max-width:100%;overflow-y:auto;padding:12px 14px 40px;border-right:1px solid var(--line);position:relative;z-index:1000;background:var(--bg)}
#toggle{display:none}
h1{font-size:18px;margin:0 0 6px}h2{font-size:14px;margin:16px 0 6px;color:#fff;text-transform:uppercase;letter-spacing:.04em}
h2 small{color:var(--mut);text-transform:none;font-weight:400}
.live{font-size:10px;background:var(--activo);color:#fff;padding:2px 6px;border-radius:9px;vertical-align:middle;animation:blink 2s infinite}
@keyframes blink{50%{opacity:.5}}
.upd{margin:2px 0;color:var(--mut)}.upd b{color:var(--fg)}
.warn{background:#3a2a12;border:1px solid #6b4a14;padding:6px 8px;border-radius:6px;font-size:12.5px;margin:8px 0}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px}
.stat .v{font-size:22px;font-weight:700}.stat .l{color:var(--mut);font-size:12px}.stat .s{font-size:11px;color:var(--mut)}
.stat.wide{grid-column:1/-1}
.filters label{display:block;margin:4px 0}
select{width:100%;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:6px}
fieldset{border:1px solid var(--line);border-radius:8px;margin:6px 0;padding:6px 8px}
legend{color:var(--mut);font-size:12px}
fieldset label{display:inline-flex;align-items:center;gap:4px;margin:2px 10px 2px 0}
.list{list-style:none;margin:0;padding:0}
.list li{border-bottom:1px solid var(--line);padding:7px 2px;cursor:pointer}
.list li:hover{background:#1d2027}
.news li{cursor:default}.news .meta{color:var(--mut);font-size:11.5px}
.badge{display:inline-block;font-size:11px;padding:1px 7px;border-radius:9px;color:#111;font-weight:600;white-space:nowrap}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle}
.sat{font-size:11px;color:#ffb38a}
.small{font-size:11.5px;color:var(--mut)}
.legend-text ul{padding-left:18px;margin:4px 0;color:#cfd2d8;font-size:12.5px}
/* marcadores */
.inc-icon{border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #000a,0 1px 4px #000;position:relative}
.inc-icon.pulse::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid #ff5a1f;animation:pulse 1.8s infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.5);opacity:0}}
.leaflet-popup-content{font-size:13px;line-height:1.45;max-width:320px}
.leaflet-popup-content h3{margin:0 0 4px;font-size:14.5px}
.leaflet-popup-content ul{padding-left:16px;margin:4px 0}
.pp-row{margin:2px 0}.pp-k{color:#666}
.map-legend{background:#fffffff0;color:#222;padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.6;box-shadow:0 1px 5px #0005}
.lg-h{font-weight:700;cursor:pointer}
.map-legend b{display:block;margin-top:2px}
.map-legend .sw{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:5px;vertical-align:-1px;border:1px solid #0003}
/* móvil */
@media (max-width:760px){
  #app{flex-direction:column-reverse}
  #panel{width:100%;height:46%;border-right:0;border-top:1px solid var(--line);padding-top:30px}
  #panel.collapsed{height:118px;overflow:hidden}
  #toggle{display:block;position:absolute;top:4px;left:50%;transform:translateX(-50%);background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:12px;padding:2px 18px}
  .stats{grid-template-columns:repeat(4,1fr)}.stat .v{font-size:17px}.stat .l{font-size:10.5px}.stat .s{display:none}.stat.wide{display:none}
  .map-legend{font-size:11px;line-height:1.45}
  .map-legend .lg-b{display:none}.map-legend.open .lg-b{display:block}
}
