/* Public tallies, using the archive's paper, blueprint ink and type scale. */
.poll-board { margin-top: 3rem; }
.poll-board .sec-head { margin-top: 0; }
.poll-shell { border: var(--rule); background: var(--paper); }
.poll-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1.5rem; border-bottom: var(--rule); background: var(--paper-2); }
.poll-live, .poll-refresh, .poll-meta, .poll-question-meta, .poll-number, .poll-foot { font-family: var(--mono); font-size: .75rem; }
.poll-live { display: inline-flex; align-items: center; gap: .6rem; letter-spacing: .1em; }
.poll-live::before { content: ''; width: .45rem; height: .45rem; border: 1px solid var(--ink); background: var(--ink); border-radius: 50%; }
.poll-live[data-state="error"]::before { background: transparent; }
.poll-refresh { border: var(--rule); border-radius: 0; padding: .4rem .7rem; min-height: 44px; background: transparent; color: var(--ink); cursor: pointer; }
.poll-refresh:hover { background: var(--ink); color: var(--paper); }
.poll-refresh:disabled { opacity: .55; cursor: wait; }
.poll-board :is(button, select, summary, a):focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.poll-status { margin: 0; padding: 1rem 1.5rem; font-size: .88rem; border-bottom: var(--hairline); }
.poll-board [hidden] { display: none !important; }
.poll-overview { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 1.2rem; margin: 1.5rem; }
.poll-title { margin: .7rem 0 .5rem; font-family: var(--serif); font-size: clamp(1.2rem, 2.5vw, 1.65rem); line-height: 1.55; overflow-wrap: anywhere; }
.poll-meta { margin: .5rem 0 0; color: var(--ink-soft); line-height: 1.9; }
.poll-total { min-width: 6.5rem; text-align: right; border-left: var(--rule); padding-left: 1.3rem; }
.poll-total strong { display: block; font-family: var(--serif); font-size: 3.2rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.poll-total span { font-family: var(--mono); font-size: .65rem; letter-spacing: .06em; }
.poll-questions { border-top: var(--rule); }
.poll-question { border-bottom: var(--hairline); }
.poll-question:last-child { border-bottom: 0; }
.poll-question summary { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 1rem 1.5rem; cursor: pointer; list-style: none; min-height: 44px; }
.poll-question summary::-webkit-details-marker { display: none; }
.poll-question summary::after { content: '+'; font-family: var(--mono); font-size: 1.2rem; }
.poll-question[open] summary::after { content: '−'; }
.poll-question-heading { flex: 1; min-width: 0; font-weight: 700; line-height: 1.7; overflow-wrap: anywhere; }
.poll-question-meta { display: block; margin-top: .3rem; color: var(--ink-soft); font-weight: 400; }
.poll-options { padding: .1rem 1.5rem 1.4rem; margin: 0; list-style: none; }
.poll-option + .poll-option { margin-top: .9rem; }
.poll-option-line { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .3rem; }
.poll-option-label { font-family: var(--sans); font-size: .85rem; line-height: 1.65; overflow-wrap: anywhere; }
.poll-number { flex: 0 0 auto; font-variant-numeric: tabular-nums; white-space: nowrap; }
.poll-bar { height: 7px; border: var(--hairline); background: var(--paper-2); }
.poll-bar span { display: block; height: 100%; background: var(--ink); }
.poll-note { padding: 0 1.5rem 1.1rem; margin: 0; color: var(--ink-soft); font-size: .8rem; line-height: 1.8; }
.poll-foot { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .6rem 1.5rem; border-top: var(--rule); padding: 1rem 1.5rem; line-height: 1.8; }
.poll-foot > span { color: var(--ink-soft); }
.poll-foot a { border-bottom: 1px solid var(--ink-line); }
@media (max-width: 540px) {
  .poll-toolbar, .poll-question summary, .poll-foot { padding-left: 1rem; padding-right: 1rem; }
  .poll-overview { margin: 1rem; gap: .8rem; }
  .poll-total { min-width: 4.5rem; padding-left: .7rem; }
  .poll-total strong { font-size: 2.5rem; }
  .poll-options { padding-left: 1rem; padding-right: 1rem; }
  .poll-option-line { flex-wrap: wrap; gap: .2rem .7rem; }
  .poll-number { margin-left: auto; }
  .poll-note { padding-left: 1rem; padding-right: 1rem; }
  .poll-board .sec-head { gap: .6rem; }
  .poll-board .sec-en { font-size: .55rem; letter-spacing: .12em; }
}
