/* ═══════════════════════════════════════════════════════════════════
   INFRANET — Global Data Infrastructure Intelligence
   Mission-Operations / Intelligence-Agency visual identity
   ═══════════════════════════════════════════════════════════════════ */

:root{
  /* Core palette — deep black ops */
  --wm-bg:        #04060a;
  --wm-bg-2:      #070a10;
  --wm-bg-3:      #0b0f17;
  --wm-panel:     #0a0e15;
  --wm-panel-2:   #0d121b;
  --wm-border:    #162130;
  --wm-border-2:  #1f3048;
  --wm-border-hot:#3a5a88;

  --wm-text:      #d7e4f2;
  --wm-text-dim:  #7d92ad;
  --wm-text-faint:#4a5a72;

  /* Accents — amber primary, cyan secondary */
  --wm-accent:    #ffb347;   /* amber */
  --wm-accent-2:  #ffd580;
  --wm-cyan:      #00e5ff;
  --wm-cyan-dim:  #0aa6bf;
  --wm-red:       #ff3a4e;
  --wm-red-glow:  rgba(255,58,78,.55);
  --wm-green:     #2ee89a;
  --wm-amber:     #ffb347;
  --wm-blue:      #6aa8ff;

  --wm-glow-amber: 0 0 12px rgba(255,179,71,.55), 0 0 24px rgba(255,179,71,.22);
  --wm-glow-cyan:  0 0 10px rgba(0,229,255,.55),  0 0 22px rgba(0,229,255,.18);
  --wm-glow-red:   0 0 10px rgba(255,58,78,.6),   0 0 24px rgba(255,58,78,.25);

  --wm-scanline: repeating-linear-gradient(
      0deg,
      rgba(255,255,255,0.015) 0px,
      rgba(255,255,255,0.015) 1px,
      transparent 1px,
      transparent 3px);
}

/* ─────────── Reset / Base ─────────── */
*{box-sizing:border-box}
html,body{
  margin:0;height:100%;
  background:
    radial-gradient(ellipse at 30% 10%, rgba(255,179,71,0.035), transparent 55%),
    radial-gradient(ellipse at 85% 90%, rgba(0,229,255,0.03), transparent 55%),
    var(--wm-bg);
  color:var(--wm-text);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:12.5px;line-height:1.4;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
/* NOTE: global scanline + grid overlays removed — mix-blend-mode across
   the entire viewport was forcing a full repaint of every frame. The
   faint radial backdrop above is enough atmosphere without the GPU cost. */
.mono{font-family:'Share Tech Mono','JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em}
button,input{font-family:inherit}
::selection{background:rgba(255,179,71,.3);color:#fff}

/* ─────────── Scrollbars ─────────── */
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-track{background:rgba(10,14,21,.6)}
*::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--wm-accent),#8c5a15);
  border-radius:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.4);
}
*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#ffd580,var(--wm-accent))}
*::-webkit-scrollbar-corner{background:transparent}

#app{display:flex;flex-direction:column;min-height:100vh;position:relative;z-index:1}

/* ─────────── Top operational banner ─────────── */
.wm-pro-banner{
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:linear-gradient(90deg,#050811 0%,#0a1624 50%,#050811 100%);
  border-bottom:1px solid rgba(255,179,71,.28);
  color:var(--wm-text-dim);font-size:11px;letter-spacing:.08em;
  padding:6px 16px;position:relative;
  text-transform:uppercase;font-family:'Share Tech Mono',monospace;
}
.wm-pro-banner .tag{
  color:var(--wm-accent);border:1px solid rgba(255,179,71,.45);
  padding:2px 8px;font-size:10px;letter-spacing:.2em;
  font-family:'Share Tech Mono',monospace;
  box-shadow:inset 0 0 12px rgba(255,179,71,.12);
}
.wm-pro-banner strong{color:var(--wm-accent);font-weight:500;text-transform:uppercase}
.wm-pro-close{position:absolute;right:10px;background:transparent;border:none;color:var(--wm-text-dim);cursor:pointer;font-size:14px}
.wm-pro-close:hover{color:var(--wm-accent)}

/* ─────────── Top bar ─────────── */
.wm-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:8px 16px;
  background:linear-gradient(180deg,#080c14 0%,#050810 100%);
  border-bottom:1px solid var(--wm-border-2);
  position:sticky;top:0;z-index:60;
  box-shadow:0 1px 0 rgba(255,179,71,.1), 0 0 40px rgba(0,0,0,.6);
}
.wm-topbar::after{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--wm-accent) 20%,var(--wm-accent) 80%,transparent);
  opacity:.35;
}
.wm-topbar-left,.wm-topbar-right{display:flex;align-items:center;gap:10px}
.wm-brand{
  display:inline-flex;align-items:center;gap:6px;color:var(--wm-text);
  letter-spacing:.24em;font-weight:700;font-size:11px;
  text-decoration:none;font-family:'Orbitron',sans-serif;
  padding:4px 10px;border:1px solid var(--wm-border-2);
  background:rgba(255,179,71,.03);
  transition:all .2s ease;
}
.wm-brand:hover{color:var(--wm-accent);border-color:var(--wm-accent);box-shadow:var(--wm-glow-amber)}
.wm-dot-green{
  width:8px;height:8px;border-radius:50%;background:var(--wm-green);
  box-shadow:0 0 10px var(--wm-green),0 0 20px var(--wm-green);
  animation:wm-pulse 1.6s ease-in-out infinite;
}
@keyframes wm-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}

.wm-monitor-title{
  display:flex;align-items:baseline;gap:10px;
  font-family:'Orbitron',sans-serif;
  color:var(--wm-text);font-size:13px;letter-spacing:.3em;font-weight:600;
  text-shadow:0 0 12px rgba(255,179,71,.2);
}
.wm-monitor-title .ver{color:var(--wm-text-faint);font-size:10px;letter-spacing:.1em;font-weight:400;font-family:'Share Tech Mono',monospace}
.wm-monitor-title .user{color:var(--wm-accent);font-size:10px;letter-spacing:.08em;font-family:'Share Tech Mono',monospace;font-weight:400}

.wm-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;border:1px solid var(--wm-border-2);
  background:linear-gradient(180deg,rgba(15,23,35,.9),rgba(10,14,21,.9));
  color:var(--wm-text-dim);font-size:10.5px;letter-spacing:.12em;
  font-family:'Share Tech Mono',monospace;text-transform:uppercase;
  clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px);
}
.wm-defcon{
  display:inline-flex;align-items:center;gap:8px;
  padding:5px 12px;
  background:linear-gradient(180deg,rgba(255,179,71,.08),rgba(255,179,71,.02));
  border:1px solid rgba(255,179,71,.4);
  color:var(--wm-accent);
  font-family:'Share Tech Mono',monospace;font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;
  clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px);
}
.wm-defcon.critical{
  border-color:rgba(255,58,78,.6);color:var(--wm-red);
  background:linear-gradient(180deg,rgba(255,58,78,.1),rgba(255,58,78,.02));
  animation:alarm 1.4s ease-in-out infinite;
}
@keyframes alarm{0%,100%{box-shadow:none}50%{box-shadow:var(--wm-glow-red)}}
.wm-defcon .lvl{color:var(--wm-accent);font-weight:700}
.wm-defcon.critical .lvl{color:var(--wm-red)}
.wm-defcon .pct{color:var(--wm-text-dim);font-weight:700}
.wm-defcon.critical .pct{color:var(--wm-red)}

.wm-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;
  background:linear-gradient(180deg,rgba(15,23,35,.9),rgba(10,14,21,.9));
  color:var(--wm-text);
  border:1px solid var(--wm-border-2);
  font-size:11px;letter-spacing:.1em;
  font-family:'Share Tech Mono',monospace;text-transform:uppercase;
  cursor:pointer;transition:all .2s ease;
  clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px);
}
.wm-btn:hover{border-color:var(--wm-accent);color:var(--wm-accent);box-shadow:var(--wm-glow-amber)}

.wm-search-bar{
  display:flex;align-items:center;gap:6px;
  padding:5px 12px;
  background:rgba(10,14,21,.8);
  border:1px solid var(--wm-border-2);
  color:var(--wm-text-dim);
  clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px);
}
.wm-search-bar:focus-within{border-color:var(--wm-accent);box-shadow:var(--wm-glow-amber)}
.wm-search-bar input{
  background:transparent;border:none;outline:none;
  color:var(--wm-text);font-size:11.5px;width:230px;
  font-family:'Share Tech Mono',monospace;letter-spacing:.04em;
}
.wm-search-bar input::placeholder{color:var(--wm-text-faint);text-transform:uppercase;font-size:10.5px;letter-spacing:.1em}

/* ─────────── Threat Board hero strip ─────────── */
.wm-threat{
  display:flex;align-items:stretch;gap:0;
  background:linear-gradient(180deg,#060a12 0%,#050810 100%);
  border-bottom:1px solid var(--wm-border-2);
  position:relative;z-index:15;
  min-height:78px;
}
.wm-threat::after{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--wm-red) 15%,var(--wm-accent) 50%,var(--wm-cyan) 85%,transparent);
  opacity:.45;
}
.wm-threat-label{
  display:flex;flex-direction:column;justify-content:center;gap:3px;
  padding:12px 20px;min-width:170px;
  border-right:1px solid var(--wm-border-2);
  background:linear-gradient(180deg,rgba(255,58,78,.05),transparent);
  position:relative;
}
.wm-threat-label::before{
  content:'';position:absolute;left:0;top:12px;bottom:12px;width:3px;
  background:var(--wm-red);box-shadow:var(--wm-glow-red);
}
.wm-threat-label .lv{
  font-family:'Orbitron',sans-serif;color:var(--wm-red);
  font-size:12px;letter-spacing:.28em;font-weight:700;text-transform:uppercase;
  text-shadow:0 0 10px var(--wm-red-glow);
}
.wm-threat-label .sub{
  font-family:'Share Tech Mono',monospace;color:var(--wm-text-faint);
  font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;
}
.wm-threat-cards{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;
  flex:1;background:var(--wm-border-2);
}
.wm-threat-empty{
  grid-column:1 / -1;display:flex;align-items:center;justify-content:center;
  background:var(--wm-bg);color:var(--wm-text-faint);
  font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
}
.wm-tc{
  background:var(--wm-bg);position:relative;padding:10px 14px 10px 16px;
  display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 12px;
  align-items:center;cursor:pointer;transition:background .15s ease;
  overflow:hidden;
}
.wm-tc::before{
  /* provider color accent bar */
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--tc-color, var(--wm-accent));
  box-shadow:0 0 10px var(--tc-color, var(--wm-accent));
}
.wm-tc:hover{background:rgba(255,179,71,.03)}
.wm-tc-name{
  grid-column:1 / -1;
  font-family:'Orbitron',sans-serif;color:var(--wm-text);
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
}
.wm-tc-big{
  grid-row:2;grid-column:1;
  font-family:'Share Tech Mono',monospace;color:var(--tc-color, var(--wm-accent));
  font-size:26px;font-weight:700;line-height:1;
  text-shadow:0 0 12px var(--tc-color-glow, rgba(255,179,71,.35));
  display:flex;align-items:center;gap:6px;
}
.wm-tc-big .trend{font-size:13px;font-weight:700}
.wm-tc-big .trend.up{color:var(--wm-red);text-shadow:0 0 8px var(--wm-red-glow)}
.wm-tc-big .trend.down{color:var(--wm-green);text-shadow:0 0 8px rgba(46,232,154,.35)}
.wm-tc-big .trend.flat{color:var(--wm-text-faint);text-shadow:none}
.wm-tc-meta{
  grid-row:2;grid-column:2;
  display:flex;flex-direction:column;gap:2px;min-width:0;
}
.wm-tc-spark{height:26px;width:100%;overflow:visible}
.wm-tc-spark path{stroke:var(--tc-color, var(--wm-accent));stroke-width:1.4;fill:none;stroke-linejoin:round;stroke-linecap:round}
.wm-tc-spark .fill{fill:var(--tc-color, var(--wm-accent));opacity:.14;stroke:none}
.wm-tc-sub{
  font-family:'Share Tech Mono',monospace;color:var(--wm-text-faint);
  font-size:9px;letter-spacing:.14em;text-transform:uppercase;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
}
.wm-tc-sub .hot{color:var(--wm-red);margin-left:4px}
.wm-tc.hot{background:linear-gradient(90deg,rgba(255,58,78,.07),transparent 60%)}
.wm-tc.hot::before{background:var(--wm-red);box-shadow:var(--wm-glow-red)}

@media (max-width:1280px){
  .wm-threat-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .wm-tc:nth-child(n+4){display:none}
}
@media (max-width:860px){
  .wm-threat{flex-direction:column}
  .wm-threat-label{border-right:none;border-bottom:1px solid var(--wm-border-2)}
  .wm-threat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wm-tc:nth-child(n+3){display:none}
}

/* ─────────── Main grid ─────────── */
.wm-main{
  display:grid;grid-template-columns:280px 1fr 400px;
  min-height:calc(100vh - 186px);gap:0;
}
.wm-col{display:flex;flex-direction:column;min-width:0;position:relative}

/* Universal corner-bracket treatment on panels */
.wm-section-header,.wm-panel-header,.wm-map-header{position:relative}

.wm-section-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;
  background:linear-gradient(90deg,rgba(255,179,71,.05),transparent);
  border-bottom:1px solid var(--wm-border-2);
  font-family:'Orbitron',sans-serif;
  font-size:10.5px;letter-spacing:.24em;color:var(--wm-accent);
  text-transform:uppercase;font-weight:600;
}
.wm-section-header span:last-child{color:var(--wm-text-dim);font-weight:400;font-family:'Share Tech Mono',monospace;letter-spacing:.1em}
.wm-section-header::before{
  content:'';position:absolute;left:8px;top:50%;width:3px;height:14px;transform:translateY(-50%);
  background:var(--wm-accent);box-shadow:var(--wm-glow-amber);
}
.wm-section-header{padding-left:20px}

/* ─────────── Providers sidebar ─────────── */
.wm-layers{
  background:linear-gradient(180deg,var(--wm-bg-2) 0%,var(--wm-bg) 100%);
  border-right:1px solid var(--wm-border-2);
}
.wm-layers::before{
  content:'';position:absolute;top:0;right:-1px;bottom:0;width:1px;
  background:linear-gradient(180deg,transparent,rgba(255,179,71,.4) 30%,rgba(255,179,71,.4) 70%,transparent);
  opacity:.5;
}

.wm-provider-actions{
  display:flex;gap:4px;padding:8px 14px;
  border-bottom:1px solid var(--wm-border);flex-wrap:wrap;
  background:rgba(0,0,0,.3);
}
.wm-mini{
  padding:4px 9px;
  background:rgba(10,14,21,.6);color:var(--wm-text-dim);
  border:1px solid var(--wm-border-2);
  font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  cursor:pointer;font-family:'Share Tech Mono',monospace;
  transition:all .15s ease;
}
.wm-mini:hover{color:var(--wm-accent);border-color:var(--wm-accent);box-shadow:var(--wm-glow-amber)}

.wm-provider-list{flex:1;overflow-y:auto;background:rgba(0,0,0,.2)}
.wm-prov-row{
  display:flex;align-items:center;gap:10px;padding:8px 14px;
  border-bottom:1px solid rgba(22,33,48,.6);
  cursor:pointer;user-select:none;
  transition:background .15s ease,transform .15s ease;
  position:relative;
}
.wm-prov-row:hover{background:rgba(255,179,71,.05)}
.wm-prov-row:hover::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--wm-accent);box-shadow:var(--wm-glow-amber);
}
.wm-prov-chk{
  width:12px;height:12px;border:1px solid var(--wm-border-hot);background:var(--wm-bg);
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  transition:all .15s ease;
}
.wm-prov-chk.on{background:var(--wm-accent);border-color:var(--wm-accent);box-shadow:var(--wm-glow-amber)}
.wm-prov-chk.on::after{
  content:'';width:6px;height:3px;border-left:2px solid #03060a;border-bottom:2px solid #03060a;
  transform:rotate(-45deg) translate(0,-1px);
}
.wm-prov-swatch{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
  box-shadow:0 0 8px currentColor;
}
.wm-prov-name{
  flex:1;color:var(--wm-text);font-size:11.5px;letter-spacing:.12em;
  text-transform:uppercase;font-family:'Share Tech Mono',monospace;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
}
.wm-prov-count{
  color:var(--wm-text-dim);font-size:10.5px;
  font-family:'Share Tech Mono',monospace;letter-spacing:.05em;
}
.wm-prov-count.degraded{color:var(--wm-amber)}
.wm-prov-count.outage{color:var(--wm-red);text-shadow:0 0 6px var(--wm-red-glow)}
.wm-prov-health{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.wm-prov-health.operational{background:var(--wm-green);box-shadow:0 0 6px var(--wm-green)}
.wm-prov-health.degraded{background:var(--wm-amber);box-shadow:0 0 6px var(--wm-amber)}
.wm-prov-health.outage{background:var(--wm-red);box-shadow:0 0 10px var(--wm-red);animation:wm-pulse 1s ease-in-out infinite}

.wm-foot-brand{
  padding:12px 14px;border-top:1px solid var(--wm-border);
  font-size:10px;color:var(--wm-text-faint);
  font-family:'Share Tech Mono',monospace;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(0,0,0,.3);
}

/* ─────────── Map area ─────────── */
.wm-map-wrap{
  background:var(--wm-bg);
  border-right:1px solid var(--wm-border-2);
  position:relative;
}
.wm-map-header{
  display:flex;align-items:center;justify-content:space-between;padding:10px 16px;
  background:linear-gradient(180deg,rgba(10,14,21,.95),rgba(5,8,16,.9));
  border-bottom:1px solid var(--wm-border-2);
  position:relative;z-index:5;
}
.wm-map-header::after{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--wm-cyan) 50%,transparent);
  opacity:.35;
}
.wm-map-title{
  font-family:'Orbitron',sans-serif;color:var(--wm-accent);
  letter-spacing:.3em;font-size:11px;text-transform:uppercase;font-weight:600;
  text-shadow:0 0 10px rgba(255,179,71,.4);
}
.wm-map-title::before{
  content:'◈ ';color:var(--wm-cyan);text-shadow:0 0 8px var(--wm-cyan);
}
.wm-map-clock{color:var(--wm-cyan);font-size:11px;letter-spacing:.1em;text-shadow:0 0 8px rgba(0,229,255,.35)}

.wm-23d{display:inline-flex;border:1px solid var(--wm-border-2);overflow:hidden;clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px)}
.wm-23d button{
  padding:4px 12px;background:transparent;color:var(--wm-text-dim);
  border:none;cursor:pointer;font-size:10px;letter-spacing:.18em;
  font-family:'Share Tech Mono',monospace;transition:all .15s ease;
}
.wm-23d button:hover{color:var(--wm-accent)}
.wm-23d button.on{
  background:linear-gradient(180deg,var(--wm-accent),#c27d1a);color:#03060a;font-weight:700;
  text-shadow:none;box-shadow:inset 0 0 12px rgba(255,255,255,.2);
}

.wm-map-area{
  position:relative;flex:1;min-height:520px;
  background:#020309;overflow:hidden;
}
/* Corner brackets on map (no filter — flat render is much cheaper) */
.wm-map-area::after{
  content:'';position:absolute;inset:10px;pointer-events:none;z-index:501;
  background:
    linear-gradient(var(--wm-accent),var(--wm-accent)) top left/16px 1px no-repeat,
    linear-gradient(var(--wm-accent),var(--wm-accent)) top left/1px 16px no-repeat,
    linear-gradient(var(--wm-accent),var(--wm-accent)) top right/16px 1px no-repeat,
    linear-gradient(var(--wm-accent),var(--wm-accent)) top right/1px 16px no-repeat,
    linear-gradient(var(--wm-accent),var(--wm-accent)) bottom left/16px 1px no-repeat,
    linear-gradient(var(--wm-accent),var(--wm-accent)) bottom left/1px 16px no-repeat,
    linear-gradient(var(--wm-accent),var(--wm-accent)) bottom right/16px 1px no-repeat,
    linear-gradient(var(--wm-accent),var(--wm-accent)) bottom right/1px 16px no-repeat;
  opacity:.75;
}

.wm-map-legend{
  position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:14px;
  background:rgba(4,6,10,.92);
  padding:7px 16px;border:1px solid rgba(255,179,71,.3);
  font-size:10.5px;color:var(--wm-text-dim);z-index:600;
  font-family:'Share Tech Mono',monospace;letter-spacing:.08em;text-transform:uppercase;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
}
.wm-map-legend .lg{display:inline-flex;align-items:center;gap:6px}
.wm-map-legend .lg .d{width:7px;height:7px;border-radius:50%;box-shadow:0 0 6px currentColor}

/* Radar sweep overlay — simplified for perf (no blur, no blend mode) */
.wm-radar{
  position:absolute;inset:0;pointer-events:none;z-index:650;
  overflow:hidden;opacity:.35;
}
.wm-radar-sweep{
  position:absolute;left:50%;top:50%;width:140vh;height:140vh;transform-origin:0 0;
  background:conic-gradient(from 0deg at 0 0,
    transparent 0deg,
    transparent 352deg,
    rgba(0,229,255,0.25) 358deg,
    rgba(0,229,255,0.5) 360deg);
  transform:translate(-50%,-50%) rotate(0deg);
  animation:radar-spin 18s linear infinite;
  will-change:transform;
}
@keyframes radar-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* ─────────── Leaflet overrides ─────────── */
.leaflet-container{background:#020309;font-family:inherit;outline:0}
.leaflet-control-zoom{border:1px solid var(--wm-border-2)!important;box-shadow:0 0 12px rgba(0,0,0,.6)!important}
.leaflet-control-zoom a{
  background:rgba(10,14,21,.9)!important;color:var(--wm-text)!important;
  border:none!important;border-bottom:1px solid var(--wm-border-2)!important;
  font-family:'Share Tech Mono',monospace!important;
  transition:all .15s ease!important;
}
.leaflet-control-zoom a:hover{background:rgba(255,179,71,.15)!important;color:var(--wm-accent)!important}
.leaflet-control-attribution{background:rgba(4,6,10,.85)!important;color:var(--wm-text-faint)!important;font-size:9px!important;letter-spacing:.05em}
.leaflet-control-attribution a{color:var(--wm-text-dim)!important}

.leaflet-popup-content-wrapper{
  background:linear-gradient(180deg,rgba(10,14,21,.98),rgba(5,8,16,.98))!important;
  color:var(--wm-text)!important;
  border:1px solid rgba(255,179,71,.45)!important;
  border-radius:0!important;
  box-shadow:0 8px 40px rgba(0,0,0,.8),var(--wm-glow-amber)!important;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}
.leaflet-popup-tip{background:rgba(10,14,21,.98)!important;border:1px solid rgba(255,179,71,.45)!important}
.leaflet-popup-content{margin:12px 14px;font-size:11.5px;line-height:1.5}
.leaflet-popup-content b{
  color:var(--wm-accent);font-family:'Orbitron',sans-serif;
  letter-spacing:.12em;font-size:11.5px;text-transform:uppercase;
  text-shadow:0 0 8px rgba(255,179,71,.3);
}
.leaflet-popup-content .pop-meta{color:var(--wm-text-dim);font-size:10.5px;margin-top:5px;font-family:'Share Tech Mono',monospace;letter-spacing:.04em}
.leaflet-popup-content .pop-pill{
  display:inline-block;padding:2px 8px;font-size:9.5px;
  font-family:'Share Tech Mono',monospace;letter-spacing:.1em;
  margin-right:4px;margin-top:4px;text-transform:uppercase;
}

.marker-cluster{background:rgba(255,179,71,.25)!important;border:1px solid rgba(255,179,71,.5)!important}
.marker-cluster div{
  background:linear-gradient(180deg,var(--wm-accent),#c27d1a)!important;
  color:#03060a!important;
  font-family:'Share Tech Mono',monospace!important;
  font-weight:700!important;border:none!important;
  box-shadow:0 0 12px rgba(255,179,71,.5);
}

/* Glowing dot pulse (for outages) */
.wm-pulse-icon{position:relative}
.wm-pulse-icon::before,.wm-pulse-icon::after{
  content:'';position:absolute;left:50%;top:50%;
  width:8px;height:8px;border-radius:50%;
  background:var(--wm-red);transform:translate(-50%,-50%);
  animation:ping 1.6s ease-out infinite;
}
.wm-pulse-icon::after{animation-delay:.8s}
@keyframes ping{
  0%{width:6px;height:6px;opacity:.9}
  100%{width:30px;height:30px;opacity:0}
}

/* ─────────── Right panel stack ─────────── */
.wm-right{
  background:linear-gradient(180deg,var(--wm-bg-2) 0%,var(--wm-bg) 100%);
  border-left:1px solid var(--wm-border-2);
  max-height:calc(100vh - 186px);overflow-y:auto;
}
.wm-right::before{
  content:'';position:absolute;top:0;left:-1px;bottom:0;width:1px;
  background:linear-gradient(180deg,transparent,rgba(0,229,255,.4) 30%,rgba(0,229,255,.4) 70%,transparent);
  opacity:.4;z-index:1;
}
.wm-panel{
  border-bottom:1px solid var(--wm-border-2);
  background:var(--wm-panel);
  position:relative;
}
.wm-panel-header{
  display:flex;align-items:center;justify-content:space-between;padding:9px 14px;
  background:linear-gradient(90deg,rgba(0,229,255,.05),transparent);
  font-family:'Orbitron',sans-serif;font-size:10.5px;letter-spacing:.24em;
  color:var(--wm-cyan);text-transform:uppercase;font-weight:600;
  border-bottom:1px solid var(--wm-border);
  text-shadow:0 0 10px rgba(0,229,255,.3);
  padding-left:20px;
}
.wm-panel-header::before{
  content:'';position:absolute;left:8px;top:50%;width:3px;height:14px;transform:translateY(-50%);
  background:var(--wm-cyan);box-shadow:var(--wm-glow-cyan);
}
.wm-panel-header .muted{color:var(--wm-text-dim);font-size:9.5px;letter-spacing:.08em;font-family:'Share Tech Mono',monospace;text-shadow:none;font-weight:400}
.wm-panel-header .badge{
  background:var(--wm-red);color:#fff;padding:1px 8px;
  font-size:9.5px;letter-spacing:.04em;margin-left:6px;
  font-family:'Share Tech Mono',monospace;font-weight:700;
  box-shadow:var(--wm-glow-red);
}

.wm-news-tabs,.wm-video-tabs{
  display:flex;gap:4px;padding:8px 14px;
  border-bottom:1px solid var(--wm-border);overflow-x:auto;
  background:rgba(0,0,0,.3);
}
.wm-news-tabs::-webkit-scrollbar,.wm-video-tabs::-webkit-scrollbar{height:2px}
.wm-news-tab,.wm-video-tab{
  padding:4px 10px;background:transparent;color:var(--wm-text-dim);
  border:1px solid var(--wm-border-2);
  font-family:'Share Tech Mono',monospace;font-size:9.5px;letter-spacing:.14em;
  cursor:pointer;text-transform:uppercase;white-space:nowrap;
  transition:all .15s ease;
}
.wm-news-tab:hover,.wm-video-tab:hover{color:var(--wm-accent);border-color:var(--wm-accent)}
.wm-news-tab.active,.wm-video-tab.active{
  background:linear-gradient(180deg,rgba(255,179,71,.2),rgba(255,179,71,.08));
  color:var(--wm-accent);border-color:var(--wm-accent);
  box-shadow:inset 0 0 10px rgba(255,179,71,.15),var(--wm-glow-amber);
}

/* ─────────── Video player ─────────── */
.wm-video-player{
  position:relative;aspect-ratio:16/9;background:#020309;
  border-bottom:1px solid var(--wm-border);overflow:hidden;
  margin:0;
}
.wm-video-player::before{
  content:'◉ LIVE';position:absolute;top:10px;left:10px;z-index:3;
  font-family:'Share Tech Mono',monospace;font-size:10px;font-weight:700;
  color:var(--wm-red);letter-spacing:.15em;
  padding:3px 8px;background:rgba(4,6,10,.75);
  border:1px solid rgba(255,58,78,.5);
  text-shadow:0 0 8px var(--wm-red);
  animation:wm-pulse 1.4s ease-in-out infinite;
  pointer-events:none;
}
.wm-video-player::after{
  /* corner brackets for video frame */
  content:'';position:absolute;inset:4px;pointer-events:none;z-index:2;
  background:
    linear-gradient(var(--wm-cyan),var(--wm-cyan)) top left/12px 1px no-repeat,
    linear-gradient(var(--wm-cyan),var(--wm-cyan)) top left/1px 12px no-repeat,
    linear-gradient(var(--wm-cyan),var(--wm-cyan)) top right/12px 1px no-repeat,
    linear-gradient(var(--wm-cyan),var(--wm-cyan)) top right/1px 12px no-repeat,
    linear-gradient(var(--wm-cyan),var(--wm-cyan)) bottom left/12px 1px no-repeat,
    linear-gradient(var(--wm-cyan),var(--wm-cyan)) bottom left/1px 12px no-repeat,
    linear-gradient(var(--wm-cyan),var(--wm-cyan)) bottom right/12px 1px no-repeat,
    linear-gradient(var(--wm-cyan),var(--wm-cyan)) bottom right/1px 12px no-repeat;
  opacity:.85;
}
.wm-video-player video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#020309}
.wm-video-player iframe{position:absolute;inset:0;width:100%;height:100%;border:none}
.wm-video-status{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--wm-cyan);font-family:'Share Tech Mono',monospace;font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;pointer-events:none;
  background:rgba(4,6,10,.85);opacity:0;transition:opacity .2s;
}
.wm-video-status::after{content:' ▌';animation:blink 1s step-end infinite}
@keyframes blink{50%{opacity:0}}
.wm-video-status.show{opacity:1}
.wm-video-yt{
  position:absolute;right:10px;bottom:10px;z-index:3;
  padding:4px 10px;background:rgba(4,6,10,.85);
  color:var(--wm-cyan);font-size:9.5px;
  font-family:'Share Tech Mono',monospace;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;border:1px solid rgba(0,229,255,.4);
  opacity:0;transition:opacity .2s;
}
.wm-video-player:hover .wm-video-yt{opacity:1}
.wm-video-yt:hover{color:#fff;border-color:var(--wm-cyan);box-shadow:var(--wm-glow-cyan)}

/* ─────────── Traffic panel ─────────── */
.wm-traffic-kpis{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  padding:12px 14px;border-bottom:1px solid var(--wm-border);
  background:rgba(0,0,0,.3);
}
.wm-tkpi{
  background:linear-gradient(180deg,rgba(15,23,35,.8),rgba(5,8,16,.8));
  border:1px solid var(--wm-border-2);
  padding:9px 12px;display:flex;flex-direction:column;gap:2px;
  position:relative;
}
.wm-tkpi::before{
  content:'';position:absolute;left:0;top:0;width:2px;height:12px;background:var(--wm-cyan);
  box-shadow:var(--wm-glow-cyan);
}
.wm-tkpi .k{
  font-family:'Share Tech Mono',monospace;color:var(--wm-text-faint);
  font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
}
.wm-tkpi .v{
  color:var(--wm-accent);font-size:19px;
  font-family:'Share Tech Mono',monospace;font-weight:700;
  text-shadow:0 0 10px rgba(255,179,71,.3);
}
.wm-tkpi .u{color:var(--wm-text-dim);font-size:10px;margin-left:4px;font-weight:400}

.wm-ixp-list{max-height:360px;overflow-y:auto}
.wm-ixp{
  display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:9px 14px;
  border-bottom:1px solid rgba(22,33,48,.5);cursor:pointer;transition:all .15s ease;
  position:relative;
}
.wm-ixp:hover{background:rgba(0,229,255,.04)}
.wm-ixp:hover::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--wm-cyan);box-shadow:var(--wm-glow-cyan)}
.wm-ixp .nm{color:var(--wm-text);font-size:11.5px;font-family:'Share Tech Mono',monospace;letter-spacing:.06em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.wm-ixp .loc{color:var(--wm-text-faint);font-size:9.5px;font-family:'Share Tech Mono',monospace;letter-spacing:.1em;text-transform:uppercase}
.wm-ixp .traf{
  color:var(--wm-accent);font-size:11.5px;font-family:'Share Tech Mono',monospace;
  font-weight:700;text-align:right;white-space:nowrap;text-shadow:0 0 8px rgba(255,179,71,.3);
}
.wm-ixp .nets{color:var(--wm-text-dim);font-size:9.5px;font-family:'Share Tech Mono',monospace;text-align:right}

/* ─────────── News feed ─────────── */
.wm-news-list{max-height:520px;overflow-y:auto}
.wm-news-item{
  display:flex;flex-direction:column;gap:4px;padding:10px 14px;
  border-bottom:1px solid rgba(22,33,48,.5);cursor:pointer;
  transition:all .15s ease;position:relative;
}
.wm-news-item:hover{background:rgba(255,179,71,.04)}
.wm-news-item:hover::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--wm-accent);box-shadow:var(--wm-glow-amber)}
.wm-news-meta{
  display:flex;justify-content:space-between;align-items:center;
  font-family:'Share Tech Mono',monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
}
.wm-news-meta .src{color:var(--wm-accent);text-shadow:0 0 6px rgba(255,179,71,.3)}
.wm-news-meta .age{color:var(--wm-text-faint)}
.wm-news-item .ttl{color:var(--wm-text);font-size:12px;line-height:1.45;font-weight:500}
.wm-news-item .sum{color:var(--wm-text-dim);font-size:10.5px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ─────────── Outage list ─────────── */
.wm-outage-list{max-height:calc(100vh - 420px);overflow-y:auto}
.wm-outage{
  display:flex;flex-direction:column;gap:5px;padding:10px 14px;
  border-bottom:1px solid rgba(22,33,48,.5);cursor:pointer;
  transition:all .15s ease;position:relative;
}
.wm-outage:hover{background:rgba(255,58,78,.05)}
.wm-outage:hover::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--wm-red);box-shadow:var(--wm-glow-red)}
.wm-outage-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wm-outage-prov{
  font-family:'Share Tech Mono',monospace;color:var(--wm-accent);
  font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  text-shadow:0 0 6px rgba(255,179,71,.3);
}
.wm-outage-time{color:var(--wm-text-faint);font-size:9.5px;font-family:'Share Tech Mono',monospace;letter-spacing:.08em;text-transform:uppercase}
.wm-outage-title{color:var(--wm-text);font-size:11.5px;line-height:1.4}
.wm-outage-meta{display:flex;align-items:center;gap:6px;font-size:9.5px;color:var(--wm-text-dim);flex-wrap:wrap}
.wm-outage-impact{
  padding:2px 7px;font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;font-weight:700;
}
.wm-outage-impact.critical{background:rgba(255,58,78,.18);color:var(--wm-red);border:1px solid rgba(255,58,78,.5);box-shadow:0 0 8px rgba(255,58,78,.2)}
.wm-outage-impact.major{background:rgba(255,100,58,.15);color:#fb7f58;border:1px solid rgba(255,100,58,.4)}
.wm-outage-impact.minor{background:rgba(255,179,71,.12);color:var(--wm-amber);border:1px solid rgba(255,179,71,.35)}
.wm-outage-impact.maintenance{background:rgba(0,229,255,.1);color:var(--wm-cyan);border:1px solid rgba(0,229,255,.35)}
.wm-outage-impact.none{background:rgba(46,232,154,.1);color:var(--wm-green);border:1px solid rgba(46,232,154,.35)}
.wm-outage-status{
  padding:2px 6px;border:1px solid var(--wm-border-2);
  font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--wm-text-dim);
}

.wm-empty{padding:24px;text-align:center;color:var(--wm-text-faint);font-size:11px;font-family:'Share Tech Mono',monospace;letter-spacing:.1em;text-transform:uppercase}

/* ─────────── Country list ─────────── */
.wm-country-list{padding:10px 14px;display:flex;flex-direction:column;gap:5px}
.wm-country{display:flex;align-items:center;gap:8px;font-family:'Share Tech Mono',monospace;font-size:10.5px}
.wm-country .cc{color:var(--wm-accent);width:28px;letter-spacing:.12em;font-weight:700;text-shadow:0 0 6px rgba(255,179,71,.3)}
.wm-country .nm{flex:1;color:var(--wm-text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.wm-country .n{color:var(--wm-text-dim);min-width:55px;text-align:right;letter-spacing:.05em}
.wm-country .bar{flex:1;height:3px;background:rgba(22,33,48,.8);overflow:hidden;margin:0 6px;position:relative}
.wm-country .bar>div{height:100%;background:linear-gradient(90deg,var(--wm-cyan),var(--wm-accent));box-shadow:0 0 6px rgba(255,179,71,.4)}

/* ─────────── Health grid ─────────── */
.wm-health-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:12px 14px}
.wm-health-card{
  background:linear-gradient(180deg,rgba(15,23,35,.8),rgba(5,8,16,.8));
  border:1px solid var(--wm-border-2);
  padding:10px 12px;display:flex;flex-direction:column;gap:4px;
  cursor:pointer;transition:all .15s ease;position:relative;
}
.wm-health-card:hover{border-color:var(--wm-accent);box-shadow:var(--wm-glow-amber)}
.wm-health-card .th{font-family:'Share Tech Mono',monospace;color:var(--wm-text-dim);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.wm-health-card .cnt{color:var(--wm-text);font-size:20px;font-family:'Share Tech Mono',monospace;font-weight:700}
.wm-health-card .st{font-size:9.5px;font-family:'Share Tech Mono',monospace;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.wm-health-card .st.operational{color:var(--wm-green);text-shadow:0 0 6px rgba(46,232,154,.4)}
.wm-health-card .st.degraded{color:var(--wm-amber);text-shadow:0 0 6px rgba(255,179,71,.4)}
.wm-health-card .st.outage{color:var(--wm-red);text-shadow:0 0 8px var(--wm-red-glow);animation:wm-pulse 1.4s ease-in-out infinite}

/* ─────────── Stats strip ─────────── */
.wm-stats-strip{
  display:grid;grid-template-columns:repeat(6,1fr);gap:1px;
  background:var(--wm-border-2);border-top:1px solid var(--wm-border-2);
  position:relative;
}
.wm-stats-strip::before{
  content:'';position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--wm-accent) 50%,transparent);
  opacity:.5;
}
.wm-stat{
  background:linear-gradient(180deg,var(--wm-bg-2),var(--wm-bg));
  padding:14px 18px;display:flex;flex-direction:column;gap:4px;position:relative;
}
.wm-stat::before{
  content:'';position:absolute;left:0;top:14px;bottom:14px;width:2px;background:var(--wm-accent);opacity:.5;
}
.wm-stat.good::before{background:var(--wm-green)}
.wm-stat.warn::before{background:var(--wm-amber)}
.wm-stat.bad::before{background:var(--wm-red);box-shadow:var(--wm-glow-red)}
.wm-stat .k{font-family:'Share Tech Mono',monospace;color:var(--wm-text-faint);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase}
.wm-stat .v{color:var(--wm-accent);font-size:24px;font-family:'Share Tech Mono',monospace;font-weight:700;text-shadow:0 0 12px rgba(255,179,71,.3)}
.wm-stat.good .v{color:var(--wm-green);text-shadow:0 0 12px rgba(46,232,154,.3)}
.wm-stat.warn .v{color:var(--wm-amber);text-shadow:0 0 12px rgba(255,179,71,.3)}
.wm-stat.bad .v{color:var(--wm-red);text-shadow:0 0 12px var(--wm-red-glow);animation:wm-pulse 1.4s ease-in-out infinite}

/* ─────────── Arc / connection lines (Leaflet SVG) ─────────── */
/* Single shared keyframes animates ALL arcs together — browsers optimize this
   as one animation timeline, unlike the old per-path drop-shadow setup. */
.wm-arc{
  fill:none;
  stroke-linecap:round;
  stroke-dasharray:4 14;
  animation:arc-flow 60s linear infinite;
}
@keyframes arc-flow{to{stroke-dashoffset:-1080}}
@media (prefers-reduced-motion: reduce){
  .wm-arc{animation:none}
}

.wm-node-glow{filter:drop-shadow(0 0 6px currentColor)}

/* ─────────── Responsive ─────────── */
@media (max-width:1280px){
  .wm-main{grid-template-columns:240px 1fr 360px}
  .wm-stats-strip{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
  .wm-main{grid-template-columns:1fr}
  .wm-stats-strip{grid-template-columns:repeat(2,1fr)}
  .wm-monitor-title{font-size:11px;letter-spacing:.2em}
}
