:root { --ink:#202622; --muted:#727a70; --paper:#f6f6f0; --card:#fffffb; --line:#dfe2d8; --green:#215c4c; --mint:#dbe9dc; --orange:#d66b3d; --yellow:#e4b84d; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top: 100px; scroll-padding-bottom: 40px; }
body { -webkit-text-size-adjust:100%; overflow-x:clip; }
main, section, footer { overflow-x:clip; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",sans-serif; }
a { color:inherit; text-decoration:none; }
.wrap { max-width:1180px; margin:0 auto; padding-left:28px; padding-right:28px; }
.topbar { height:77px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:0 max(28px, calc((100vw - 1180px)/2 + 28px)); background:rgba(246,246,240,.9); position:sticky; top:0; z-index:5; backdrop-filter:blur(12px); }
.brand { display:flex; align-items:center; gap:10px; font-weight:700; font-size:17px; letter-spacing:-.04em; }
.brand-mark { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--green); color:#fff; font-size:21px; font-weight:400; }
.brand-muted { color:#8b9387; font-weight:400; }
nav { display:flex; gap:34px; font-size:13px; color:var(--muted); } nav a.active, nav a:hover { color:var(--ink); }
.outline-button, .primary-button { display:inline-flex; align-items:center; justify-content:center; line-height:1; border:1px solid var(--ink); border-radius:3px; padding:11px 15px; font:500 12px "DM Sans"; background:transparent; cursor:pointer; }
.outline-button span, .primary-button span { margin-left:18px; font-size:16px; }
.hero { padding-top:93px; padding-bottom:91px; }
.eyebrow { font:500 10px "DM Mono",monospace; letter-spacing:.13em; text-transform:uppercase; color:var(--green); }
.live-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--orange); vertical-align:1px; margin-right:5px; }
h1,h2,h3,p { margin-top:0; } h1,h2 { font-family:Fraunces,serif; font-weight:600; letter-spacing:-.06em; }
h1 { max-width:750px; margin:21px 0 23px; font-size:clamp(54px,7vw,87px); line-height:.98; } h1 em,h2 em { color:var(--green); font-style:normal; }
.hero-copy { max-width:500px; color:#5d675e; line-height:1.65; font-size:15px; }
.hero-actions { margin-top:34px; display:flex; gap:25px; align-items:center; } .primary-button { display:inline-flex; background:var(--green); color:#fff; border-color:var(--green); padding:13px 16px; } .text-button { font-size:12px; font-weight:600; } .text-button span { color:var(--green); margin-left:9px; font-size:17px; }
.stats { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding-top:25px; padding-bottom:25px; } .stats div { display:flex; flex-direction:column; gap:5px; border-left:1px solid var(--line); padding-left:24px; } .stats div:first-child { border-left:0; padding-left:0; } .stats strong { font:600 28px Fraunces,serif; letter-spacing:-.04em; } .stats span { color:var(--muted); font:10px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.08em; }
.content { padding-top:92px; padding-bottom:110px; }.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:30px; } h2 { font-size:43px; line-height:1; margin:10px 0 0; }.controls { display:flex; gap:10px; }.search, select { height:38px; border:1px solid var(--line); background:var(--card); border-radius:2px; display:flex; align-items:center; padding:0 11px; color:var(--muted); }.search span { font-size:22px; line-height:0; }.search input { width:150px; border:0; outline:0; background:transparent; padding-left:8px; font:12px "DM Sans"; }.controls select { color:var(--ink); font:12px "DM Sans"; }
.compare-section { background:#e7eee3; padding:82px 0 90px; }.compare-copy { color:var(--muted); font-size:14px; max-width:400px; margin:16px 0 25px; }.compare-controls { display:flex; align-items:center; gap:12px; }.compare-controls select { min-width:190px; color:var(--ink); font:12px "DM Sans"; }.compare-controls .primary-button span { margin-left:10px; }.compare-summary { margin-top:42px; display:grid; grid-template-columns:1fr auto 1fr; gap:25px; align-items:center; border-top:1px solid #cbd8ca; border-bottom:1px solid #cbd8ca; padding:22px 0; }.compare-summary div:last-child { text-align:right; }.compare-summary strong, .compare-summary span { display:block; }.compare-summary strong { font:600 25px Fraunces,serif; }.compare-summary span { color:var(--muted); font:10px "DM Mono"; margin-top:6px; text-transform:uppercase; }.compare-summary em { color:var(--orange); font:italic 20px Fraunces,serif; }.compare-issues { margin-top:30px; max-width:700px; }.compare-labels { display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid #cbd8ca; padding-bottom:10px; }.compare-labels span { font:10px "DM Mono"; text-transform:uppercase; color:var(--green); }.compare-labels small { color:var(--muted); font:10px "DM Mono"; }.compare-issue { display:grid; grid-template-columns:1fr 35px 1fr 35px; gap:12px; align-items:center; padding:13px 0; border-bottom:1px solid #cbd8ca; }.compare-issue span { font-size:13px; }.compare-issue b { color:var(--green); font:600 19px Fraunces,serif; }.compare-issue b:last-child { text-align:right; }.compare-issue i { height:5px; background:linear-gradient(to right,var(--green) 50%,#d1d9cc 50%); }.disagreements { margin-top:34px; max-width:700px; }.disagreement { display:flex; justify-content:space-between; gap:20px; padding:14px 0; border-bottom:1px solid #cbd8ca; }.disagreement strong, .disagreement small, .disagreement p { display:block; }.disagreement strong { font-size:13px; }.disagreement small { color:var(--orange); font:10px "DM Mono"; margin-top:4px; }.disagreement p { color:var(--muted); font-size:11px; margin:5px 0 0; }
.profile-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; }.profile-card,.member-card { background:var(--card); border:1px solid var(--line); padding:22px; cursor:pointer; transition:transform .2s,border-color .2s; border-radius:8px; }.profile-card:hover,.member-card:hover { transform:translateY(-3px); border-color:#9aa99a; }.card-top { display:flex; justify-content:space-between; align-items:start; gap:12px; }.avatar,.initials { width:48px; height:48px; border-radius:50%; display:grid; place-items:center; background:var(--mint); color:var(--green); font:600 17px Fraunces,serif; flex-shrink:0; }.party,.party-party { font:10px "DM Mono"; color:var(--muted); text-transform:uppercase; }.member-identity { display:flex; align-items:flex-start; gap:12px; }.member-name { font:600 20px Fraunces,serif; letter-spacing:-.04em; color:var(--ink); display:block; margin:0; } .member-identity span:not(.initials) { font-size:12px; color:var(--muted); line-height:1.4; display:block; margin-top:3px; }.score-chip { display:flex; flex-direction:column; align-items:center; gap:2px; min-width:48px; padding:8px 10px; background:#f4f5ef; border-radius:6px; border:1px solid var(--line); }.score-chip span:first-child { font:600 20px Fraunces,serif; color:var(--green); line-height:1; }.score-chip span:last-child { font:9px "DM Mono"; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; font-weight:400; }.stance-list { margin-top:16px; border-top:1px solid var(--line); padding-top:14px; display:flex; flex-direction:column; gap:10px; }.stance-item { display:grid; grid-template-columns:1fr 60px; align-items:center; gap:8px; font-size:12px; color:var(--ink); }.stance-item > span:last-child { display:flex; justify-content:flex-end; } .stance-item .score-chip { min-width:52px; padding:6px 8px; } .stance-item .score-chip span:first-child { font-size:17px; }.member-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:14px; } .member-tags span { padding:4px 7px; background:#f0f3eb; color:#637064; font:9px "DM Mono"; text-transform:uppercase; border-radius:3px; }.profile-card h3 { font:600 20px Fraunces,serif; letter-spacing:-.04em; margin:18px 0 3px; }.role { font-size:12px; color:var(--muted); }.score-row { display:flex; justify-content:space-between; align-items:end; margin-top:24px; }.score { font:600 35px Fraunces,serif; color:var(--green); }.score small { font:11px "DM Mono"; color:var(--muted); font-family:"DM Mono"; }.bar { height:5px; background:#eceee7; margin-top:9px; }.bar i { display:block; height:100%; background:var(--green); }.issue-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:17px; }.tag { padding:5px 7px; background:#f0f3eb; color:#637064; font:9px "DM Mono"; text-transform:uppercase; border-radius:3px; }
.votes-section { background:var(--green); color:#f4f5ed; padding:82px 0 90px; scroll-margin-top:100px; }.votes-section .eyebrow { color:#a8cbb1; }.votes-section h2 { color:#fff; }.mono { font:10px "DM Mono",monospace; letter-spacing:.06em; }.muted { color:#a5b9a8; }.vote-layout { display:grid; grid-template-columns:1.45fr .7fr; gap:80px; }.vote-list{display:flex;flex-direction:column;gap:16px;padding-top:36px}.vote-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);padding:22px;transition:background .2s,border-color .2s,transform .2s;cursor:pointer;border-radius:2px}.vote-card:hover{background:rgba(255,255,255,.09);border-color:rgba(244,207,118,.45)}.vote-card-head{display:flex;align-items:flex-start;gap:16px}.vote-card-title{flex:1;min-width:0}.bill-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px;min-width:0}.bill-title-row h3{font:500 17px "DM Sans";color:#fff;letter-spacing:-.01em;margin:0;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.vote-title{font:600 17px Fraunces,serif;color:#fff;letter-spacing:-.01em;margin:6px 0 0;line-height:1.35}.vote-bill-num{color:#f4cf76;border-color:rgba(244,207,118,.35)}.vote-type-chip{font:9px "DM Mono";text-transform:uppercase;letter-spacing:.06em;color:#adc0af;border:1px solid rgba(255,255,255,.2);padding:3px 7px;border-radius:3px;flex-shrink:0}.vote-result-badge{font:10px "DM Mono";text-transform:uppercase;letter-spacing:.06em;padding:3px 9px;border-radius:3px;flex-shrink:0}.vote-result-badge.adopted{color:#8fd6ae;border:1px solid rgba(143,214,174,.4);background:rgba(143,214,174,.1)}.vote-result-badge.died{color:#f4cf76;border:1px solid rgba(244,207,118,.4);background:rgba(244,207,118,.1)}.vote-result-badge.other{color:#adc0af;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06)}.vote-result-stack{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.vote-tally-wrap{flex-shrink:0;text-align:right;min-width:84px}.vote-tally{font:600 20px Fraunces,serif;color:#f4cf76;line-height:1;white-space:nowrap}.tally-sep{font-size:.7em;color:#87a88d;margin:0 3px}.vote-tally-sep{font-size:.55em;color:#87a88d;margin:0 2px}.vote-tally-yea,.vote-tally-nay{font-size:.55em;font-weight:600}.vote-tally-yea{color:#8fd6ae}.vote-tally-nay{color:#f0b3a0}.vote-meta-row{display:flex;gap:4px 16px;flex-wrap:wrap;color:#9db8a0;font:11px "DM Mono",monospace;margin-bottom:2px}.vote-meta-row span{display:inline-flex;align-items:center;gap:5px}.vote-detail{color:#d6e4d7;font-size:13px;line-height:1.6;margin:0 0 14px;max-width:62ch}.issue-tags{margin-top:0;margin-bottom:0}
.issue-tags{margin-bottom:16px}.tag{background:rgba(255,255,255,.08);color:#c3d4c0;border:1px solid rgba(255,255,255,.14)}.vote-detail-col .vote-crs{display:block;color:#a8cbb1;font:11px/1.5 "DM Sans";line-height:1.45;margin-bottom:10px}.vote-detail-col .vote-crs:only-child{margin-bottom:0}.vote-split{display:grid;grid-template-columns:1fr 250px;gap:0 36px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14)}
@media (max-width:860px) { .vote-split { grid-template-columns:1fr; } .vote-bar-col { margin-top:16px; } }.vote-bar-col{min-width:0;display:flex;flex-direction:column;justify-content:flex-start}.vote-bar-col .bar{height:6px;background:rgba(255,255,255,.1);margin-top:0;border-radius:3px}.vote-bar-col .bar i{background:#6fd3a4;border-radius:3px}.vote-bar-legend{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;font-family:"DM Mono",monospace;font-size:11px;font-weight:600;letter-spacing:.03em}.vote-bar-legend span{display:inline-flex;align-items:center;gap:5px;color:#fff;padding:0 6px}.vote-bar-legend span:first-child{color:#fff}.vote-bar-legend i{display:inline-block;width:10px;height:10px;border-radius:2px}.vote-bar-legend .yea{background:#22c784}.vote-bar-legend .nay{background:#e87856}.vote-bar{height:8px;background:rgba(255,255,255,.1);border-radius:4px;overflow:hidden;display:flex}.vote-card .vote-bar i{display:block;height:100%}.vote-bar-yea{background:#6fd3a4;height:100%}.vote-bar-col{display:flex;flex-direction:column;justify-content:flex-start}.evidence-item{display:flex;align-items:baseline;gap:8px;font:12px/1.55 "DM Sans";color:#cfe0d0;padding:3px 0;margin-bottom:2px;padding-bottom:0}.evidence-tag{font:9px "DM Mono";letter-spacing:.06em;color:#f4cf76;flex-shrink:0;text-transform:uppercase}.vote-evidence-panel summary{color:#d9e6da;font:500 12px "DM Sans";cursor:pointer;margin-bottom:8px;list-style-position:inside}.vote-evidence-panel summary::marker{color:#8faa92}.vote-evidence-panel[open] summary{margin-bottom:0}.vote-evidence{margin-top:10px;background:rgba(0,0,0,.14);border:1px solid rgba(255,255,255,.12);border-left:3px solid rgba(244,207,118,.55);border-radius:0 3px 3px 0;padding:13px 15px 11px 12px}.vote-evidence-label{display:block;font:9px "DM Mono";text-transform:uppercase;letter-spacing:.08em;color:#f4cf76;margin-bottom:5px}.vote-evidence-list,.vote-evidence-empty{list-style:none;margin:0;padding:2px 0 0}.vote-evidence-item{display:flex;align-items:baseline;gap:6px;font:12px/1.55 "DM Sans";color:#cfe0d0;padding:3px 0}.vote-evidence-item::before{content:"·";color:#8faa92;font-size:15px;flex-shrink:0}.vote-evidence-empty{color:#87a88d;font:11px "DM Sans"}.vote-evidence-empty span{color:#adbda4}.empty-list{padding:20px 0;color:#a5b9a8;font:13px "DM Sans"}.no-hits{padding:28px 0 8px}.no-hits strong{display:block;font:500 15px "DM Sans";color:#e7f0e6}.no-hits span{color:#a5b9a8;font:11px "DM Sans"}.bar{height:6px;background:var(--line);border-radius:3px}.bar i{display:block;height:100%;background:var(--green);border-radius:3px 0 0 3px}.explainer { align-self:start; border:1px solid rgba(255,255,255,.2); padding:25px; margin-top:20px; }.explainer h3 { font:600 27px Fraunces,serif; letter-spacing:-.04em; margin:14px 0; }.explainer p { color:#adc0af; line-height:1.6; font-size:13px; margin-bottom:24px; }

/* Explain this vote panel */
.method { display:grid; grid-template-columns:.8fr 1.2fr; gap:120px; padding-top:100px; padding-bottom:105px; }.method-intro h2 { margin:13px 0 22px; }.method-intro p { color:var(--muted); max-width:300px; line-height:1.65; font-size:14px; }.method-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; padding-top:12px; }.method-steps div { border-top:2px solid var(--green); padding-top:16px; }.method-steps span { color:var(--orange); font:11px "DM Mono"; }.method-steps h3 { font:600 18px Fraunces,serif; margin:17px 0 10px; }.method-steps p { color:var(--muted); font-size:12px; line-height:1.6; }
.footer { border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; padding-top:24px; padding-bottom:28px; color:var(--muted); font-size:11px; }.footer .brand { color:var(--ink); font-size:14px; }
.toast { position:fixed; bottom:24px; left:50%; transform:translate(-50%,20px); padding:12px 17px; background:var(--ink); color:#fff; font-size:12px; opacity:0; pointer-events:none; transition:.25s; }.toast.show { opacity:1; transform:translate(-50%,0); }
.modal-backdrop { position:fixed; inset:0; z-index:10; background:rgba(19,31,24,.55); display:grid; place-items:center; padding:18px; }.modal { width:min(580px,100%); max-height:85vh; overflow:auto; background:var(--card); padding:30px; position:relative; box-shadow:0 18px 60px rgba(0,0,0,.18); }.modal h2 { margin-top:12px; }.modal-close { position:absolute; right:18px; top:15px; border:0; background:transparent; font-size:28px; color:var(--muted); cursor:pointer; }.detail-list { margin-top:25px; border-top:1px solid var(--line); }.detail-vote { display:flex; gap:18px; align-items:start; padding:15px 0; border-bottom:1px solid var(--line); }.detail-vote > span { font:10px "DM Mono"; text-transform:uppercase; color:var(--green); min-width:38px; }.detail-vote strong, .detail-vote small { display:block; }.detail-vote strong { font:500 14px "DM Sans"; }.detail-vote small { color:var(--muted); font:10px "DM Mono"; margin-top:5px; }
.modal-score { margin:25px 0 20px; display:flex; align-items:baseline; gap:10px; }.modal-score span { color:var(--green); font:600 44px Fraunces,serif; }.modal-score small, .issue-score small { color:var(--muted); font:10px "DM Mono"; }.issue-list { border-top:1px solid var(--line); }.issue-score { display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); }.issue-score strong, .issue-score small { display:block; }.issue-score strong { font-size:13px; }.issue-score b { color:var(--green); font:600 20px Fraunces,serif; }
.source-link { color:#b8d6bd; font:9px "DM Mono"; text-transform:uppercase; padding:5px 7px; border:1px solid rgba(255,255,255,.25); }.issue-score p { color:var(--muted); font-size:11px; line-height:1.45; max-width:370px; margin:6px 0 0; }
.quality { padding-top:88px; padding-bottom:90px; }.quality-status { color:var(--muted); font:10px "DM Mono"; text-transform:uppercase; letter-spacing:.06em; }.quality-grid { display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.quality-card { padding:24px 20px; border-left:1px solid var(--line); }.quality-card:first-child { border-left:0; padding-left:0; }.quality-card strong { display:block; color:var(--green); font:600 32px Fraunces,serif; }.quality-card span { display:block; color:var(--muted); font:10px "DM Mono"; text-transform:uppercase; margin-top:5px; }.quality-note { color:var(--muted); font:11px "DM Mono"; margin-top:18px; }
.review-section { background:#eef0e8; padding:84px 0 95px; }.review-section h2 { margin-top:12px; }.review-card { background:var(--card); border:1px solid var(--line); padding:22px; margin-top:14px; }.review-head { display:flex; justify-content:space-between; gap:20px; }.review-status { color:var(--orange); font:9px "DM Mono"; letter-spacing:.08em; text-transform:uppercase; }.review-card h3 { font:600 20px Fraunces,serif; margin:9px 0; }.review-card p { color:var(--muted); font-size:12px; line-height:1.5; max-width:720px; margin-bottom:0; }.review-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }.review-tags label { border:1px solid var(--line); padding:8px 10px; font-size:11px; cursor:pointer; }.review-tags input { accent-color:var(--green); margin:0 7px 0 0; }.review-evidence { width:100%; min-height:58px; resize:vertical; border:1px solid var(--line); background:#fafbf6; margin-top:14px; padding:10px; color:var(--ink); font:12px "DM Sans"; }.review-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:12px; }.reviewer { border:1px solid var(--line); padding:0 10px; background:transparent; font:11px "DM Sans"; }.review-actions .outline-button { padding:8px 11px; }.review-actions .outline-button span { margin-left:8px; }
.review-auth { display:flex; align-items:center; gap:18px; margin:22px 0 26px; color:var(--muted); font:10px "DM Mono"; }.review-auth label { display:flex; align-items:center; gap:8px; color:var(--ink); text-transform:uppercase; }.review-auth input { height:32px; border:1px solid var(--line); padding:0 9px; background:var(--card); font:11px "DM Sans"; }
@media (max-width:720px) { .topbar { padding:0 18px; } nav { display:none; }.outline-button { padding:9px; }.outline-button span { margin-left:5px; }.wrap { padding-left:18px; padding-right:18px; overflow-x:clip; }.hero { padding-top:65px; padding-bottom:64px; } h1 { font-size:44px; }.stats { grid-template-columns:repeat(2,1fr); gap:22px 0; }.stats strong { font-size:40px; }.stats div:nth-child(3) { border-left:0; padding-left:0; }.stats div { padding-left:15px; }.section-heading { align-items:start; flex-direction:column; gap:22px; }.controls { width:100%; flex-direction:column; align-items:stretch; gap:8px; }.search { width:100%; flex:1 1 auto; }.search input { width:100%; }.controls select { width:100%; }.profile-grid { grid-template-columns:1fr; }.member-name { font-size:18px; }.score-chip span:first-child { font-size:18px; }.content { padding-top:65px; padding-bottom:75px; }.compare-section { padding:62px 0 70px; }.compare-controls { align-items:stretch; flex-direction:column; }.compare-controls select { width:100%; }.compare-controls > span { text-align:center; }.compare-controls .primary-button { justify-content:center; }.compare-summary { gap:12px; }.compare-summary strong { font-size:18px; }.compare-issue { grid-template-columns:1fr 28px 8px 28px; gap:7px; }.votes-section { padding:62px 0; }.vote-layout { grid-template-columns:1fr; gap:32px; }.explainer { margin-top:0; }.quality { padding-top:65px; padding-bottom:70px; }.quality-grid { grid-template-columns:repeat(2,1fr); gap:0; }.quality-card:nth-child(3), .quality-card:nth-child(5) { border-left:0; padding-left:0; }.quality-card { padding:18px 12px; }.review-section { padding:62px 0 70px; }.review-auth { align-items:stretch; flex-direction:column; gap:10px; }.review-auth label { align-items:stretch; flex-direction:column; }.review-auth input { height:38px; }.review-head { flex-direction:column; gap:12px; }.review-actions { align-items:stretch; flex-direction:column; }.reviewer { min-height:38px; }.review-actions .outline-button { justify-content:center; }.method { display:block; padding-top:70px; padding-bottom:70px; }.method-steps { margin-top:45px; grid-template-columns:1fr; gap:25px; }.footer { align-items:start; flex-direction:column; gap:14px; } }

.profile-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin:28px 0 0}
.profile-pagination button{padding:8px 16px;border:1px solid var(--hairline);border-radius:7px;background:#fff}.profile-pagination button:disabled{opacity:.4;cursor:default}.profile-pagination button:not(:disabled){cursor:pointer}
#page-label{font:500 13px/1.4 var(--mono);color:var(--subtle);letter-spacing:.01em}

/* ── Vote roll-call + member search ──────────────────────── */
.vote-roll-call-link { margin-top:8px; }

.vote-detail-header {
  margin-bottom: 1rem;
  padding: 1rem;
  background: #f6f3ee;
  border-radius: 8px;
  border-left: 4px solid #2b6cb0;
}
.vote-detail-header h3 { margin: 0 0 0.25rem; font-size: 1.05rem; color: #1a202c; }
.vote-detail-header .vote-meta-row { margin-bottom: 0.5rem; }

.member-search-box {
  margin: 1rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.member-search-box label {
  font: 600 0.85rem var(--sans, "DM Sans", sans-serif);
  color: var(--ink, #1a202c);
}
.member-search-box input {
  padding: 0.5rem 0.75rem;
  border: 1px solid #d0d0d0;
  border-radius: 6px;
  font: 400 0.95rem var(--sans, "DM Sans", sans-serif);
  width: 100%;
  max-width: 500px;
}
.member-search-box input:focus {
  outline: 2px solid #2b6cb0;
  outline-offset: 1px;
}

.member-position-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 480px;
  overflow-y: auto;
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  background: #fff;
}
.member-position-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #f0f0f0;
}
.member-position-list li:last-child { border-bottom: none; }
.member-position-list li:hover { background: #fafaf7; }

.member-pos-identity {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  flex: 1;
}
.member-pos-initials {
  width: 32px; height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font: 700 0.75rem/1 "DM Mono", monospace;
  background: #2b6cb0;
  color: #fff;
  flex-shrink: 0;
}
.member-pos-meta { min-width: 0; }
.member-pos-name { font: 600 0.9rem var(--sans, sans-serif); color: var(--ink, #1a202c); display: block; }
.member-pos-sub { font-size: 0.75rem; color: #666; display: block; }

.member-pos-side {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.member-pos-badge {
  font: 600 0.75rem var(--sans, sans-serif);
  padding: 2px 8px;
  border-radius: 4px;
}
.member-pos-badge.yes    { background: #dcfce7; color: #166534; }
.member-pos-badge.no     { background: #fee2e2; color: #991b1b; }
.member-pos-badge.other  { background: #f3f4f6; color: #4b5563; }

.member-pos-votedate {
  font-size: 0.7rem;
  color: #9ca3af;
}

.member-position-empty {
  padding: 1rem;
  text-align: center;
  color: #9ca3af;
  font-size: 0.9rem;
}
.member-position-count {
  font-size: 0.8rem;
  color: #6b7280;
  margin-bottom: 0.5rem;
}

/* Detail page */
.detail-page {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  display: none;
  z-index: 1000;
  align-items: flex-start;
  justify-content: center;
  padding: 2rem 1rem;
  overflow-y: auto;
}
.detail-page.open { display: flex; }
.detail-page-inner {
  background: #fff;
  border-radius: 12px;
  max-width: 860px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  padding: 1.5rem;
  position: relative;
  box-shadow: 0 8px 40px rgba(0,0,0,0.2);
}
.detail-page-close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  color: #6b7280;
  padding: 0.25rem 0.5rem;
}
.detail-page-close:hover { color: #1a202c; }
.detail-page-close { line-height: 1; }

/* ── Vote detail full-page view (/vote-detail) ────────────────────── */
.vote-detail-container { max-width: 1100px; }

/* Back-to-home row */
.vdetail-back { padding: 1.5rem 0 0.25rem; }
.vdetail-back .text-button { font-size: 12px; font-weight: 600; color: #4a5545; }
.vdetail-back .text-button span { margin-left: 9px; font-size: 17px; color: var(--green); transition: transform 0.15s ease; display: inline-block; }
.vdetail-back .text-button:hover span { transform: translateX(-4px); }

/* Vote header */
.vote-detail-header-card { margin: 1rem 0; padding: 1.5rem; background: #2d5f44; border-radius: 8px; color: #fff; }
.vote-detail-header-card h1 { font-size: 1.5rem; line-height: 1.35; margin: 0 0 1.5rem; color: #fff; }
.vote-detail-header-card .vote-meta-row { justify-content: flex-start; padding: 0 0.5rem; }
.vote-detail-header-card .vote-meta-row span { color: #d6e4d7; font-size: 0.82rem; }
.vote-sponsor { border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.06); color: #fff; border-radius: 4px; padding: 2px 8px; margin-left: 4px; }
.vote-type-chip { color: #adc0af; background: rgba(255,255,255,.06); }

/* Overview section */
.vote-detail-overview { background: var(--mint, #f4f7f0); border-radius: 8px; padding: 1.5rem; margin: 1.5rem 0 2rem; }
.vdetail-result-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.25rem; flex-wrap: wrap; }
.vote-type-chip { font-family: "DM Mono", monospace; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; border: 1px solid var(--line); padding: 3px 8px; border-radius: 3px; color: var(--muted); }
.vdetail-result-badge { font-family: "DM Mono", monospace; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; padding: 4px 10px; border-radius: 4px; font-weight: 700; }
.vdetail-result-badge.adopted { background: rgba(34,199,132,.12); color: #1a7d54; border: 1px solid rgba(34,199,132,.35); }
.vdetail-result-badge.died    { background: rgba(232,120,86,.12); color: #a34123; border: 1px solid rgba(232,120,86,.35); }
.vdetail-result-badge.other   { background: rgba(224,142,47,.12); color: #8a6210; border: 1px solid rgba(224,142,47,.35); }

/* Plain language summary box */
.vdetail-summary-box { margin-bottom: 0.75rem; }
.vdetail-summary-box summary { cursor: pointer; font-weight: 600; color: #1a202c; padding: 0.25rem 0; font-size: 0.95rem; }
.vdetail-summary-box p { color: #333; line-height: 1.6; margin: 0.5rem 0 0; font-size: 0.95rem; }
.vdetail-summary-box p[hidden] { display: none; }

/* Tally */
.vdetail-tally { display: flex; flex-wrap: wrap; gap: 0.5rem 1.75rem; align-items: baseline; margin: 0.5rem 0; color: var(--ink, #1a202c); padding: 0.75rem 1rem; background: #fff; border-radius: 6px; border: 1px solid var(--line); }
.vdetail-tally dt { display: inline; font-family: "DM Mono", monospace; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); margin: 0 0.375rem 0 0; }
.vdetail-tally dd { display: inline; margin: 0 0 0 0.125rem; font: 600 1rem "DM Mono", monospace; }
.vdetail-tally .vdetail-tally-yea dd { color: #1a7d54; }
.vdetail-tally .vdetail-tally-nay dd { color: #a34123; }
.vdetail-tally dd { font-size: 1rem; }
.vdetail-tally .yea, .vdetail-tally .nay { font-weight: 600; font-size: 1rem; border-radius: 3px; padding: 1px 6px; }
.vdetail-tally .yea { background: #f5fbf7; color: #16a34a; }
.vdetail-tally .nay { background: #fff5f3; color: #b32820; }

/* Vote bar (light-theme version, distinct from .vote-bar used in dark home cards) */
.vdetail-bar { height: 8px; background: #e5e5e5; border-radius: 4px; overflow: hidden; display: flex; margin: 0.75rem 0 0.5rem; }
.vdetail-bar-yea { background: #16a34a; height: 100%; transition: width 0.4s ease; }
.vdetail-bar-nay { background: #ef4444; height: 100%; transition: width 0.4s ease; }
.vdetail-bar-else { background: #d1d5db; height: 100%; transition: width 0.4s ease; }

/* Section headings */
.vdetail-section-heading { font-size: 1.6rem; font-family: Fraunces, serif; font-weight: 600; letter-spacing: -0.03em; margin: 1.75rem 0 0.75rem; color: var(--ink, #1a202c); }

/* Member positions */
.member-positions-container { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 1.25rem 1.5rem 1rem; margin-bottom: 1rem; }
.member-positions-controls { display: flex; flex-direction: column; gap: 0.5rem; margin: 0 0 1rem; }
.member-search { flex: 1 1 auto; max-width: 500px; padding: 0.5rem 0.75rem; border: 1px solid #d0d0d0; border-radius: 6px; font: 400 0.95rem "DM Sans", sans-serif; }
.member-search:focus { outline: 2px solid #2b6cb0; outline-offset: 1px; border-color: #2b6cb0; }
.member-positions-summary { margin: 0; font-size: 0.85rem; color: var(--muted); font-family: "DM Mono", monospace; }
.member-positions-list { max-width: 800px; list-style: none; padding: 0.5rem 0; margin: 0; }
.member-position-row { display: grid; grid-template-columns: 2.5rem 1fr 100px 80px; gap: 0.75rem; align-items: center; width: 100%; padding: 0.625rem 0.5rem; border-bottom: 1px solid #f0f0f0; }
.member-position-row:last-child { border-bottom: none; }
.member-position-row:hover { background: #fafaf7; }
.member-position-row[data-position="yes"] .member-position-badge, .member-position-row[data-position="YES"] .member-position-badge { background: #dcfce7; color: #166534; }
.member-position-row[data-position="no"]  .member-position-badge, .member-position-row[data-position="NO"]  .member-position-badge { background: #fee2e2; color: #991b1b; }
.member-position-row[data-position="none"] .member-position-badge, .member-position-row[data-position="NONE"] .member-position-badge { background: #f3f4f6; color: #4b5563; }
.member-position-row[data-position="abstain"] .member-position-badge, .member-position-row[data-position="ABSTAIN"] .member-position-badge { background: #fef9c3; color: #854d0e; }
.member-position-row[data-position="other"] .member-position-badge, .member-position-row[data-position="OTHER"] .member-position-badge { background: #f3f4f6; color: #4b5563; }
.member-identity { display: flex; align-items: center; gap: 0.5rem; }
.initials-badge { width: 32px; height: 32px; border-radius: 50%; background: #dbe9dc; color: var(--green); font: 700 0.78rem/1 "DM Mono", monospace; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.member-info { min-width: 0; }
.member-name-line { font: 600 0.95rem "DM Sans", sans-serif; color: var(--ink, #1a202c); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.member-meta-line { font-size: 0.72rem; color: #666; display: block; }
.member-position-side { display: flex; justify-content: flex-end; }
.member-position-badge { font: 600 0.72rem "DM Mono", monospace; text-transform: uppercase; letter-spacing: 0.04em; padding: 1px 8px; border-radius: 3px; background: #f3f4f6; color: #4b5563; display: inline-block; }

/* Loading / error */
.vdetail-loading, .vdetail-error { min-height: 40vh; display: grid; place-content: center; place-items: center; color: var(--muted); font: 14px "DM Sans", sans-serif; }

/* Footer */
.vdetail-footer { margin-top: 0.5rem; padding-bottom: 2rem; }



/* Review page (separated /review route — see review.html + review.js) */
.review-link { padding: 64px 32px; background: linear-gradient(135deg,#fff 0%, var(--cream) 100%); text-align: center; }
.review-link .review-link-card { max-width: 640px; margin: 0 auto; padding: 40px 44px; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 12px 40px rgba(15,20,28,.05); }
.review-link .review-link-card .eyebrow { justify-content: center; }
.review-link .review-link-card h2 { max-width: 480px; margin: 0 auto 12px; }
.review-link .review-link-card .compare-copy { max-width: 460px; margin: 0 auto 20px; }
.footer-sitemap { display: inline-flex; gap: 10px; align-items: center; font-size: 0.85rem; border-left: 1px solid rgba(255,255,255,.12); padding-left: 20px; }
.footer-sitemap a { color: var(--cream-2); text-decoration: none; }
.footer-sitemap a:hover { color: #fff; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
