:root{--bg:#0d1117;--card:#161b22;--line:#30363d;--txt:#e6edf3;--dim:#8b949e;
  --ok:#3fb950;--warn:#d29922;--bad:#f85149;--blue:#58a6ff}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);
  font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;line-height:1.4}
main{max-width:1120px;margin:0 auto;padding:14px 14px 40px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
h1{font-size:1.25rem;margin:0}
.statslink{color:var(--blue);text-decoration:none;font-size:.85rem;
  border:1px solid var(--line);padding:5px 10px;border-radius:8px}
.mono{font-family:ui-monospace,'Cascadia Code',Consolas,monospace;font-size:.85em}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.card h2{font-size:.9rem;margin:0 0 8px}
.center{text-align:center;color:var(--dim);padding:30px}

/* ---------- HERO: gauge + verdict ---------- */
.hero{display:flex;gap:16px;align-items:center;margin-bottom:12px}
.gauge{width:132px;height:132px;flex-shrink:0;border-radius:50%;display:flex;
  flex-direction:column;align-items:center;justify-content:center;border:9px solid var(--line);transition:.4s}
.gauge .score{font-size:2.3rem;font-weight:800;line-height:1}
.gauge .lbl{font-size:.68rem;color:var(--dim);margin-top:5px;letter-spacing:.4px}
.gauge.low{border-color:var(--ok)}
.gauge.medium{border-color:var(--warn)}
.gauge.high{border-color:#ff7b3d}
.gauge.critical{border-color:var(--bad);box-shadow:0 0 20px #f8514966}

.verdict{flex:1;min-width:0}
.verdict .vhead{font-size:1.05rem;font-weight:700;display:flex;gap:8px;align-items:center;line-height:1.25}
.verdict .vsub{color:var(--dim);font-size:.82rem;margin:3px 0 9px}
.verdict.good .vhead{color:var(--ok)}
.verdict.warn .vhead{color:var(--warn)}
.verdict.bad .vhead{color:var(--bad)}
.verdict.na .vhead{color:var(--blue)}
.vchecks{display:flex;flex-wrap:wrap;gap:6px}
.vchk{font-size:.78rem;padding:3px 9px;border-radius:20px;border:1px solid var(--line);
  display:inline-flex;gap:5px;align-items:center}
.vchk.pass{color:var(--ok);border-color:#245c30;background:#12261a}
.vchk.fail{color:var(--bad);border-color:#5c2424;background:#261212}
.vchk.neutral{color:var(--dim)}

/* ---------- LƯỚI thông tin ---------- */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
@media(max-width:760px){.hero{flex-direction:column;text-align:center}.grid{grid-template-columns:1fr}}

.kv{display:flex;justify-content:space-between;gap:10px;padding:5px 0;
  border-bottom:1px dashed var(--line);font-size:.86rem}
.kv:last-child{border:none}
.kv span{color:var(--dim);white-space:nowrap}
.kv b{text-align:right;word-break:break-all}
.warn{color:var(--warn)!important}.bad{color:var(--bad)!important}.ok{color:var(--ok)!important}

.flags{list-style:none;margin:0;padding:0}
.flag{display:flex;gap:8px;align-items:flex-start;padding:6px 0;
  border-bottom:1px solid var(--line);font-size:.84rem}
.flag:last-child{border:none}
.flag span{font-size:1rem;flex-shrink:0}
.flag em{color:var(--dim);font-style:normal;font-size:.8em}
.flag.proxy div{color:#79c0ff}.flag.android div{color:#d2a8ff}
.flag.fake div{color:#ffa657}.flag.spam div{color:#f85149}.flag.net div{color:#7ee787}
.flag.clean div{color:var(--ok)}

.badge{font-size:.62rem;padding:2px 7px;border-radius:10px;vertical-align:middle;
  border:1px solid var(--line);color:var(--dim)}
.badge.on{color:var(--ok);border-color:var(--ok)}
.badge.off{color:var(--warn);border-color:var(--warn)}
.note{color:var(--dim);font-size:.78rem;line-height:1.4;margin:2px 0 0}
.note.bad{color:var(--bad)}
.note code{background:#0d1117;border:1px solid var(--line);border-radius:5px;padding:1px 5px;
  font-family:ui-monospace,monospace;font-size:.85em;color:var(--blue)}
