/* Congress Vote Tracker v2
   Mobile-first: every row is a stacked card that wraps to any width.
   The JS adds .cvt-wide when the tracker's own container is at least 760px wide,
   which switches to aligned columns. No <table>s, no flex `gap` (unsupported before iOS 14.1). */

.cvt{--cvt-line:rgba(127, 127, 127, 0.3);--cvt-soft:rgba(127, 127, 127, 0.08);--cvt-muted:rgba(127, 127, 127, 1);display:block;width:100%;max-width:100%;min-width:0;margin:1.5em 0;font-size:1rem;line-height:1.45;text-align:left;-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-wrap:break-word;word-wrap:break-word;}
.cvt *,
.cvt *::before,
.cvt *::after{-webkit-box-sizing:border-box;box-sizing:border-box;}
.cvt [hidden]{display:none !important;}
.cvt p{margin:0 0 0.75em;}
.cvt a{white-space:normal;word-break:normal;overflow-wrap:break-word;word-wrap:break-word;-webkit-tap-highlight-color:rgba(127, 127, 127, 0.25);}
/* Undo theme rules such as `span{white-space:nowrap}` that would push text off-screen. */
.cvt .cvt-c, .cvt .cvt-desc, .cvt .cvt-sum, .cvt .cvt-abbr, .cvt .cvt-ctl-l, .cvt .cvt-count, .cvt p{white-space:normal;}
.cvt button, .cvt select, .cvt input{touch-action:manipulation;-webkit-tap-highlight-color:rgba(127, 127, 127, 0.25);}
.cvt-updated, .cvt-foot, .cvt-detail-foot{color:var(--cvt-muted);font-size:0.85em;}
.cvt-foot{margin-top:1em;}
/* ---------------- Controls ---------------- */
.cvt-controls{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:1em 0 0.75em;}
.cvt-ctl{display:block;-webkit-box-flex:1;-webkit-flex:1 1 9.5em;flex:1 1 9.5em;min-width:0;margin:0 0.6em 0.6em 0;padding:0;font-size:0.85em;font-weight:600;}
.cvt-search{-webkit-flex-basis:100%;flex-basis:100%;margin-right:0;}
.cvt-ctl-l{display:block;margin-bottom:0.25em;}
.cvt .cvt-ctl input, .cvt .cvt-ctl select{display:block;width:100%;max-width:100%;min-width:0;height:auto;min-height:44px;margin:0;padding:0.5em 0.65em;font-family:inherit;font-size:16px;/* 16px+ stops iOS Safari zooming the page on focus. */ font-weight:400;line-height:1.3;color:inherit;background-color:transparent;border:1px solid var(--cvt-line);border-radius:6px;box-shadow:none;}
.cvt .cvt-ctl input[type="search"]{-webkit-appearance:none;appearance:none;}
.cvt .cvt-ctl select option{color:#111;background:#fff;}
.cvt-count{-webkit-flex-basis:100%;flex-basis:100%;margin:0;color:var(--cvt-muted);font-size:0.85em;}
/* ---------------- Rows as cards (default / phones) ---------------- */
.cvt-list{display:block;width:100%;min-width:0;}
.cvt-hr{display:none !important;}
.cvt-body{display:block;}
.cvt-member{display:block;margin:0 0 0.65em;}
.cvt-tr{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:100%;min-width:0;margin:0;padding:0.8em 0.9em;border:1px solid var(--cvt-line);border-radius:10px;}
.cvt-votes .cvt-tr{margin-bottom:0.65em;}
.cvt-c{display:block;min-width:0;max-width:100%;margin:0;padding:0;}
/* Member card: name + party / state · chamber · district / voting history */
.cvt-members .cvt-c-name{-webkit-box-flex:1;-webkit-flex:1 1 12em;flex:1 1 12em;-webkit-box-ordinal-group:2;-webkit-order:1;order:1;margin-right:0.5em;}
.cvt-members .cvt-c-party{-webkit-flex:0 0 auto;flex:0 0 auto;-webkit-order:2;order:2;}
.cvt-members .cvt-c-state, .cvt-members .cvt-c-chamber, .cvt-members .cvt-c-district{-webkit-flex:0 1 auto;flex:0 1 auto;margin:0.35em 0.9em 0 0;color:var(--cvt-muted);font-size:0.9em;}
.cvt-members .cvt-c-state{-webkit-order:3;order:3;}
.cvt-members .cvt-c-chamber{-webkit-order:4;order:4;}
.cvt-members .cvt-c-district{-webkit-order:5;order:5;}
.cvt-members .cvt-c-votes{-webkit-flex:1 1 100%;flex:1 1 100%;-webkit-order:6;order:6;margin-top:0.6em;padding-top:0.6em;border-top:1px solid var(--cvt-line);}
.cvt-mname{display:inline;font-weight:700;font-size:1.05em;}
.cvt-sub{display:inline-block;margin-left:0.6em;font-size:0.82em;font-weight:400;}
.cvt-abbr{color:var(--cvt-muted);font-size:0.85em;}
.cvt-sum{display:inline-block;margin:0.3em 0 0.3em 0.6em;color:var(--cvt-muted);font-size:0.85em;vertical-align:middle;}
/* Recent votes card: date · chamber · roll / measure / question / result · tally */
.cvt-votes .cvt-c-date, .cvt-votes .cvt-c-chamber, .cvt-votes .cvt-c-roll{-webkit-flex:0 1 auto;flex:0 1 auto;margin-right:0.9em;font-size:0.9em;}
.cvt-votes .cvt-c-date{font-weight:600;}
.cvt-votes .cvt-c-chamber{color:var(--cvt-muted);}
.cvt-votes .cvt-c-measure, .cvt-votes .cvt-c-q{-webkit-flex:1 1 100%;flex:1 1 100%;margin-top:0.35em;}
.cvt-votes .cvt-c-measure{font-weight:600;}
.cvt-votes .cvt-c-result, .cvt-votes .cvt-c-tally{-webkit-flex:0 1 auto;flex:0 1 auto;margin:0.45em 0.9em 0 0;font-size:0.9em;}
.cvt-votes .cvt-c-tally::before{content:"Yea–Nay ";color:var(--cvt-muted);}
.cvt-desc{display:block;margin-top:0.2em;color:var(--cvt-muted);font-size:0.88em;}
/* ---------------- Buttons and badges ---------------- */
.cvt .cvt-toggle, .cvt .cvt-sortbtn{-webkit-appearance:none;appearance:none;display:inline-block;width:auto;height:auto;margin:0;font-family:inherit;font-weight:600;line-height:1.2;text-transform:none;letter-spacing:normal;text-shadow:none;box-shadow:none;color:inherit;cursor:pointer;vertical-align:middle;}
.cvt .cvt-toggle{min-height:44px;padding:0.55em 1em;font-size:0.92em;white-space:nowrap;background:transparent;border:1px solid currentColor;border-radius:6px;}
.cvt .cvt-toggle[aria-expanded="true"]{background:var(--cvt-soft);}
.cvt .cvt-sortbtn{padding:0;font-size:inherit;background:none;border:0;border-radius:0;}
.cvt .cvt-sortbtn::after{content:" \2195";opacity:0.35;}
.cvt [aria-sort="ascending"] .cvt-sortbtn::after{content:" \2191";opacity:1;}
.cvt [aria-sort="descending"] .cvt-sortbtn::after{content:" \2193";opacity:1;}
.cvt-badge, .cvt-vote{display:inline-block;padding:0.12em 0.55em;border:1px solid transparent;border-radius:999px;font-size:0.82em;font-weight:600;line-height:1.4;white-space:nowrap;}
.cvt-p-R{background:rgba(200, 40, 40, 0.14);border-color:rgba(200, 40, 40, 0.45);}
.cvt-p-D{background:rgba(30, 90, 200, 0.14);border-color:rgba(30, 90, 200, 0.45);}
.cvt-p-I, .cvt-p-ID{background:rgba(120, 60, 170, 0.14);border-color:rgba(120, 60, 170, 0.45);}
.cvt-v-Y{background:rgba(30, 140, 70, 0.16);border-color:rgba(30, 140, 70, 0.5);}
.cvt-v-N{background:rgba(200, 40, 40, 0.14);border-color:rgba(200, 40, 40, 0.5);}
.cvt-v-P, .cvt-v-O{background:rgba(200, 140, 20, 0.16);border-color:rgba(200, 140, 20, 0.5);}
.cvt-v-V, .cvt-v-x{border-color:var(--cvt-line);color:var(--cvt-muted);font-weight:400;}
/* ---------------- Expanded vote history ---------------- */
.cvt-detail{display:block;margin:0;padding:0.6em 0.75em 0.4em;background:var(--cvt-soft);border:1px solid var(--cvt-line);border-top:0;border-radius:0 0 10px 10px;}
.cvt-member.cvt-open > .cvt-row{border-bottom-left-radius:0;border-bottom-right-radius:0;}
.cvt-hist{display:block;}
.cvt-hist .cvt-tr{padding:0.65em 0;border:0;border-bottom:1px solid var(--cvt-line);border-radius:0;}
.cvt-hist .cvt-tr:last-child{border-bottom:0;}
.cvt-hist .cvt-c-date, .cvt-hist .cvt-c-measure, .cvt-hist .cvt-c-roll{-webkit-flex:0 1 auto;flex:0 1 auto;margin-right:0.9em;font-size:0.9em;}
.cvt-hist .cvt-c-date{-webkit-order:1;order:1;font-weight:600;}
.cvt-hist .cvt-c-measure{-webkit-order:2;order:2;font-weight:600;}
.cvt-hist .cvt-c-roll{-webkit-order:3;order:3;}
.cvt-hist .cvt-c-q{-webkit-flex:1 1 100%;flex:1 1 100%;-webkit-order:4;order:4;margin-top:0.3em;font-size:0.95em;}
.cvt-hist .cvt-c-vote{-webkit-flex:0 0 auto;flex:0 0 auto;-webkit-order:5;order:5;margin:0.45em 0.9em 0 0;}
.cvt-hist .cvt-c-result{-webkit-flex:1 1 10em;flex:1 1 10em;-webkit-order:6;order:6;margin-top:0.45em;color:var(--cvt-muted);font-size:0.88em;}
.cvt-hist .cvt-c-vote::before{content:"Voted ";color:var(--cvt-muted);font-size:0.85em;}
.cvt-h{margin:2em 0 0.75em;}
/* ---------------- Wide containers: aligned columns ---------------- */
.cvt-wide .cvt-hr{display:grid !important;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;}
.cvt-wide .cvt-tr{display:grid;-webkit-box-align:start;align-items:start;padding:0.55em 0;border:0;border-bottom:1px solid var(--cvt-line);border-radius:0;}
.cvt-wide .cvt-hr{border-bottom-width:2px;padding-bottom:0.45em;}
.cvt-wide .cvt-tr > .cvt-c{margin:0;padding:0 0.6em;font-size:inherit;-webkit-order:0;order:0;}
.cvt-wide .cvt-member{margin:0;}
.cvt-wide .cvt-votes .cvt-tr{margin:0;}
.cvt-wide .cvt-member:hover > .cvt-row, .cvt-wide .cvt-votes .cvt-body .cvt-tr:hover{background:var(--cvt-soft);}
.cvt-wide .cvt-members .cvt-tr{grid-template-columns:minmax(7em, 1fr) 5.5em 7.5em minmax(11em, 1.7fr) 7.5em minmax(12em, 1.5fr);}
.cvt-wide .cvt-members .cvt-c-state{grid-column:1;grid-row:1;}
.cvt-wide .cvt-members .cvt-c-chamber{grid-column:2;grid-row:1;}
.cvt-wide .cvt-members .cvt-c-district{grid-column:3;grid-row:1;}
.cvt-wide .cvt-members .cvt-c-name{grid-column:4;grid-row:1;}
.cvt-wide .cvt-members .cvt-c-party{grid-column:5;grid-row:1;}
.cvt-wide .cvt-members .cvt-c-votes{grid-column:6;grid-row:1;border:0;}
.cvt-wide .cvt-members .cvt-row .cvt-c-state, .cvt-wide .cvt-members .cvt-row .cvt-c-chamber, .cvt-wide .cvt-members .cvt-row .cvt-c-district{color:inherit;font-size:0.95em;}
.cvt-wide .cvt-sub{display:block;margin:0.1em 0 0;}
.cvt-wide .cvt-sum{display:block;margin:0.3em 0 0;}
.cvt-wide .cvt-toggle{min-height:34px;padding:0.35em 0.85em;font-size:0.85em;}
.cvt-wide .cvt-sortctl{display:none;}
.cvt-wide .cvt-votes .cvt-tr{grid-template-columns:8.5em 5em 5.5em 7.5em minmax(12em, 1fr) 9em 5.5em;}
.cvt-wide .cvt-votes .cvt-c-tally::before{content:none;}
.cvt-wide .cvt-votes .cvt-c-date{grid-column:1;}
.cvt-wide .cvt-votes .cvt-c-chamber{grid-column:2;}
.cvt-wide .cvt-votes .cvt-c-roll{grid-column:3;}
.cvt-wide .cvt-votes .cvt-c-measure{grid-column:4;}
.cvt-wide .cvt-votes .cvt-c-q{grid-column:5;}
.cvt-wide .cvt-votes .cvt-c-result{grid-column:6;}
.cvt-wide .cvt-votes .cvt-c-tally{grid-column:7;}
.cvt-wide .cvt-votes .cvt-tr > .cvt-c{grid-row:1;font-size:0.95em;}
.cvt-wide .cvt-detail{margin:0 0 0.5em;padding:0.5em 0.6em;border:0;border-radius:0;}
.cvt-wide .cvt-hist .cvt-tr{grid-template-columns:8.5em 7.5em minmax(12em, 1fr) 8.5em 11em 5em;padding:0.45em 0;}
.cvt-wide .cvt-hist .cvt-c-date{grid-column:1;}
.cvt-wide .cvt-hist .cvt-c-measure{grid-column:2;}
.cvt-wide .cvt-hist .cvt-c-q{grid-column:3;}
.cvt-wide .cvt-hist .cvt-c-vote{grid-column:4;}
.cvt-wide .cvt-hist .cvt-c-result{grid-column:5;color:inherit;}
.cvt-wide .cvt-hist .cvt-c-roll{grid-column:6;}
.cvt-wide .cvt-hist .cvt-tr > .cvt-c{grid-row:1;font-size:0.92em;}
.cvt-wide .cvt-hist .cvt-c-vote::before{content:none;}
/* Header labels are smaller, but set on the cells so header and body rows share the same column widths. */
.cvt-wide .cvt-list .cvt-hr > .cvt-c{font-size:0.78em;}
/* Browsers without CSS grid keep the card layout. */
@supports not (display: grid) {
	.cvt-wide .cvt-hr{display:none !important;}
.cvt-wide .cvt-tr{display:flex;}
}