/*
 * Réplica da apuração do g1 — valores medidos com getComputedStyle em 05/10/2026, 1366 px e 390 px.
 * Gabarito: C:\dev\Ativos\conexaopolitica\web\docs\referencias\g1-apuracao-2026-10-05\README.md
 * Spec: docs/APURACAO-SPEC-REPLICA-G1-20261005.md. Cores iguais às do g1 por decisão do Davy (05/10);
 * a marca entra depois, trocando só os tokens abaixo.
 */
@font-face { font-family: "Open Sans Apuracao"; src: url("../fonts/opensans-latin-400.ttf") format("truetype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Open Sans Apuracao"; src: url("../fonts/opensans-latin-600.ttf") format("truetype"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Open Sans Apuracao"; src: url("../fonts/opensans-latin-700.ttf") format("truetype"); font-weight: 700; font-display: swap; }

.apr, .apr-mapa, .apr-barra {
    --apr-fonte: "Open Sans Apuracao", "Open Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    --apr-acao: #c4170c;            /* links, "Eleições", "ver mais" */
    --apr-eleito: #34c771;          /* selo Eleito, borda da foto, barra 100% no estado */
    --apr-segundo-turno: #006329;   /* selo 2º Turno, texto do progresso */
    --apr-progresso-claro: #b2e9c9; /* barra de seções em andamento, ponto ao vivo */
    --apr-badge-andamento-fundo: #b5ffd4;
    --apr-badge-andamento-texto: #00913c;
    --apr-ao-vivo: #ff2828;
    --apr-fundo-cartao: #f5f6f7;
    --apr-borda: #ebedef;
    --apr-borda-chip: #e4e7ec;
    --apr-separador: #dce0e6;
    --apr-titulo: #181818;
    --apr-nome: #2f3134;
    --apr-texto: #333333;
    --apr-secundario: #4f5257;
    --apr-chip-ativo: #0d0d0e;
    --apr-coluna: 736px;
    font-family: var(--apr-fonte);
    color: var(--apr-texto);
    background: #fff;
    font-size: 16px;
    line-height: 20.8px;
}
.apr *, .apr *::before, .apr *::after { box-sizing: border-box; }
.apr a { color: inherit; text-decoration: none; }
.apr button { font-family: inherit; cursor: pointer; }

/* ---- Faixa "Apuração · Eleições ⋮⋮⋮" (g1: glb-apc-bar-central, 45 px com borda) ---- */
.apr-faixa { display: flex; justify-content: space-between; align-items: center; gap: 16px; max-width: 1360px; height: 44px; margin: 0 auto; padding: 0 9px 0 16px; }
.apr-faixa-borda { border-bottom: 1px solid var(--apr-borda); background: #fff; }
.apr-faixa__titulo { font-size: 16px; font-weight: 600; line-height: 24px; letter-spacing: -0.32px; color: var(--apr-texto); }
.apr-faixa__menu { display: flex; align-items: center; justify-content: flex-end; gap: 6px; height: 30px; padding: 1px 6px; border: 0; background: none; color: var(--apr-acao); font-size: 16px; font-weight: 600; line-height: 24px; letter-spacing: -0.32px; }
.apr-faixa__menu svg { width: 28px; height: 28px; padding: 4px; fill: currentColor; }

/* ---- Coluna central ---- */
.apr-coluna { width: var(--apr-coluna); max-width: 100%; margin: 0 auto; }

/* ---- Cabeçalho: status + lugar (g1: glb-apc-header, 112 px) ---- */
.apr-cabecalho { margin-top: 0; }
.apr-status { display: flex; align-items: center; gap: 8px; height: 48px; }
.apr-status > span:last-child { font-size: 14px; line-height: 20px; letter-spacing: -0.14px; }
.apr-status__ao-vivo { display: flex; justify-content: center; align-items: center; width: 32px; height: 20px; border-radius: 6px; background: var(--apr-ao-vivo); }
.apr-status__ao-vivo svg { width: 18px; height: 13px; }
.apr-status__concluida { display: flex; justify-content: center; align-items: center; width: 24px; height: 20px; border-radius: 6px; background: var(--apr-eleito); color: #fff; }
.apr-lugar { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 64px; position: relative; }
.apr-lugar__gatilho { display: flex; align-items: center; gap: 10px; height: 56px; padding: 8px 16px 8px 0; border: 0; background: none; text-align: left; }
.apr-lugar__icone { color: #4f5664; display: flex; justify-content: center; align-items: center; width: 42px; height: 40px; border-radius: 4px; overflow: hidden; }
.apr-lugar__icone img, .apr-lugar__icone svg { width: 100%; height: 100%; object-fit: contain; }
.apr-lugar__nome { font-size: 32px; font-weight: 700; line-height: 38px; letter-spacing: -1.28px; color: var(--apr-titulo); white-space: nowrap; overflow: hidden; margin: 0; }
.apr-lugar__seta { display: flex; justify-content: center; align-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--apr-borda); }
.apr-lugar__seta svg { width: 10px; height: 10px; transition: transform .15s ease; }
.apr-lugar__gatilho[aria-expanded="true"] .apr-lugar__seta svg { transform: rotate(180deg); }

/* ---- Botão "Presidente 🗺" na página do estado (g1: glb-apc-state-role-filter_role-link) ---- */
.apr .apr-botao-presidente { display: flex; align-items: center; gap: 8px; height: 39px; padding: 6px 8px 6px 12px; border: 1px solid var(--apr-borda-chip); border-radius: 12px; background: #fff; color: var(--apr-acao); font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: -0.28px; }
.apr-botao-presidente img { width: 28px; height: 27px; }

/* ---- M2: lista suspensa de lugares (g1: glb-apc-state-role-filter_panel) ---- */
.apr-lugares { position: absolute; top: 64px; left: 0; z-index: 100; width: 100%; max-height: 342px; overflow-y: auto; padding: 8px 16px 8px 8px; border: 1px solid var(--apr-borda-chip); border-radius: 12px; background: #fff; box-shadow: 0 4px 16px rgba(0, 0, 0, .12); scrollbar-width: none; -ms-overflow-style: none; }
.apr-lugares::-webkit-scrollbar { width: 0; height: 0; display: none; }
.apr-lugares[hidden] { display: none; }
.apr-lugares__grupo { margin: 0; padding: 8px; font-size: 14px; line-height: 20px; letter-spacing: -0.14px; color: #4f5664; }
.apr-lugares__item { display: flex; align-items: center; gap: 8px; height: 42px; padding: 8px; border-radius: 12px; }
.apr-lugares__item:hover, .apr-lugares__item[aria-current="page"] { background: var(--apr-fundo-cartao); }
.apr-lugares__bandeira { width: 23px; height: 16px; border: 1px solid var(--apr-borda-chip); border-radius: 2px; object-fit: cover; background: #fff; }
.apr-lugares__item > span:first-of-type { flex: 1; font-size: 15px; font-weight: 700; line-height: 22px; letter-spacing: -0.3px; color: var(--apr-titulo); overflow: hidden; }
.apr-lugares__sigla { display: flex; justify-content: center; align-items: center; gap: 10px; width: 36px; height: 26px; border: 1px solid var(--apr-borda-chip); border-radius: 8px; background: #fff; font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: -0.21px; color: var(--apr-nome); }
.apr-lugares__sigla img { width: 18px; height: 18px; }

/* ---- Título de seção + ⓘ + WhatsApp (g1: glb-apc-section_header) ---- */
.apr-secao-cabecalho { display: flex; justify-content: space-between; align-items: center; height: 40px; margin: 0 0 16px; }
.apr-secao-titulo { display: flex; margin: 0; font-size: 28px; font-weight: 400; line-height: 34px; letter-spacing: -1.12px; color: var(--apr-texto); }
.apr-secao-titulo h2 { margin: 0; font: inherit; letter-spacing: inherit; color: inherit; }
.apr-info { display: inline-flex; width: 14px; height: 14px; margin: 7px 0 0 5px; padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; position: relative; }
.apr-info svg { color: #b8bcc3; }
.apr-info svg { width: 100%; height: 100%; }
.apr-info[aria-expanded="true"]::after { content: attr(data-dica); position: absolute; top: 20px; left: -8px; z-index: 20; width: 260px; padding: 8px 12px; border-radius: 8px; background: #fff; box-shadow: 0 4px 16px rgba(0, 0, 0, .16); color: var(--apr-texto); font-size: 12px; font-weight: 400; line-height: 17px; letter-spacing: 0; white-space: normal; }
.apr-compartilhar { display: flex; justify-content: center; align-items: center; width: 56px; height: 40px; border-radius: 12px; background: rgba(228, 231, 236, .3); }
.apr-compartilhar svg { width: 24px; height: 24px; }

/* ---- Chips de filtro (g1: glb-chip) ---- */
.apr-chips { display: flex; gap: 8px; height: 32px; margin-bottom: 16px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.apr-chips::-webkit-scrollbar { width: 0; height: 0; display: none; }
.apr-chip { flex: none; }
.apr-chip { display: flex; align-items: center; height: 32px; padding: 8px; border: 1px solid var(--apr-borda-chip); border-radius: 8px; background: transparent; color: var(--apr-texto); font-size: 12px; font-weight: 600; line-height: 18px; letter-spacing: -0.0612px; white-space: nowrap; }
.apr-chip[aria-pressed="true"] { background: var(--apr-chip-ativo); color: #fff; }
.apr-chip[hidden] { display: none; }

/* ---- Grade de cartões (g1: glb-apc-locations-list) ---- */
.apr-cartoes { display: grid; grid-template-columns: 362px 362px; gap: 12px; padding: 0 0 16px; margin: 16px 0; }

/* ---- Cartão de lugar (g1: glb-apc-location-card) ---- */
.apr-cartao { display: flex; flex-direction: column; width: 360px; margin-left: 1px; border: 1px solid var(--apr-borda); border-radius: 8px; color: var(--apr-secundario); }
.apr-cartao--concluido { background: var(--apr-fundo-cartao); }
.apr-cartao__cabeca { padding: 12px; border-radius: 8px 8px 0 0; }
.apr-cartao__titulo { display: flex; justify-content: space-between; gap: 4px; }
.apr-cartao__lugar { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.apr-cartao__bandeira { display: block; width: 29px; height: 20px; border: 1px solid var(--apr-borda); border-radius: 3px; object-fit: cover; }
.apr-cartao__nome { font-size: 15px; font-weight: 700; line-height: 22px; letter-spacing: -0.225px; color: var(--apr-secundario); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.apr-cartao__status { display: flex; justify-content: flex-end; align-items: center; align-self: flex-start; margin-top: 7px; }
.apr-cartao--concluido .apr-cartao__status { margin-top: 5px; }
.apr-ponto-ao-vivo { position: relative; width: 6px; height: 6px; margin: 7px; border-radius: 50%; background: var(--apr-progresso-claro); }
.apr-ponto-ao-vivo::before, .apr-ponto-ao-vivo::after { content: ""; position: absolute; border-radius: 50%; background: #00b44b; }
.apr-ponto-ao-vivo::before { top: -7px; left: -7px; width: 20px; height: 20px; opacity: 0; animation: apr-pulso-anel 1.25s cubic-bezier(.215, .61, .355, 1) infinite; }
.apr-ponto-ao-vivo::after { top: -1px; left: -1px; width: 8px; height: 8px; animation: apr-pulso-ponto 1.25s cubic-bezier(.455, .03, .515, .955) -.4s infinite; }
@keyframes apr-pulso-anel { 0% { transform: scale(.33); opacity: .4; } 80%, 100% { transform: scale(1); opacity: 0; } }
@keyframes apr-pulso-ponto { 0% { transform: scale(.8); opacity: 1; } 50% { transform: scale(1); opacity: .32; } 100% { transform: scale(.8); opacity: 1; } }
.apr-status__ao-vivo .apr-anel { animation: apr-anel-piscar 1.5s ease-in-out infinite; }
.apr-status__ao-vivo .apr-anel--dentro { animation-delay: .25s; }
@keyframes apr-anel-piscar { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .apr-ponto-ao-vivo::before, .apr-ponto-ao-vivo::after, .apr-status__ao-vivo .apr-anel { animation: none; } }
.apr-badge-progresso { padding: 0 6px; border-radius: 6px; font-size: 15px; font-weight: 600; line-height: 22px; letter-spacing: -0.225px; white-space: nowrap; color: var(--apr-secundario); }
.apr-cartao--andamento .apr-badge-progresso { background: var(--apr-badge-andamento-fundo); color: var(--apr-badge-andamento-texto); }
.apr-cartao__conteudo { border-radius: 0 0 7px 7px; }
.apr-cartao--concluido .apr-cartao__conteudo { margin: 0 6px; border-radius: 8px; background: #fff; }
.apr-cartao__candidatos { display: flex; flex-direction: column; gap: 16px; padding: 12px; }
.apr-cartao__rodape { display: flex; justify-content: flex-end; margin-bottom: -2px; padding: 12px 16px; position: relative; z-index: 3; }
.apr .apr-link-seta { display: flex; align-items: center; gap: 4px; font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: -0.21px; color: var(--apr-acao); }
.apr-link-seta svg { width: 16px; height: 16px; }

/* ---- Linha de candidato (g1: glb-apc-candidato-votes) ---- */
.apr-candidato { display: grid; grid-template-columns: 60px 1fr; grid-template-rows: 20px 3px 25px; column-gap: 10px; row-gap: 6px; align-items: center; }
.apr-candidato__foto { grid-row: 1 / 4; width: 60px; height: 60px; border: 2px solid var(--apr-borda); border-radius: 50%; overflow: hidden; }
.apr-candidato--eleito .apr-candidato__foto { border: 4px solid var(--apr-eleito); }
.apr-candidato__foto img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.apr-candidato--apagado .apr-candidato__foto img { filter: grayscale(1); }
.apr-candidato__cabeca { display: flex; align-items: center; gap: 4px; min-width: 0; color: var(--apr-nome); }
.apr-candidato__nome { font-size: 14px; font-weight: 400; line-height: 20px; letter-spacing: -0.21px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.apr-separador { display: flex; align-items: center; justify-content: center; width: 8px; height: 18px; flex: none; }
.apr-separador::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: #e4e7ec; }
.apr-candidato__numero { font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: -0.21px; }
.apr-sigla { margin-left: auto; flex: none; padding: 5px; border-radius: 4px; color: #fff; font-size: 12px; font-weight: 700; line-height: 10px; letter-spacing: -0.12px; white-space: nowrap; }
.apr-candidato__barra { width: 100%; height: 3px; border-radius: 12px; background: var(--apr-borda); overflow: hidden; }
.apr-candidato__barra i { display: block; height: 100%; border-radius: 12px; }
.apr-candidato__dados { display: flex; align-items: center; gap: 4px; margin-top: 1px; color: var(--apr-secundario); }
.apr-candidato__pct { display: flex; align-items: baseline; font-size: 18px; font-weight: 600; line-height: 24px; letter-spacing: -0.54px; white-space: nowrap; }
.apr-candidato__pct small { margin-left: 4px; font-size: 12px; font-weight: 600; line-height: 17px; }
.apr-selos { display: flex; gap: 4px; }
.apr-selo { padding: 1px 4px; border-radius: 6px; color: #fff; font-size: 12px; font-weight: 700; line-height: 16px; letter-spacing: -0.18px; white-space: nowrap; }
.apr-selo--eleito { background: var(--apr-eleito); }
.apr-selo--segundo-turno { background: var(--apr-segundo-turno); }
.apr-candidato--eleito .apr-candidato__dados { flex-direction: row; }
.apr-candidato__votos { margin-left: auto; align-self: flex-end; font-size: 12px; font-weight: 400; line-height: 17px; letter-spacing: -0.24px; color: var(--apr-secundario); white-space: nowrap; }

/* ---- Observações e rodapé ---- */
.apr-observacoes { width: var(--apr-coluna); max-width: 100%; margin: 16px auto; font-size: 12px; line-height: 17px; color: var(--apr-texto); }
.apr-observacoes p { margin: 0 0 17px; }
.apr-observacoes a { color: #0000ee; }
.apr-rodape { background: var(--apr-fundo-cartao); padding: 24px 16px 32px; }

/* ---- Carregando / indisponível ---- */
.apr-vazio { padding: 32px 0; color: var(--apr-secundario); font-size: 14px; text-align: center; }


/* =====================  P2/P3 — página do lugar  ===================== */

/* ---- Abas de cargo (g1: glb-apc-header_tabs) — rolam até a seção ---- */
.apr-abas { display: flex; height: 36px; margin: 0 0 12px; padding: 2px; border-radius: 9px; background: rgba(121, 121, 129, .12); }
.apr-aba { flex: 1 1 0; display: flex; justify-content: center; align-items: center; min-width: 0; height: 32px; padding: 3px 10px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: var(--apr-titulo); font-size: 13px; font-weight: 400; line-height: 19px; letter-spacing: -0.13px; text-align: center; white-space: nowrap; position: relative; }
.apr-aba + .apr-aba::before { content: ""; position: absolute; left: -1px; top: 9px; width: 1px; height: 14px; background: rgba(60, 60, 67, .29); }
.apr-aba[aria-current="true"] { border-color: rgba(0, 0, 0, .15); background: #fff; font-weight: 600; box-shadow: rgba(0, 0, 0, .32) 0 3px 8px 0, rgba(0, 0, 0, .05) 0 0 3px 1px; z-index: 1; }
.apr-aba[aria-current="true"]::before, .apr-aba[aria-current="true"] + .apr-aba::before { display: none; }

/* ---- Seção de cargo (g1: glb-apc-executivo) ---- */
.apr-secao { scroll-margin-top: 96px; }
.apr-secao + .apr-secao, .apr-bloco + .apr-secao { margin-top: 32px; }

/* ---- Barra "Seções apuradas" (g1: glb-apc-progress) ---- */
.apr-progresso { margin: 0 0 16px; }
.apr-progresso__rotulo { display: flex; gap: 8px; width: fit-content; margin: 0 0 12px; font-size: 14px; font-weight: 400; line-height: 20px; letter-spacing: -0.21px; color: var(--apr-texto); }
.apr-progresso__barra { position: relative; display: flex; align-items: center; gap: 4px; height: 45px; border: 1px solid var(--apr-borda); border-radius: 8px; background: #fff; overflow: hidden; font-size: 14px; line-height: 20px; letter-spacing: -0.14px; }
.apr-progresso__preenchimento { position: absolute; inset: 0 auto 0 0; border-radius: 8px; background: var(--apr-progresso-claro); }
.apr-progresso--final .apr-progresso__preenchimento { background: var(--apr-eleito); }
.apr-progresso__icone { position: relative; display: flex; align-items: center; padding: 0 4px 0 12px; }
.apr-progresso__pct { position: relative; display: flex; align-items: baseline; gap: 3px; color: var(--apr-segundo-turno); }
.apr-progresso--final .apr-progresso__pct { padding-left: 24px; color: #fff; }
.apr-progresso__pct strong { font-size: 20px; font-weight: 700; line-height: 24px; letter-spacing: -0.5px; }
.apr-progresso__pct small { font-size: 12px; font-weight: 600; line-height: 18px; letter-spacing: -0.0612px; }
.apr-progresso__secoes { position: relative; margin-left: auto; padding: 0 12px 0 0; color: var(--apr-secundario); }
.apr-progresso--final .apr-progresso__secoes { color: #fff; }

/* ---- Quadro da lista (g1: glb-apc-candidatos-featured_list-container) ---- */
.apr-lista { border: 1px solid var(--apr-borda); border-radius: 8px; font-size: 18px; font-weight: 700; line-height: 22px; letter-spacing: -0.36px; color: var(--apr-texto); }
.apr-lista__votos { display: flex; flex-direction: column; gap: 24px; padding: 16px 16px 16px 12px; }
.apr-lista__votos[data-recolhida="true"] > .apr-candidato:nth-child(n+8) { display: none; }

/* ---- Linha de candidato grande (g1: glb-apc-candidato-votes na página do lugar) ---- */
.apr-candidato--grande { grid-template-columns: 70px 1fr; grid-template-rows: auto auto auto; row-gap: 0; font-size: 18px; font-weight: 700; line-height: 22px; letter-spacing: -0.36px; }
.apr-candidato--grande .apr-candidato__foto { width: 70px; height: 70px; }
.apr-candidato--grande .apr-candidato__cabeca { height: 24px; margin-top: 1px; }
.apr-candidato--grande .apr-candidato__nome { font-size: 16px; line-height: 24px; letter-spacing: -0.32px; }
.apr-candidato--grande .apr-candidato__numero { font-size: 16px; line-height: 24px; letter-spacing: -0.32px; }
.apr-candidato--grande .apr-candidato__barra { margin-top: 8px; }
.apr-candidato--grande .apr-candidato__dados { gap: 8px; margin-top: 9px; color: var(--apr-texto); }
.apr-candidato--grande .apr-selo--eleito { padding: 2px 6px; }
.apr-candidato--grande .apr-candidato__pct { font-size: 24px; line-height: 24px; letter-spacing: -0.96px; }
.apr-candidato--grande .apr-candidato__pct small { font-size: 18px; line-height: 17px; letter-spacing: -0.96px; }
.apr-candidato--grande .apr-candidato__votos { align-self: center; font-size: 15px; line-height: 22px; letter-spacing: -0.225px; }

/* ---- Ver mais / ver menos (g1: glb-apc-button-show-more) ---- */
.apr-ver-mais { display: flex; align-items: center; gap: 4px; height: 40px; margin: 12px auto; padding: 8px; border: 1px solid var(--apr-acao); border-radius: 12px; background: transparent; color: var(--apr-acao); font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: -0.28px; }
.apr-ver-mais svg { width: 16px; height: 16px; transition: transform .15s ease; }
.apr-ver-mais[aria-expanded="true"] svg { transform: rotate(180deg); }

/* ---- Totais (g1: glb-apc-vote-stats) ---- */
.apr-totais { display: grid; grid-template-columns: repeat(5, 110px); justify-content: space-between; gap: 16px; padding: 16px; margin: 0; }
.apr-totais__linha { display: contents; }
.apr-totais__divisor { display: none; }
.apr-totais__item { display: flex; flex-direction: column; align-items: center; text-align: center; }
.apr-totais dt { font-size: 12px; font-weight: 400; line-height: 17px; letter-spacing: normal; color: var(--apr-texto); }
.apr-totais dd { margin: 0; font-size: 16px; font-weight: 700; line-height: 24px; letter-spacing: -0.32px; color: var(--apr-texto); }
.apr-totais dd + dd { font-size: 14px; font-weight: 400; line-height: 20px; letter-spacing: -0.14px; }

/* ---- Última atualização (g1: glb-apc-label-last-update) ---- */
.apr-atualizacao { margin: 12px 0 16px; font-size: 11px; font-weight: 400; line-height: 16px; color: #6e727a; }

/* ---- Subtítulo de bloco (g1: glb-apc-section-subtitle) ---- */
.apr-bloco { margin: 16px 0; }
.apr-subtitulo { margin: 0; padding: 16px 0; font-size: 18px; font-weight: 700; line-height: 22px; letter-spacing: -0.36px; color: var(--apr-texto); }

/* ---- Evolução da apuração (g1: glb-apc-timeline_chart) ---- */
[data-apr-evolucao] { margin-top: 28px; }
.apr-grafico { border: 1px solid var(--apr-borda); border-radius: 8px; }
.apr-grafico__area { padding: 16px; border-radius: 8px 8px 0 0; background: var(--apr-fundo-cartao); }
.apr-grafico__area { position: relative; }
.apr-grafico__area svg { display: block; width: 100%; height: 351px; overflow: visible; cursor: crosshair; touch-action: pan-y; }
/* Quadro do cursor (g1: tooltip-element, medido em 05/10/2026: branco, raio 4, 12px 8px, linhas de 24 px a cada 32) */
.apr-grafico__dica { position: absolute; z-index: 2; min-width: 206px; border-radius: 4px; background: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .12); pointer-events: none; }
.apr-grafico__dica[hidden] { display: none; }
.apr-grafico__dica ul { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 12px 8px; list-style: none; }
.apr-grafico__dica li { display: flex; align-items: center; gap: 6px; height: 24px; color: var(--apr-nome); }
.apr-grafico__dica .apr-sigla { margin-left: 0; }
.apr-grafico__dica-nome { flex: 1 1 auto; font-size: 10px; line-height: 17px; white-space: nowrap; }
.apr-grafico__dica strong { margin-left: 16px; font-size: 14px; font-weight: 600; line-height: 24px; color: var(--apr-titulo); white-space: nowrap; }
.apr-grafico__legenda { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; padding: 16px; border-radius: 0 0 8px 8px; }
.apr-grafico__item { flex: 1 1 0; min-width: 0; height: 20px; display: flex; align-items: center; gap: 6px; color: var(--apr-nome); font-size: 16px; line-height: 20.8px; }
.apr-grafico__item > span:last-child { font-size: 13px; line-height: 16px; }
.apr-grafico__vazio { display: flex; align-items: center; justify-content: center; height: 351px; color: var(--apr-secundario); font-size: 14px; text-align: center; }
.apr-grafico svg text { font-family: var(--apr-fonte); }
.apr-grafico .apr-eixo-y { font-size: 13px; font-weight: 700; fill: var(--apr-texto); }
.apr-grafico .apr-eixo-x { font-size: 12px; font-weight: 400; fill: var(--apr-secundario); }
.apr-grafico .apr-grade { stroke: #dcdfe3; stroke-width: 1; }
.apr-grafico .apr-curva { fill: none; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.apr-grafico .apr-selo-grafico text { font-size: 11px; font-weight: 700; fill: #fff; }

/* ---- Prévia do mapa (g1: glb-apc-map-link) ---- */
.apr-mapa-previa { border: 1px solid #e0e3e9; border-radius: 12px; background: #fff; overflow: hidden; }
.apr-mapa-previa__area { position: relative; background: var(--apr-fundo-cartao); }
.apr-mapa-previa__area svg { display: block; width: 100%; height: 489px; }
.apr[data-apr-uf="BR"] .apr-mapa-previa__area svg { height: 427px; }
.apr-mapa-previa__bandeira { position: absolute; top: 16px; right: 15px; width: 71px; height: 50px; object-fit: contain; }
.apr-mapa-previa__sigla { position: absolute; left: 16px; top: 425px; font-size: 44px; font-weight: 700; line-height: 48px; letter-spacing: -1px; color: transparent; -webkit-text-stroke: 1.5px var(--apr-acao); }
.apr-mapa-previa__lideres { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 12px 12px 11px; }
.apr-mapa-previa__lider { padding: 12px; border: 1px solid var(--apr-borda); border-radius: 12px; background: #fff; }
.apr-mapa-previa__lider { height: 80px; overflow: hidden; }
.apr-mapa-previa__lider .apr-candidato { grid-template-columns: 56px 1fr; grid-template-rows: 20px 3px 24px; }
.apr-mapa-previa__lider .apr-candidato__foto { width: 56px; height: 56px; }
.apr-mapa-previa__rodape { display: flex; justify-content: flex-end; align-items: center; gap: 12px; height: 44px; padding: 0 12px; background: #fff; }
.apr-mapa-previa__apurado { display: flex; align-items: center; gap: 4px; margin-right: auto; font-size: 13px; line-height: 19px; color: var(--apr-nome); }
.apr-mapa-previa__apurado strong { font-weight: 600; }
.apr .apr-mapa-previa__link { display: flex; align-items: center; gap: 4px; color: var(--apr-acao); font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: -0.28px; }
.apr-mapa-previa__link svg { width: 16px; height: 16px; }

/* ---- Acompanhe por zonas eleitorais (g1: glb-apc-zone-link) ---- */
.apr-zonas { margin: 32px 0; padding: 16px 0; }
.apr-zonas__titulo { margin: 0 0 16px; font-size: 18px; font-weight: 700; line-height: 23.4px; letter-spacing: -0.36px; color: #1f2329; }
.apr .apr-zonas__cartao { display: flex; gap: 16px; padding: 12px; border: 1px solid var(--apr-borda); border-radius: 16px; background: #fff; color: #454b54; }
.apr-zonas__mapa { position: relative; flex: none; width: 156px; height: 100px; border-radius: 16px; background: #f2f2f2; overflow: hidden; }
.apr-zonas__mapa::before { content: ""; position: absolute; inset: 10px 30px; background: #dfe2e6; -webkit-mask: url("../images/brasil-silhueta.svg") center / contain no-repeat; mask: url("../images/brasil-silhueta.svg") center / contain no-repeat; }
.apr-zonas__conteudo { flex: 1; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.apr-zonas__lugar { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; line-height: 20px; color: var(--apr-titulo); }
.apr-zonas__lugar img { width: 22px; height: 16px; }
.apr-zonas__lugar small { font-size: 12px; font-weight: 700; color: var(--apr-secundario); }
.apr-zonas__descricao { font-size: 16px; font-weight: 700; line-height: 20px; letter-spacing: -0.32px; color: var(--apr-acao); }

/* ---- Governadores na página nacional (g1: glb-apc-locations com filtro de região) ---- */
.apr-cartoes[data-recolhida="true"] > .apr-cartao:nth-child(n+5) { display: none; }
.apr-ver-mais--cartoes { margin: 18px auto 0; }

/* ---- Outros estados (g1: glb-apc-location-flag-list) ---- */
.apr-outros { display: flex; flex-direction: column; gap: 16px; padding: 16px 0; }
.apr-outros__titulo { margin: 0; font-size: 14px; font-weight: 400; line-height: 20px; color: var(--apr-nome); }
.apr-outros__lista { display: grid; grid-template-columns: repeat(6, 112px); gap: 12px; margin: 0; padding: 0; list-style: none; }
.apr .apr-outros__item { display: flex; justify-content: space-between; align-items: center; gap: 12px; height: 46px; padding: 8px 16px; border: 1px solid var(--apr-borda-chip); border-radius: 12px; background: #fff; color: #1f2123; font-size: 18px; font-weight: 700; line-height: 22px; }
.apr-outros__item img { width: 32px; height: 22px; object-fit: contain; }

@media (max-width: 767px) {
    .apr-candidato--grande { grid-template-columns: 60px 1fr; grid-template-rows: 20px 3px 25px; row-gap: 6px; column-gap: 10px; font-size: 15px; letter-spacing: -0.225px; }
    .apr-lista { font-size: 15px; letter-spacing: -0.225px; }
    .apr-candidato--grande .apr-candidato__foto { width: 60px; height: 60px; }
    .apr-candidato--grande .apr-candidato__cabeca { height: 20px; margin-top: 0; }
    .apr-candidato--grande .apr-candidato__nome, .apr-candidato--grande .apr-candidato__numero { font-size: 14px; line-height: 20px; letter-spacing: -0.21px; }
    .apr-candidato--grande .apr-candidato__barra { margin-top: 0; }
    .apr-candidato--grande .apr-candidato__dados { margin-top: 1px; gap: 4px; }
    .apr-candidato--grande .apr-candidato__pct { font-size: 18px; letter-spacing: -0.54px; }
    .apr-candidato--grande .apr-candidato__pct small { font-size: 12px; letter-spacing: 0; }
    .apr-candidato--grande .apr-candidato__votos { align-self: flex-end; font-size: 12px; line-height: 17px; letter-spacing: -0.24px; }
    .apr-ver-mais { height: 36px; font-size: 12px; line-height: 16px; letter-spacing: -0.18px; }
    .apr-totais { display: flex; flex-direction: column; gap: 16px; }
    .apr-totais__linha { display: flex; justify-content: space-between; }
    .apr-totais__linha:first-child { justify-content: center; gap: 33px; }
    .apr-totais__linha:first-child::after { content: none; }
    .apr-totais__divisor { display: block; height: 1px; background: var(--apr-borda); }
    .apr-totais__item { padding: 0 8px; }
    .apr-lista .apr-candidato--grande { column-gap: 10px; }
    .apr-totais dd { font-size: 14px; line-height: 20px; letter-spacing: -0.28px; }
    .apr-totais dd + dd { font-size: 12px; line-height: 17px; letter-spacing: 0; }
    .apr-subtitulo { font-size: 16px; line-height: 20px; letter-spacing: -0.32px; }
    .apr-grafico__area svg, .apr-grafico__vazio { height: 150px; }
    .apr-grafico__item { width: 154px; }
    .apr-mapa-previa__area svg { height: 356px; }
    .apr[data-apr-uf="BR"] .apr-mapa-previa__area svg { height: 356px; }
    .apr-mapa-previa__bandeira { top: 12px; right: 11px; width: 46px; height: 32px; }
    .apr-mapa-previa__sigla { font-size: 32px; line-height: 35px; left: 12px; top: 309px; }
    .apr-mapa-previa__lideres { grid-template-columns: 1fr; padding: 13px 13px 0; }
    .apr-mapa-previa__lider { border: 0; background: transparent; }
    .apr-mapa-previa__apurado { font-size: 12px; line-height: 18px; }
    .apr-zonas__titulo { font-size: 16px; line-height: 20px; letter-spacing: -0.32px; }
    .apr-outros__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .apr-so-desktop { display: none; }
}

/* ---- Celular (g1 em 390 px) ---- */
@media (max-width: 767px) {
    .apr-faixa { gap: 12px; }
    .apr-faixa__titulo { font-size: 14px; line-height: 20px; }
    .apr-faixa__menu { display: none; }
    .apr-status { border-bottom: 1px solid var(--apr-borda); }
    .apr-coluna { padding: 0 16px; }
    .apr-cabecalho { margin-top: 0; }
    .apr-lugar__gatilho { height: 44px; padding: 10px 0; gap: 8px; }
    .apr-lugar__icone { width: 20px; height: 20px; border-radius: 2px; }
    .apr-lugar__icone--bandeira { width: 23px; height: 16px; border-radius: 2px; }
    .apr-abas { overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
    .apr-abas::-webkit-scrollbar { width: 0; height: 0; display: none; }
    .apr-aba { flex: 0 0 96px; }
    .apr-grafico__item { flex: 0 0 calc(50% - 8px); }
    .apr-lugar__nome { font-size: 15px; line-height: 22px; letter-spacing: -0.225px; }
    .apr-lugar__seta { width: 24px; height: 24px; border-radius: 6px; }
    .apr-secao-cabecalho { height: 28px; }
    .apr-secao-titulo { font-size: 20px; line-height: 24px; letter-spacing: -0.6px; }
    .apr-info { width: 12px; height: 12px; margin: 3px 0 0 5px; }
    .apr-compartilhar { width: 44px; height: 28px; }
    .apr-compartilhar svg { width: 20px; height: 20px; }
    .apr-cartoes { grid-template-columns: minmax(0, 1fr); }
    .apr-cartao { width: auto; min-width: 0; margin-left: 0; }
    .apr-candidato { column-gap: 8px; }
    .apr-observacoes { padding: 0 16px; }
}

/* ---------- M3: cabeçalho do lugar preso ao rolar (g1: glb-apc-location-head apc-bar-sticky) ---------- */
.apr-barra {
    position: fixed; left: 0; right: 0; top: 0; z-index: 9990;
    background: #fff; border-bottom: 1px solid #ebedef;
    font-family: var(--apr-fonte); color: var(--apr-titulo);
    transform: translateY(-110%); transition: transform .5s ease-out; visibility: hidden;
}
.apr-barra--ativa { visibility: visible; }
.apr-barra--ativa.apr-barra--visivel { transform: translateY(0); }
.apr-barra__conteudo { display: flex; align-items: center; gap: 16px; max-width: 1336px; height: 68px; margin: 0 auto; padding: 0 16px; }
.apr-barra__lugar { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; padding: 0; border: 0; background: none; cursor: pointer; }
.apr-barra__lugar .apr-lugar__nome { font-size: 20px; font-weight: 700; line-height: 24px; letter-spacing: -0.5px; color: var(--apr-titulo); }
.apr-barra__lugar .apr-lugar__icone { display: flex; width: 26px; height: auto; }
.apr-barra__lugar .apr-lugar__icone img { width: 26px; height: auto; }
.apr-barra__abas { flex: 0 1 auto; width: auto; margin: 0 auto; }
.apr-barra__abas .apr-aba { flex: 0 0 auto; }
.apr-barra__menu { flex: 0 0 auto; }

/* ---------- M1: gaveta "Eleições" (g1: glb-apc-menu-central, 414 px) ---------- */
.apr-menu { position: fixed; inset: 0; z-index: 100000; }
.apr-menu[hidden] { display: none; }
html.apr-menu-aberto { overflow: hidden; }
.apr-menu__fundo { position: absolute; inset: 0; background: rgba(0, 0, 0, .4); }
.apr-menu__painel { position: absolute; top: 0; right: 0; bottom: 0; width: min(414px, 100%); overflow-y: auto; background: #fff; scrollbar-width: none; -ms-overflow-style: none; }
.apr-menu__painel::-webkit-scrollbar { width: 0; height: 0; display: none; }
.apr-menu__topo { position: relative; height: 157px; background: #f5f6f8; }
.apr-menu__fechar { display: flex; align-items: center; justify-content: center; width: 61px; height: 61px; padding: 0; border: 0; background: none; color: var(--apr-acao); cursor: pointer; }
.apr-menu__fechar svg { width: 24px; height: 24px; }
.apr-menu__marca { position: absolute; left: 17px; bottom: 14px; margin: 0; font-size: 19px; font-weight: 600; line-height: 20px; letter-spacing: -0.95px; color: #181818; }
.apr-menu__marca b { font-weight: 800; letter-spacing: -0.285px; color: var(--apr-acao); }
.apr-menu__busca { display: flex; flex-direction: column; gap: 8px; padding: 16px 16px 0; }
.apr-menu__busca h3 { margin: 0; font-size: 15px; font-weight: 700; line-height: 22px; letter-spacing: -0.3px; color: #333; }
.apr-menu__campo { position: relative; }
.apr-menu__campo > svg { position: absolute; top: 12px; left: 12px; width: 20px; height: 20px; pointer-events: none; }
.apr-menu__campo input { box-sizing: border-box; width: 100%; height: 44px; padding: 0 14px 0 40px; border: 1px solid #e4e7ec; border-radius: 8px; background: #fff; font-family: inherit; font-size: 14px; line-height: 20px; letter-spacing: -0.14px; color: #000; outline: none; -webkit-appearance: none; appearance: none; }
.apr-menu__campo input::placeholder { color: #757575; }
.apr-menu__sugestoes { position: absolute; z-index: 2; top: 43px; left: 0; right: 0; max-height: 280px; margin: 0; padding: 4px 0; overflow-y: auto; list-style: none; border: 1px solid #e4e7ec; border-radius: 0 0 8px 8px; background: #fff; }
.apr-menu__sugestoes[hidden] { display: none; }
.apr-menu__sugestoes a { display: flex; gap: 6px; padding: 8px 14px; font-size: 14px; line-height: 20px; color: #2f3134; }
.apr-menu__sugestoes a span { color: #6e727a; }
.apr-menu__sugestoes a:hover { background: #f5f6f7; }
.apr-menu__atalhos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin: 0; padding: 16px; list-style: none; }
.apr-menu__atalhos a { box-sizing: border-box; display: flex; align-items: flex-start; gap: 12px; height: 82px; padding: 12px 12px 8px; border: 1px solid #e4e7ec; border-radius: 8px; color: var(--apr-acao); }
.apr-menu__atalhos svg { flex: none; width: 34px; height: 32px; }
.apr-menu__atalhos span { font-size: 14px; font-weight: 600; line-height: 20px; letter-spacing: -0.21px; color: #181818; }

@media (max-width: 767px) {
    .apr-barra__conteudo { flex-wrap: wrap; gap: 0; height: auto; padding: 8px 16px 0; }
    .apr-barra__lugar { height: 36px; }
    .apr-barra__lugar .apr-lugar__nome { font-size: 16px; line-height: 20px; letter-spacing: -0.32px; }
    .apr-barra__menu { display: none; }
    .apr-barra__abas { flex: 0 0 100%; width: 100%; margin: 4px 0 8px; overflow-x: auto; scrollbar-width: none; }
    .apr-barra__abas::-webkit-scrollbar { display: none; }
    .apr-barra__abas .apr-aba { flex: 0 0 96px; }
}

/* ---- Legislativo: Senado (D6; g1: apc-overview-legislativo, glb-apc-location-flag-list, glb-apc-candidates-by-party,
   apc-seats-composition — medidos em 05/10/2026, 1366 e 390 px) ---- */
.apr-leg { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 16px; border: 1px solid var(--apr-borda); border-radius: 8px; }
.apr-leg__cabeca { padding: 12px 16px 8px; }
.apr .apr-leg__numero { margin: 0; font-size: 40px; font-weight: 700; line-height: 48px; letter-spacing: -1.6px; color: var(--apr-texto); }
.apr .apr-leg__subtitulo, .apr .apr-leg-uf__titulo { margin: 0; font-size: 16px; line-height: 24px; letter-spacing: -0.16px; color: var(--apr-texto); }
.apr .apr-leg__detalhe, .apr .apr-leg-uf__ocupada { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-size: 14px; line-height: 20px; letter-spacing: -0.14px; color: var(--apr-secundario); }
.apr-leg__grafico { display: flex; justify-content: center; align-items: flex-start; padding: 20px; }
.apr-hemiciclo { display: block; width: 286px; max-width: 100%; height: auto; }
.apr-hemiciclo circle { cursor: pointer; transition: opacity .12s ease; }
/* Legenda das cadeiras (extra nosso): fica no body, por isso não herda os tokens da .apr. */
.apr-dica-cadeira { position: fixed; z-index: 100000; max-width: 260px; padding: 6px 10px; border-radius: 8px; background: #2f3134; color: #fff; font-family: "Open Sans Apuracao", "Open Sans", Arial, sans-serif; font-size: 13px; font-weight: 600; line-height: 18px; letter-spacing: -0.13px; white-space: nowrap; box-shadow: 0 4px 12px rgba(0, 0, 0, .18); pointer-events: none; }
.apr-dica-cadeira[hidden] { display: none; }
.apr-leg__estados { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 12px; padding: 16px; min-width: 0; }
.apr .apr-leg__estados-titulo { margin: 0; font-size: 14px; font-weight: 600; line-height: 20px; letter-spacing: -0.14px; color: var(--apr-texto); }
/* Faixa de estados: uma linha só, rolando na horizontal com a barra escondida (como o g1). */
.apr-leg__chips { display: flex; gap: 8px; margin: 0; padding: 16px 0; list-style: none; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.apr-leg__chips::-webkit-scrollbar { width: 0; height: 0; display: none; }
.apr-leg__chips li { flex: none; }
.apr-uf-chip { display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 4px 8px; border: 1px solid var(--apr-borda-chip); border-radius: 8px; background: #fff; font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: -0.21px; color: #1f2123; }
.apr-uf-chip img { display: block; width: 28px; height: 20px; border: 1px solid var(--apr-borda-chip); border-radius: 2px; object-fit: cover; }
.apr-leg__composicao { grid-column: 1 / -1; }
.apr-leg__composicao:empty { display: none; }

.apr-partidos { display: flex; flex-direction: column; gap: 18px; margin: 0 0 12px; padding: 16px 0 0; }
.apr .apr-partidos__titulo { margin: 0 16px; font-size: 18px; font-weight: 700; line-height: 22px; letter-spacing: -0.36px; color: var(--apr-texto); }
.apr-partidos[data-recolhida="true"] > .apr-partido:nth-of-type(n+8) { display: none; }
.apr-partido__linha { display: flex; align-items: center; justify-content: space-between; width: calc(100% - 32px); height: 20px; margin: 0 16px; padding: 0; border: 0; background: transparent; color: var(--apr-texto); font-size: 16px; line-height: 20px; letter-spacing: -0.16px; text-align: left; }
.apr-partido__nome, .apr-partido__pct { display: flex; align-items: center; gap: 10px; }
.apr-partido__nome .apr-sigla { margin-left: 0; }
.apr-partido__pct strong { font-weight: 600; }
.apr-partido__pct svg { width: 20px; height: 20px; padding: 1px; color: var(--apr-acao); transition: transform .15s ease; }
.apr-partido__linha[aria-expanded="true"] svg { transform: rotate(180deg); }
.apr-partido__barra { height: 3px; margin: 6px 16px; border-radius: 12px; background: var(--apr-borda); overflow: hidden; }
.apr-partido__barra i { display: block; height: 100%; }
.apr-partido__membros:not([hidden]) { display: grid; grid-template-columns: repeat(auto-fill, minmax(298px, 1fr)); gap: 12px; padding: 6px 16px 0; }
.apr-membro { display: flex; flex-direction: column; justify-content: space-between; gap: 8px; min-height: 88px; padding: 12px; border: 1px solid var(--apr-borda); border-radius: 12px; }
.apr-membro__cabeca { display: flex; align-items: center; gap: 4px; min-width: 0; color: var(--apr-nome); font-size: 15px; font-weight: 400; line-height: 22px; letter-spacing: -0.225px; }
.apr-membro__nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apr-membro__numero { font-weight: 700; }
.apr-membro__dados { display: flex; align-items: center; justify-content: space-between; gap: 4px; }
.apr-membro__votos { font-size: 12px; line-height: 17px; color: var(--apr-secundario); }

.apr-leg-uf { display: grid; grid-template-columns: 1fr auto; margin: 0 0 16px; border: 1px solid var(--apr-borda); border-radius: 8px; }
.apr-leg-uf__texto { padding: 12px 16px 8px; }
.apr-leg-uf__ocupada i { width: 12px; height: 12px; border-radius: 50%; flex: none; }
.apr-leg-uf__ocupada .apr-info { margin: 0; }
.apr-leg-uf__bolas { display: grid; grid-template-columns: repeat(2, 44px); gap: 6px; align-content: start; padding: 16px; }
.apr-leg-uf__bolas i { width: 44px; height: 44px; border-radius: 50%; }
.apr .apr-leg-uf__link { grid-column: 1 / -1; justify-content: flex-end; gap: 6px; padding: 16px; letter-spacing: -0.28px; }

.apr-composicao { padding-top: 28px; }
.apr .apr-secao-titulo--menor { align-items: center; font-size: 18px; font-weight: 700; line-height: 22px; letter-spacing: -0.36px; }
.apr .apr-composicao__texto { margin: 0 0 16px; font-size: 14px; line-height: 20px; letter-spacing: -0.14px; color: var(--apr-nome); }
[data-apr-composicao-conteudo] { display: flex; flex-direction: column; gap: 16px; }
.apr-composicao__graficos { display: flex; align-items: center; justify-content: center; gap: 8px; height: 250px; padding: 0 16px; border-radius: 12px; background: var(--apr-fundo-cartao); }
.apr-composicao__graficos figure { display: flex; flex-direction: column; align-items: center; gap: 12px; width: 324px; margin: 0; }
.apr-composicao__graficos .apr-hemiciclo { width: 234px; }
.apr .apr-composicao__graficos figcaption { font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: -0.21px; color: #6e727a; }
.apr-composicao__seta { display: flex; margin: 8px; color: var(--apr-texto); }
.apr-composicao__seta svg { display: block; width: 24px; height: 24px; }
.apr-composicao__tabela { display: flex; flex-direction: column; gap: 16px; padding: 8px 16px 16px; border: 1px solid var(--apr-borda); border-radius: 12px; background: #fff; }
.apr-composicao__tabela table { width: 100%; border-collapse: collapse; }
.apr-composicao__tabela tr { display: grid; grid-template-columns: repeat(4, 82px); justify-content: space-between; align-items: center; padding: 8px 0; border-top: 1px solid var(--apr-borda-chip); font-size: 14px; line-height: 20px; letter-spacing: -0.14px; color: #1f2123; text-align: center; }
.apr-composicao__tabela thead tr { padding: 0 0 16px; border-top: 0; font-size: 13px; font-weight: 700; line-height: 19px; letter-spacing: -0.0663px; color: var(--apr-titulo); }
.apr-composicao__tabela tbody tr:first-child { padding-top: 0; border-top: 0; }
.apr-composicao__tabela th, .apr-composicao__tabela td { padding: 0; font-weight: inherit; }
.apr-composicao__tabela thead th:first-child { text-align: left; }
.apr-composicao__tabela th[scope="row"] { display: flex; justify-content: center; }
.apr-composicao__tabela .apr-sigla { margin: 0; }
.apr-composicao__tabela[data-recolhida="true"] tbody tr:nth-child(n+11) { display: none; }
.apr-composicao__tabela .apr-ver-mais { margin: 0 auto; }
.apr .apr-var { font-size: 13px; font-weight: 700; line-height: 19px; letter-spacing: -0.0663px; color: var(--apr-titulo); }
.apr .apr-var--ganho { color: #00913c; }
.apr .apr-var--perda { color: var(--apr-acao); }

@media (max-width: 767px) {
    .apr-leg { grid-template-columns: 1fr; }
    .apr-partido__membros:not([hidden]) { grid-template-columns: 1fr; }
    .apr-composicao__graficos { flex-direction: column; height: auto; padding: 24px 16px; }
    .apr-composicao__graficos figure { width: 234px; }
    .apr-composicao__seta { transform: rotate(90deg); }
    .apr .apr-secao-titulo--menor { font-size: 16px; line-height: 20px; letter-spacing: -0.32px; }
    .apr-leg { margin-bottom: 12px; }
    .apr-leg__estados { padding: 12px; }
    .apr .apr-partidos__titulo { margin: 0 12px; font-size: 16px; line-height: 20px; letter-spacing: -0.32px; }
    .apr-partido__linha { width: calc(100% - 24px); margin: 0 12px; font-size: 14px; letter-spacing: -0.14px; }
    .apr-partido__barra { margin: 6px 12px; }
    .apr-partido__membros:not([hidden]) { padding: 6px 12px 0; }
    .apr-membro { min-height: 86px; }
    .apr-membro__cabeca { font-size: 14px; line-height: 20px; letter-spacing: -0.21px; }
    .apr-membro__votos { letter-spacing: -0.24px; }
}

/* ---- Legislativo: Câmara e Assembleias (D7; g1: glb-apc-boxed-seats, glb-apc-candidatos-dense — medidos em 05/10/2026) ---- */
.apr-leg__grafico--bolas { justify-content: flex-end; padding: 16px; }
.apr-leg__bolas { display: grid; grid-template-columns: repeat(12, 20px); gap: 4px; align-content: start; width: 294px; }
.apr-leg__bolas i { display: block; width: 20px; height: 20px; border-radius: 50%; cursor: pointer; transition: opacity .12s ease; }
.apr-leg__rodape { grid-column: 1 / -1; display: flex; justify-content: flex-end; padding: 16px; }
.apr .apr-leg__rodape .apr-link-seta { gap: 6px; letter-spacing: -0.28px; }

/* Cartão denso: lista de candidatos e eleitos por partido no estado */
.apr-denso { display: flex; flex-direction: column; gap: 8px; min-width: 0; height: 80px; padding: 12px; border: 1px solid var(--apr-borda); border-radius: 12px; background: #fff; }
.apr-denso__cabeca { display: flex; align-items: center; gap: 4px; min-width: 0; height: 22px; color: var(--apr-nome); font-size: 15px; font-weight: 400; line-height: 22px; letter-spacing: -0.225px; }
.apr-denso__nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apr-denso__numero { flex: none; font-weight: 700; }
.apr-denso__dados { display: flex; align-items: center; gap: 4px; height: 24px; }
.apr-denso__pct { font-size: 18px; font-weight: 600; line-height: 24px; letter-spacing: -0.54px; color: var(--apr-texto); white-space: nowrap; }
.apr-denso__pct small { margin-left: 3px; font-size: 12px; font-weight: 600; line-height: 17px; }
.apr-denso__votos { margin-left: auto; font-size: 12px; line-height: 17px; letter-spacing: -0.24px; color: var(--apr-secundario); white-space: nowrap; }
.apr-denso .apr-selo { padding: 2px 6px; }
.apr-selo--subjudice { background: var(--apr-borda-chip); color: #46484d; }

/* Eleitos por partido no estado: cartões densos em duas colunas, sem recuo lateral (g1: 355 px, vão de 24 px) */
.apr-partidos--deputados .apr-partido__membros:not([hidden]) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; padding: 6px 0 0; }

/* Lista de candidatos */
.apr-densa { padding-top: 16px; }
.apr .apr-densa__titulo { margin: 0; padding: 16px 0; font-size: 18px; font-weight: 700; line-height: 22px; letter-spacing: -0.36px; color: var(--apr-texto); }
.apr-densa__busca { display: flex; height: 44px; margin: 0 0 16px; }
.apr-densa__campo { position: relative; flex: 1 1 auto; min-width: 0; display: block; }
.apr-densa__campo svg { position: absolute; left: 10px; top: 12px; width: 20px; height: 20px; color: var(--apr-acao); pointer-events: none; }
.apr-densa__campo input { width: 100%; height: 44px; margin: 0; padding: 0 8px 0 36px; border: 1px solid var(--apr-borda-chip); border-right: 0; border-radius: 8px 0 0 8px; background: #fff; color: #000; font: inherit; font-size: 16px; line-height: 20px; letter-spacing: -0.16px; outline: none; -webkit-appearance: none; appearance: none; }
.apr-densa__campo input::placeholder { color: #6e727a; }
.apr-densa__campo input::-webkit-search-cancel-button { display: none; }
.apr-densa__partido { flex: none; width: 130px; height: 44px; margin: 0; padding: 0 28px 0 16px; border: 1px solid var(--apr-borda-chip); border-radius: 0 8px 8px 0; background: var(--apr-borda) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0h10L5 6z' fill='%23181818'/%3E%3C/svg%3E") no-repeat right 12px center / 10px 6px; color: var(--apr-titulo); font: inherit; font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: -0.21px; cursor: pointer; -webkit-appearance: none; appearance: none; }
.apr-densa__abas { gap: 8px; margin: 0; }
.apr-densa__lista { display: grid; grid-template-columns: repeat(2, 352px); grid-auto-flow: column; justify-content: space-between; gap: 8px 32px; margin: 16px 0; }
.apr-densa__lista > .apr-vazio { grid-column: 1 / -1; }
.apr-densa__paginas { display: flex; align-items: center; justify-content: space-between; gap: 10px; height: 44px; }
.apr-densa__ponta { width: 72px; height: 44px; padding: 1px 6px; border: 1px solid var(--apr-acao); border-radius: 10px; background: transparent; color: var(--apr-acao); font-size: 15px; font-weight: 700; line-height: 22px; letter-spacing: -0.3px; }
.apr-densa__info { display: flex; align-items: center; gap: 4px; color: var(--apr-secundario); font-size: 16px; line-height: 22px; letter-spacing: -0.16px; }
.apr-densa__seta { display: flex; width: 24px; height: 24px; padding: 0; border: 0; background: none; color: var(--apr-acao); }
.apr-densa__seta svg { width: 24px; height: 24px; }
.apr-densa__pagina { width: 47px; height: 44px; margin: 0; padding: 1px 2px; border: 1px solid var(--apr-borda-chip); border-radius: 8px; background: #fff; color: #000; font: inherit; font-size: 16px; text-align: center; }
.apr-densa__pagina:focus { border-color: var(--apr-titulo); outline: none; }
.apr-densa__de { margin: 0 4px; }
.apr-densa ~ .apr-totais { margin-top: 0; }

@media (max-width: 767px) {
    .apr-leg__grafico--bolas { justify-content: flex-start; }
    .apr-leg__rodape { padding: 12px; }
    .apr-denso { height: 78px; }
    .apr-denso__cabeca { height: 20px; font-size: 14px; line-height: 20px; letter-spacing: -0.21px; }
    .apr-partidos--deputados .apr-partido__membros:not([hidden]) { grid-template-columns: 300px; }
    .apr .apr-densa__titulo { font-size: 16px; line-height: 20px; letter-spacing: -0.32px; }
    /* Celular: as duas colunas de 300 px rolam para o lado, sem barra à vista */
    .apr-densa__lista { grid-template-columns: repeat(2, 300px); justify-content: start; gap: 8px 24px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
    .apr-densa__lista::-webkit-scrollbar { width: 0; height: 0; display: none; }
}
