:root{--bg:#0f172a;--panel:#1e293b;--panel2:#273449;--text:#e2e8f0;--muted:#94a3b8;--line:#334155;
--ok:#22c55e;--warn:#eab308;--high:#f97316;--crit:#ef4444;--accent:#38bdf8}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);display:flex;min-height:100vh}
aside{width:230px;background:#0b1220;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;flex-shrink:0}
.brand{padding:18px;font-size:18px;font-weight:700}
nav a{display:block;padding:9px 18px;color:var(--muted);text-decoration:none;cursor:pointer;border-left:3px solid transparent}
nav a:hover{background:var(--panel);color:var(--text)}nav a.active{background:var(--panel);color:var(--accent);border-left-color:var(--accent)}
.logout{margin:16px;padding:9px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:6px;cursor:pointer;width:calc(100% - 32px)}
main{flex:1;min-width:0;padding:0 22px 40px}
header{display:flex;align-items:center;gap:12px;padding:16px 0}header h2{margin:0;flex:1}
#burger{display:none;background:none;border:0;color:var(--text);font-size:22px}
#bell{cursor:pointer;padding:4px 10px;border-radius:12px;background:var(--panel);font-size:13px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}
.card .n{font-size:28px;font-weight:700}.card .l{color:var(--muted);font-size:12px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px;margin-bottom:16px}
.panel h3{margin:0 0 10px;font-size:15px}canvas{width:100%;height:220px;display:block}
.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:7px 9px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase}tr:hover td{background:var(--panel2)}
.badge{display:inline-block;padding:1px 9px;border-radius:10px;font-size:12px;font-weight:600;color:#0b1220}
.b-normal,.b-online,.b-ok,.b-info,.b-resolved,.b-closed{background:var(--ok)}.b-warning,.b-suspected,.b-investigating,.b-unknown,.b-new,.b-open,.b-modified{background:var(--warn)}
.b-high,.b-missing{background:var(--high)}.b-critical,.b-offline,.b-confirmed{background:var(--crit);color:#fff}.b-false_positive{background:var(--muted)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
input,select,textarea,button{font:inherit;color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:6px 9px}
button{cursor:pointer}button.primary{background:var(--accent);color:#0b1220;border:0;font-weight:600}button.small{padding:2px 8px;font-size:12px}
.muted{color:var(--muted)}.error{background:#7f1d1d;padding:8px 12px;border-radius:6px;margin-bottom:10px}.okmsg{background:#14532d;padding:8px 12px;border-radius:6px;margin-bottom:10px}
form.inline{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.login-page{display:flex;align-items:center;justify-content:center;width:100%}
.login-card{background:var(--panel);padding:28px;border-radius:12px;width:340px;display:flex;flex-direction:column;gap:12px;border:1px solid var(--line)}
.login-card h1{font-size:20px;margin:0}.login-card label{display:flex;flex-direction:column;gap:4px;color:var(--muted)}.login-card button{background:var(--accent);color:#0b1220;font-weight:700;border:0;padding:9px}
.bar{height:8px;background:var(--panel2);border-radius:4px;overflow:hidden;min-width:80px}.bar>i{display:block;height:100%}
dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:10px;max-width:560px;width:92%}dialog::backdrop{background:#0008}
dialog label{display:block;margin:8px 0 3px;color:var(--muted)}dialog textarea,dialog input,dialog select{width:100%}
@media(max-width:800px){aside{position:fixed;left:-240px;z-index:5;transition:left .2s}aside.open{left:0}#burger{display:block}main{padding:0 12px 40px}}
@media print{aside,header button,.filters,#bell{display:none}body{background:#fff;color:#000}.card,.panel{background:#fff;color:#000;border-color:#999}}

.b-medium,.b-pending{background:var(--warn)}.b-low{background:var(--accent)}.b-fixed{background:var(--ok)}.b-restored,.b-none{background:var(--muted)}.b-failed{background:var(--crit);color:#fff}
.grade{font-size:56px;font-weight:800;width:90px;height:90px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#0b1220}
.g-A,.g-B{background:var(--ok)}.g-C{background:var(--warn)}.g-D{background:var(--high)}.g-F{background:var(--crit);color:#fff}
.scanhead{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
pre.snip{background:#0b1220;border:1px solid var(--line);border-radius:6px;padding:10px;overflow-x:auto;white-space:pre-wrap;font-size:12px}
.chk{display:flex;gap:8px;align-items:center;margin:8px 0;color:var(--muted)}.chk input{width:auto}
input.wide{min-width:320px;flex:1}
