/* Ballots / voting — unlayered, .ac-plugin-scoped. */

.ac-plugin .ac-ballots { display: grid; gap: 1.25rem; }
.ac-plugin .ac-ballot-card { border: 1px solid var(--ac-line); border-radius: var(--ac-radius); background: var(--ac-surface); box-shadow: var(--ac-shadow); padding: 1.4rem 1.5rem; display: grid; gap: 1rem; }
.ac-plugin .ac-ballot-card__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; }
.ac-plugin .ac-ballot-card__head h3 { margin: 0; font-size: 1.2rem; }
.ac-plugin .ac-ballot-status { display: inline-flex; align-items: center; gap: .35rem; font-size: .72rem; font-weight: 700; letter-spacing: .02em; padding: .24rem .6rem; border-radius: 999px; }
.ac-plugin .ac-ballot-status--novote { background: var(--ac-warn-soft); color: var(--ac-warn); }
.ac-plugin .ac-ballot-status--voted { background: var(--ac-good-soft); color: var(--ac-good); }
.ac-plugin .ac-ballot-status--closed { background: var(--ac-soft); color: var(--ac-muted); }
.ac-plugin .ac-ballot-deadline { margin: 0; color: var(--ac-muted); font-size: .85rem; }

.ac-plugin .ac-ballot-question { border: 0; margin: 0; padding: 0; display: grid; gap: .5rem; }
.ac-plugin .ac-ballot-question > legend { padding: 0; font-family: var(--ac-font-display); font-weight: 600; font-size: 1.02rem; color: var(--ac-ink); }

.ac-plugin .ac-ballot-option { display: flex; align-items: center; gap: .7rem; padding: .7rem .9rem; border: 1px solid var(--ac-line); border-radius: var(--ac-radius-sm); cursor: pointer; transition: border-color .12s, background .12s; }
.ac-plugin .ac-ballot-option:hover { border-color: color-mix(in srgb, var(--ac-primary) 40%, var(--ac-line)); background: var(--ac-soft); }
.ac-plugin .ac-ballot-option:has(input:checked) { border-color: var(--ac-primary); background: var(--ac-accent-soft); }
.ac-plugin .ac-ballot-option input { accent-color: var(--ac-primary); width: 1.1rem; height: 1.1rem; flex: none; }
.ac-plugin .ac-ballot-option__label { font-size: .98rem; }
.ac-plugin .ac-ballot-question .ac-meta { margin: 0; }

/* Even spacing between the question fieldsets and the Cast Vote button row
   (the form had no gap, so the button sat cramped against the options). */
.ac-plugin .ac-ballot-card form { display: grid; gap: 1.1rem; }
.ac-plugin .ac-ballot-card form .ac-actions { margin-top: .1rem; }

.ac-plugin .ac-ballot-results { display: grid; gap: .9rem; border-top: 1px solid var(--ac-line); padding-top: 1rem; }
.ac-plugin .ac-ballot-results h4 { margin: 0; font-size: 1rem; }
.ac-plugin .ac-ballot-result-question { margin: 0 0 .35rem; font-weight: 600; font-size: .95rem; }
.ac-plugin .ac-ballot-bar { display: grid; grid-template-columns: minmax(6rem, 8rem) 1fr auto; align-items: center; gap: .6rem; margin-bottom: .4rem; font-size: .9rem; }
.ac-plugin .ac-ballot-bar__label { color: var(--ac-ink); overflow-wrap: anywhere; }
.ac-plugin .ac-ballot-bar__track { height: 10px; border-radius: 999px; background: var(--ac-soft); overflow: hidden; }
.ac-plugin .ac-ballot-bar__fill { display: block; height: 100%; border-radius: 999px; background: var(--ac-primary); }
.ac-plugin .ac-ballot-bar__count { color: var(--ac-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Validation error notice (e.g. submitting a vote with nothing selected). */
.ac-plugin .ac-ballots .ac-message--error { border-color: color-mix(in srgb, var(--ac-crit) 45%, var(--ac-line)); background: var(--ac-crit-soft); color: var(--ac-crit); }

/* --- Ballots index (list of ballots that link to a detail page) ----------- */
.ac-plugin .ac-ballots-index { display: grid; gap: 1.1rem; }
.ac-plugin .ac-ballot-index-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.ac-plugin .ac-ballot-index-row {
	display: flex; align-items: center; gap: 1rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--ac-line); border-radius: var(--ac-radius);
	background: var(--ac-surface); box-shadow: var(--ac-shadow);
	text-decoration: none; color: var(--ac-ink);
	transition: border-color .12s, box-shadow .12s, transform .12s;
}
.ac-plugin .ac-ballot-index-row:hover { border-color: var(--ac-primary); box-shadow: var(--ac-card-shadow); transform: translateY(-1px); }
.ac-plugin .ac-ballot-index-main { flex: 1 1 auto; display: grid; gap: .2rem; min-width: 0; }
.ac-plugin .ac-ballot-index-title { font-weight: 700; font-size: 1.05rem; color: var(--ac-ink); }
.ac-plugin .ac-ballot-index-deadline { color: var(--ac-muted); font-size: .85rem; }
.ac-plugin .ac-ballot-index-chevron { flex: none; color: var(--ac-muted); font-size: 1.5rem; line-height: 1; }

/* Back link on the single-ballot detail page. */
.ac-plugin .ac-ballot-back { margin: 0 0 .25rem; }
.ac-plugin .ac-ballot-back a { text-decoration: none; font-weight: 600; color: var(--ac-primary); }
.ac-plugin .ac-ballot-back a:hover { text-decoration: underline; }

/* Ballot featured image on the detail card. */
.ac-plugin .ac-ballot-card__image { margin: 0 0 1rem; }
.ac-plugin .ac-ballot-card__image img { width: 100%; height: auto; max-height: 340px; object-fit: cover; border-radius: var(--ac-radius); display: block; }
