:root{--navy:#102a43;--blue:#1464a5;--cyan:#d9f2f5;--ice:#f4f8fb;--ink:#13212d;--muted:#5b6b79;--line:#d8e3eb;--white:#fff;--accent:#ef8354}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,var(--navy) 0 28rem,var(--ice) 28rem);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}
main{width:min(1040px,calc(100% - 32px));margin:auto;padding:54px 0 64px}
.search-panel{color:white;padding:0 0 44px}
.eyebrow{display:flex;justify-content:space-between;gap:16px;text-transform:uppercase;letter-spacing:.09em;font-size:.78rem;font-weight:750;color:#aee8ef;margin-bottom:40px}
h1{font-size:clamp(2.35rem,6vw,4.8rem);line-height:.98;letter-spacing:-.055em;margin:0;max-width:850px;font-weight:780}
.intro{font-size:1.08rem;color:#d8e6ef;margin:25px 0 28px}
.example{border:0;background:transparent;color:white;text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer;padding:0}
form{background:white;color:var(--ink);padding:22px;border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.18)}
label{display:block;font-size:.88rem;font-weight:750;margin-bottom:9px}
.search-row{display:grid;grid-template-columns:1fr auto;gap:10px}
input,.submit{font:inherit;min-height:54px;border-radius:11px}
input{width:100%;border:1px solid #b9cbd8;padding:0 16px;font-size:1.05rem;outline:none}
input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(20,100,165,.13)}
.submit{border:0;background:var(--blue);color:white;padding:0 25px;font-weight:750;cursor:pointer}
.submit:hover{background:#0d538c}.submit:focus-visible,.example:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.hint{color:var(--muted);font-size:.84rem;margin:9px 2px 0}
.result{background:white;border:1px solid var(--line);border-radius:20px;margin:10px 0 24px;overflow:hidden;box-shadow:0 14px 40px rgba(24,52,72,.1)}
.result-head{background:var(--cyan);padding:25px 28px;border-bottom:1px solid #c3e1e5}
.kicker{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#26747d;margin:0 0 7px}
.district{font-size:clamp(1.7rem,4vw,2.7rem);letter-spacing:-.035em;margin:0;color:var(--navy)}
.result-grid{display:grid;grid-template-columns:1fr 1fr}
.result-cell{padding:26px 28px;min-width:0}.result-cell+ .result-cell{border-left:1px solid var(--line)}
.result h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px}
.venue{font-size:1.18rem;line-height:1.45;font-weight:700;margin:0}.meta{margin:13px 0 0;color:var(--muted);line-height:1.5}
.badge{display:inline-flex;align-items:center;margin-top:14px;padding:6px 9px;border-radius:7px;background:#e9f5ea;color:#256532;font-size:.8rem;font-weight:700}
.error{padding:26px 28px}.error h2{margin:0 0 8px;color:var(--navy)}.error p{margin:0;color:var(--muted);line-height:1.55}
.choices{display:grid;gap:10px;margin-top:18px}.choice{border:1px solid var(--line);border-radius:10px;background:white;text-align:left;padding:13px 15px;cursor:pointer;font:inherit}.choice:hover{border-color:var(--blue)}
.allocations{display:grid}.allocation{display:grid;grid-template-columns:minmax(190px,.7fr) 1.3fr}.allocation+.allocation{border-top:1px solid var(--line)}
.range{padding:26px 28px;background:#f6fafc;display:flex;flex-direction:column;gap:7px;border-right:1px solid var(--line)}.range span{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.range strong{font-size:1.08rem;line-height:1.45;color:var(--navy)}
.allocation-main{padding:26px 28px}.allocation-main h3{margin-top:16px}.allocation-district{font-size:1.25rem;font-weight:800;color:var(--blue);margin:0}
.source-note{padding:22px 4px;color:var(--muted);max-width:760px}.source-note h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--navy);margin:0 0 7px}.source-note p{font-size:.9rem;line-height:1.55;margin:0}
@media(max-width:650px){body{background:linear-gradient(180deg,var(--navy) 0 32rem,var(--ice) 32rem)}main{width:min(100% - 22px,1040px);padding-top:28px}.eyebrow{margin-bottom:28px;flex-direction:column;gap:5px}.search-panel{padding-bottom:28px}.search-row{grid-template-columns:1fr}.submit{width:100%}.result-grid{grid-template-columns:1fr}.result-cell+.result-cell{border-left:0;border-top:1px solid var(--line)}form{padding:16px}.result-head,.result-cell,.error{padding:21px}.allocation{grid-template-columns:1fr}.range{padding:18px 21px;border-right:0;border-bottom:1px solid var(--line)}.allocation-main{padding:21px}}
@media(prefers-reduced-motion:no-preference){.result{animation:rise .28s ease-out}@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
