:root{
  --ink:#152029;--paper:#f6f3ec;--panel:#ffffff;--line:#c9c1b0;
  --statewide:#1f6f66;--local:#c66a2e;--hybrid:#6a5a8c;
  --muted:#6a6355;--shadow:0 1px 0 rgba(0,0,0,.04);
}
*{box-sizing:border-box;}
html,body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Iowan Old Style",Georgia,"Times New Roman",serif;}
.wrap{max-width:1280px;margin:0 auto;padding:32px 28px 56px;}
header.top{border-bottom:2px solid var(--ink);padding-bottom:18px;margin-bottom:8px;
  display:flex;justify-content:space-between;align-items:flex-end;gap:20px;}
.eyebrow{font-family:"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.22em;font-size:11px;font-weight:700;color:var(--muted);margin:0 0 8px;}
.eyebrow .brand{color:var(--statewide);letter-spacing:.16em;}
h1{font-size:clamp(28px,4.4vw,46px);line-height:1.02;margin:0;font-weight:600;letter-spacing:-.01em;}
.sub{font-size:15px;color:var(--muted);margin:10px 0 0;max-width:62ch;line-height:1.5;}
.adminlink{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;font-weight:600;
  color:var(--muted);text-decoration:none;white-space:nowrap;border:1px solid var(--line);
  padding:7px 12px;border-radius:7px;}
.adminlink:hover{color:var(--ink);border-color:var(--muted);}

.legend{display:flex;flex-wrap:wrap;gap:18px;margin:20px 0 6px;
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:12.5px;font-weight:600;}
.legend span{display:inline-flex;align-items:center;gap:8px;color:var(--ink);}
.swatch{width:15px;height:15px;border-radius:3px;display:inline-block;border:1px solid rgba(0,0,0,.15);}

.layout{display:grid;grid-template-columns:1.15fr .85fr;gap:34px;margin-top:22px;align-items:start;}
@media(max-width:900px){.layout{grid-template-columns:1fr;}}

.mapcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:14px 14px 6px;box-shadow:var(--shadow);}
svg{width:100%;height:auto;display:block;}
.state{stroke:var(--paper);stroke-width:1.1;cursor:pointer;transition:fill .16s ease;}
.state:hover{filter:brightness(1.08);}
.state.sel{stroke:var(--ink);stroke-width:2.4;}
.state.nodata{fill:#d9d3c6;cursor:default;}
.state.nodata:hover{filter:none;}
.abbr{font-family:"Helvetica Neue",Arial,sans-serif;font-size:11px;font-weight:700;
  fill:#fff;pointer-events:none;text-anchor:middle;dominant-baseline:middle;opacity:.94;
  paint-order:stroke;stroke:rgba(0,0,0,.18);stroke-width:.4px;}
.abbr-out{fill:var(--muted);stroke:none;text-anchor:start;font-size:10px;opacity:1;}
.leader{stroke:var(--line);stroke-width:1;}
.maphint{font-family:"Helvetica Neue",Arial,sans-serif;font-size:11.5px;
  color:var(--muted);text-align:center;padding:6px 0 10px;}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  box-shadow:var(--shadow);min-height:520px;position:sticky;top:20px;overflow:hidden;}
.panel-head{padding:22px 24px 18px;border-bottom:1px solid var(--line);}
.cat-tag{font-family:"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.14em;font-size:10.5px;font-weight:700;color:#fff;
  padding:4px 9px;border-radius:4px;display:inline-block;margin-bottom:12px;}
.panel h2{margin:0;font-size:30px;font-weight:600;letter-spacing:-.01em;}
.lic{font-size:14.5px;color:var(--muted);margin:6px 0 0;line-height:1.45;}
.agency{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;color:var(--ink);margin:10px 0 0;font-weight:600;}
.thresh{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;color:var(--muted);margin:4px 0 0;}

.reqs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-bottom:1px solid var(--line);}
.req{background:var(--panel);padding:15px 18px;}
.req .k{font-family:"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.1em;font-size:10px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:7px;}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none;}
.dot.yes{background:var(--statewide);}
.dot.no{background:#c7c0b2;}
.dot.partial{background:var(--local);}
.req .v{font-size:14px;margin-top:5px;line-height:1.35;}

.notes{padding:18px 24px 22px;}
.notes .nlabel{font-family:"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.12em;font-size:10px;font-weight:700;color:var(--muted);margin:0 0 7px;}
.notes p{margin:0;font-size:14px;line-height:1.55;color:var(--ink);}
.muni{margin-top:14px;}
.muni .nlabel{color:var(--local);}
.muni p{font-size:13.5px;color:var(--muted);}
.custom{margin-top:14px;}
.custom .crow{margin-bottom:10px;}
.custom .clabel{font-family:"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.1em;font-size:10px;font-weight:700;color:var(--muted);margin:0 0 3px;}
.custom .cval{font-size:14px;line-height:1.5;margin:0;}

.empty{padding:60px 30px;text-align:center;color:var(--muted);}
.empty svg{width:52px;height:auto;margin:0 auto 16px;opacity:.4;}
.empty p{font-size:15px;line-height:1.5;margin:0;}

footer.foot{margin-top:30px;padding-top:16px;border-top:1px solid var(--line);
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:11.5px;color:var(--muted);
  line-height:1.6;max-width:80ch;}
@media(prefers-reduced-motion:reduce){*{transition:none!important;}}
