:root { --ink:#17212b; --muted:#5b6876; --line:#d8dee6; --bg:#f6f7f9; --card:#fff; --accent:#0f5c4d; --accent-ink:#fff;
        --ok:#1d7a45; --part:#9a6200; --miss:#7b8693; --warn:#fff2c6; --err:#a3262a; }
@media (prefers-color-scheme: dark) { :root { --ink:#e5eaf0; --muted:#9aa7b4; --line:#2a3440; --bg:#11161c; --card:#19212a;
        --accent:#4fbf9f; --accent-ink:#0b1410; --ok:#4cc27f; --part:#e2a53c; --miss:#7c8794; --warn:#3b3214; --err:#f07a7c; } }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color:var(--ink); background:var(--bg); }
a { color:var(--accent); }
.test-banner { background:var(--warn); padding:8px 16px; font-size:14px; text-align:center; }
.top { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; padding:16px; max-width:1100px; margin:0 auto; }
.brand { color:var(--ink); text-decoration:none; display:flex; gap:10px; align-items:baseline; } .brand strong { font-size:22px; } .brand span { color:var(--muted); }
nav { display:flex; flex-wrap:wrap; gap:16px; align-items:center; } nav a { color:var(--ink); text-decoration:none; }
nav a.cta, .button { background:var(--accent); color:var(--accent-ink); padding:9px 15px; border-radius:6px; text-decoration:none; border:0; font:inherit; cursor:pointer; display:inline-block; }
.button.ghost { background:transparent; color:var(--accent); border:1px solid var(--accent); }
main { max-width:1100px; margin:0 auto; padding:0 16px 48px; }
h1 { font-size:34px; line-height:1.2; margin:20px 0 12px; } h2 { font-size:22px; margin:32px 0 10px; } h3 { margin:0 0 6px; font-size:18px; }
.hero h1 { font-size:42px; max-width:820px; } .eyebrow { color:var(--muted); text-transform:uppercase; letter-spacing:.06em; font-size:13px; margin:24px 0 0; }
.eyebrow a { color:var(--muted); } .lede { font-size:19px; color:var(--muted); max-width:780px; }
.three, .four, .stat-row { display:grid; gap:16px; } .three { grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); }
.four { grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); } .stat-row { grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:18px; color:var(--ink); text-decoration:none; display:block; }
a.card:hover { border-color:var(--accent); }
.tag { display:inline-block; margin-top:6px; font-size:13px; color:var(--accent); border:1px solid var(--accent); border-radius:999px; padding:2px 10px; }
.stat { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:16px; display:flex; flex-direction:column; gap:4px; }
.num { font-size:30px; font-weight:700; } .stat span:last-child { color:var(--muted); }
.muted { color:var(--muted); } .small { font-size:14px; }
.points li { margin:6px 0; } .list li { margin:6px 0; }
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:8px; background:var(--card); }
table { border-collapse:collapse; width:100%; font-size:14px; } th, td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
th { white-space:nowrap; }
.st { font-weight:600; } .st-complete { color:var(--ok); } .st-partial { color:var(--part); } .st-missing, .st-foia_pending { color:var(--miss); }
form.request { display:grid; gap:14px; max-width:720px; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:18px; }
form.request label { display:grid; gap:4px; } form.request label.check { display:flex; gap:8px; align-items:flex-start; }
.grid2 { display:grid; gap:14px; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); }
input, select, textarea { font:inherit; padding:8px; border:1px solid var(--line); border-radius:6px; background:var(--bg); color:var(--ink); width:100%; }
input[type=checkbox] { width:auto; }
fieldset { border:1px solid var(--line); border-radius:8px; padding:12px; display:grid; gap:8px; } legend { font-weight:600; padding:0 6px; }
.towns { display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:4px; padding:8px 0; }
.hp { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.prose { max-width:760px; }
footer { border-top:1px solid var(--line); padding:16px; color:var(--muted); font-size:14px; max-width:1100px; margin:0 auto; }
footer a { color:var(--muted); }
address.postal { font-style:normal; margin:8px 0; }
