:root{
  --bg:#08090c; --bg2:#0c0e13; --panel:#0d1016; --grid:#1a1f28;
  --amber:#ffb000; --amber-dim:#8a5f00; --cyan:#00f0ff; --cyan-dim:#0a5b63;
  --crimson:#ff3344; --green:#2bff6b; --text:#c9d1d9; --text-dim:#5a6472;
}
*{box-sizing:border-box;}
html,body{background:var(--bg); margin:0; padding:0;}
body{
  font-family:'JetBrains Mono', monospace; color:var(--text);
  background-image:
    linear-gradient(rgba(0,240,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,240,255,0.025) 1px, transparent 1px);
  background-size:28px 28px;
  min-height:100vh;
}
.font-tech{font-family:'Share Tech Mono', monospace;}
.scanlines{
  position:fixed; inset:0; pointer-events:none; z-index:50;
  background:repeating-linear-gradient(0deg, rgba(0,0,0,0.15) 0px, rgba(0,0,0,0.15) 1px, transparent 1px, transparent 3px);
  mix-blend-mode:overlay;
}
.crt-vignette{
  position:fixed; inset:0; pointer-events:none; z-index:49;
  box-shadow: inset 0 0 180px rgba(0,0,0,0.75);
}
.panel{
  background:var(--panel);
  border:1px solid var(--grid);
  position:relative;
}
.panel::before{
  content:''; position:absolute; top:0; left:0; width:14px; height:14px;
  border-top:2px solid var(--cyan); border-left:2px solid var(--cyan);
}
.panel::after{
  content:''; position:absolute; bottom:0; right:0; width:14px; height:14px;
  border-bottom:2px solid var(--cyan); border-right:2px solid var(--cyan);
}
.panel-head{
  font-size:11px; letter-spacing:0.12em; text-transform:uppercase; font-weight:700;
  color:var(--cyan); border-bottom:1px solid var(--grid); padding:8px 12px;
  display:flex; justify-content:space-between; align-items:center;
  background:linear-gradient(90deg, rgba(0,240,255,0.06), transparent);
}
.glow-amber{ text-shadow:0 0 8px rgba(255,176,0,0.6); }
.glow-cyan{ text-shadow:0 0 8px rgba(0,240,255,0.55); }
.glow-crimson{ text-shadow:0 0 10px rgba(255,51,68,0.7); }
@keyframes pulse-dot{ 0%,100%{opacity:1; box-shadow:0 0 0 0 rgba(43,255,107,0.5);} 50%{opacity:0.55; box-shadow:0 0 0 6px rgba(43,255,107,0);} }
.pulse{ animation:pulse-dot 1.6s infinite; }
@keyframes pulse-crimson{ 0%,100%{opacity:1;} 50%{opacity:0.35;} }
.pulse-c{ animation:pulse-crimson 1s infinite; }
@keyframes ticker-in{ from{opacity:0; transform:translateY(-4px);} to{opacity:1; transform:translateY(0);} }
.tick-row{ animation:ticker-in 0.25s ease-out; }
::-webkit-scrollbar{ width:6px; height:6px; }
::-webkit-scrollbar-track{ background:var(--bg2); }
::-webkit-scrollbar-thumb{ background:var(--amber-dim); }
.term-scroll{ scrollbar-width:thin; scrollbar-color: var(--amber-dim) var(--bg2); }
#map{ background:#05060a !important; filter:grayscale(1) brightness(0.65) contrast(1.3); }
.leaflet-container{ background:#05060a !important; }
.crosshair-pulse{ animation:pulse-dot 1.4s infinite; }
.btn-audit{
  background:transparent; border:1px solid var(--crimson); color:var(--crimson);
  letter-spacing:0.1em; transition:all .15s ease;
}
.btn-audit:hover{ background:var(--crimson); color:#08090c; box-shadow:0 0 20px rgba(255,51,68,0.5); }
.sev-crit{ color:var(--crimson); }
.sev-high{ color:var(--amber); }
.sev-med{ color:var(--cyan); }
.badge{ font-size:10px; padding:1px 6px; border:1px solid currentColor; letter-spacing:0.05em; }
