:root{--nav:#10233f;--nav2:#17385d;--accent:#2b78b8;--bg:#eef2f7;--text:#172033;--muted:#677489;--line:#dce3ec;--ok:#187748;--danger:#a93434;--warn:#99640a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Arial,sans-serif}a{color:var(--accent);text-decoration:none}.layout{min-height:100vh;display:grid;grid-template-columns:255px 1fr}.sidebar{background:linear-gradient(180deg,var(--nav),var(--nav2));color:#fff;padding:24px 18px;position:sticky;top:0;height:100vh}.brand{font-size:20px;font-weight:800;line-height:1.2;margin:0 8px 24px}.brand small{display:block;font-weight:400;opacity:.7;font-size:12px;margin-top:5px}.nav a{display:block;color:#dbe8f5;padding:11px 12px;border-radius:9px;margin:3px 0}.nav a:hover,.nav a.active{background:rgba(255,255,255,.12);color:#fff}.sidebar-bottom{position:absolute;bottom:22px;left:26px;right:26px;color:#cbd8e6;font-size:12px}.main{min-width:0}.top{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.content{padding:25px 28px 45px}.page-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.page-title h1{font-size:25px;margin:0}.card{background:#fff;border:1px solid #e3e8ef;border-radius:13px;box-shadow:0 6px 24px rgba(23,39,66,.05);padding:20px;margin-bottom:18px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}.stat strong{font-size:28px;display:block}.stat span{color:var(--muted)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #e8edf3;vertical-align:top}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:0}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;background:#edf2f7}.badge.active,.badge.installed{background:#e6f6ed;color:var(--ok)}.badge.suspended,.badge.validated{background:#fff5dc;color:var(--warn)}.badge.revoked,.badge.expired,.badge.failed{background:#fdeaea;color:var(--danger)}.badge.rolled_back{background:#ece9ff;color:#5144a0}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;padding:10px 14px;font-weight:700;cursor:pointer;background:var(--accent);color:#fff}.btn.secondary{background:#e9eef5;color:#26364a}.btn.danger{background:#b83f3f}.btn.small{padding:6px 9px;font-size:12px}.actions{display:flex;gap:7px;flex-wrap:wrap}label{display:block;font-weight:700;margin-bottom:6px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #cdd6e2;border-radius:8px;background:#fff;font:inherit}textarea{min-height:95px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.full{grid-column:1/-1}.help,.muted{color:var(--muted);font-size:12px}.flash{padding:12px 14px;border-radius:9px;margin-bottom:13px}.flash.success{background:#e7f7ee;color:#12673b}.flash.error{background:#fdeaea;color:#8f2525}.flash.warning{background:#fff4d8;color:#855707}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:25px}.login{width:min(430px,100%);background:#fff;padding:30px;border-radius:16px;box-shadow:0 18px 55px rgba(20,38,70,.15)}.login h1{margin:0 0 7px}.login form{margin-top:20px}.login .field{margin-bottom:14px}.code{font:12px/1.5 Consolas,monospace;background:#f3f6f9;padding:10px;border-radius:8px;overflow:auto;word-break:break-all}.warning-box{border:1px solid #f1d89b;background:#fff8e7;padding:13px;border-radius:9px;margin:10px 0}.danger-box{border:1px solid #e6b4b4;background:#fff0f0;padding:13px;border-radius:9px;margin:10px 0}.success-box{border:1px solid #a9d8bd;background:#edf9f2;padding:13px;border-radius:9px;margin:10px 0;color:#12673b}@media(max-width:980px){.layout{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.sidebar-bottom{display:none}.nav{display:flex;overflow:auto;gap:3px}.nav a{white-space:nowrap}.top{padding:0 18px}.content{padding:18px}.col-3,.col-4,.col-6,.col-8{grid-column:span 12}}@media(max-width:640px){.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.page-title{align-items:flex-start;flex-direction:column}.card{padding:15px}.table-wrap{overflow:auto}}
.check-label{display:flex;align-items:center;gap:9px;font-weight:700}.check-label input[type=checkbox]{width:auto;min-width:18px;height:18px;margin:0}
