.chamber-election { display: grid; gap: 14px; }
.chamber-election h3, .chamber-election h4, .chamber-election p { margin: 0; }
.chamber-election h3 { font-size: 24px; line-height: 1.15; }
.chamber-election h4 { font-size: 16px; }
.chamber-election p { font-size: 13px; line-height: 1.55; }
.cs-progress { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; padding: 0; margin: 0 0 5px; list-style: none; }
.cs-progress li { display: flex; align-items:center; gap: 6px; color: #95a7a0; font-size: 12px; line-height: 1.25; }
.cs-progress li > span { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #53675c; border-radius: 50%; font-size: 11px; }
.cs-progress .done { color: #f0dca1; }
.cs-progress .done > span { background: #f0dca1; color: #1d392d; border-color: #f0dca1; }
.cs-candidates { display:grid;grid-template-columns:minmax(0,1fr);gap:10px; }
.cs-candidate-card { min-width:0;overflow:hidden;border:1px solid #ffffff32;border-radius:10px;background:#ffffff04; }
.cs-candidate-card.selected { border-color:#e7c46d;background:#e7c46d0c; }
.cs-candidate-card>[data-ch=speaker-select] { display:flex;align-items:center;gap:10px;min-height:64px;border:0;border-radius:0;padding:12px;background:transparent; }
.cs-candidate-card>[data-ch=speaker-select][aria-pressed=true] { box-shadow:none;background:#36503b; }
.cs-candidate-speech { padding:12px; }
.cs-speech-name { margin-bottom:7px;color:#efd99e;font-size:12px;font-weight:700; }
.chamber-election .cs-candidate-speech p { font-size:14px;line-height:1.55; }
.cs-vote-choice { position:sticky;bottom:0;z-index:2;padding:9px 0;background:#173735; }
.cs-vote-choice>[data-ch=speaker-cast] { display:block;width:100%;min-height:48px;padding:11px 12px;border-color:#f0d897;background:#e8cc80;color:#20372c;font-weight:700;text-align:center; }
.cs-next-round { padding:10px 12px;border-left:3px solid #e7c46d;background:#ffffff07;border-radius:5px; }
.cs-nominees, .cs-ballot, .cs-evidence { display: grid; gap: 8px; }
.chamber-election .cs-button { width: 100%; text-align: left; white-space: normal; line-height: 1.35; }
.cs-nominees .cs-button, .cs-ballot .cs-button { display: flex; align-items: center; gap: 10px; padding: 11px; }
.chamber-election .cs-button[aria-pressed="true"] { border-color: #e7c46d; background: #36503b; box-shadow: inset 0 0 0 1px #e7c46d; }
.cs-button strong, .cs-button small, .cs-evidence .cs-button span { display: block; }
.cs-button small { margin-top: 3px; color: #c8d3c6; font-size: 11px; }
.cs-avatar { flex: 0 0 35px; height: 35px; display: grid; place-items: center; background: var(--cs-coat, #416c70); border: 1px solid #ffffff36; border-radius: 50%; color: #fff7df; font-size: 11px; font-weight: 700; letter-spacing: .4px; }
.cs-check { margin-left: auto; color: #f1d789; }
.cs-story, .cs-conversation { padding: 13px; border: 1px solid #a9c3a531; border-radius: 10px; background: #ffffff06; }
.cs-section-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cs-section-title > span { font-size: 11px; color: #d7c993; }
.cs-listeners { display: grid; gap: 6px; }
.cs-listeners .cs-button { padding: 9px 11px; }
.cs-conversation { display: grid; gap: 11px; }
.cs-conversation blockquote { margin: 0; padding-left: 10px; border-left: 2px solid #e7c46d; font-size: 14px; line-height: 1.5; }
.cs-conversation > small, .cs-next > small { color: #bccabe; font-size: 11px; }
.cs-evidence .cs-button { padding: 10px; font-size: 12px; }
.cs-evidence .cs-button b { color: #efd99e; }
.cs-evidence .cs-button span { margin-top: 5px; font-weight: 400; }
.chamber-election .cs-hint { color: #c2d0c3; font-size: 12px; }
.cs-next { display: grid; gap: 6px; margin-top: 4px; }
.cs-next .cs-button, .cs-ballot + .cs-threshold + .cs-button { background: #e8cc80; color: #20372c; border-color: #f0d897; font-weight: 700; }
.cs-mark { color: #efd99e; font-size: 21px; }
.cs-threshold { padding: 11px; background: #ffffff08; border-radius: 8px; }
.chamber-election .cs-model { color: #b7c8b9; font-size: 11px; border-top: 1px solid #ffffff1b; padding-top: 12px; }
.cs-rules, .cs-counts { font-size: 12px; line-height: 1.5; }
.cs-rules summary, .cs-counts summary { color: #ecd699; cursor: pointer; padding: 5px 0; }
.cs-rules p, .cs-counts p { margin-top: 10px; font-size: 12px; }
.cs-rules a { display: block; margin-top: 9px; color: #dcebcf; }
.cs-counts table { width: 100%; margin: 14px 0 7px; border-collapse: collapse; }
.cs-counts caption { color: #efd99e; text-align: left; font-size: 11px; padding-bottom: 6px; }
.cs-counts th, .cs-counts td { padding: 7px 0; border-bottom: 1px solid #ffffff17; text-align: left; font-weight: 400; }
.cs-counts td, .cs-counts thead th:last-child { text-align: right; }
.cs-counts thead th { font-size: 10px; color: #b8cabd; text-transform: uppercase; letter-spacing: 1px; }
.chamber-election .cs-button:focus-visible, .cs-rules summary:focus-visible, .cs-counts summary:focus-visible { outline: 3px solid #ffdf7f; outline-offset: 3px; }
