:root { color-scheme: dark; --bg:#07111f; --card:#0d1a2c; --line:#20334d; --text:#edf5ff; --muted:#8fa5bd; --brand:#38bdf8; --ok:#86efac; --warn:#fbbf24; --danger:#fca5a5; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:radial-gradient(circle at top left,#0d2941 0,transparent 34%),var(--bg); color:var(--text); font:15px "Segoe UI",sans-serif; }
button,input,select { font:inherit; }
button { border:0; border-radius:10px; padding:11px 17px; background:var(--brand); color:#042033; font-weight:750; cursor:pointer; }
button:disabled { opacity:.55; cursor:wait; }
.button-ghost { background:transparent; border:1px solid var(--line); color:var(--text); }
.admin-header { max-width:1180px; margin:auto; padding:30px 24px 20px; display:flex; align-items:center; justify-content:space-between; }
h1,h2,p { margin:0; } h1 { font-size:30px; } h2 { font-size:21px; } p { color:var(--muted); margin-top:5px; }
.admin-kicker { display:block; color:var(--brand); font-size:11px; font-weight:800; letter-spacing:.18em; margin-bottom:7px; }
.admin-main { max-width:1180px; margin:auto; padding:10px 24px 60px; display:grid; gap:18px; }
.admin-card,.status-grid article,.login-card { border:1px solid var(--line); background:rgba(13,26,44,.92); box-shadow:0 24px 55px rgba(0,0,0,.22); border-radius:17px; }
.admin-card { padding:22px; }
.status-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; }
.status-grid article { padding:17px; display:flex; justify-content:space-between; align-items:center; }
.status-grid span { color:var(--muted); } .status-grid strong { font-size:19px; } .ok { color:var(--ok); } .warn { color:var(--warn); }
.action-card { display:grid; grid-template-columns:1fr 150px 170px auto; gap:14px; align-items:end; }
.integration-card { display:grid; grid-template-columns:1fr minmax(180px,260px) minmax(180px,260px) auto; gap:14px; align-items:end; }
.credential-status { grid-column:2/-1; color:var(--warn); font-size:13px; }
label { color:var(--muted); display:grid; gap:7px; font-size:13px; }
input,select { width:100%; border:1px solid var(--line); border-radius:9px; padding:10px; background:#081421; color:var(--text); }
.section-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:15px; }
.editor-list { display:grid; gap:9px; }
.editor-row { display:grid; grid-template-columns:1fr 220px 90px; gap:12px; align-items:end; padding:12px; border-radius:11px; background:#081421; }
.metric-origin { color:#6f8aa5; font-size:11px; line-height:1.35; }
.check { display:flex; align-items:center; padding-bottom:10px; } .check input { width:auto; }
.save-button { position:sticky; bottom:18px; justify-self:end; box-shadow:0 10px 30px rgba(56,189,248,.24); }
.notice { min-height:20px; color:var(--ok); } .notice.error,.login-error { color:var(--danger); }
.logs-console { max-height:360px; overflow:auto; color:var(--muted); font-family:Consolas,monospace; font-size:12px; }
.log-row { display:grid; grid-template-columns:150px 65px 1fr; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); } .log-row b.error { color:var(--danger); }
.login-body { display:grid; place-items:center; padding:20px; }
.login-card { width:min(420px,100%); padding:30px; } .login-card h1 { margin-bottom:8px; } .login-form { display:grid; gap:16px; margin-top:25px; } .login-error:empty { display:none; } .login-error { margin-top:15px; }
.two-factor-card { width:min(540px,100%); }
.totp-secret { display:grid; gap:8px; margin-top:22px; padding:16px; border:1px solid var(--line); border-radius:12px; background:#07111f; }
.totp-secret span { color:var(--muted); font-size:12px; }
.totp-secret code { overflow-wrap:anywhere; color:var(--brand); font:700 18px Consolas,monospace; letter-spacing:.08em; }
.totp-secret small,.security-note { color:#7890a8; font-size:12px; line-height:1.5; }
.security-note { margin-top:18px; }
@media(max-width:760px) { .status-grid { grid-template-columns:1fr; } .action-card,.integration-card,.editor-row { grid-template-columns:1fr; } .credential-status { grid-column:auto; } .admin-header { padding-top:20px; } .check { padding:5px 0; } }
