/* VNPT Pro Dark Theme (drop-in) */
:root{
  --bg0:#0b1220;
  --bg1:#0f1a2a;
  --card:#111f2f;
  --card2:#0e1a28;
  --line:rgba(148,163,184,.16);
  --text:#e5e7eb;
  --muted:rgba(226,232,240,.65);

  --primary:#137fec;
  --success:#10b981;
  --warning:#f59e0b;
  --error:#ef4444;

  --shadow: 0 12px 40px rgba(0,0,0,.35);
  --r12:12px;
  --r16:16px;

  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --sans: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--sans);
  background: radial-gradient(1200px 800px at 25% -10%, rgba(19,127,236,.22), transparent 55%),
              radial-gradient(900px 600px at 85% 0%, rgba(16,185,129,.10), transparent 50%),
              linear-gradient(180deg, var(--bg0), var(--bg1));
  color:var(--text);
}

a{color:inherit; text-decoration:none}
.muted{color:var(--muted)}
.right{text-align:right}

::selection{background:rgba(19,127,236,.25)}
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:rgba(255,255,255,.04)}
::-webkit-scrollbar-thumb{background:rgba(148,163,184,.25); border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.38)}

/* Common UI */
.card{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  border:1px solid var(--line);
  border-radius:var(--r16);
  box-shadow: var(--shadow);
}

.btn{
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
  color:var(--text);
  padding:10px 14px;
  border-radius:12px;
  font-weight:700;
  cursor:pointer;
  transition:.15s ease;
}
.btn:hover{transform:translateY(-1px); border-color:rgba(19,127,236,.45); background:rgba(19,127,236,.12)}
.btn:active{transform:translateY(0)}
.btn.ghost{background:transparent}
.btn.primary{
  border-color:rgba(19,127,236,.45);
  background:rgba(19,127,236,.16);
}

.pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  font-weight:800;
  color:rgba(226,232,240,.92);
}

.dot{
  width:10px; height:10px; border-radius:999px;
  display:inline-block;
  box-shadow:0 0 0 6px rgba(255,255,255,.03) inset;
}
.dot.ok{background:var(--success)}
.dot.warn{background:var(--warning)}
.dot.bad{background:var(--error)}
.dot.off{background:rgba(148,163,184,.45)}

/* Action buttons inside table */
.a-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  color:rgba(226,232,240,.92);
  cursor:pointer;
  font-weight:800;
  transition:.15s ease;
  white-space:nowrap;
}
.a-btn:hover{border-color:rgba(19,127,236,.45); background:rgba(19,127,236,.12)}
.a-btn.primary{
  border-color:rgba(19,127,236,.45);
  background:rgba(19,127,236,.16);
}

/* Net badge (reuse your dashboard.js markup) */
.badge-net{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 12px; border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  font-weight:900;
}
.badge-net .dot{width:8px; height:8px}
.badge-net .meta{font-weight:700; color:var(--muted)}
.badge-net.ok{border-color:rgba(16,185,129,.35); background:rgba(16,185,129,.10)}
.badge-net.ok .dot{background:var(--success)}
.badge-net.warn{border-color:rgba(245,158,11,.35); background:rgba(245,158,11,.10)}
.badge-net.warn .dot{background:var(--warning)}
.badge-net.bad{border-color:rgba(239,68,68,.35); background:rgba(239,68,68,.10)}
.badge-net.bad .dot{background:var(--error)}
.badge-net.down{border-color:rgba(239,68,68,.45); background:rgba(239,68,68,.14)}
.badge-net.down .dot{background:var(--error)}
/* ===== NET METRICS (PING/LOSS/JITTER) ===== */
.net-metrics{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.net-box{
  min-width:72px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.25);
  line-height:1.1;
}

.net-box .lbl{
  font-size:11px;
  letter-spacing:.6px;
  font-weight:700;
  opacity:.75;
}

.net-box .val{
  margin-top:6px;
  font-weight:800;
  font-size:13px;
}

.net-box.ok{
  background: rgba(16,185,129,.10);
  border-color: rgba(16,185,129,.22);
}
.net-box.warn{
  background: rgba(245,158,11,.12);
  border-color: rgba(245,158,11,.24);
}
.net-box.bad,
.net-box.down{
  background: rgba(239,68,68,.12);
  border-color: rgba(239,68,68,.24);
}
/* NETWORK P/L/J mini boxes (match mock UI) */
.net-metrics{
  display:flex;
  gap:10px;
  align-items:center;
}
.net-box{
  width:76px;
  padding:6px 8px;
  border-radius:10px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(255,255,255,.03);
  text-align:center;
  line-height:1.1;
}
.net-box .lbl{
  font-size:10px;
  font-weight:900;
  letter-spacing:.06em;
  color:rgba(226,232,240,.55);
}
.net-box .val{
  margin-top:4px;
  font-size:12px;
  font-weight:900;
  font-family:var(--mono);
  color:rgba(226,232,240,.92);
}

/* levels */
.net-box.ok{
  border-color: rgba(16,185,129,.30);
  background: rgba(16,185,129,.10);
}
.net-box.ok .val{ color: rgba(110,231,183,.95); }

.net-box.warn{
  border-color: rgba(245,158,11,.30);
  background: rgba(245,158,11,.10);
}
.net-box.warn .val{ color: rgba(253,230,138,.95); }

.net-box.bad{
  border-color: rgba(239,68,68,.30);
  background: rgba(239,68,68,.10);
}
.net-box.bad .val{ color: rgba(252,165,165,.95); }

.net-box.down{
  border-color: rgba(239,68,68,.45);
  background: rgba(239,68,68,.16);
}
.net-box.down .val{ color: rgba(254,202,202,.98); }
