*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0e17;--bg2:#0f1521;--card:#141b2b;--line:#1e2738;--tx:#e6ebf5;--dim:#8a97b1;--ac:#3b82f6;--ok:#22c55e;--warn:#f59e0b;--crit:#ef4444}body{font-family:Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--tx);font-size:14px}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.loginpage{display:flex;min-height:100vh;align-items:center;justify-content:center;background:radial-gradient(900px 600px at 20% 10%,rgba(59,130,246,.15),transparent),radial-gradient(700px 500px at 90% 90%,rgba(34,197,94,.1),transparent),var(--bg)}.loginbox{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:40px;width:340px;text-align:center;box-shadow:0 30px 80px -20px rgba(0,0,0,.7)}.logo-lg{width:60px;height:60px;border-radius:14px;background:linear-gradient(135deg,#3b82f6,#22d3ee);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:30px;color:#03070f;margin:0 auto 16px}.loginbox h1{font-size:20px;letter-spacing:.5px}.sub{color:var(--dim);font-size:12px;margin-bottom:22px}.loginbox input{width:100%;padding:12px;margin:7px 0;background:#0a0f1a;border:1px solid var(--line);border-radius:9px;color:var(--tx);font-size:15px}.loginbox input:focus{outline:none;border-color:var(--ac)}.loginbox button{width:100%;padding:12px;margin-top:10px;background:linear-gradient(135deg,#3b82f6,#22d3ee);color:#03070f;border:0;border-radius:9px;font-weight:700;font-size:15px}.err{background:#2b1014;border:1px solid var(--crit);color:#fca5a5;padding:9px;border-radius:8px;font-size:13px;margin-bottom:8px}.foot{color:var(--dim);font-size:11px;margin-top:18px;letter-spacing:.5px;text-transform:uppercase}.app{min-height:100vh}.app,aside{display:flex}aside{width:240px;background:var(--bg2);border-right:1px solid var(--line);flex-direction:column;padding:18px 14px;position:fixed;height:100vh}.brand{gap:11px;padding:6px 8px 20px}.brand,.brand .logo{display:flex;align-items:center}.brand .logo{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#22d3ee);justify-content:center;font-weight:800;font-size:20px;color:#03070f}.brand b{font-size:16px;letter-spacing:1px}.brand small{display:block;color:var(--dim);font-size:11px}nav{flex-direction:column;gap:3px;flex:1 1}nav,nav a{display:flex}nav a{align-items:center;gap:11px;padding:11px 12px;border-radius:9px;color:var(--dim);font-weight:500}nav a:hover{background:var(--card);color:var(--tx)}nav a.on{background:linear-gradient(90deg,rgba(59,130,246,.18),transparent);color:#fff;border-left:3px solid var(--ac)}.ic{width:20px;text-align:center}.ubox{gap:10px;padding:12px;border-top:1px solid var(--line);margin-top:8px}.ava,.ubox{display:flex;align-items:center}.ava{width:34px;height:34px;border-radius:50%;background:var(--ac);justify-content:center;font-weight:700;color:#fff}.ubox b{font-size:13px}.ubox small{display:block;color:var(--dim);font-size:11px}.logout{padding:10px 12px;color:var(--dim);font-size:13px;border-radius:8px}.logout:hover{background:var(--card);color:#fff}main{margin-left:240px;flex:1 1;min-width:0}header{display:flex;justify-content:space-between;align-items:center;padding:20px 28px;border-bottom:1px solid var(--line);background:var(--bg2)}header h1{font-size:19px;font-weight:600}.clock{color:var(--dim);font-size:13px}.wrap{padding:24px 28px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:16px;gap:16px;margin-bottom:22px}.card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:18px;gap:14px}.card,.card .ci{display:flex;align-items:center}.card .ci{width:46px;height:46px;border-radius:11px;justify-content:center;background:#0c1320;font-size:20px}.cv{font-size:26px;font-weight:700;line-height:1}.ct{color:var(--dim);font-size:12px;margin-top:5px}.c-ok .ci{color:var(--ok)}.c-warn .ci{color:var(--warn)}.c-crit .ci{color:var(--crit)}.c-crit{border-color:rgba(239,68,68,.4)}.c-warn{border-color:rgba(245,158,11,.35)}.cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}@media(max-width:900px){.cols{grid-template-columns:1fr}aside{display:none}main{margin-left:0}}.panel{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:20px;margin-bottom:18px}.panel h2{font-size:15px;margin-bottom:14px;font-weight:600}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--dim);font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:8px 10px}td,th{border-bottom:1px solid var(--line)}td{padding:10px;font-size:13px}tr:last-child td{border-bottom:0}.dim{color:var(--dim)}.badge{padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600}.b-ok{background:rgba(34,197,94,.15);color:#4ade80}.b-warn{background:rgba(245,158,11,.15);color:#fbbf24}.b-crit{background:rgba(239,68,68,.15);color:#f87171}.barwrap{margin-bottom:16px}.barlbl{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.barbg{height:9px;background:#0a0f1a;overflow:hidden}.barbg,.barfill{border-radius:6px}.barfill{height:100%}.f-ok{background:var(--ok)}.f-warn{background:var(--warn)}.f-crit{background:var(--crit)}.kv{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.kv span{color:var(--dim)}.flash{background:rgba(34,197,94,.12);border:1px solid var(--ok);color:#86efac;padding:11px 14px;border-radius:9px;margin-bottom:16px}.grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;grid-gap:10px;gap:10px;align-items:center}.grid input,.grid select{padding:10px;background:#0a0f1a;border:1px solid var(--line);border-radius:8px;color:var(--tx)}.btn{padding:10px 18px;background:var(--ac);color:#fff;border:0;border-radius:8px;font-weight:600}.mini{padding:5px 10px;background:#172033;border:1px solid var(--line);border-radius:6px;color:var(--tx);font-size:12px}.wsteps{display:flex;gap:10px;flex-wrap:wrap}.wsteps .btn{flex:1 1;min-width:160px}textarea:focus{outline:none}