/* Página /eleicoes — tudo escopado em .eleicoes pra não vazar pro resto do portal. */

.eleicoes { --eleicoes-borda: #e3e7ef; }

.eleicoes-filtro { display: flex; align-items: center; gap: 10px; margin-top: 24px; margin-bottom: 12px; }
.eleicoes-filtro .form-select { max-width: 280px; }

.eleicoes-abas {
    display: flex; gap: 6px; overflow-x: auto; margin-bottom: 16px; padding: 4px 0;
    position: sticky; top: 0; z-index: 5; background: #fff;
}
.eleicoes-abas a {
    flex: 0 0 auto; text-decoration: none; color: inherit; background: #fff;
    border: 1px solid var(--eleicoes-borda); border-radius: 999px; padding: 7px 16px; font-size: 14px; font-weight: 600;
}
.eleicoes-abas a.ativa { background: var(--bs-primary); border-color: var(--bs-primary); color: #fff; }

.eleicoes-painel,
.eleicoes-destaque,
.eleicoes-lista,
.eleicoes-aviso { background: #fff; border: 1px solid var(--eleicoes-borda); border-radius: 12px; box-shadow: 0 1px 3px rgba(0,0,0,.04); }

.eleicoes-painel { padding: 16px; margin-bottom: 16px; }
.eleicoes-painel h3 { font-size: 22px; }
.eleicoes-painel h3 small { font-size: 14px; }
.eleicoes-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; font-size: 13px; color: #6c757d; }
.eleicoes-numeros b { display: block; color: #212529; font-size: 15px; }

.eleicoes-destaques { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin-bottom: 12px; }
.eleicoes-destaque { padding: 16px; display: flex; gap: 14px; align-items: center; }
.eleicoes-destaque.vencedor { border-color: var(--bs-success); box-shadow: 0 0 0 1px var(--bs-success) inset; }
.eleicoes-destaque .eleicoes-foto { width: 84px; height: 84px; }
.eleicoes-destaque .eleicoes-nome { font-size: 18px; font-weight: 700; line-height: 1.2; }
.eleicoes-pct { font-size: 28px; font-weight: 800; line-height: 1.1; margin-top: 4px; }

.eleicoes-foto { border-radius: 50%; object-fit: cover; background: #e9edf4; flex: 0 0 auto; }
.eleicoes .min-w-0 { min-width: 0; }

.eleicoes-lista { overflow: hidden; }
.eleicoes-linha { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-top: 1px solid var(--eleicoes-borda); }
.eleicoes-linha:first-child { border-top: 0; }
.eleicoes-linha .eleicoes-foto { width: 44px; height: 44px; }
.eleicoes-linha .eleicoes-nome { font-weight: 600; }
.eleicoes-linha.eleita .progress-bar { background-color: var(--bs-success); }
.eleicoes-linha.anulado { opacity: .6; }
.eleicoes-linha.oculta { display: none; }
.eleicoes-pos { width: 30px; text-align: right; color: #8a90a0; font-size: 13px; flex: 0 0 auto; }

.eleicoes-selo-neutro { background: #eef0f4; color: #5f6677; }

.eleicoes-busca { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.eleicoes-busca .form-control { flex: 1; min-width: 200px; }
.eleicoes-busca label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; white-space: nowrap; }

.eleicoes-aviso { padding: 28px 20px; text-align: center; color: #6c757d; }
.eleicoes-aviso strong { display: block; color: #212529; font-size: 18px; margin-bottom: 6px; }

@media (max-width: 600px) {
    .eleicoes-filtro .form-select { max-width: none; flex: 1; }
    .eleicoes-destaque .eleicoes-foto { width: 64px; height: 64px; }
    .eleicoes-pct { font-size: 24px; }
    .eleicoes-linha { padding: 10px; gap: 10px; }
    .eleicoes-pos { display: none; }
    .eleicoes-linha .eleicoes-foto { width: 38px; height: 38px; }
}
