*,::after,::before{box-sizing:border-box;margin:0;padding:0}:root{--purple:#a78bfa;--purple-dim:#6d3ad5;--purple-dark:#0d0814;--red:#fa0463;--orange:#ff8c00;--yellow:#ffd700;--bg:#080c10;--bg-panel:#0c1018;--border:rgba(167,139,250,0.14);--border-hi:rgba(167,139,250,0.32);--text:#b8c8d4;--text-dim:#4e6070;--font-mono:'Share Tech Mono','Courier New',monospace;--font-retro:'VT323',monospace;--font-pixel:'Press Start 2P',monospace;--glow:0 0 8px rgba(167,139,250,0.45),0 0 22px rgba(167,139,250,0.15);--glow-red:0 0 8px rgba(250,4,99,0.55),0 0 22px rgba(250,4,99,0.18)}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:15px;line-height:1.6;min-height:100vh;overflow-x:hidden}a{color:var(--purple);text-decoration:none;transition:color .15s,text-shadow .15s}a:hover{color:#c4b5fd;text-shadow:var(--glow)}#matrix-rain{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.06}.scanlines{position:fixed;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.1) 2px,rgba(0,0,0,.1) 4px)}#app{position:relative;z-index:2;max-width:1400px;margin:0 auto;padding:12px}.screen{display:none}.screen.active{display:block}#screen-login.active{display:flex;justify-content:center;align-items:center;min-height:96vh}.admin-header{border:1px solid var(--border-hi);background:var(--bg-panel);padding:10px 16px;display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;box-shadow:var(--glow)}.admin-header h1{font-family:var(--font-pixel);font-size:.72rem;color:var(--purple);letter-spacing:.05em;text-shadow:var(--glow)}.header-right{display:flex;align-items:center;gap:10px;font-family:var(--font-retro);font-size:1rem}.btn{font-family:var(--font-retro);font-size:1rem;padding:5px 16px;cursor:pointer;border:1px solid;letter-spacing:.04em;transition:all .12s;background:0 0}.btn-purple{color:var(--purple);border-color:var(--purple-dim)}.btn-purple:hover{background:var(--purple);color:var(--bg);box-shadow:var(--glow)}.btn-dim{color:var(--text-dim);border-color:var(--border)}.btn-dim:hover{color:var(--text);border-color:var(--border-hi)}.btn-red{color:var(--red);border-color:var(--red)}.btn-red:hover{background:var(--red);color:#fff;box-shadow:var(--glow-red)}.btn-yellow{color:var(--yellow);border-color:var(--yellow)}.btn-yellow:hover{background:var(--yellow);color:var(--bg)}input:not([type]),input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{width:100%;background:var(--bg);border:1px solid var(--border-hi);color:var(--text);font-family:var(--font-mono);font-size:.88rem;padding:7px 10px;outline:0;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--purple);box-shadow:var(--glow)}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 1000px var(--bg) inset;-webkit-text-fill-color:var(--text);caret-color:var(--text)}select option{background:var(--bg);color:var(--text)}label{font-family:var(--font-retro);font-size:.95rem;color:var(--text-dim);display:block;margin-bottom:4px}.login-box{border:1px solid var(--border-hi);background:var(--bg-panel);padding:32px 36px;width:100%;max-width:440px;box-shadow:var(--glow)}.login-title{font-family:var(--font-pixel);font-size:.85rem;color:var(--purple);text-shadow:var(--glow);letter-spacing:.08em;margin-bottom:6px;line-height:1.6}.login-subtitle{font-family:var(--font-retro);font-size:1rem;color:var(--text-dim);margin-bottom:22px;letter-spacing:.04em}.login-row{margin-bottom:14px;font-family:var(--font-retro);font-size:1rem;color:var(--text-dim)}.login-error{color:var(--red);font-family:var(--font-retro);font-size:.95rem;margin-bottom:10px;min-height:1.2em}.server-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.server-card{border:1px solid var(--border);border-left-width:3px;background:var(--bg-panel);padding:14px 16px;transition:border-color .15s,box-shadow .15s}.server-card:hover{border-color:var(--border-hi);box-shadow:var(--glow)}.server-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.server-name{font-family:var(--font-retro);font-size:1.15rem;color:var(--text);letter-spacing:.05em}.server-id-label{font-family:var(--font-mono);font-size:.72rem;color:var(--text-dim);margin-top:2px}.server-status{display:flex;align-items:center;gap:6px;font-family:var(--font-retro);font-size:.9rem}.online-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#39d353;box-shadow:0 0 6px #39d353;animation:pulse-dot 2s ease-in-out infinite;flex-shrink:0}.offline-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#4a1a1a;border:1px solid #6b2020;flex-shrink:0}@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.35}}.metrics-list{display:flex;flex-direction:column;gap:7px}.metric-row{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.78rem}.metric-label{min-width:36px;color:var(--text-dim)}.metric-bar{flex:1;height:7px;background:rgba(167,139,250,.07);border:1px solid var(--border);overflow:hidden}.metric-fill{height:100%;transition:width .6s ease-out}.metric-fill.cpu{background:var(--purple);box-shadow:0 0 5px rgba(167,139,250,.5)}.metric-fill.mem{background:#60a5fa;box-shadow:0 0 5px rgba(96,165,250,.4)}.metric-fill.disk{background:var(--yellow);box-shadow:0 0 5px rgba(255,215,0,.35)}.metric-fill.warn{background:var(--orange);box-shadow:0 0 5px rgba(255,140,0,.4)}.metric-fill.crit{background:var(--red);box-shadow:0 0 5px rgba(250,4,99,.5)}.metric-val{min-width:36px;text-align:right;color:var(--text-dim)}.server-uptime{font-family:var(--font-retro);font-size:.82rem;color:var(--text-dim);margin-top:8px}.section-title{font-family:var(--font-retro);font-size:1.25rem;color:var(--purple);letter-spacing:.06em;margin-bottom:12px;margin-top:4px}.filter-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.filter-row label{margin-bottom:0;white-space:nowrap}.filter-row select{width:auto;min-width:160px}.events-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.8rem}.events-table th{font-family:var(--font-retro);font-size:.88rem;color:var(--bg);background:var(--purple-dim);padding:5px 10px;text-align:left;letter-spacing:.05em}.events-table td{border-bottom:1px solid var(--border);padding:7px 10px;color:var(--text-dim);vertical-align:middle}.events-table td.ev-ip{color:var(--red);font-family:var(--font-mono)}.events-table td.ev-type{color:var(--purple);font-family:var(--font-retro);font-size:.9rem}.events-table td.ev-ts{color:var(--text-dim);font-size:.75rem;white-space:nowrap}.events-table td.ev-detail{color:var(--text);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.events-table tr:hover td{background:rgba(167,139,250,.04)}.table-empty{text-align:center;padding:28px;color:var(--text-dim);font-family:var(--font-retro);font-size:.95rem}.table-footer{font-family:var(--font-retro);font-size:.83rem;color:var(--text-dim);padding:5px 0;text-align:right}.panel{border:1px solid var(--border);background:var(--bg-panel);margin-bottom:16px}.panel-title{font-family:var(--font-retro);font-size:1rem;color:var(--bg);background:var(--purple-dim);padding:5px 12px;letter-spacing:.06em}.panel-body{padding:14px 16px}.tag{display:inline-block;font-family:var(--font-retro);font-size:.82rem;padding:1px 8px;border-radius:2px;letter-spacing:.04em;color:var(--bg);white-space:nowrap}.sev-badge{font-family:var(--font-retro);font-size:.8rem;padding:1px 7px;border:1px solid;white-space:nowrap}.sev-Critical{color:var(--red);border-color:var(--red);background:rgba(250,4,99,.08)}.sev-High{color:var(--orange);border-color:var(--orange);background:rgba(255,140,0,.07)}.sev-Medium{color:var(--yellow);border-color:rgba(255,215,0,.5);background:rgba(255,215,0,.06)}.sev-Low{color:#60a5fa;border-color:rgba(96,165,250,.4);background:rgba(96,165,250,.05)}.sev-Info{color:var(--text-dim);border-color:var(--border);background:0 0}.findings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:start}.findings-col{border:1px solid var(--border);background:var(--bg-panel);display:flex;flex-direction:column}.findings-col-header{font-family:var(--font-retro);font-size:.95rem;letter-spacing:.06em;padding:6px 12px;display:flex;align-items:center;justify-content:space-between}.findings-col[data-status=Open] .findings-col-header{background:rgba(250,4,99,.18);color:var(--red)}.findings-col[data-status="In Progress"] .findings-col-header{background:rgba(255,215,0,.14);color:var(--yellow)}.findings-col[data-status=Resolved] .findings-col-header{background:rgba(167,139,250,.14);color:var(--purple)}.findings-col[data-status="Accepted Risk"] .findings-col-header{background:rgba(78,96,112,.25);color:var(--text-dim)}.findings-count{font-family:var(--font-pixel);font-size:.52rem;padding:2px 6px;border:1px solid currentColor;opacity:.7}.findings-cards{padding:8px;display:flex;flex-direction:column;gap:8px;min-height:60px}.finding-card{border:1px solid var(--border);background:var(--bg);padding:10px 12px;transition:border-color .12s,box-shadow .12s}.finding-card:hover{border-color:var(--border-hi);box-shadow:0 0 6px rgba(167,139,250,.14)}.finding-card-top{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.finding-id{font-family:var(--font-pixel);font-size:.52rem;color:var(--text-dim);white-space:nowrap}.finding-title{font-family:var(--font-mono);font-size:.82rem;color:var(--text);line-height:1.4;margin-bottom:6px}.finding-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.finding-cvss{font-family:var(--font-retro);font-size:.78rem;color:var(--text-dim)}.finding-owasp{font-family:var(--font-retro);font-size:.78rem;color:var(--text-dim)}.findings-empty{font-family:var(--font-retro);font-size:.85rem;color:var(--text-dim);text-align:center;padding:16px 8px}.metrics-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:16px}.metrics-server-panel{border:1px solid var(--border);border-left:3px solid var(--purple-dim);background:var(--bg-panel);padding:14px 16px}.metrics-server-name{font-family:var(--font-retro);font-size:1.1rem;color:var(--text);margin-bottom:10px;letter-spacing:.04em}.analytics-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.82rem}.analytics-table th{font-family:var(--font-retro);font-size:.9rem;color:var(--bg);background:var(--purple-dim);padding:5px 10px;text-align:left;letter-spacing:.05em}.analytics-table td{border-bottom:1px solid var(--border);padding:7px 10px;color:var(--text-dim);vertical-align:middle}.analytics-table td.ana-slug{color:var(--text);font-family:var(--font-mono)}.analytics-table td.ana-total{color:var(--purple);font-family:var(--font-retro);font-size:.9rem;text-align:right}.analytics-table td.ana-7d{color:var(--text-dim);text-align:right}.analytics-table td.ana-ts{color:var(--text-dim);font-size:.75rem;white-space:nowrap}.analytics-table tr:hover td{background:rgba(167,139,250,.04)}.stat-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-bottom:16px}.stat-box{border:1px solid var(--border);background:var(--bg-panel);padding:10px 14px}.stat-label{font-family:var(--font-retro);font-size:.85rem;color:var(--text-dim);margin-bottom:4px}.stat-value{font-family:var(--font-pixel);font-size:1rem;color:var(--purple)}.stat-value.warn{color:var(--yellow)}.stat-value.alert{color:var(--red)}.msg-bar{font-family:var(--font-retro);font-size:.95rem;padding:6px 12px;border:1px solid;min-height:34px;display:flex;align-items:center;margin-bottom:10px}.msg-bar.ok{color:var(--purple);border-color:var(--purple-dim);background:rgba(167,139,250,.06)}.msg-bar.error{color:var(--red);border-color:var(--red);background:rgba(250,4,99,.05)}.msg-bar.hidden{display:none}::-webkit-scrollbar{width:7px;background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--purple-dark);border:1px solid var(--border)}::-webkit-scrollbar-thumb:hover{background:var(--border-hi)}::selection{background:var(--purple);color:var(--bg)}@media (max-width:1100px){.server-grid{grid-template-columns:repeat(2,1fr)}.findings-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.server-grid{grid-template-columns:1fr}.findings-grid{grid-template-columns:1fr}.admin-header h1{font-size:.6rem}.header-right{gap:6px}}@media (max-width:520px){#app{padding:8px}.admin-header{flex-direction:column;align-items:flex-start;gap:8px}.header-right{flex-wrap:wrap}.filter-row{flex-direction:column;align-items:flex-start}.filter-row select{width:100%}.login-box{padding:22px 18px}}