:root{--admin-bg:#eef3ed;--admin-card:#fff;--admin-line:#d8e1da;--admin-dark:#14242a;--admin-muted:#647477;--admin-accent:#b9e877;--admin-danger:#9c2f2f;--admin-warn:#8a5b00}
body{background:var(--admin-bg)}
.admin-shell{min-height:100vh}
.admin-topbar{height:72px;background:var(--admin-dark);color:#eef5ea;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1240px)/2));border-bottom:1px solid rgba(255,255,255,.12)}
.admin-brand{font-family:var(--serif);font-size:30px;letter-spacing:-.05em}.admin-brand span{color:var(--admin-accent)}
.admin-session{display:flex;gap:12px;align-items:center;font-size:13px}.role-badge{padding:5px 9px;border-radius:20px;background:var(--admin-accent);color:#193025;font-weight:850;text-transform:uppercase;font-size:10px;letter-spacing:.1em}
.auth-wrap{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:46px 20px}
.auth-card{width:min(560px,100%);background:var(--admin-card);border:1px solid var(--admin-line);border-radius:22px;padding:36px;box-shadow:0 22px 65px rgba(20,36,42,.09)}
.auth-card h1,.dashboard h1{font-size:clamp(38px,5vw,60px);margin:10px 0 14px}.auth-lede{color:var(--admin-muted);line-height:1.7;margin-bottom:25px}
.auth-form,.mfa-panel{display:grid;gap:14px}.auth-form label,.mfa-panel label{display:grid;gap:7px;font-size:12px;font-weight:800;color:#425658}
input{width:100%;min-height:48px;border:1px solid #c9d4cc;border-radius:9px;padding:10px 12px;background:#fff;color:var(--admin-dark);font:inherit}input:focus{outline:3px solid rgba(88,142,75,.2);border-color:#5d8e55}
.admin-button{appearance:none;border:0;border-radius:9px;padding:12px 17px;min-height:44px;font-weight:800;cursor:pointer;font-size:13px}.admin-button.primary{background:var(--admin-dark);color:#fff}.admin-button.secondary{background:#fff;border:1px solid #cbd6ce;color:var(--admin-dark)}.admin-button.ghost{background:transparent;border:1px solid #ccd6cf;color:inherit}.admin-topbar .ghost{border-color:rgba(255,255,255,.25)}.admin-button.small{min-height:34px;padding:7px 10px}
.notice{padding:12px 14px;border-radius:9px;font-size:13px;margin-bottom:14px}.notice.error{background:#fff0ef;border:1px solid #e6b9b6;color:#7b2525}.notice.success{background:#eff8e9;border:1px solid #cce1bc;color:#355e31}
.security-phrase{padding:14px;border:1px solid #d4dfcf;background:#f5f9f1;border-radius:9px;display:grid;gap:3px}.security-phrase span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#687b70}.security-phrase strong{font-size:18px}.security-phrase small{color:#65736d}
.mfa-panel{margin-top:18px;padding-top:20px;border-top:1px solid var(--admin-line)}.mfa-panel h2{font:700 21px Arial,Helvetica,sans-serif;letter-spacing:-.02em;margin:0}.mfa-panel p{color:var(--admin-muted);font-size:14px;margin:0}.mfa-qr{width:220px;height:220px;border:1px solid var(--admin-line);border-radius:12px;background:#fff;padding:10px}.recovery-panel pre{white-space:pre-wrap;word-break:break-word;background:#17252a;color:#eaf3e5;padding:16px;border-radius:10px;line-height:1.7}.auth-footnote{font-size:11px;color:#788783;margin:24px 0 0;padding-top:18px;border-top:1px solid var(--admin-line)}
.dashboard{width:min(1240px,calc(100% - 40px));margin:0 auto;padding:48px 0 80px}.dashboard-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.dashboard-heading h1{margin-bottom:5px}.dashboard-heading p{color:var(--admin-muted);margin:0}.dashboard-actions{display:flex;align-items:center;gap:12px}.sync-indicator{font-size:11px;color:var(--admin-muted)}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.metric-card{background:#fff;border:1px solid var(--admin-line);border-radius:14px;padding:18px 20px}.metric-card span{font-size:11px;color:var(--admin-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:800}.metric-card strong{display:block;font-family:var(--serif);font-size:42px;font-weight:400;margin-top:5px}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{background:#fff;border:1px solid var(--admin-line);border-radius:16px;padding:20px;min-width:0}.panel.wide{grid-column:1/-1}.panel-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:14px}.panel h2{font:750 20px Arial,Helvetica,sans-serif;letter-spacing:-.02em;margin:4px 0 0}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{text-align:left;color:#697a74;font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:9px 10px;border-bottom:1px solid var(--admin-line)}td{padding:12px 10px;border-bottom:1px solid #edf1ed;vertical-align:top}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#74b857;margin-right:6px}.status-dot.off{background:#a4aaa6}
.event-list{display:grid;gap:9px;max-height:420px;overflow:auto}.event-item{border:1px solid #e2e8e3;border-radius:10px;padding:11px 12px}.event-item-head{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:800}.event-item p{font-size:11px;color:var(--admin-muted);margin:5px 0 0;line-height:1.5}.severity-warning{color:var(--admin-warn)}.severity-critical{color:var(--admin-danger)}
.empty-state{color:var(--admin-muted);font-size:12px;padding:14px 0}
[hidden]{display:none!important}
@media(max-width:900px){.metric-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.panel.wide{grid-column:auto}.dashboard-heading{align-items:start;flex-direction:column}.admin-topbar{padding:0 18px}}
@media(max-width:600px){.auth-card{padding:25px}.metric-grid{grid-template-columns:1fr}.dashboard{width:min(100% - 24px,1240px);padding-top:28px}.admin-session #session-name{display:none}.dashboard-actions{width:100%;justify-content:space-between}}

.admin-actions-panel{margin-bottom:16px}
.inline-action-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.inline-action-form label{display:grid;gap:7px;min-width:min(100%,320px);font-size:12px;font-weight:800;color:#425658}
.invite-result{margin-top:14px;border:1px solid #cfe0c3;background:#f5faef;border-radius:10px;padding:14px;display:grid;gap:8px}
.invite-result>span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#65776d;font-weight:800}
.invite-result code{display:block;word-break:break-all;font-size:15px;background:#17252a;color:#eef6e9;padding:12px;border-radius:8px}
.invite-result small{color:#687871}
.revoke-button{white-space:nowrap}
