:root{--ink:#1f2937;--muted:#6b7280;--line:#d1d5db;--bg:#f8fafc;--accent:#1e3a5f;--lo:#15803d;--same:#9ca3af;--up:#b91c1c}
*{box-sizing:border-box}
body{margin:0;font:15px/1.55 Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg)}
.wrap{max-width:1040px;margin:0 auto;padding:0 18px}
a{color:#1155cc;text-decoration:underline}
.demo-bar{background:#fef3c7;color:#78350f;text-align:center;padding:6px;font-size:13px}
.top{background:var(--accent);color:#fff;padding:12px 0}
.top .wrap{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.top a{color:#fff}
.brand{font-weight:700;text-decoration:none;font-size:17px}
.county{opacity:.85}
.staffnav{margin-left:auto;display:flex;gap:14px}
.staffnav a{text-decoration:none;opacity:.9}
.staffnav a:hover{text-decoration:underline}
main{padding:24px 18px 40px}
h1{font-size:24px;margin:.2em 0 .5em}
.lede{font-size:16px;color:#374151;max-width:760px}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 20px;margin:16px 0}
.big{font-size:18px;font-weight:600}
.bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:#eee;margin:8px 0 12px}
.bar .lo{background:var(--lo)}.bar .same{background:var(--same)}.bar .up{background:var(--up)}
table.data{border-collapse:collapse;width:100%;background:#fff}
table.data th,table.data td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left}
table.data .r{text-align:right}
.result table.data{max-width:320px}
.tag{font-size:12px;padding:2px 8px;border-radius:10px;background:#e5e7eb}
.tag.reduced{background:#dcfce7;color:#14532d}.tag.increased{background:#fee2e2;color:#7f1d1d}
.tag.withdrawn{background:#f3f4f6;color:#6b7280}.tag.open{background:#dbeafe;color:#1e3a8a}
.row-head{display:flex;align-items:center;justify-content:space-between}
.button,button{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:6px;padding:8px 16px;font:inherit;cursor:pointer;text-decoration:none}
.button.secondary{background:#fff;color:var(--accent);border:1px solid var(--accent)}
.filters{display:flex;gap:12px;align-items:end;margin:10px 0 14px;flex-wrap:wrap}
.filters label{display:flex;flex-direction:column;font-size:13px}
.form fieldset{border:1px solid var(--line);border-radius:8px;background:#fff;margin:0 0 14px;padding:12px 16px}
.form legend{font-weight:600;padding:0 6px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 16px}
.form label{display:flex;flex-direction:column;font-size:13px;color:#374151}
.form .wide{grid-column:1/-1}
input,select,textarea{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:5px;background:#fff}
.narrow{max-width:320px}.error{color:#b91c1c}.ok{color:#15803d}
.small{font-size:13px;color:var(--muted)}
.foot{border-top:1px solid var(--line);padding:14px 0;margin-top:30px}
.county-list{font-size:17px}
.letter{background:#fff;border:1px solid var(--line);padding:40px 48px;max-width:720px}
.letterhead{margin-bottom:28px}
td.blank{min-width:160px}
@media print{.top,.foot,.demo-bar,.noprint{display:none}body{background:#fff}.letter{border:0;padding:0}main{padding:0}}
.top a.county{color:#fff;opacity:.85;text-decoration:none}
.staffnav a.on{text-decoration:underline;opacity:1}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:18px 0}
.tile{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 18px;color:var(--ink);text-decoration:none}
.tile strong{color:#1155cc;text-decoration:underline;font-size:17px}
.grade{display:inline-block;min-width:26px;text-align:center;font-weight:700;border-radius:5px;padding:1px 6px;background:#e5e7eb}
.grade.gA{background:#dcfce7;color:#14532d}.grade.gB{background:#fef9c3;color:#713f12}.grade.gC{background:#ffedd5;color:#7c2d12}.grade.gN{background:#fee2e2;color:#7f1d1d}
.row-head span{display:flex;gap:8px;flex-wrap:wrap}
.staffnav select{background:#fff;color:var(--ink);border-radius:5px;padding:4px 6px}
.dept{margin:22px 0 4px;font-size:15px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.county-list.cols{columns:4 180px;padding-left:18px}.county-list.cols li{margin:2px 0}
.map-wrap{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;margin:16px 0}
.usmap,.statemap{width:100%;height:auto;display:block}
.usmap path,.statemap path{stroke:#fff;stroke-width:.7}
.usmap path.off{fill:#e2e8f0}
.usmap path.on{fill:var(--accent);cursor:pointer}
.usmap a:hover path.on,.usmap a:focus path.on{fill:#1155cc}
.statemap path{cursor:pointer}
.statemap .b0{fill:#e2e8f0}.statemap .b1{fill:#c7d7ea}.statemap .b2{fill:#8fb0d6}.statemap .b3{fill:#4a7bb5}.statemap .b4{fill:var(--accent)}
.statemap a:hover path,.statemap a:focus path{fill:#1155cc}
.legend{margin:8px 0 0}.legend .sw{display:inline-block;width:14px;height:10px;margin:0 4px 0 10px;vertical-align:middle}
.legend .sw.b0{background:#e2e8f0}.legend .sw.b1{background:#c7d7ea}.legend .sw.b2{background:#8fb0d6}.legend .sw.b3{background:#4a7bb5}.legend .sw.b4{background:var(--accent)}
.tag.A,.tag.superior,.tag.approved,.tag.no_violations{background:#dcfce7;color:#14532d}
.tag.B,.tag.conditions{background:#fef9c3;color:#713f12}
.tag.C,.tag.provisional{background:#ffedd5;color:#7c2d12}
.tag.no_grade,.tag.disapproved,.tag.closed{background:#fee2e2;color:#7f1d1d}
.brand{display:inline-flex;align-items:center;gap:10px}
.brand-mark{width:28px;height:28px;flex:none}
