*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,Segoe UI,sans-serif;background:#f6f8fa;color:#0f172a;display:flex;min-height:100vh}
aside{width:240px;background:#0b1220;color:#cbd5e1;padding:20px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
.brand{display:flex;flex-direction:column;gap:4px;padding:4px 0 10px;border-bottom:1px solid rgba(255,255,255,0.08)}.brand-logo{max-width:180px;width:100%;height:auto;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2))}.brand small{display:inline-block;color:#10b981;font-size:10px;font-weight:700;letter-spacing:.08em;margin-top:2px}
nav{display:flex;flex-direction:column;gap:4px}aside a{color:#cbd5e1;text-decoration:none;padding:10px 12px;border-radius:10px;font-weight:600}
aside a.on{background:#052e24;color:#10b981;outline:1px solid #10b981}aside a:hover{background:#111b2e}.out{margin-top:auto}
main{flex:1;padding:24px 32px;max-width:1280px}h1{margin:0 0 18px;font-size:22px}h2{margin:0 0 12px;font-size:16px}
.card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px;margin-bottom:16px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.kpi span,.box span{font-size:11px;font-weight:700;letter-spacing:.05em;color:#64748b;text-transform:uppercase}.kpi b,.box b{display:block;font-size:24px;margin-top:6px}.red{color:#dc2626}
.box{border:1px solid #e2e8f0;border-radius:12px;padding:16px;background:#f8fafc}.okb{background:#ecfdf5;border-color:#a7f3d0}.okb b{color:#047857}.warnb{background:#fffbeb;border-color:#fde68a}.warnb b{color:#b45309}
table{width:100%;border-collapse:collapse;margin-top:10px}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;text-align:left;padding:10px 8px;background:#f8fafc}
td{padding:12px 8px;border-top:1px solid #eef2f7;vertical-align:middle}small{color:#64748b}.act{text-align:right;white-space:nowrap}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.btn{background:#059669;color:#fff;border:0;border-radius:10px;padding:10px 16px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;font-size:13px}
.btn.sm{padding:6px 10px;font-size:12px}.btn.ghost{background:#fff;color:#334155;border:1px solid #cbd5e1}.btn.danger{background:#fff;color:#dc2626;border:1px solid #fecaca}
.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:700;border:1px solid}
.badge.ok{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.badge.warn{background:#fffbeb;color:#b45309;border-color:#fde68a}.badge.err{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.badge.mute{background:#f1f5f9;color:#475569;border-color:#e2e8f0}
.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px;font-weight:600}.flash.ok{background:#ecfdf5;color:#047857}.flash.err{background:#fef2f2;color:#b91c1c}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;font:inherit;background:#fff}
label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#475569}label input,label select{margin-top:5px;text-transform:none;font-weight:400;letter-spacing:0}
.chk{display:flex;gap:8px;align-items:center;text-transform:none;font-size:13px;margin-bottom:10px}.chk input{width:auto;margin:0}
.fg{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:12px}.w2{grid-column:span 2}.w3{grid-column:span 3}
body.login{display:grid;place-items:center;background:#0b1220;padding:20px;min-height:100vh}.login .card{width:100%;max-width:380px;display:grid;gap:14px;box-shadow:0 20px 25px -5px rgba(0,0,0,0.4),0 8px 10px -6px rgba(0,0,0,0.4)}.login-brand{text-align:center;padding-bottom:10px;border-bottom:1px solid #e2e8f0}.login-logo{max-width:210px;width:100%;height:auto;margin:0 auto 6px;display:block}.login-brand small{color:#059669;font-size:10px;font-weight:700;letter-spacing:.08em}
@media(max-width:900px){body{flex-direction:column}aside{width:100%;height:auto;position:static;flex-direction:row;align-items:center;flex-wrap:wrap}nav{flex-direction:row}.out{margin:0 0 0 auto}main{padding:16px}.grid4,.grid3,.grid2,.fg{grid-template-columns:1fr}.w2,.w3{grid-column:auto}}
