:root{--ink:#14202e;--muted:#5b6b7c;--line:#dde3ea;--bg:#f6f8fa;--card:#fff;--navy:#1f3a5f;--accent:#d97706;--lead:#b42318;--grr:#e07a1f;--unk:#a3acb9;--non:#2f9e6e;--radius:10px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:#1d4ed8}
a:hover{color:#1e3a8a}
h1,h2,h3{line-height:1.25;margin:0 0 .5em}
h1{font-size:clamp(1.7rem,4vw,2.4rem);letter-spacing:-.01em}
h2{font-size:1.3rem;margin-top:.2em}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.narrow{max-width:760px}
.top{background:var(--navy);color:#fff}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700;font-size:1.1rem}
.nav{display:flex;gap:18px;flex-wrap:wrap}
.nav a{color:#dbe6f3;text-decoration:none;font-size:.95rem}
.nav a:hover{color:#fff}
main{padding-bottom:40px}
.crumbs{font-size:.85rem;color:var(--muted);margin:18px 0 10px}
.crumbs a{color:var(--muted)}
.crumbs .sep{margin:0 6px}
.lede{font-size:1.12rem;color:#273646;max-width:780px}
.muted{color:var(--muted)}
.small{font-size:.9rem}
.fine{font-size:.8rem;color:var(--muted)}
.home-hero{background:linear-gradient(180deg,var(--navy),#2b4c75);color:#fff;padding:48px 0 40px}
.home-hero .lede{color:#e6eef7}
.home-hero .muted{color:#b9c9db}
.search{position:relative;max-width:640px;margin:18px 0 8px}
.search input{width:100%;font-size:1.1rem;padding:14px 16px;border-radius:var(--radius);border:2px solid #c9d3de;outline:none;background:#fff;color:var(--ink)}
.search input:focus{border-color:var(--accent)}
.results{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 30px rgba(15,30,50,.18);max-height:420px;overflow:auto}
.results a{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;text-decoration:none;color:var(--ink);border-bottom:1px solid #eef1f4}
.results a:hover,.results a.on{background:#fff7ed}
.results small{display:block;color:var(--muted)}
.results .tag{white-space:nowrap;font-size:.8rem;font-weight:600;align-self:center}
.tag.l{color:var(--lead)}.tag.u{color:#6b7280}.tag.o{color:var(--non)}
.results .empty{padding:12px 14px;color:var(--muted)}
.sr{position:absolute;left:-9999px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0 14px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;border-top:4px solid var(--unk)}
.stat b{display:block;font-size:1.6rem;line-height:1.2;font-variant-numeric:tabular-nums}
.stat span{font-size:.88rem;color:var(--muted)}
.stats.big .stat b{font-size:1.9rem}
.s-lead{border-top-color:var(--lead)}.s-grr{border-top-color:var(--grr)}.s-unk{border-top-color:var(--unk)}.s-non{border-top-color:var(--non)}
.bar{display:flex;height:16px;border-radius:8px;overflow:hidden;background:#e9edf1;margin:8px 0}
.bar span{display:block;height:100%}
.b-lead{background:var(--lead)}.b-grr{background:var(--grr)}.b-unk{background:var(--unk)}.b-non{background:var(--non)}
.legend{list-style:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.88rem;color:var(--muted)}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.hero-sys{margin:6px 0 4px}
.eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:var(--muted);margin:0 0 6px}
.verdict{display:inline-block;font-weight:700;padding:6px 12px;border-radius:999px;margin:0 0 12px;font-size:.95rem}
.v-lead{background:#fde8e6;color:var(--lead)}.v-unk{background:#eef0f3;color:#3f4b59}.v-ok{background:#e3f4ec;color:#1d7a52}.v-none{background:#fff4e0;color:#8a5300}
.rank{color:#273646}
.alert{background:#fff1f0;border:1px solid #f5c2bd;border-left:5px solid var(--lead);padding:12px 16px;border-radius:var(--radius);margin:14px 0}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;margin-top:18px;align-items:start}
.block{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin:18px 0}
.block.two{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.side-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:18px 0}
aside .side-card:first-child{border-top:4px solid var(--accent)}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.btn{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;padding:10px 16px;border-radius:8px;font-weight:600}
.btn:hover{background:#16304f;color:#fff}
.btn.ghost{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.pcard{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:var(--radius);padding:14px;text-decoration:none;color:var(--ink);background:#fbfcfd}
.pcard:hover{border-color:var(--accent);background:#fffaf3;color:var(--ink)}
.pcard span{font-size:.9rem;color:#3b4a5a}
.pcard em{font-style:normal;color:#1d4ed8;font-weight:600;font-size:.9rem;margin-top:auto}
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.93rem;background:#fff}
.tbl th,.tbl td{padding:8px 10px;border-bottom:1px solid #edf0f3;text-align:left;vertical-align:top}
.tbl th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8fafc;white-space:nowrap}
.tbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl td small{display:block;color:var(--muted);font-size:.8rem}
.sortable th{cursor:pointer}
.sortable th:hover{color:var(--ink)}
.state-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.state-grid a{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;padding:10px 12px;text-decoration:none;color:var(--ink);background:#fbfcfd}
.state-grid a:hover{border-color:var(--accent)}
.state-grid span{font-size:.85rem}
details{border-top:1px solid #edf0f3;padding:10px 0}
details summary{cursor:pointer;font-weight:600}
details p{margin:.5em 0 0}
.quote label{display:block;font-size:.88rem;font-weight:600;margin:0 0 10px}
.quote input,.quote select,.quote textarea{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid #c9d3de;border-radius:7px;font:inherit;font-weight:400;background:#fff;color:var(--ink)}
.quote .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quote.compact .row2{grid-template-columns:1fr}
.quote .check{display:flex;gap:8px;font-weight:400;font-size:.82rem;color:#3b4a5a}
.quote .check input{width:auto;margin-top:3px;flex:none}
.quote button{width:100%;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:12px;font:inherit;font-weight:700;cursor:pointer}
.quote button:hover{background:#b45f05}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.prose{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px;margin-top:6px}
.prose h2{margin-top:1.4em}
.prose li{margin:.3em 0}
.aff-note{font-size:.82rem;color:var(--muted);background:#f8fafc;border-radius:8px;padding:8px 12px}
.guide-list{list-style:none;padding:0}
.guide-list li{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;margin:10px 0}
.guide-list a{font-weight:700;font-size:1.05rem}
.guide-list p{margin:.3em 0 0;color:var(--muted)}
.foot{background:#0f1d2e;color:#b8c5d4;padding:34px 0 26px;font-size:.9rem}
.foot a{color:#dbe6f3;display:block;text-decoration:none;margin:3px 0}
.foot a:hover{text-decoration:underline}
.foot strong{color:#fff;display:block;margin-bottom:6px}
.foot-grid{display:grid;grid-template-columns:2fr 1.3fr 1fr;gap:26px}
.foot .fine{color:#8394a8;margin-top:22px}
@media (max-width:900px){.cols{grid-template-columns:minmax(0,1fr)}.state-grid{grid-template-columns:repeat(2,1fr)}.block.two{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.stats{grid-template-columns:repeat(2,1fr)}.cards3{grid-template-columns:1fr}.foot-grid{grid-template-columns:1fr}.hide-sm{display:none}.block{padding:16px}.prose{padding:18px}.quote .row2{grid-template-columns:1fr}.nav{gap:12px}.nav a{font-size:.88rem}.stat b{font-size:1.3rem}.stats.big .stat b{font-size:1.45rem}}
.compare{color:#273646;max-width:780px}
.zips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.zips span{font-variant-numeric:tabular-nums;font-size:.85rem;background:#f1f4f7;border:1px solid var(--line);border-radius:6px;padding:2px 8px}
.usmap{margin:6px 0 14px}
.usmap svg{width:100%;height:auto;display:block}
.usmap path{stroke:#fff;stroke-width:.8}
.usmap a:hover path{stroke:#14202e;stroke-width:1.6}
.map-legend{margin:6px 0 2px}
.rk{display:inline-block;min-width:2em;color:var(--muted);font-variant-numeric:tabular-nums}
.cite{background:#f8fafc;border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;margin:20px 0}
.cite p{margin:.4em 0 0}
.results .sec{padding:6px 14px;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#f8fafc}
.city-list{list-style:none;padding:0;margin:8px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px 18px}
.city-list li{display:flex;flex-direction:column;padding:4px 0;border-bottom:1px solid #eef1f4}
.city-list span{font-size:.82rem;color:var(--muted)}
@media (max-width:640px){.city-list{grid-template-columns:1fr 1fr}}
.embed-code{width:100%;font:12px/1.4 ui-monospace,Consolas,monospace;padding:8px 10px;border:1px solid #c9d3de;border-radius:7px;background:#f8fafc;color:#14202e;resize:vertical}
.callout{background:#fff7ed;border:1px solid #fbd9a8;border-radius:8px;padding:10px 14px;margin:18px 0}
.findings li{margin:.55em 0}
.hbars{margin:10px 0 6px}
.hb{display:grid;grid-template-columns:minmax(120px,32%) 1fr 80px;gap:10px;align-items:center;padding:4px 0;font-size:.9rem}
.hb-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb-t{background:#eef1f4;border-radius:4px;height:14px;overflow:hidden}
.hb-t i{display:block;height:100%;border-radius:4px}
.hb-v{text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:640px){.hb{grid-template-columns:110px 1fr 64px;font-size:.82rem}}
.ltchart{width:100%;max-width:560px;height:auto;display:block;margin:8px 0}
.tag-hb{display:inline-block;font-size:.72rem;font-weight:700;color:#b42318;background:#fde8e6;border-radius:999px;padding:1px 7px;margin-left:4px;vertical-align:1px}
.nowrap{white-space:nowrap}
.prose td{overflow-wrap:anywhere}
.cols>div,.cols>aside{min-width:0}
.sys-index{columns:3 220px;column-gap:24px;padding:0;list-style:none;margin:8px 0}
.sys-index li{break-inside:avoid;padding:3px 0;font-size:.92rem}
.sys-index small{color:var(--muted)}
.letters{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.letters a{display:inline-block;min-width:28px;text-align:center;border:1px solid var(--line);border-radius:6px;padding:2px 6px;text-decoration:none;background:#fff}
.find-more{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin:18px 0}
.find-more .search{margin:8px 0 0}
.pg{display:inline-block;font-size:.82rem;font-weight:700;border-radius:999px;padding:3px 10px;white-space:nowrap}
.pg-free{background:#e3f4ec;color:#1d7a52}.pg-sched{background:#e7f0fb;color:#1f4f8a}.pg-elig{background:#fff4e0;color:#8a5300}.pg-cost{background:#f1f4f7;color:#3f4b59}
.program{border-left:4px solid var(--non)}
