:root{
  --bg:#f7f7f5; --panel:#ffffff; --border:#e5e3de; --text:#1f1e1c; --muted:#6b6a66;
  --accent:#b8442f; --accent-bg:#fbeae6;
  --crit:#b8442f; --crit-bg:#fbeae6;
  --high:#c07a1f; --high-bg:#fbf1e0;
  --med:#8a8730; --med-bg:#f6f6e6;
  --low:#4a7c59; --low-bg:#e9f3ec;
  --open:#b8442f; --open-bg:#fbeae6;
  --closed:#4a7c59; --closed-bg:#e9f3ec;
  --reopen:#8a5cb8; --reopen-bg:#f1e9f7;
  --shadow: 0 1px 2px rgba(0,0,0,0.04), 0 1px 8px rgba(0,0,0,0.03);
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#17161a; --panel:#211f24; --border:#38363c; --text:#ecebe8; --muted:#a5a3a0;
    --accent:#e08a75; --accent-bg:#3a2420;
    --crit:#e08a75; --crit-bg:#3a2420;
    --high:#e0b25f; --high-bg:#3a2f18;
    --med:#cccb6f; --med-bg:#2f2f1a;
    --low:#8fc79e; --low-bg:#1e2f22;
    --open:#e08a75; --open-bg:#3a2420;
    --closed:#8fc79e; --closed-bg:#1e2f22;
    --reopen:#c79ee0; --reopen-bg:#2f2434;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 1px 8px rgba(0,0,0,0.25);
  }
}
*{box-sizing:border-box;}
.topnav{display:flex;gap:4px;margin-bottom:16px;}
.topnav a{display:inline-block;padding:7px 13px;border-radius:8px;font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;}
.topnav a:hover{background:var(--panel);}
.topnav a.active{background:var(--panel);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45;}
.wrap{max-width:1180px;margin:0 auto;padding:20px 16px 60px;}
h1{font-size:20px;margin:0 0 4px;}
.sub{color:var(--muted);margin:0 0 20px;font-size:13px;}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:16px;box-shadow:var(--shadow);}
.panel h2{font-size:14px;margin:0 0 12px;font-weight:600;}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:16px;}
.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:var(--shadow);}
.card .n{font-size:24px;font-weight:700;line-height:1.1;}
.card .l{color:var(--muted);font-size:12px;margin-top:4px;}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;}
.b-crit{color:var(--crit);background:var(--crit-bg);}
.b-high{color:var(--high);background:var(--high-bg);}
.b-med{color:var(--med);background:var(--med-bg);}
.b-low{color:var(--low);background:var(--low-bg);}
.b-open{color:var(--open);background:var(--open-bg);}
.b-closed{color:var(--closed);background:var(--closed-bg);}
.b-reopen{color:var(--reopen);background:var(--reopen-bg);}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
button{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:7px 14px;cursor:pointer;}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff;}
button:disabled{opacity:.5;cursor:default;}
input[type=text],select{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:6px 10px;}
input[type=file]{font:inherit;color:var(--text);}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:6px 8px;border-bottom:1px solid var(--border);}
th.sortable{cursor:pointer;user-select:none;white-space:nowrap;}
th.sortable:hover{color:var(--text);}
td{padding:7px 8px;border-bottom:1px solid var(--border);vertical-align:top;}
tr:last-child td{border-bottom:none;}
.tabs{display:flex;gap:4px;margin-bottom:14px;flex-wrap:wrap;}
.tab{padding:7px 13px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--muted);}
.tab.active{background:var(--panel);color:var(--text);border:1px solid var(--border);font-weight:600;box-shadow:var(--shadow);}
.hidden{display:none !important;}
.muted{color:var(--muted);}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;}
.hostcard{border:1px solid var(--border);border-radius:10px;margin-bottom:8px;overflow:hidden;}
.hosthead{padding:10px 14px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;background:var(--panel);}
.hosthead:hover{background:var(--bg);}
.hostbody{padding:0 14px 12px;display:none;}
.hostbody.open{display:block;}
#log{max-height:120px;overflow:auto;font-size:12px;background:var(--bg);border-radius:8px;padding:8px 10px;margin-top:8px;}
.small{font-size:12px;}
.empty{color:var(--muted);text-align:center;padding:24px;font-size:13px;}
.pagination{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-top:10px;}
.pag-controls{display:flex;align-items:center;gap:8px;}
.pag-controls button{padding:5px 10px;}
.pag-controls select{padding:5px 8px;}
.chartbox{position:relative;margin-bottom:22px;}
.chartbox h3{font-size:13px;font-weight:600;margin:0 0 10px;}
.chartbox svg{width:100%;height:auto;display:block;overflow:visible;}
.chart-axis{stroke:var(--border);stroke-width:1;}
.chart-grid{stroke:var(--border);stroke-width:1;opacity:.6;}
.chart-tick{fill:var(--muted);font-size:10px;}
.chart-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:10px;font-size:12px;color:var(--muted);}
.chart-legend span{display:inline-flex;align-items:center;gap:6px;}
.chart-legend i{width:10px;height:10px;border-radius:2px;display:inline-block;}
.tooltip{position:absolute;pointer-events:none;background:var(--text);color:var(--bg);font-size:11px;padding:5px 8px;border-radius:6px;transform:translate(-50%,-115%);white-space:nowrap;opacity:0;transition:opacity .1s;z-index:5;}
.tooltip.show{opacity:1;}
.seg{cursor:pointer;}
