:root{--ink:#14213d;--muted:#5b6475;--line:#e3e7ee;--bg:#f6f8fb;--card:#fff;--brand:#0b5d8f;--a:#1e8e3e;--b:#d68a00;--c:#c5221f;--na:#7a8494}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}
header.top{background:#0d1b2a;color:#fff}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
.logo{color:#fff;font-weight:800;font-size:20px;letter-spacing:-.2px}.logo:hover{text-decoration:none}
.logo small{display:block;font-weight:400;font-size:12px;color:#b8c4d6;letter-spacing:0}
nav a{color:#dbe4f0;margin-left:16px;font-size:15px}nav a:first-child{margin-left:0}
.hero{position:relative;color:#fff;background:#0d1b2a url(/static/charlotte-skyline.jpg) center 30%/cover no-repeat}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,32,.78),rgba(8,18,32,.62) 55%,rgba(8,18,32,.85))}
.hero .wrap{position:relative;padding-top:56px;padding-bottom:40px}
.hero h1{margin:0 0 6px;font-size:clamp(28px,5vw,44px);line-height:1.1;letter-spacing:-.5px}
.hero p.lead{margin:0 0 22px;color:#e6edf6;font-size:clamp(15px,2.2vw,18px);max-width:640px}
.search{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;background:rgba(255,255,255,.12);padding:10px;border-radius:12px;backdrop-filter:blur(3px)}
.search input,.search select,.search button{font:inherit;padding:11px 12px;border-radius:8px;border:1px solid #cfd6e2;background:#fff;color:var(--ink);min-width:0}
.search button{background:#f2b705;border-color:#f2b705;font-weight:700;cursor:pointer;color:#14213d}
.hero .meta{margin-top:12px;font-size:13px;color:#c9d4e3}
.hero .meta a{color:#fff;text-decoration:underline}
main{padding:24px 0 40px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px}
.notice{background:#fff8e1;border:1px solid #f3dd9b;border-radius:10px;padding:10px 14px;font-size:14px;color:#5f4b00;margin:0 0 16px}
.list{list-style:none;margin:0;padding:0}
.list li{display:flex;align-items:center;gap:14px;padding:12px 16px;border-top:1px solid var(--line)}
.list li:first-child{border-top:0}
.list .info{flex:1;min-width:0}
.list .name{font-weight:650;color:var(--ink)}
.list .sub{color:var(--muted);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.list .when{color:var(--muted);font-size:13px;text-align:right;white-space:nowrap}
.badge{flex:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:56px;border-radius:10px;color:#fff;font-weight:800;font-size:24px;line-height:1;background:var(--na)}
.badge small{font-size:11px;font-weight:600;margin-top:3px;opacity:.95}
.badge.A{background:var(--a)}.badge.B{background:var(--b)}.badge.C{background:var(--c)}
.badge.pts{background:#44607a;font-size:17px}.badge.dem{background:#5d5f8f;font-size:17px}.badge.none{background:#9aa3b0;font-size:13px}
.badge.lg{width:88px;height:88px;font-size:42px;border-radius:14px}.badge.lg small{font-size:12px}
.badge.lg.pts,.badge.lg.dem{font-size:28px}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;color:var(--muted);font-size:14px}
.chips a{display:inline-block;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;margin:0 4px 6px 0;font-size:13px;color:var(--ink)}
.chips a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pager{display:flex;gap:10px;justify-content:center;margin:16px 0}
.pager a,.pager span{padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
h1.title{margin:0 0 4px;font-size:clamp(24px,4vw,32px);line-height:1.15}
.placehead{display:flex;gap:18px;align-items:center;padding:18px}
.placehead .sub{color:var(--muted)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;padding:0 18px 18px}
.stat{background:var(--bg);border-radius:10px;padding:10px 12px}.stat b{display:block;font-size:18px}.stat span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
section{margin-top:18px}section h2{font-size:19px;margin:0 0 10px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:8px 10px;border-top:1px solid var(--line);vertical-align:top}
th{background:#f0f3f8;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);border-top:0}
.tablewrap{overflow-x:auto}
.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:700;color:#fff;background:var(--na)}
.pill.A{background:var(--a)}.pill.B{background:var(--b)}.pill.C{background:var(--c)}
.flag{display:inline-block;font-size:11px;font-weight:700;padding:1px 6px;border-radius:4px;margin:2px 4px 0 0}
.flag.cdi{background:#e3f4e8;color:#1b6b33}.flag.rep{background:#fde8e7;color:#a11d1a}.flag.ver{background:#fff1d6;color:#8a5a00}
details.insp{border-top:1px solid var(--line);padding:12px 16px}
details.insp:first-of-type{border-top:0}
details.insp summary{cursor:pointer;display:flex;gap:10px;align-items:center;flex-wrap:wrap;list-style:none}
details.insp summary::-webkit-details-marker{display:none}
details.insp summary:before{content:"▸";color:var(--muted)}details.insp[open] summary:before{content:"▾"}
.v{padding:10px 0;border-top:1px dashed var(--line)}.v:first-child{border-top:0}
.v .vh{font-weight:600}.v .dem{color:var(--c);font-weight:700;white-space:nowrap}
.v .vc{color:var(--muted);font-size:14px;white-space:pre-line;margin-top:4px;max-height:12em;overflow:auto}
.muted{color:var(--muted)}.small{font-size:13px}
.comments{background:var(--bg);border-radius:8px;padding:8px 10px;font-size:14px;white-space:pre-line;margin:8px 0;color:#333}
svg.chart{width:100%;height:auto;display:block}
svg .band.a{fill:#e7f5ea}svg .band.b{fill:#fff4dc}svg .band.c{fill:#fde9e8}
footer{background:#0d1b2a;color:#b8c4d6;font-size:13px;padding:22px 0 30px}
footer a{color:#dbe4f0;text-decoration:underline}
footer p{margin:6px 0}
@media (max-width:720px){
 .search{grid-template-columns:1fr 1fr}.search input{grid-column:1/-1}.search button{grid-column:1/-1}
 .hero .wrap{padding-top:32px;padding-bottom:26px}
 nav a{margin-left:12px;font-size:14px}
 .list li{padding:10px 12px;gap:10px}.list .when{display:none}
 .badge{width:48px;height:48px;font-size:21px}
 .placehead{padding:14px}.badge.lg{width:72px;height:72px;font-size:34px}
 .hide-sm{display:none}
}
