.voting-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 16px; align-items: start; }
.voting-context { margin: 16px 0; }
.voting-options { margin: 0; padding: 15px; border: 1px solid var(--ag-line); border-radius: 14px; }
.voting-options legend { padding: 0 7px; color: #334155; font-size: 13px; font-weight: 900; }
.voting-options-list { display: grid; gap: 9px; margin-bottom: 10px; }
.voting-option-row { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(120px, .75fr) auto; gap: 8px; align-items: end; }
.voting-option-row label { display: grid; gap: 6px; }
.voting-option-row label span { color: var(--ag-muted); font-size: 12px; font-weight: 800; }
.voting-option-row input, .voting-option-row select { min-height: 42px; padding: 9px 10px; border: 1px solid var(--ag-line); border-radius: 10px; background: #ffffff; color: var(--ag-text); }
.voting-checkbox { grid-template-columns: auto 1fr; align-items: center; align-content: center; }
.voting-checkbox input { width: 20px; min-height: 20px; }
.voting-card { border-left: 4px solid var(--ag-blue); }
.voting-card.is-open { border-left-color: var(--ag-green); }
.voting-card.is-closed { border-left-color: var(--ag-gold); }
.voting-card.is-annulled { border-left-color: var(--ag-red); opacity: .86; }
.voting-result { display: grid; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--ag-line); }
.voting-result-row { display: grid; grid-template-columns: minmax(120px, 1fr) minmax(100px, 2fr) auto; gap: 9px; align-items: center; }
.voting-result-bar { height: 10px; overflow: hidden; border-radius: 999px; background: #e2e8f0; }
.voting-result-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--ag-blue), var(--ag-green)); }
.voting-result-summary { color: #334155; font-weight: 800; }
.voting-integrity { border-color: #ddd6fe; }
.voting-quick-agenda { margin: 0 0 16px; padding: 13px; border: 1px solid #bfdbfe; border-radius: 14px; background: #eff6ff; }
.voting-quick-agenda summary { cursor: pointer; color: #1d4ed8; font-weight: 900; }
.voting-quick-agenda > p { margin: 9px 0 12px; color: #475569; }
.voting-participation { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ag-line); }
.voting-participation summary { cursor: pointer; color: #1e3a8a; font-weight: 900; }
.voting-participation-list { display: grid; gap: 8px; margin-top: 11px; }
.voting-participation-row { display: grid; grid-template-columns: minmax(160px, 1fr) auto minmax(220px, 1.2fr); gap: 10px; align-items: center; padding: 10px; border: 1px solid var(--ag-line); border-radius: 11px; background: #f8fbff; }
.voting-participation-row div { display: grid; gap: 2px; }
.voting-participation-row span, .voting-participation-row small { color: #475569; }
.voting-privacy-note { margin-top: 9px; color: #64748b; font-size: 12px; }
.participant-voting { margin-top: 16px; }
.participant-ballot { border-left: 4px solid var(--ag-blue); }
.participant-ballot.is-open { border-left-color: var(--ag-green); }
.participant-ballot.destino-ativo { border-color: #2563eb; box-shadow: 0 0 0 4px rgba(37, 99, 235, .12); }
.participant-options { display: grid; gap: 8px; margin: 13px 0; }
.participant-option { display: flex; align-items: center; gap: 10px; padding: 11px; border: 1px solid var(--ag-line); border-radius: 11px; background: #f8fbff; color: #334155; }
.participant-option input { width: 19px; height: 19px; }
.participant-receipt { margin-top: 12px; padding: 12px; border: 1px solid #bbf7d0; border-radius: 12px; background: #f0fdf4; overflow-wrap: anywhere; }

@media (max-width: 980px) { .voting-layout { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .voting-option-row, .voting-result-row, .voting-participation-row { grid-template-columns: 1fr; }
  .voting-option-row button { justify-self: start; }
}
