:root{--nav:#0d1425;--nav2:#151f35;--accent:#3977f6;--bg:#f3f5f9;--text:#1b2233;--muted:#71809a;--line:#e2e7ef;--ok:#1d9c61;--warn:#b87900;--bad:#d64d5a}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
a{color:inherit}.top{height:64px;background:var(--nav);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.top a{color:#cbd8ff}
.shell{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 64px)}aside{background:var(--nav2);padding:16px 12px}nav{display:grid;gap:5px}nav a{padding:11px 12px;color:#dce5fb;text-decoration:none;border-radius:8px}nav a:hover{background:#202c47}
main{padding:24px;min-width:0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{margin:0}
.panel,.card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.metric{font-size:29px;font-weight:800}.muted{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.full{grid-column:1/-1}.field{display:grid;gap:6px}.field label{font-weight:700}.field input,.field select,.field textarea{padding:10px;border:1px solid #cbd4e2;border-radius:8px;background:#fff;width:100%}.field textarea{min-height:90px}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;padding:9px 12px;text-decoration:none;cursor:pointer;background:#26334f;color:white;font-weight:700}.btn.primary{background:var(--accent)}.btn.ok{background:var(--ok)}.btn.warn{background:var(--warn)}.btn.bad{background:var(--bad)}.btn.light{background:#eaf0fb;color:#26334f}.btn.sm{padding:6px 9px;font-size:12px}
.actions,.toolbar{display:flex;flex-wrap:wrap;gap:7px}.toolbar{margin-bottom:12px}.flash{padding:11px 13px;border-radius:9px;margin-bottom:12px}.flash.success{background:#e4f7ed;color:#17633f}.flash.error{background:#fde9ec;color:#8b2630}.flash.info{background:#e8f0ff;color:#274e96}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}th,td{padding:10px 11px;border-bottom:1px solid #edf0f4;text-align:left;vertical-align:top}th{font-size:12px;text-transform:uppercase;color:#66738c;background:#fafbfc}.nowrap{white-space:nowrap}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase}.badge-active{background:#dff6e9;color:#17633f}.badge-pending{background:#e9edf4;color:#536178}.badge-scheduled{background:#e6efff;color:#315b9d}.badge-suspended{background:#fff0cc;color:#795500}.badge-expired,.badge-revoked,.badge-reset{background:#ffe3e7;color:#8d2831}.badge-deactivated{background:#eceff5;color:#586278}
.login,.install{min-height:100vh;background:linear-gradient(150deg,#0c1425,#162a4a);padding:30px}.login-wrap{max-width:430px;margin:8vh auto}.install-wrap{max-width:980px;margin:auto}.brand{color:white;margin-bottom:18px}.brand h1{margin-bottom:4px}.login .panel{padding:26px}.reqs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.req{padding:9px 10px;background:#f7f8fb;border-radius:8px}.req span{display:inline-block;width:22px}.req.ok{color:#17633f}.req.bad{color:#922c36}
.code{font-family:ui-monospace,Consolas,monospace;background:#0e1628;color:#dbe7ff;padding:12px;border-radius:9px;word-break:break-all}
@media(max-width:950px){.shell{grid-template-columns:1fr}aside{display:none}.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.full{grid-column:auto}}
