.optional-count-control { display:flex; align-items:center; min-width:90px; gap:4px; }
.optional-count-control input { min-width:45px; width:100%; }
.optional-count-control button { border:0; border-radius:8px; padding:6px 9px; background:var(--beta-track); color:var(--beta-muted); cursor:pointer; font:inherit; }
.analysis-comparison { grid-column:1 / -1; min-width:0; }
.analysis-comparison-pickers { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(140px,.7fr); gap:18px; }
.analysis-comparison h4 { overflow-wrap:anywhere; }
.comparison-chamber-controls { display:flex; gap:8px; justify-content:flex-end; }
.analysis-empty,.analysis-missing-note { padding:18px; background:var(--beta-track); border-radius:12px; color:var(--beta-muted); font-size:12px; line-height:1.6; }
.poll-known-results>div { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:15px; padding:12px 0; border-bottom:1px solid var(--beta-border); }
.analysis-floating { display:none; position:fixed; bottom:18px; right:22px; width:252px; max-width:calc(100vw - 28px); z-index:85; background:var(--beta-surface); color:var(--beta-ink); border:1px solid var(--beta-border); border-radius:16px; box-shadow:0 6px 32px #0003; padding:7px; }
.analysis-floating.is-visible { display:flex; align-items:center; gap:6px; }
#view-elections,#view-polls,#view-charts { padding-bottom:90px; }
.analysis-pdf-status { position:fixed; bottom:18px; left:50%; transform:translateX(-50%); padding:14px 22px; border-radius:14px; background:var(--beta-surface); color:var(--beta-ink); border:1px solid var(--beta-border); box-shadow:0 4px 24px #0003; z-index:150; font-size:13px; }
#view-elections .view-stack>#beta-cost { min-width:0; }
#view-elections .view-stack,#view-polls .view-stack { grid-template-columns:minmax(0,1fr); }
:is(.election-archive,.poll-archive) { width:100%; max-width:100%; }
.archive-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,245px),1fr)); gap:10px; min-width:0; width:100%; align-items:start; }
.archive-card-grid .archive-card { display:flex; flex-direction:column; width:100%; height:192px; min-width:0; padding:15px; border-radius:16px; text-align:left; font:inherit; color:var(--text); cursor:pointer; }
.archive-card .poll-snapshot-head { gap:8px; min-height:43px; margin-bottom:10px; }
.archive-card .poll-snapshot-head>span:first-child { min-width:0; flex:1; }
.archive-card .poll-snapshot-head strong { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; font-size:12px; line-height:1.25; }
.archive-card .poll-snapshot-head>span:first-child>span { display:block; margin-top:3px; font-size:9px; }
.archive-card .soft-pill { flex:none; padding:5px 7px; font-size:9px; white-space:nowrap; }
.archive-card .poll-mini-bar { flex:none; height:12px; }
.archive-card .poll-mini-legend { margin-top:10px; gap:6px; }
.archive-card .poll-mini-row { grid-template-columns:minmax(0,1fr) auto; gap:10px; font-size:10px; line-height:1.3; }
.archive-card .poll-mini-row>span { min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.archive-card .poll-mini-row>strong { white-space:nowrap; }
@media(max-width:820px) { .analysis-comparison-pickers { grid-template-columns:minmax(0,1fr); } }
@media(max-width:520px) { .analysis-floating { right:14px; bottom:12px; width:240px; } }

.analysis-date-picker { display:flex; align-items:end; gap:7px; min-width:0; }
.analysis-date-picker>.field { flex:1; min-width:0; }
.analysis-date-picker>.field .beta-select { width:100%; }
.analysis-date-picker>button,.analysis-floating>button { flex:none; width:32px; height:34px; padding:0; border:0; border-radius:10px; background:var(--beta-track); color:var(--beta-accent); font:inherit; font-size:25px; line-height:1; cursor:pointer; }
.analysis-date-picker>button { margin-bottom:4px; }
.analysis-date-picker>button:disabled,.analysis-floating>button:disabled { opacity:.3; cursor:default; }
.analysis-floating-date { min-width:0; flex:1; }
.analysis-floating-date .beta-select { width:100%; }
.analysis-floating-date .beta-select-button { border:0; background:transparent; min-height:34px; justify-content:center; gap:8px; padding:6px; font-variant-numeric:tabular-nums; }
.analysis-floating-date .beta-select-button>span { flex:0 1 auto; }
.poll-latest-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; align-items:center; }
.poll-latest-grid>div { min-width:0; }
.poll-latest-grid .beta-hemicycle { max-width:470px; margin:auto; }
.poll-known-results>div { padding:9px 0; }
.poll-blocks-disclosure { grid-column:1 / -1; width:100%; min-width:0; border:1px solid var(--beta-border); border-radius:18px; background:var(--beta-surface); }
.poll-blocks-disclosure>summary,.election-block-parties>summary { cursor:pointer; color:var(--beta-ink); font-size:12px; font-weight:650; padding:14px 18px; }
.poll-blocks-disclosure>.beta-card { border:0; box-shadow:none; margin:0; padding-top:10px; }
.election-block-parties { border:1px solid var(--beta-border); border-radius:12px; }
.election-block-parties>summary { padding:10px 12px; }
.election-block-parties>.beta-block-groups { padding:0 10px; gap:7px; }
.election-block-parties>.beta-footnote { padding:0 12px 10px; margin-top:8px; font-size:10px; }
.election-block-parties .beta-block-groups section { padding:8px; border-radius:10px; }
.election-block-parties .beta-block-groups h4 { font-size:11px; margin-bottom:6px; }
.election-block-parties .beta-party-chip { padding:4px 6px; font-size:10px; }
#beta-blocks .beta-evolution { max-height:none; }
#beta-blocks .beta-evolution-scroll { margin-top:12px; }
#beta-compare>.beta-card-head,.analysis-comparison>.beta-card-head { margin-bottom:14px; }
#beta-compare .beta-comparison-grid,.analysis-comparison .beta-comparison-grid { gap:24px; margin:12px 0 18px; }
#beta-compare .beta-hemicycle,.analysis-comparison .beta-hemicycle { max-width:430px; }
.analysis-comparison .beta-comparison-grid>div>h4 { font-size:12px; margin:12px 0 3px; text-align:center; }
.analysis-comparison .beta-comparison-grid>div>.beta-footnote { margin:0 0 6px; text-align:center; }
@media(max-width:800px) { .poll-latest-grid { grid-template-columns:minmax(0,1fr); gap:10px; } .analysis-comparison .beta-comparison-grid { grid-template-columns:minmax(0,1fr); } }

@media(max-width:800px) {
  .analysis-comparison table.is-mobile-ready { display:table; table-layout:fixed; width:100%; min-width:0; border-collapse:collapse; }
  .analysis-comparison table.is-mobile-ready thead { display:table-header-group; }
  .analysis-comparison table.is-mobile-ready tbody { display:table-row-group; }
  .analysis-comparison table.is-mobile-ready tbody tr { display:table-row; border:0; border-radius:0; background:transparent; box-shadow:none; }
  .analysis-comparison table.is-mobile-ready :is(th,tbody td) { display:table-cell; padding:9px 4px; font-size:11px; white-space:normal; overflow-wrap:anywhere; border-bottom:1px solid var(--beta-border); }
  .analysis-comparison table.is-mobile-ready th:first-child { width:40%; }
  .analysis-comparison table.is-mobile-ready tbody td::before { display:none; }
  .analysis-comparison table.is-mobile-ready tbody td:last-child { border-bottom:1px solid var(--beta-border); }
}

.poll-latest-summary { grid-column:1 / -1; width:100%; min-width:0; }
.poll-latest-summary>.beta-card { min-width:0; }
.poll-results-card .beta-table td:first-child { min-width:100px; max-width:230px; white-space:normal; overflow-wrap:anywhere; }
.poll-results-card .beta-table-scroll { overscroll-behavior:contain; }
.poll-table-scroll-hint { display:none; color:var(--beta-muted); font-size:10px; }
.election-evolution-disclosure>summary { display:flex; align-items:center; gap:12px; cursor:pointer; list-style:none; }
.election-evolution-disclosure>summary::-webkit-details-marker { display:none; }
.election-evolution-disclosure>summary::before { content:'▸'; color:var(--beta-accent); font-size:18px; flex:none; }
.election-evolution-disclosure[open]>summary::before { content:'▾'; }
.election-evolution-disclosure>summary>span { flex:1; min-width:0; }
.beta-disclosure-title { display:block; font-size:17px; font-weight:750; letter-spacing:-.035em; }
.election-evolution-disclosure>summary small { display:block; color:var(--beta-muted); font-size:11px; line-height:1.6; margin-top:6px; }
.election-evolution-disclosure>summary>button { flex:none; }
.election-evolution-body { margin-top:20px; }
.election-evolution-body>.beta-actions { justify-content:flex-end; margin-bottom:12px; }
@media(max-width:800px) {
  .poll-table-scroll-hint { display:block; }
  .poll-results-card .beta-table.is-mobile-ready { display:table; width:100%; min-width:670px!important; border-collapse:collapse; }
  .poll-results-card .beta-table.is-mobile-ready thead { display:table-header-group; }
  .poll-results-card .beta-table.is-mobile-ready tbody { display:table-row-group; }
  .poll-results-card .beta-table.is-mobile-ready tbody tr { display:table-row; border:0; border-radius:0; background:transparent; box-shadow:none; }
  .poll-results-card .beta-table.is-mobile-ready :is(th,tbody td) { display:table-cell; padding:10px 6px; border-bottom:1px solid var(--beta-border); }
  .poll-results-card .beta-table.is-mobile-ready tbody td::before { display:none; }
}

#view-history .view-stack { grid-template-columns:minmax(0,1fr); }
.history-event-copy { min-width:0; }
.history-note-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:8px; margin-top:6px; }
.history-event-copy p.history-note { min-width:0; margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.history-note-row.is-expanded p.history-note { white-space:pre-wrap; overflow-wrap:anywhere; overflow:visible; }
.history-read-more { display:flex; align-items:center; justify-content:center; width:26px; height:26px; padding:0; border:1px solid var(--beta-border); border-radius:8px; background:var(--beta-track); color:var(--beta-accent); cursor:pointer; font:inherit; font-size:18px; line-height:1; }
.history-read-more[hidden] { display:none!important; }
.history-read-more:focus-visible { outline:2px solid var(--beta-accent); outline-offset:2px; }
