:root{--bg:#f6f7f9;--card:#fff;--text:#1d2430;--muted:#667085;--line:#d8dde6;--brand:#172554;--brand2:#0f766e;--red:#b42318;--amber:#b54708;--yellow:#a16207;--green:#027a48;--blue:#175cd3}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:15px}.topbar{background:var(--brand);color:#fff;padding:14px 22px;display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}.topbar a{color:#fff;text-decoration:none;margin-left:14px}.version{font-size:12px;opacity:.8;margin-left:8px}.container{max-width:1260px;margin:24px auto;padding:0 18px}.footer{text-align:center;color:var(--muted);padding:30px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 1px 2px rgba(16,24,40,.05)}.card h3{margin:0 0 8px}.metric{font-size:32px;font-weight:700}.muted{color:var(--muted)}table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#eef2f7;font-size:13px}.badge{display:inline-block;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700}.sev-critical{background:#fee4e2;color:#912018}.sev-high{background:#ffead5;color:#93370d}.sev-medium{background:#fef0c7;color:#93370d}.sev-low{background:#ecfdf3;color:#05603a}.sev-info{background:#e0f2fe;color:#075985}.status{background:#eef4ff;color:#3538cd}.actions a,.btn{display:inline-block;background:var(--brand2);color:#fff;text-decoration:none;border:0;border-radius:8px;padding:8px 11px;margin:2px;cursor:pointer}.btn.secondary{background:#475467}.btn.danger{background:var(--red)}form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;font-weight:700;margin:12px 0 5px}input,select,textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}textarea{min-height:100px}.notice{padding:12px;border-radius:8px;background:#ecfdf3;border:1px solid #abefc6;margin-bottom:16px}.warn{background:#fffaeb;border-color:#fedf89}@media(max-width:900px){.grid{grid-template-columns:1fr 1fr}.topbar nav a{display:inline-block;margin:6px 8px 0 0}form .row{grid-template-columns:1fr}}@media(max-width:600px){.grid{grid-template-columns:1fr}table{font-size:13px}.container{padding:0 10px}}

.public-page { background: #f4f6f8; }
.public-container { max-width: 460px; margin: 7vh auto; padding: 20px; }
.login-box { background: #fff; border: 1px solid #dce3ea; border-radius: 16px; padding: 28px; box-shadow: 0 10px 28px rgba(0,0,0,.08); }
.input { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid #bac7d3; border-radius: 10px; margin: 8px 0 16px; font-size: 16px; }
.input.code { font-size: 28px; letter-spacing: 8px; text-align: center; font-weight: 700; }
.btn.full { width: 100%; justify-content: center; }
.notice { padding: 12px 14px; border-radius: 10px; margin: 12px 0; }
.notice.error { background: #fff0f0; border: 1px solid #e5a3a3; color: #8b1e1e; }
.nav-count { display: inline-block; min-width: 18px; padding: 1px 6px; border-radius: 999px; background: #d81920; color: #fff; font-size: 12px; text-align: center; }
.new-alert-banner { position: sticky; top: 0; z-index: 10; padding: 12px 18px; background: #fff3cd; border-bottom: 1px solid #eed27a; color: #4f3900; font-weight: 700; text-align: center; }
