*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:#f4f7f8;color:#17212b}.side{position:fixed;inset:0 auto 0 0;width:250px;background:#092c35;color:#fff;padding:24px 18px}.brand{display:grid;grid-template-columns:42px 1fr;align-items:center;margin-bottom:30px}.brand span{grid-row:1/3;font-size:30px;color:#6bd9bd}.brand b{font-size:20px}.brand small{opacity:.65}.side nav{display:grid;gap:8px}.side a{color:#dce9e8;text-decoration:none;padding:11px 12px;border-radius:11px}.side a:hover{background:#ffffff12}.main{margin-left:250px;padding:26px;max-width:1600px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.top h1{margin:0;font-size:28px}.top p{margin:5px 0;color:#667085}.who,.pill{background:#fff;border:1px solid #e3e8eb;border-radius:999px;padding:8px 12px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:#fff;border:1px solid #e2e8ec;border-radius:18px;padding:18px;box-shadow:0 5px 18px #10203009}.stat b{display:block;font-size:30px;margin-top:6px}.stat small{color:#667085}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border:0;border-radius:11px;background:#0f6d62;color:#fff;text-decoration:none;font-weight:700;cursor:pointer}.btn.light{background:#eef6f4;color:#155b54}.btn.danger{background:#a52828}.btn.warn{background:#9a630d}.btn.small{padding:7px 10px;font-size:13px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #edf0f2;vertical-align:middle}th{font-size:12px;color:#667085;text-transform:uppercase}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;background:#eef1f3}.badge.active{background:#e4f7ed;color:#137046}.badge.suspended,.badge.error{background:#fde8e8;color:#a52929}.badge.pending,.badge.provisioning{background:#fff4d6;color:#8f6100}.form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #d8e0e4;border-radius:11px;background:#fff;font:inherit}.muted{color:#667085}.flash{padding:12px 14px;border-radius:12px;margin-bottom:14px}.flash.success{background:#e8f8ef}.flash.error{background:#fdeaea}.flash.info{background:#edf5ff}.code{background:#0e1b20;color:#d6f6eb;padding:14px;border-radius:12px;overflow:auto;font-family:ui-monospace,monospace}.split{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}@media(max-width:1050px){.grid{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}}@media(max-width:760px){.side{position:static;width:auto}.main{margin:0;padding:16px}.grid,.form{grid-template-columns:1fr}.field.full{grid-column:auto}.top{align-items:flex-start}.who{display:none}}
.update-drop{border:2px dashed #b7cbc8;border-radius:16px;padding:20px;background:#f8fbfb}.progress{height:10px;background:#eaf0f1;border-radius:99px;overflow:hidden}.progress>span{display:block;height:100%;background:#0f6d62}.badge.done,.badge.ready{background:#e4f7ed;color:#137046}.badge.running,.badge.queued,.badge.backing_up,.badge.maintenance,.badge.updating,.badge.migrating,.badge.healthcheck{background:#e8f2ff;color:#245ea8}.badge.rolled_back{background:#fff1df;color:#8a5600}.badge.paused{background:#fff4d6;color:#8f6100}.checkgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.checkitem{border:1px solid #e2e8ec;border-radius:12px;padding:10px;display:flex;gap:8px;align-items:flex-start}.checkitem input{margin-top:3px}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.package-row{display:grid;grid-template-columns:1fr auto;gap:15px;align-items:center}.warning-box{background:#fff8e6;border:1px solid #f2d58f;border-radius:12px;padding:12px}.success-box{background:#ecf8f2;border:1px solid #b8e3cd;border-radius:12px;padding:12px}@media(max-width:1050px){.checkgrid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.checkgrid{grid-template-columns:1fr}.package-row{grid-template-columns:1fr}}
