:root { --fg:#1d232b; --muted:#667085; --bg:#f6f7f9; --card:#fff; --line:#e3e6ea; --accent:#1f6feb;
        --ok:#1a7f37; --warn:#9a6700; --err:#cf222e; --busy:#6639ba; }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.5 system-ui, sans-serif; color:var(--fg); background:var(--bg); }
.top { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between;
       padding:.75rem 1rem; background:var(--card); border-bottom:1px solid var(--line); }
.top nav { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.brand { font-weight:600; color:var(--fg); text-decoration:none; }
main { max-width:60rem; margin:0 auto; padding:1rem; }
a { color:var(--accent); }
h1 small, .muted { color:var(--muted); font-weight:400; font-size:.9em; }
.card { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:1rem; margin:0 0 1rem; }
.narrow { max-width:24rem; }
.sites { list-style:none; padding:0; }
label { display:block; margin:0 0 .75rem; }
input[type=text], input[type=email], input[type=password], input[type=number], textarea, select {
  display:block; width:100%; padding:.5rem; border:1px solid var(--line); border-radius:6px; font:inherit; }
textarea { min-height:6rem; font-family:ui-monospace, monospace; font-size:.9rem; }
button, a.button { padding:.5rem 1rem; border:0; border-radius:6px; background:var(--accent); color:#fff; font:inherit; cursor:pointer; }
a.button { display:inline-block; text-decoration:none; }
button[disabled] { opacity:.5; cursor:not-allowed; }
button.secondary { background:#eef1f4; color:var(--fg); }
button.danger { background:var(--err); }
button.link { background:none; color:var(--accent); padding:0; }
form.inline { display:inline; }
.flash { padding:.75rem 1rem; border-radius:6px; background:#eef4ff; }
.flash.error { background:#ffebe9; color:var(--err); }
.flash.ok { background:#dafbe1; color:var(--ok); }
.flash.warn { background:#fff8c5; color:var(--warn); }
label.check { display:inline; margin:0 .5rem 0 0; }
.badge { display:inline-block; padding:.1rem .5rem; border-radius:999px; font-size:.85rem; background:#eef1f4; }
.badge.ok { background:#dafbe1; color:var(--ok); } .badge.warn { background:#fff8c5; color:var(--warn); }
.badge.error { background:#ffebe9; color:var(--err); } .badge.busy { background:#fbefff; color:var(--busy); }
table { width:100%; border-collapse:collapse; } th, td { text-align:left; padding:.4rem; border-bottom:1px solid var(--line); vertical-align:top; }
.table-wrap { overflow-x:auto; }
.findings li { margin:0 0 .5rem; } .findings code { word-break:break-all; }
.crumbs { color:var(--muted); }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(12rem, 1fr)); gap:0 1rem; }
