:root { --ink:#1b1f24; --muted:#6b7280; --line:#e5e7eb; --bg:#f7f7f8; --card:#fff; --accent:#1d4ed8; --err:#b91c1c; --ok:#15803d; --warn:#b45309; color-scheme:light; }
@media (prefers-color-scheme: dark) {
  :root { --ink:#e5e7eb; --muted:#9ca3af; --line:#2d3340; --bg:#12151b; --card:#1a1e26; --accent:#60a5fa; --err:#f87171; --ok:#4ade80; --warn:#fbbf24; color-scheme:dark; }
}
* { box-sizing:border-box; }
body { margin:0; font:16px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color:var(--ink); background:var(--bg); }
header.top { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 1rem; background:var(--card); border-bottom:1px solid var(--line); flex-wrap:wrap; }
.brand { font-weight:700; text-decoration:none; color:var(--accent); font-size:1.1rem; }
nav { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; }
nav a { color:var(--ink); text-decoration:none; }
nav a:hover { text-decoration:underline; }
main { padding:1.25rem 1.5rem 3rem; }
h1 { font-size:1.5rem; margin:.25rem 0 1rem; overflow-wrap:anywhere; }
h2 { font-size:1.1rem; margin:0 0 .75rem; }
a { color:var(--accent); }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:1.25rem; margin:1.25rem 0; }
.narrow { max-width:520px; }
label { display:block; margin-bottom:.9rem; font-size:.9rem; color:var(--muted); }
input[type=text], input[type=password], select { display:block; width:100%; margin-top:.25rem; padding:.55rem .65rem; font:inherit; color:var(--ink); border:1px solid var(--line); border-radius:8px; background:var(--bg); }
button, a.btn { display:inline-block; font:inherit; padding:.55rem 1rem; border:0; border-radius:8px; background:var(--accent); color:#fff; cursor:pointer; text-decoration:none; }
@media (prefers-color-scheme: dark) { button, a.btn { color:#0b1220; } }
button.secondary { background:none; color:var(--accent); border:1px solid var(--accent); }
button.danger { background:var(--err); }
button.link { background:none; color:var(--accent); padding:0; text-decoration:underline; border:0; }
button.link.danger { color:var(--err); font-size:.85rem; margin-left:.25rem; }
form.inline { display:inline; }
form.row { display:flex; gap:.75rem; align-items:flex-end; flex-wrap:wrap; }
form.row label { flex:1 1 220px; margin:0; }
form.row.spaced { margin-top:1rem; }
.suffixed { display:flex; align-items:center; gap:.35rem; margin-top:.25rem; }
.suffixed input { margin:0; flex:1; min-width:0; }
.suffixed span { color:var(--ink); white-space:nowrap; }
.muted { color:var(--muted); }
.small { font-size:.85rem; }
.error { color:var(--err); }
.ok { color:var(--ok); }
.warn { color:var(--warn); }
.flash { padding:.65rem .9rem; border-radius:8px; border:1px solid currentColor; background:var(--card); }
table { width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
th, td { text-align:left; padding:.6rem .8rem; border-bottom:1px solid var(--line); vertical-align:top; overflow-wrap:anywhere; }
th { font-size:.78rem; text-transform:uppercase; color:var(--muted); }
td.actions, td.nowrap { white-space:nowrap; }
tr.failed td { color:var(--err); }
.scroll { overflow-x:auto; }
.scroll table { min-width:720px; }
.badge { display:inline-block; font-size:.72rem; padding:.05rem .45rem; border-radius:999px; background:var(--accent); color:#fff; vertical-align:middle; margin-left:.35rem; }
@media (prefers-color-scheme: dark) { .badge { color:#0b1220; } }
.badge.muted-badge { background:var(--line); color:var(--muted); }
.target { display:inline-block; margin-right:1rem; }
dl.facts { display:grid; grid-template-columns:max-content 1fr; gap:.4rem 1.25rem; margin:0; }
dl.facts dt { color:var(--muted); }
dl.facts dd { margin:0; overflow-wrap:anywhere; }
@media (max-width:560px) { dl.facts { grid-template-columns:1fr; } dl.facts dd { margin-bottom:.5rem; } }
.checks { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:.25rem 1rem; margin-bottom:1rem; }
label.check { display:flex; align-items:center; gap:.5rem; color:var(--ink); margin:0; }
code { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.95em; }
code.secret { font-size:1.15rem; padding:.2rem .5rem; background:var(--bg); border:1px solid var(--line); border-radius:6px; user-select:all; }
.danger-zone { border-color:var(--err); }
.badge.blocked-badge { background:var(--warn); }
.blocked-card { border-color:var(--warn); }
p.hint { margin-top:1.25rem; }
