/* Apuração ao vivo (inc/eleicao-apuracao-publico.php).
   Caixa editorial neutra do tema; só a cor primária do portal marca o líder e o progresso. */

.ct-apuracao-contexto {
    margin: -6px 0 16px;
    font-size: 13px;
    color: #64748b;
}
.ct-apuracao-contexto:empty { display: none; }

.ct-apuracao-espera {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: #334155;
}

/* Progresso de seções apuradas */
.ct-apuracao-progresso { margin-bottom: 20px; }
.ct-apuracao-barra {
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
}
.ct-apuracao-barra span {
    display: block;
    height: 100%;
    background: var(--cor-primaria, #1a1a1a);
    transition: width .6s ease;
}
.ct-apuracao-secoes {
    margin: 8px 0 0;
    font-size: 13px;
    color: #475569;
}

/* Candidatos */
.ct-apuracao-lista {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
}
.ct-apuracao-cand {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px 0;
    border-top: 1px solid #e2e8f0;
}
.ct-apuracao-cand:first-child { border-top: 0; padding-top: 0; }

.ct-apuracao-foto {
    position: relative;
    display: block;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    overflow: hidden;
    background: #e2e8f0;
}
.ct-apuracao-foto img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ct-apuracao-foto b {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #64748b;
}
/* A inicial é só o reserva: com foto ela fica escondida, e volta se a foto não carregar. */
.ct-apuracao-foto img ~ b { display: none; }
.ct-apuracao-foto.sem-foto img { display: none; }
.ct-apuracao-foto.sem-foto b { display: flex; }

.ct-apuracao-dados { display: block; min-width: 0; }
.ct-apuracao-nome {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: #111;
    line-height: 1.3;
}
.ct-apuracao-selo {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    border: 1px solid #1a1a1a;
    border-radius: 3px;
    font-size: 10.5px;
    font-style: normal;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    vertical-align: 2px;
}
.ct-apuracao-sub {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    color: #64748b;
}
.ct-apuracao-trilho {
    display: block;
    height: 6px;
    margin-top: 8px;
    background: #f1f5f9;
    border-radius: 3px;
    overflow: hidden;
}
.ct-apuracao-trilho span {
    display: block;
    height: 100%;
    background: #94a3b8;
    transition: width .6s ease;
}
.ct-apuracao-cand.is-lider .ct-apuracao-trilho span { background: var(--cor-primaria, #1a1a1a); }

.ct-apuracao-numeros { text-align: right; white-space: nowrap; }
.ct-apuracao-numeros strong {
    display: block;
    font-size: 22px;
    line-height: 1.1;
    color: #111;
    font-variant-numeric: tabular-nums;
}
.ct-apuracao-numeros span {
    font-size: 12.5px;
    color: #64748b;
    font-variant-numeric: tabular-nums;
}

/* Comparecimento, abstenção, brancos e nulos */
.ct-apuracao-resumo {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 14px 18px;
    margin: 0 0 16px;
    padding: 16px 0 0;
    border-top: 1px solid #e2e8f0;
}
.ct-apuracao-resumo dt {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #64748b;
}
.ct-apuracao-resumo dd {
    margin: 4px 0 0;
    font-size: 18px;
    font-weight: 700;
    color: #111;
    font-variant-numeric: tabular-nums;
}
.ct-apuracao-resumo small {
    display: block;
    font-size: 12px;
    font-weight: 400;
    color: #64748b;
}

.ct-apuracao-fonte {
    margin: 0;
    font-size: 12px;
    color: #64748b;
}

@media (max-width: 520px) {
    .ct-apuracao-cand { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px; }
    .ct-apuracao-foto { width: 44px; height: 44px; }
    .ct-apuracao-numeros strong { font-size: 18px; }
    .ct-apuracao-resumo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Link do título (só na versão da capa) */
.ct-apuracao-ver {
    margin-left: auto;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: none;
    color: var(--cor-primaria, #1a1a1a);
    text-decoration: none;
    white-space: nowrap;
}
.ct-apuracao-ver:hover { text-decoration: underline; }
.ct-apuracao-ver i { font-size: 10px; margin-left: 2px; }

/* Versão da capa: uma faixa com os candidatos lado a lado */
.ct-apuracao-faixa { margin: 30px auto; }
.ct-apuracao--compacto { margin-bottom: 0; }
.ct-apuracao--compacto .ct-apuracao-contexto { margin: -6px 0 12px; }
.ct-apuracao--compacto .ct-apuracao-progresso { margin-bottom: 14px; }
.ct-apuracao--compacto .ct-apuracao-lista {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 14px 24px;
    margin-bottom: 14px;
}
.ct-apuracao--compacto .ct-apuracao-cand {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 0;
    border-top: 0;
}
.ct-apuracao--compacto .ct-apuracao-foto { width: 44px; height: 44px; }
.ct-apuracao--compacto .ct-apuracao-nome { font-size: 14.5px; }
.ct-apuracao--compacto .ct-apuracao-numeros strong { font-size: 18px; }
.ct-apuracao--compacto .ct-apuracao-vice,
.ct-apuracao--compacto .ct-apuracao-trilho,
.ct-apuracao--compacto .ct-apuracao-resumo { display: none; }

@media (max-width: 520px) {
    .ct-apuracao--compacto .ct-editorial-box-titulo { flex-wrap: wrap; row-gap: 6px; }
    .ct-apuracao--compacto .ct-apuracao-ver { margin-left: 0; width: 100%; }
}

/* Aviso de atraso: fundo claro, borda neutra (sem faixa colorida) */
.ct-apuracao-aviso {
    margin: 0 0 18px;
    padding: 11px 14px;
    background: #fffbeb;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    font-size: 13.5px;
    line-height: 1.5;
    color: #334155;
}

/* Vários turnos: um bloco por turno, o mais recente em cima */
.ct-apuracao-turno + .ct-apuracao-turno {
    margin-top: 28px;
    padding-top: 26px;
    border-top: 1px solid #e2e8f0;
}
.ct-apuracao-turno-titulo {
    margin: 0 0 14px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #475569;
}

.ct-apuracao-idade {
    margin: 2px 0 0;
    font-size: 12px;
    color: #64748b;
}
.ct-apuracao-idade:empty { display: none; }

/* ===== Vereadores (inc/eleicao-apuracao-vereadores.php) ===== */

.ct-apuracao-vagas {
    margin: -6px 0 22px;
    font-size: 13.5px;
    color: #475569;
}

.ct-apuracao-secao-titulo {
    margin: 26px 0 14px;
    padding-top: 20px;
    border-top: 1px solid #e2e8f0;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #475569;
}
.ct-apuracao-vagas + .ct-apuracao-secao-titulo { margin-top: 0; padding-top: 0; border-top: 0; }

.ct-apuracao-nota {
    margin: -4px 0 14px;
    font-size: 12.5px;
    line-height: 1.5;
    color: #64748b;
}

/* Eleitos: duas colunas em tela larga, uma no celular */
.ct-apuracao-lista--grade {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 16px 28px;
    margin-bottom: 8px;
}
.ct-apuracao-lista--grade .ct-apuracao-cand {
    padding: 0;
    border-top: 0;
}
.ct-apuracao-lista--grade .ct-apuracao-sub { margin-top: 2px; }

/* Tabelas: partidos e todos os candidatos */
.ct-apuracao-rolagem { overflow-x: auto; }
.ct-apuracao-tabela {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    color: #1f2937;
}
.ct-apuracao-tabela th,
.ct-apuracao-tabela td {
    padding: 9px 10px 9px 0;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
    vertical-align: top;
    font-weight: 400;
}
.ct-apuracao-tabela thead th {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #64748b;
    white-space: nowrap;
}
.ct-apuracao-tabela tbody th { font-weight: 600; color: #111; }
.ct-apuracao-tabela .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; padding-right: 14px; }
.ct-apuracao-tabela small { font-size: 11px; color: #64748b; font-weight: 400; margin-left: 4px; }
.ct-apuracao-tabela tr.is-eleito th { font-weight: 800; }
.ct-apuracao-tabela tr[hidden] { display: none; }

/* Todos os candidatos: recolhido, com busca */
.ct-apuracao-todos {
    margin: 22px 0 18px;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    padding: 0 16px;
}
.ct-apuracao-todos summary {
    padding: 13px 0;
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    color: #111;
}
.ct-apuracao-todos[open] summary { border-bottom: 1px solid #e2e8f0; margin-bottom: 14px; }
.ct-apuracao-busca {
    width: 100%;
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-size: 15px;
    box-sizing: border-box;
}
.ct-apuracao-todos .ct-apuracao-rolagem { max-height: 520px; overflow-y: auto; margin-bottom: 14px; }
.ct-apuracao-busca-vazio { margin: 0 0 14px; font-size: 14px; color: #64748b; }
.ct-apuracao-busca-vazio[hidden] { display: none; }

@media (max-width: 520px) {
    .ct-apuracao-lista--grade { grid-template-columns: 1fr; }
    .ct-apuracao-lista--grade .ct-apuracao-cand { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px; }
    .ct-apuracao-lista--grade .ct-apuracao-foto { width: 44px; height: 44px; }
    .ct-apuracao-todos { padding: 0 12px; }
}

@media (max-width: 520px) {
    .ct-apuracao-tabela { font-size: 13px; }
    .ct-apuracao-tabela th,
    .ct-apuracao-tabela td { padding-right: 8px; }
    .ct-apuracao-tabela .num { padding-right: 8px; }
    .ct-apuracao-tabela thead th { white-space: normal; letter-spacing: .06em; }
    .ct-apuracao-tabela--candidatos .num:first-child { display: none; } /* coluna # sai no celular */
    .ct-apuracao-tabela--candidatos thead th:first-child { display: none; }
}

/* ===== Eleição geral: três disputas lado a lado na capa ===== */
.ct-apuracao-capa-grade {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}
.ct-apuracao-capa-grade .ct-apuracao--compacto { margin-bottom: 0; }
.ct-apuracao--mini .ct-apuracao-lista { grid-template-columns: 1fr; gap: 14px; }
.ct-apuracao--mini .ct-apuracao-resumo { display: none; }
.ct-apuracao--mini .ct-editorial-box-titulo { font-size: 12px; }
.ct-apuracao-capa-link { margin: 12px 0 0; text-align: right; }
.ct-apuracao-capa-link .ct-apuracao-ver { margin-left: 0; }

/* Nota "estes são os votos do município" no alto de cada painel da página */
.ct-apuracao-nota--geral { margin: -6px 0 16px; }

@media (max-width: 900px) {
    .ct-apuracao-capa-grade { grid-template-columns: 1fr; }
}

/* Celular: as três disputas da capa viram uma fileira que desliza para o lado, em vez de uma pilha de ~1300px */
@media (max-width: 900px) {
    .ct-apuracao-capa-grade {
        display: flex;
        gap: 14px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        padding-bottom: 6px;
        -webkit-overflow-scrolling: touch;
    }
    .ct-apuracao-capa-grade .ct-apuracao {
        flex: 0 0 88%;
        scroll-snap-align: start;
    }
}

/* ===== Guia do eleitor e página da apuração: abertura, cartões, ilustrações (inc/eleicao-guia.php, inc/eleicao-arte.php) ===== */

/* A âncora dos painéis (#apuracao-presidente...) não fica escondida atrás do cabeçalho fixo. */
.ct-apuracao,
.ct-apuracao-vereadores { scroll-margin-top: 110px; }

/* ---------- Ilustrações: as cores moram aqui, num lugar só ----------
   .t traço de tinta · .p papel · .s sombra suave · .a destaque (vermelho da marca)
   .i tinta cheia · .v verde (CONFIRMA) · .o laranja (CORRIGE) */
.ct-arte { display: block; width: 100%; height: auto; }
.ct-arte .t { fill: none; stroke: #17191d; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ct-arte text { font-family: Arial, Helvetica, sans-serif; user-select: none; }
.ct-arte .p { fill: #fff; }
.ct-arte .s { fill: #ebe5da; }
.ct-arte .a { fill: #c0261c; }
.ct-arte .i { fill: #17191d; }
.ct-arte .v { fill: #3f8f5c; }
.ct-arte .o { fill: #e08a3c; }
.ct-arte .b { fill: #d3e3ee; }
.ct-arte .g { fill: #d5e5d2; }
.ct-arte .y { fill: #f0c24b; }

.ct-guia {
    display: grid;
    gap: 22px;
    /* respiro em cima e embaixo: o guia fica entre a primeira fileira de matérias e o resto, e não pode colar em nenhuma */
    margin: 18px 0 40px;
}

/* ---------- Abertura ---------- */
.ct-guia-abertura {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(170px, 270px);
    gap: 26px;
    align-items: center;
    padding: 30px 34px;
    background: #f6f2ea;
    border: 1px solid #e7e1d4;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 20px;
}
/* papel pontilhado: a abertura não é um retângulo liso */
.ct-guia-abertura::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(#d9d1bf 1px, transparent 1.4px);
    background-size: 15px 15px;
    opacity: .55;
    pointer-events: none;
}
.ct-guia-abertura > * { position: relative; }
.ct-guia-kicker {
    display: inline-block;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--marca-acento, #c0261c);
}
.ct-guia-titulo-grande {
    margin: 8px 0 12px;
    font-family: var(--font-serif, Georgia, serif);
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 800;
    letter-spacing: -.022em;
    line-height: 1.05;
    color: #17191d;
}
.ct-guia-abertura p {
    max-width: 46ch;
    margin: 0 0 14px;
    font-size: 16px;
    line-height: 1.55;
    color: #3a4048;
}
.ct-guia-abertura p:last-child { margin-bottom: 0; }
.ct-guia-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 6px 16px 6px 6px;
    background: #fff;
    border: 1px solid #e0d9ca;
    border-radius: 100px;
    font-size: 13.5px !important;
    line-height: 1.3 !important;
}
.ct-guia-chip strong {
    padding: 5px 12px;
    background: #17191d;
    border-radius: 100px;
    font-size: 11.5px;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #fff;
    white-space: nowrap;
}
.ct-guia-abertura-arte { justify-self: end; width: 100%; }

/* ---------- Blocos ---------- */
.ct-guia-bloco {
    padding: 26px 26px 24px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
}
/* "O que cada cargo faz": sem a caixa em volta, os cartões ficam direto sobre a página. */
.ct-guia-bloco.ct-guia-bloco--solto {
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
}
/* Título de seção como o "Destaques" da lateral: serifada e um fio curto vermelho embaixo. */
.ct-guia-titulo {
    margin: 0 0 22px;
    font-family: var(--font-serif, Georgia, serif);
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -.015em;
    line-height: 1.1;
    color: #17191d;
}
.ct-guia-titulo::after {
    content: "";
    display: block;
    width: 38px;
    height: 3px;
    margin-top: 11px;
    background: var(--marca-acento, #c0261c);
}

/* ---------- Cartões de cargo, cada um com o seu prédio ---------- */
.ct-guia-cargos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 18px;
}
.ct-guia-cargo {
    display: flex;
    flex-direction: column;
}
.ct-guia-cargo-arte {
    padding: 0;
    background: #f6f2ea;
}
.ct-guia-cargo-arte .ct-arte { max-height: 150px; margin: 0 auto; }
.ct-guia-cargo-corpo {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 14px 0 0;
}
.ct-guia-cargo-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.ct-guia-cargo-topo h4 {
    margin: 0;
    font-family: var(--font-serif, Georgia, serif);
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.01em;
    line-height: 1.1;
    color: #17191d;
}
.ct-guia-selo {
    flex: none;
    padding: 2px 9px;
    border: 1px solid #cbd5e1;
    border-radius: 100px;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #475569;
    white-space: nowrap;
}
.ct-guia-cargo-corpo p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #334155;
}
.ct-guia-cargo-corpo .ct-guia-links {
    margin-top: auto;
    padding-top: 14px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
}
.ct-guia-links a {
    color: var(--cor-primaria, #17191d);
    text-decoration: none;
}
.ct-guia-links a:hover { text-decoration: underline; }

.ct-guia-duas {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 22px;
    align-items: start;
}

/* ---------- Dúvidas: details/summary nativo, sem JavaScript ---------- */
.ct-guia-faq details { border-top: 1px solid #e2e8f0; }
.ct-guia-faq details:first-child { border-top: 0; }
.ct-guia-faq summary {
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 13px 30px 13px 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    color: #111;
    cursor: pointer;
    list-style: none;
}
.ct-guia-faq summary::-webkit-details-marker { display: none; }
.ct-guia-faq summary::after {
    content: "+";
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    font-weight: 400;
    color: #64748b;
}
.ct-guia-faq details[open] summary::after { content: "–"; }
.ct-guia-faq-icone {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background: #f6f2ea;
    border: 1px solid #e7e1d4;
    border-radius: 50%;
    color: #17191d;
}
.ct-guia-icone { width: 20px; height: 20px; }
.ct-guia-faq details[open] .ct-guia-faq-icone { background: #17191d; border-color: #17191d; color: #fff; }
.ct-guia-faq details p {
    margin: 0 0 16px 52px;
    font-size: 14.5px;
    line-height: 1.65;
    color: #334155;
}

/* ---------- Calendário: linha do tempo, o dia da votação em destaque ---------- */
.ct-guia-calendario {
    position: relative;
    margin: 0;
    padding: 0 0 0 24px;
    list-style: none;
}
.ct-guia-calendario::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: #e2e8f0;
}
.ct-guia-calendario li {
    position: relative;
    display: grid;
    gap: 3px;
    padding: 0 0 20px;
}
.ct-guia-calendario li:last-child { padding-bottom: 0; }
.ct-guia-calendario li::before {
    content: "";
    position: absolute;
    left: -24px;
    top: 2px;
    box-sizing: border-box;
    width: 14px;
    height: 14px;
    background: #fff;
    border: 2px solid #94a3b8;
    border-radius: 50%;
}
.ct-guia-data {
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #64748b;
}
.ct-guia-evento { font-size: 14.5px; line-height: 1.45; color: #1f2937; }
.ct-guia-calendario li.is-dia::before {
    background: var(--marca-acento, #c0261c);
    border-color: var(--marca-acento, #c0261c);
    box-shadow: 0 0 0 4px #f6e1de;
}
.ct-guia-calendario li.is-dia .ct-guia-data { color: var(--marca-acento, #c0261c); }
.ct-guia-calendario li.is-dia .ct-guia-evento { font-weight: 700; color: #111; }

/* ---------- Chamada para a apuração ---------- */
.ct-guia-chamada {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    padding: 20px 26px;
    background: #101521;
    border-radius: 6px;
    color: #fff;
}
.ct-guia-chamada-texto strong {
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-serif, Georgia, serif);
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.01em;
}
.ct-guia-chamada-texto span { font-size: 14px; line-height: 1.5; color: #c4ccd6; }
.ct-guia-chamada-botao {
    padding: 12px 22px;
    background: #fff;
    border-radius: 100px;
    font-size: 14px;
    font-weight: 800;
    color: #17191d;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s ease, color .15s ease;
}
.ct-guia-chamada-botao:hover { background: var(--marca-acento, #c0261c); color: #fff; }

/* ---------- Estado de espera dos painéis, com a urna ---------- */
.ct-apuracao-espera-quadro {
    display: flex;
    align-items: center;
    gap: 18px;
}
.ct-apuracao-espera-arte { flex: none; width: 84px; }
.ct-apuracao-espera-quadro .ct-apuracao-espera { margin: 0; }

@media (max-width: 860px) {
    .ct-guia-duas { grid-template-columns: 1fr; }
    .ct-guia-abertura { grid-template-columns: 1fr; padding: 24px 22px; }
    .ct-guia-abertura-arte { max-width: 220px; justify-self: center; order: -1; }
    .ct-guia-bloco { padding: 22px 18px; }
    .ct-guia-chamada { grid-template-columns: 1fr; text-align: center; justify-items: center; }
    .ct-guia-chamada-arte { width: 92px; }
}
@media (max-width: 520px) {
    .ct-guia-faq details p { margin-left: 0; }
    .ct-apuracao-espera-quadro { align-items: flex-start; }
    .ct-apuracao-espera-arte { width: 64px; }
}

/* ---------- Títulos dos painéis do placar: o mesmo padrão do guia (serifada e fio vermelho) ---------- */
.ct-apuracao:not(.ct-apuracao--compacto) > .ct-editorial-box-titulo,
.ct-apuracao-vereadores > .ct-editorial-box-titulo {
    display: block;
    margin: 0 0 18px;
    padding: 0;
    border-bottom: 0;
    font-family: var(--font-serif, Georgia, serif);
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -.015em;
    line-height: 1.12;
    text-transform: none;
    color: #17191d;
}
.ct-apuracao:not(.ct-apuracao--compacto) > .ct-editorial-box-titulo::after,
.ct-apuracao-vereadores > .ct-editorial-box-titulo::after {
    content: "";
    display: block;
    width: 38px;
    height: 3px;
    margin-top: 11px;
    background: var(--marca-acento, #c0261c);
}
@media (max-width: 520px) {
    .ct-apuracao:not(.ct-apuracao--compacto) > .ct-editorial-box-titulo,
    .ct-apuracao-vereadores > .ct-editorial-box-titulo { font-size: 22px; }
}

/* ---------- Sidebar da categoria do especial: o que levar no dia da votação ---------- */
.ct-guia-lateral {
    padding: 20px 18px 8px;
    background: #f6f2ea;
    background-image: radial-gradient(#e7e1d4 1px, transparent 1px);
    background-size: 14px 14px;
    border-top: 3px solid #17191d;
}
.ct-guia-lateral-arte { width: 128px; margin: 0 auto 10px; }
.ct-guia-lateral-arte svg { display: block; width: 100%; height: auto; }
.ct-guia-lateral .ct-guia-kicker { display: block; margin-bottom: 4px; }
.ct-guia-lateral-titulo {
    margin: 0 0 14px;
    font-family: var(--font-serif, Georgia, serif);
    font-size: 22px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #17191d;
}
.ct-guia-lateral-lista { margin: 0; padding: 0; list-style: none; }
.ct-guia-lateral-lista li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 0;
    border-top: 1px solid #e0d9c9;
}
.ct-guia-lateral-lista li:first-child { border-top: 0; }
.ct-guia-lateral-lista .ct-guia-faq-icone { background: #fff; }
.ct-guia-lateral-lista strong { display: block; font-size: 14.5px; line-height: 1.3; color: #17191d; }
.ct-guia-lateral-lista small { display: block; font-size: 12.5px; line-height: 1.4; color: #5b6472; }

/* ---------- Eleições anteriores: seletor e aviso ---------- */
.ct-arquivo-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin: 0 0 22px;
    padding: 12px 0;
    border-top: 1px solid #17191d;
    border-bottom: 1px solid #e2e8f0;
}
.ct-arquivo-rotulo {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #5b6472;
}
.ct-arquivo-lista { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ct-arquivo-pilula {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 6px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 100px;
    font-size: 14px;
    line-height: 1.2;
    color: #17191d;
    text-decoration: none;
    background: #fff;
}
.ct-arquivo-pilula strong { font-weight: 800; }
.ct-arquivo-pilula small { font-size: 11px; color: #5b6472; }
.ct-arquivo-pilula:hover { border-color: #17191d; }
.ct-arquivo-pilula.is-ativa { background: #17191d; border-color: #17191d; color: #fff; }
.ct-arquivo-pilula.is-ativa small { color: #cbd5e1; }
.ct-arquivo-aviso {
    margin: 0 0 20px;
    padding: 12px 16px;
    background: #f6f2ea;
    border-left: 3px solid #17191d;
    font-size: 14.5px;
    line-height: 1.5;
    color: #334155;
}
.ct-arquivo-aviso a { font-weight: 700; color: #17191d; }

/* Fotinha ao lado do nome na lista de candidatos (antes da apuracao comecar) */
.ct-apuracao-foto--mini { display: inline-block; vertical-align: middle; width: 32px; height: 32px; margin: 0 8px 0 0; }
.ct-apuracao-foto--mini b { font-size: 13px; }

/* Lista de espera dos deputados: busca, contagem e o "nenhum encontrado" */
.ct-apuracao-busca-espera {
    width: 100%;
    margin: 0 0 8px;
    padding: 10px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-size: 15px;
    box-sizing: border-box;
}
.ct-apuracao-espera-contagem { margin: 0 0 14px; font-size: 13px; color: #64748b; }
.ct-apuracao-espera-vazio { margin: 0 0 14px; font-size: 14px; color: #64748b; }
.ct-apuracao-espera-vazio[hidden], .ct-apuracao-espera-lista li[hidden] { display: none; }

/* A caixa mostra 10 linhas de candidato de altura (cada linha tem ~86px; a primeira, ~71px) e o resto rola. */
.ct-apuracao-espera-rolagem {
    max-height: 850px;
    overflow-y: auto;
    overscroll-behavior: contain;
    margin: 0 0 4px;
    padding: 0 8px 0 0;
    border-bottom: 1px solid #e2e8f0;
}
.ct-apuracao-espera-rolagem:focus-visible { outline: 2px solid #17191d; outline-offset: 2px; }
@media (max-width: 520px) {
    .ct-apuracao-espera-rolagem { max-height: 720px; }
}
