/* =====================================================================
   cr.css — visual novo do cristianorsousa.com (06/10/2026)
   ---------------------------------------------------------------------
   Estrutura copiada do site novo do Agro (agroelsner: assets/home.css +
   novo/_layout.php); cor escolhida por ele: opção 7 "Turquesa".
   Tudo fica sob body.cr — nenhuma tela antiga muda por causa deste arquivo.
   Moldura (cabeçalho, rodapé, barra do celular): _moldura.php.
   ⛔ Nas telas novas, cor só por token daqui (claro E escuro). Precisa de
      cor nova? cria o token nos dois temas.
   ===================================================================== */

body.cr {
    /* Marca — Turquesa (opção 7) */
    --cr-topo: #1d5c6b;          /* fundo do cabeçalho */
    --cr-marca: #22707f;         /* botões e links */
    --cr-marca-escura: #133f4a;  /* títulos */
    --cr-claro: #d6ecef;         /* detalhes claros sobre o topo */
    --cr-dourado: #E2B65A;       /* destaque: avatar, contador, ponto da logo */
    --cr-fundo: #f3f6f6;
    --cr-superficie: #ffffff;
    --cr-texto: #1c2b31;
    --cr-texto-2: #566870;
    --cr-linha: #dfe6e7;
    --cr-trilho: #e6ecec;
    --cr-icone-fundo: #e2eff1;
    --cr-seta: #94a6ac;
    /* só status */
    --cr-vencido: #a3301f;   --cr-vencido-bg: #fbeceb;
    --cr-atencao: #8a5208;   --cr-atencao-ponto: #d48a1e; --cr-atencao-bg: #fdf3e3;
    --cr-emdia: #2f7a3e;     --cr-emdia-bg: #e6f3e8;      /* verde: a marca já é azul-petróleo */
    --cr-bt-borda: #c5d6d9;
    --cr-sombra: rgba(19, 63, 74, .14);
    /* gráficos (06/10/2026): mesma paleta validada do Agro (daltonismo + contraste); a cor segue o item */
    --gr-1: #5f7a2e; --gr-2: #2f72d6; --gr-3: #d08a1c; --gr-4: #9b4fb0; --gr-5: #0f9c94; --gr-6: #c8502e; --gr-outros: #9aa08f;
    --gr-grade: #e7e5dd; --gr-eixo: #6b7163;
    /* eleições (07/10/2026): Lula (13) vermelho, Flávio Bolsonaro (22) azul — pedido dele; par validado (daltonismo + contraste) */
    --el-13: #c4362c; --el-22: #2563c9;
    /* blocos do Congresso (08/10): esquerda e direita com cor, centro neutro (escala divergente) */
    --el-esq: #c4362c; --el-dir: #2563c9; --el-cen: #7d8590;
    /* demais candidatos pelo bloco do partido (08/10): tons mais claros que Lula/Flávio para não confundir */
    --el-out-esq: #e08a83; --el-out-dir: #86a8e4; --el-out-cen: #8d949b;
    --el-banner-bg: #133f4a;   /* banner do 2º turno (09/10): etiqueta escura; fundo ouro (--cr-dourado), botão --el-banner-bt */
    --el-banner-bt: #22707f;   /* botão do banner: verde-petróleo do site, letra branca, igual nos dois temas */
    /* deputados (09/10): bloco do partido na bancada e no mapa — mesmas cores do plenário; partido fora da régua = --gr-5 */
    --el-bl-esq: var(--el-esq); --el-bl-cen: var(--el-cen); --el-bl-dir: var(--el-dir); --el-bl-out: var(--gr-5);
    --el-tinta: #10181b;   /* texto escuro sobre cor clara (ouro, laranja) nos dois temas — auditoria de layout 08/10 */

    margin: 0;
    background: var(--cr-fundo);
    color: var(--cr-texto);
    font-family: 'Nunito', system-ui, sans-serif;
    font-size: 15px;
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
}
html[data-theme="dark"] body.cr {
    --cr-topo: #164955;
    --cr-marca: #3a95a5;
    --cr-marca-escura: #bfe3e8;
    --cr-claro: #bfe3e8;
    --cr-fundo: #0f1517;
    --cr-superficie: #172024;
    --cr-texto: #e4edf0;
    --cr-texto-2: #a3b5bb;
    --cr-linha: #263236;
    --cr-trilho: #263236;
    --cr-icone-fundo: #1f3239;
    --cr-seta: #6f858c;
    --cr-vencido: #ff9b8c;   --cr-vencido-bg: #3a1f1c;
    --cr-atencao: #f3c27a;   --cr-atencao-ponto: #e3a03c; --cr-atencao-bg: #3a2c16;
    --cr-emdia: #8fd49c;     --cr-emdia-bg: #1b3320;
    --cr-bt-borda: #33444a;
    --cr-sombra: rgba(0, 0, 0, .4);
    --gr-1: #7a9a3a; --gr-2: #4a86e0; --gr-3: #c98500; --gr-4: #a865c0; --gr-5: #13a89f; --gr-6: #d05f38; --gr-outros: #6c7266;
    --gr-grade: #2c3326; --gr-eixo: #a4ab9a;
    --el-13: #e0574d; --el-22: #4a88e4;
    --el-esq: #e0574d; --el-dir: #4a88e4; --el-cen: #a3abb3;
    --el-out-esq: #f0948c; --el-out-dir: #8fb2f0; --el-out-cen: #a3abb3;
    --el-banner-bg: #1d5c6b;
    --el-tinta: #10181b;
    color-scheme: dark;
}

body.cr *, body.cr *::before, body.cr *::after { box-sizing: border-box; }
body.cr [hidden] { display: none !important; }
body.cr a { color: var(--cr-marca); text-decoration: none; }
html[data-theme="dark"] body.cr a { color: var(--cr-claro); }
body.cr .num { font-variant-numeric: tabular-nums; }
body.cr .ic { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor;
              stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
body.cr .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
body.cr :focus-visible { outline: 3px solid var(--cr-dourado); outline-offset: 2px; border-radius: 8px; }

/* ── Cabeçalho ──────────────────────────────────────────────────────── */
.cr-header { background: var(--cr-topo); color: #fff; padding: 0 56px; padding-top: env(safe-area-inset-top, 0px); }
.cr-header-linha { min-height: 76px; display: flex; align-items: center; gap: 24px; }
.cr-marca { display: flex; align-items: center; gap: 12px; color: #fff !important; flex: 0 0 auto; }
.cr-marca svg { width: 40px; height: 40px; }
.cr-marca-nome { display: flex; flex-direction: column; line-height: 1.15; }
.cr-marca-nome b { font-family: 'Quicksand', 'Nunito', sans-serif; font-weight: 700; font-size: 18px; }
.cr-marca-nome small { font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: rgba(255,255,255,.65); }

.cr-busca { flex: 1; max-width: 460px; margin-left: 16px; }
.cr-busca label { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 14px; border-radius: 10px;
                  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.8); }
.cr-busca input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; color: #fff; font: inherit; font-size: 14px; }
.cr-busca input::placeholder { color: rgba(255,255,255,.7); }
.cr-busca kbd { font: inherit; font-size: 11px; padding: 1px 6px; border-radius: 5px; border: 1px solid rgba(255,255,255,.3); color: rgba(255,255,255,.8); }

.cr-acoes { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.cr-icbtn { width: 44px; height: 44px; border: 0; border-radius: 10px; background: transparent; color: #fff !important; cursor: pointer;
            display: flex; align-items: center; justify-content: center; position: relative; }
.cr-icbtn:hover { background: rgba(255,255,255,.1); }
.cr-badge { position: absolute; top: 6px; right: 5px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
            background: var(--cr-dourado); color: #1b1b1b; font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.cr-sep { width: 1px; height: 28px; background: rgba(255,255,255,.2); margin: 0 10px; }
.cr-avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--cr-dourado); color: #1b1b1b; font-weight: 800; font-size: 14px;
             display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.cr-user { display: flex; flex-direction: column; line-height: 1.2; margin-left: 10px; }
.cr-user b { font-size: 14px; }
.cr-user a { color: rgba(255,255,255,.75) !important; font-size: 12px; }
.cr-user a:hover { color: #fff !important; text-decoration: underline; }
html[data-theme="dark"] body.cr .cr-ic-sol, body.cr .cr-ic-lua { display: block; }
html[data-theme="dark"] body.cr .cr-ic-lua, body.cr .cr-ic-sol { display: none; }

.cr-faixa { display: flex; align-items: center; gap: 28px; min-height: 46px; border-top: 1px solid rgba(255,255,255,.14); font-size: 13px; flex-wrap: wrap; }
.cr-faixa-item { display: flex; align-items: center; gap: 8px; }
.cr-faixa-item strong { font-size: 14px; }
.cr-faixa-item .det { color: rgba(255,255,255,.75); }
.cr-faixa-link { margin-left: auto; color: #fff !important; font-weight: 700; display: flex; align-items: center; gap: 6px; }
.cr-faixa-link .ic { width: 16px; height: 16px; }

/* ── Conteúdo ───────────────────────────────────────────────────────── */
.cr-main { max-width: 1328px; margin: 0 auto; padding: 32px 56px 40px; display: grid; gap: 24px; }
.cr-ola { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; }
.cr-ola h1 { margin: 0; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 30px; font-weight: 700; color: var(--cr-marca-escura); text-wrap: balance; }
.cr-ola p { margin: 2px 0 0; color: var(--cr-texto-2); }
.cr-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.cr-btn { height: 40px; padding: 0 18px; border-radius: 10px; font-weight: 700; font-size: 14px; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; cursor: pointer; border: 0; font-family: inherit; }
.cr-btn.pri { background: var(--cr-marca); color: #fff !important; }
.cr-btn.pri:hover { filter: brightness(1.08); }
.cr-btn.sec { background: var(--cr-superficie); color: var(--cr-marca) !important; border: 1px solid var(--cr-bt-borda); }
html[data-theme="dark"] body.cr .cr-btn.sec { color: var(--cr-claro) !important; }
.cr-btn.sec:hover { border-color: var(--cr-marca); }

.cr-aten { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; padding: 14px 18px; background: var(--cr-superficie);
           border: 1px solid var(--cr-linha); border-radius: 14px; }
.cr-aten-rot { font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--cr-texto-2); margin-right: 6px; }
.cr-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 14px; border-radius: 9999px; font-size: 13px; font-weight: 700; }
.cr-chip .ic { width: 16px; height: 16px; }
a.cr-chip:hover { filter: brightness(.97); }
.cr-chip.vencido { background: var(--cr-vencido-bg); color: var(--cr-vencido) !important; }
.cr-chip.atencao { background: var(--cr-atencao-bg); color: var(--cr-atencao) !important; }
.cr-chip.atencao::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cr-atencao-ponto); }
.cr-chip.info { background: var(--cr-icone-fundo); color: var(--cr-marca-escura) !important; }
.cr-chip.emdia { background: var(--cr-emdia-bg); color: var(--cr-emdia) !important; }

.cr-paineis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cr-card { background: var(--cr-superficie); border: 1px solid var(--cr-linha); border-radius: 16px; padding: 22px 24px; min-width: 0; }
.cr-card-top { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; color: inherit !important; }
.cr-ico { width: 44px; height: 44px; border-radius: 12px; background: var(--cr-icone-fundo); color: var(--cr-marca); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; position: relative; }
html[data-theme="dark"] body.cr .cr-ico { color: var(--cr-claro); }
.cr-card-top b { display: block; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 19px; color: var(--cr-marca-escura); line-height: 1.2; }
.cr-card-top small { display: block; font-size: 13px; color: var(--cr-texto-2); }
.cr-card-top .seta { margin-left: auto; color: var(--cr-seta); }
a.cr-card-top:hover .seta { color: var(--cr-marca); }
.cr-rotulo { font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--cr-texto-2); }
.cr-rotulo.vencido { color: var(--cr-vencido); } .cr-rotulo.emdia { color: var(--cr-emdia); }
.cr-grande { font-family: 'Quicksand', 'Nunito', sans-serif; font-weight: 700; font-size: 30px; line-height: 1.2; color: var(--cr-marca-escura); }
.cr-grande.vencido { color: var(--cr-vencido); } .cr-grande.emdia { color: var(--cr-emdia); }
.cr-pares { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--cr-linha); }
.cr-pares small { display: block; font-size: 12px; color: var(--cr-texto-2); }
.cr-pares b { font-size: 16px; }
.cr-trilho { height: 8px; border-radius: 4px; background: var(--cr-trilho); margin-top: 14px; overflow: hidden; }
.cr-trilho i { display: block; height: 100%; background: var(--cr-marca); border-radius: 4px; }
.cr-nota { font-size: 12px; color: var(--cr-texto-2); margin: 6px 0 0; }
.cr-lin { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--cr-linha); font-size: 14px; }
.cr-lin:last-child { border-bottom: 0; }
.cr-lin span { min-width: 0; }
.cr-lin b { font-weight: 700; white-space: nowrap; text-align: right; }
.cr-lin small { display: block; font-size: 12px; color: var(--cr-texto-2); }
.t-vencido { color: var(--cr-vencido); } .t-atencao { color: var(--cr-atencao); } .t-emdia { color: var(--cr-emdia); }
.cr-vazio { color: var(--cr-texto-2); font-size: 14px; padding: 10px 0; }

.cr-subrotulo { font-size: 13px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--cr-texto-2); margin: 8px 0 -10px; }
.cr-mods { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cr-mod { display: flex; flex-direction: column; background: var(--cr-superficie); border: 1px solid var(--cr-linha); border-radius: 14px;
          padding: 18px; min-width: 0; color: var(--cr-texto) !important; transition: border-color .15s, box-shadow .15s, transform .15s; }
.cr-mod:hover { border-color: var(--cr-marca); box-shadow: 0 10px 24px var(--cr-sombra); transform: translateY(-2px); }
.cr-mod b { margin-top: 12px; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 17px; color: var(--cr-marca-escura); display: flex; align-items: center; gap: 6px; }
.cr-mod b .ic { width: 14px; height: 14px; color: var(--cr-seta); }
.cr-mod small { font-size: 13px; color: var(--cr-texto-2); }
.cr-mod .ind { margin-top: 10px; font-size: 13px; font-weight: 700; color: var(--cr-marca); display: flex; align-items: center; gap: 6px; }
html[data-theme="dark"] body.cr .cr-mod .ind { color: var(--cr-claro); }
.cr-mod .ind.atencao { color: var(--cr-atencao); } .cr-mod .ind.atencao::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--cr-atencao-ponto); }
.cr-mod .ind.vencido { color: var(--cr-vencido); } .cr-mod .ind.emdia { color: var(--cr-emdia); }
.cr-mod-nome-curto { display: none; }
.cr-alerta::after { content: ""; position: absolute; top: -3px; right: -3px; width: 12px; height: 12px; border-radius: 50%; background: var(--cr-atencao-ponto); border: 2px solid var(--cr-superficie); }

.cr-admin { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px; padding-top: 18px; border-top: 1px solid var(--cr-linha); }
.cr-admin .cr-subrotulo { margin: 0 6px 0 0; }
.cr-admin a { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; font-size: 14px; }
.cr-admin a .ic { width: 17px; height: 17px; }
.cr-admin .cr-status { margin-left: auto; font-size: 13px; color: var(--cr-texto-2); display: flex; align-items: center; gap: 7px; }
.cr-admin .cr-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cr-emdia); }
.cr-busca-vazia { padding: 18px; text-align: center; color: var(--cr-texto-2); background: var(--cr-superficie); border: 1px dashed var(--cr-linha); border-radius: 14px; }

.cr-rodape { max-width: 1328px; margin: 0 auto; padding: 20px 56px 32px; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 13px; color: var(--cr-texto-2); }

/* ── Painéis flutuantes: avisos e "Mais" ─────────────────────────────── */
.cr-avisos { position: fixed; top: calc(70px + env(safe-area-inset-top, 0px)); right: 40px; z-index: 60; width: 360px; max-width: calc(100vw - 32px); max-height: 70vh; overflow: auto;
             background: var(--cr-superficie); border: 1px solid var(--cr-linha); border-radius: 14px; box-shadow: 0 18px 40px var(--cr-sombra); }
.cr-avisos h2 { margin: 0; font-size: 14px; }
.cr-avisos-cab { position: sticky; top: 0; z-index: 1; background: var(--cr-superficie); display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; padding: 12px 16px; border-bottom: 1px solid var(--cr-linha); }
.cr-avisos-bts { display: flex; gap: 4px; }
.cr-avisos-bts button { border: 0; background: none; padding: 4px 6px; border-radius: 6px; font: inherit; font-size: 12px; font-weight: 700; color: var(--cr-marca); cursor: pointer; }
.cr-avisos-bts button:hover { background: var(--cr-fundo); } .cr-avisos-bts button.perigo { color: var(--cr-vencido); }
.cr-aviso { padding: 12px 16px; border-bottom: 1px solid var(--cr-linha); font-size: 13px; }
.cr-aviso b { display: block; font-size: 14px; } .cr-aviso small { color: var(--cr-texto-2); }
.cr-aviso { display: flex; gap: 8px; align-items: flex-start; }
.cr-aviso-txt { flex: 1; min-width: 0; }
.cr-aviso:not(.lida) { background: var(--cr-icone-fundo); cursor: pointer; }
.cr-aviso:not(.lida) b::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--cr-marca); margin-right: 6px; vertical-align: 1px; }
.cr-aviso.lida b { font-weight: 600; } .cr-aviso.lida { color: var(--cr-texto-2); }
.cr-aviso-acoes { display: flex; gap: 2px; flex: 0 0 auto; }
.cr-aviso-acoes button { width: 30px; height: 30px; border: 0; border-radius: 8px; background: none; color: var(--cr-texto-2); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.cr-aviso-acoes button:hover { background: var(--cr-superficie); color: var(--cr-marca-escura); }
.cr-aviso-acoes .ic { width: 16px; height: 16px; }
.cr-mais { position: fixed; inset: 0; z-index: 80; background: rgba(0,0,0,.4); display: flex; align-items: flex-end; justify-content: center; }
.cr-mais-folha { width: 100%; max-width: 560px; max-height: 85vh; overflow: auto; background: var(--cr-superficie); border-radius: 20px 20px 0 0;
                 padding: 10px 16px calc(20px + env(safe-area-inset-bottom, 0px)); }
.cr-mais .puxador { width: 40px; height: 5px; border-radius: 3px; background: var(--cr-linha); margin: 4px auto 10px; }
.cr-mais h3 { margin: 14px 4px 6px; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--cr-texto-2); }
.cr-mais a, .cr-mais button.item { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 8px 10px; border-radius: 10px; border: 0; background: transparent;
                 font: inherit; font-weight: 700; color: var(--cr-texto) !important; cursor: pointer; text-align: left; }
.cr-mais a:hover, .cr-mais button.item:hover { background: var(--cr-fundo); }
.cr-mais .ic { color: var(--cr-marca); }

/* ── Janela de confirmação (crConfirmar) ────────────────────────────── */
.cr-modal { position: fixed; inset: 0; z-index: 90; background: rgba(0,0,0,.45); display: flex; align-items: center; justify-content: center; padding: 16px; }
.cr-modal-caixa { width: 100%; max-width: 420px; background: var(--cr-superficie); border: 1px solid var(--cr-linha); border-radius: 16px; padding: 22px 22px 18px; box-shadow: 0 24px 50px var(--cr-sombra); }
.cr-modal h2 { margin: 0 0 6px; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 19px; color: var(--cr-marca-escura); }
.cr-modal p { margin: 0 0 18px; color: var(--cr-texto-2); font-size: 14px; }
.cr-modal-bts { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
body.cr .cr-btn.pri.perigo { background: var(--cr-vencido); }
html[data-theme="dark"] body.cr .cr-btn.pri.perigo { background: #b9483a; }
body.cr .cr-btn.fino { height: 32px; padding: 0 12px; font-size: 13px; }
body.cr .cr-btn.sec.perigo { color: var(--cr-vencido) !important; border-color: var(--cr-vencido-bg); }
body.cr .cr-btn:disabled { opacity: .5; cursor: not-allowed; filter: none; }

/* ── Formulários e selos (telas novas) ──────────────────────────────── */
.cr-titulo { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.cr-titulo h1 { margin: 0; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 28px; color: var(--cr-marca-escura); }
.cr-titulo p { margin: 2px 0 0; color: var(--cr-texto-2); max-width: 70ch; }
.cr-voltar { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 9999px; border: 1px solid var(--cr-bt-borda); font-size: 13px; font-weight: 700; background: var(--cr-superficie); }
.cr-voltar .ic { width: 16px; height: 16px; }
.cr-campo { display: grid; gap: 6px; }
.cr-campo label { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--cr-texto-2); }
.cr-campo input { height: 42px; padding: 0 14px; border-radius: 10px; border: 1px solid var(--cr-bt-borda); background: var(--cr-superficie); color: var(--cr-texto); font: inherit; font-size: 15px; width: 100%; min-width: 0; }
.cr-campo input:focus { outline: none; border-color: var(--cr-marca); box-shadow: 0 0 0 3px var(--cr-icone-fundo); }
.cr-campo small { font-size: 12px; color: var(--cr-texto-2); }
.cr-selo { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 11px; border-radius: 9999px; font-size: 12px; font-weight: 800; }
.cr-selo.emdia { background: var(--cr-emdia-bg); color: var(--cr-emdia); }
.cr-selo.vencido { background: var(--cr-vencido-bg); color: var(--cr-vencido); }
.cr-selo.neutro { background: var(--cr-icone-fundo); color: var(--cr-marca-escura); }
.cr-aviso-tela { padding: 12px 16px; border-radius: 12px; font-size: 14px; font-weight: 700; }
.cr-aviso-tela.ok { background: var(--cr-emdia-bg); color: var(--cr-emdia); }
.cr-aviso-tela.erro { background: var(--cr-vencido-bg); color: var(--cr-vencido); }

/* ═════════ KIT DAS TELAS NOVAS (06/10/2026) — use estas classes, não crie card/tabela próprios ═════════ */
.cr-acoes-linha { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
/* cartões de número */
.cr-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.cr-kpi { display: block; background: var(--cr-superficie); border: 1px solid var(--cr-linha); border-radius: 14px; padding: 14px 16px; color: var(--cr-texto) !important; min-width: 0; }
a.cr-kpi:hover { border-color: var(--cr-marca); }
.cr-kpi small { display: block; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--cr-texto-2); }
.cr-kpi b { display: block; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 23px; color: var(--cr-marca-escura); line-height: 1.25; font-variant-numeric: tabular-nums; }
.cr-kpi span { font-size: 12px; color: var(--cr-texto-2); }
.cr-kpi.vencido b { color: var(--cr-vencido); } .cr-kpi.atencao b { color: var(--cr-atencao); } .cr-kpi.emdia b { color: var(--cr-emdia); }
/* abas */
.cr-abas { display: flex; gap: 4px; border-bottom: 1px solid var(--cr-linha); overflow-x: auto; scrollbar-width: none; }
.cr-abas a { padding: 10px 16px; font-weight: 800; font-size: 14px; color: var(--cr-texto-2) !important; border-bottom: 3px solid transparent; margin-bottom: -1px; white-space: nowrap; display: inline-flex; gap: 7px; align-items: center; }
.cr-abas a:hover { color: var(--cr-marca-escura) !important; }
.cr-abas a[aria-current="page"] { color: var(--cr-marca-escura) !important; border-color: var(--cr-marca); }
.cr-abas em { font-style: normal; font-size: 12px; background: var(--cr-icone-fundo); color: var(--cr-marca-escura); border-radius: 9999px; padding: 1px 8px; }
.cr-abas em.vencido { background: var(--cr-vencido-bg); color: var(--cr-vencido); }
/* filtros */
.cr-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.cr-filtros .cr-procurar { flex: 1 1 260px; display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 12px; border: 1px solid var(--cr-bt-borda); border-radius: 10px; background: var(--cr-superficie); min-width: 0; }
.cr-filtros .cr-procurar input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: 14px; color: var(--cr-texto); }
.cr-filtros .cr-procurar .ic { color: var(--cr-texto-2); width: 18px; height: 18px; }
.cr-filtros select, .cr-campo select, .cr-campo textarea { height: 38px; padding: 0 34px 0 12px; border: 1px solid var(--cr-bt-borda); border-radius: 10px; background: var(--cr-superficie);
  color: var(--cr-texto); font: inherit; font-size: 14px; appearance: none; -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--cr-texto-2) 50%), linear-gradient(135deg, var(--cr-texto-2) 50%, transparent 50%);
  background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50%; background-size: 5px 5px; background-repeat: no-repeat; max-width: 100%; }
.cr-campo textarea { height: auto; min-height: 84px; padding: 10px 12px; background-image: none; resize: vertical; width: 100%; }
.cr-campo select { width: 100%; height: 42px; }
.cr-resumo { font-size: 13px; color: var(--cr-texto-2); }
.cr-resumo a { font-weight: 800; }
/* tabela */
.cr-tabela-caixa { background: var(--cr-superficie); border: 1px solid var(--cr-linha); border-radius: 14px; overflow-x: auto; }
table.cr-tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.cr-tabela th { text-align: left; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--cr-texto-2); padding: 11px 14px; border-bottom: 1px solid var(--cr-linha); white-space: nowrap; }
.cr-tabela td { padding: 11px 14px; border-bottom: 1px solid var(--cr-linha); vertical-align: middle; }
.cr-tabela tr:last-child td { border-bottom: 0; }
.cr-tabela tbody tr:hover { background: var(--cr-fundo); }
.cr-tabela .num, .cr-tabela .dir { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cr-tabela .nome b { display: block; font-weight: 700; } .cr-tabela .nome small { display: block; font-size: 12px; color: var(--cr-texto-2); }
.cr-tabela a.nome-link { font-weight: 800; color: var(--cr-marca) !important; }
.cr-tabela .acoes { text-align: right; white-space: nowrap; } .cr-tabela .acoes form { display: inline; }
.cr-vazio-lista { padding: 28px 16px; text-align: center; color: var(--cr-texto-2); }
/* botão fino de linha (30px) */
body.cr .cr-bt { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 11px; border-radius: 8px; border: 1px solid var(--cr-bt-borda); background: var(--cr-superficie);
  color: var(--cr-marca) !important; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap; }
html[data-theme="dark"] body.cr .cr-bt { color: var(--cr-claro) !important; }
body.cr .cr-bt:hover { border-color: var(--cr-marca); }
body.cr .cr-bt .ic { width: 15px; height: 15px; }
body.cr .cr-bt.perigo { color: var(--cr-vencido) !important; border-color: var(--cr-vencido-bg); }
body.cr .cr-bt.so-ic { width: 30px; padding: 0; justify-content: center; }
body.cr .cr-bt[hidden] { display: none !important; }
/* paginação */
.cr-pags { display: flex; justify-content: center; align-items: center; gap: 14px; font-size: 14px; font-weight: 700; padding: 6px 0; }
.cr-pags .off { color: var(--cr-texto-2); opacity: .5; } .cr-pags .info { color: var(--cr-texto-2); font-weight: 600; }
/* formulário */
.cr-form { display: grid; gap: 16px; }
.cr-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cr-campos.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cr-campos.c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cr-campos .inteiro { grid-column: 1 / -1; }
.cr-campo input[type=date], .cr-campo input[type=number], .cr-campo input[type=email], .cr-campo input[type=tel] { height: 42px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--cr-bt-borda);
  background: var(--cr-superficie); color: var(--cr-texto); font: inherit; font-size: 15px; width: 100%; min-width: 0; }
.cr-campo select:focus, .cr-campo textarea:focus, .cr-filtros select:focus { outline: none; border-color: var(--cr-marca); box-shadow: 0 0 0 3px var(--cr-icone-fundo); }
.cr-campo .obrig { color: var(--cr-vencido); }
.cr-pe { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding-top: 14px; border-top: 1px solid var(--cr-linha); }
.cr-pe .lado { display: flex; gap: 8px; flex-wrap: wrap; }
/* liga/desliga como mini card (regra 4) */
.cr-opcoes { display: flex; gap: 10px; flex-wrap: wrap; }
.cr-opcao { position: relative; display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid var(--cr-bt-borda); border-radius: 12px; background: var(--cr-superficie); cursor: pointer; font-weight: 700; font-size: 14px; }
.cr-opcao input { position: absolute; opacity: 0; pointer-events: none; }
.cr-opcao small { display: block; font-weight: 600; font-size: 12px; color: var(--cr-texto-2); }
.cr-opcao:has(input:checked) { background: var(--cr-marca); border-color: var(--cr-marca); color: #fff; }
.cr-opcao:has(input:checked) small { color: rgba(255,255,255,.8); }
.cr-opcao:has(input:focus-visible) { outline: 3px solid var(--cr-dourado); outline-offset: 2px; }
/* arrastar e soltar (regra 6-B) — <label class="cr-soltar"><input type=file data-arrastar> */
.cr-soltar { display: grid; place-items: center; gap: 4px; text-align: center; padding: 18px; border: 2px dashed var(--cr-bt-borda); border-radius: 12px; background: var(--cr-fundo); cursor: pointer; color: var(--cr-texto-2); font-size: 14px; }
.cr-soltar b { color: var(--cr-marca); } .cr-soltar input { display: none; }
.cr-soltar.sobre { border-color: var(--cr-marca); background: var(--cr-icone-fundo); }
.cr-soltar .escolhido { color: var(--cr-texto); font-weight: 700; display: flex; gap: 8px; align-items: center; }
/* selo de situação extra */
.cr-selo.atencao { background: var(--cr-atencao-bg); color: var(--cr-atencao); }
.cr-selo.fino { height: 22px; font-size: 11px; padding: 0 9px; }
/* janela de formulário (diálogo nativo estilizado) */
dialog.cr-janela { border: 1px solid var(--cr-linha); border-radius: 16px; padding: 0; width: min(560px, calc(100vw - 32px)); background: var(--cr-superficie); color: var(--cr-texto); box-shadow: 0 24px 50px var(--cr-sombra); }
dialog.cr-janela::backdrop { background: rgba(0,0,0,.45); }
.cr-janela-cab { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--cr-linha); }
.cr-janela-cab h2 { margin: 0; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 18px; color: var(--cr-marca-escura); }
.cr-janela-corpo { padding: 18px 20px; display: grid; gap: 14px; max-height: 70vh; overflow: auto; }
.cr-janela .cr-pe { padding: 14px 20px; }
@media (max-width: 980px) { .cr-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cr-campos.c3, .cr-campos.c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
    .cr-campos, .cr-campos.c3, .cr-campos.c4 { grid-template-columns: minmax(0, 1fr); }
    .cr-kpi b { font-size: 19px; }
    /* tabela vira lista de cartões no celular: cada <td data-rotulo="…"> mostra o rótulo */
    table.cr-tabela.cartoes thead { display: none; }
    table.cr-tabela.cartoes, .cr-tabela.cartoes tbody, .cr-tabela.cartoes tr, .cr-tabela.cartoes td { display: block; width: 100%; }
    .cr-tabela.cartoes tr { padding: 12px 14px; border-bottom: 1px solid var(--cr-linha); }
    .cr-tabela.cartoes td { padding: 3px 0; border: 0; text-align: left !important; display: flex; justify-content: space-between; gap: 10px; }
    .cr-tabela.cartoes td[data-rotulo]::before { content: attr(data-rotulo); font-size: 12px; color: var(--cr-texto-2); font-weight: 700; }
    .cr-tabela.cartoes td.nome { display: block; } .cr-tabela.cartoes td.acoes { justify-content: flex-start; flex-wrap: wrap; padding-top: 8px; }
    .cr-pe { flex-direction: column-reverse; } .cr-pe .lado { justify-content: stretch; } .cr-pe .lado > * { flex: 1; justify-content: center; }
}

/* ── Barra do celular ───────────────────────────────────────────────── */
.cr-nav { display: none; }

/* ── Responsivo ─────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
    .cr-header, .cr-main, .cr-rodape { padding-left: 28px; padding-right: 28px; }
    .cr-mods { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cr-user { display: none; }
}
@media (max-width: 980px) {
    .cr-paineis { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .cr-busca { display: none; }
}
@media (max-width: 767px) {
    body.cr { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
    .cr-header { padding-left: 16px; padding-right: 16px; }
    .cr-header-linha { min-height: 60px; gap: 10px; }
    .cr-marca svg { width: 34px; height: 34px; } .cr-marca-nome b { font-size: 16px; }
    .so-desk, .cr-sep, .cr-avatar { display: none !important; }
    .cr-faixa { gap: 16px; min-height: 40px; font-size: 12px; }
    .cr-faixa .longo, .cr-faixa-link { display: none; }
    .cr-main { padding: 18px 16px 24px; gap: 16px; }
    .cr-rodape { display: none; }
    .cr-ola h1 { font-size: 23px; }
    .cr-ola .cr-btns { display: none; }       /* no celular o Lançar fica no meio da barra de baixo */
    .cr-aten { padding: 12px; }
    .cr-aten-rot { display: none; }
    .cr-aten .cr-chip.extra { display: none; }
    .cr-aten.aberto .cr-chip.extra { display: inline-flex; }
    .cr-paineis { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .cr-paineis .cr-card.so-desk-card { display: none; }
    .cr-card { padding: 18px; }
    .cr-grande { font-size: 26px; }
    /* módulos viram grade de ícones, 3 por linha (regra do Agro, 05/10/2026) */
    .cr-mods { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 8px; }
    .cr-mod { background: transparent; border: 0; padding: 0; align-items: center; text-align: center; }
    .cr-mod:hover { box-shadow: none; transform: none; }
    .cr-mod .cr-ico { width: 56px; height: 56px; border-radius: 16px; }
    .cr-mod .cr-ico .ic { width: 26px; height: 26px; }
    .cr-mod b { margin-top: 7px; font-family: 'Nunito', sans-serif; font-size: 12px; font-weight: 700; color: var(--cr-texto); justify-content: center; }
    .cr-mod b .ic, .cr-mod small, .cr-mod .ind { display: none; }
    .cr-mod .cr-mod-nome { display: none; } .cr-mod .cr-mod-nome-curto { display: inline; }
    .cr-alerta::after { border-color: var(--cr-fundo); }
    /* no celular os grupos viram UMA grade contínua de ícones (sem ícone sozinho na linha) */
    #crModulos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 8px; }
    #crModulos::before { content: "Módulos"; grid-column: 1 / -1; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--cr-texto-2); }
    #crModulos .cr-grupo, #crModulos .cr-mods { display: contents !important; }
    #crModulos .cr-subrotulo { display: none; }
    #crModulos .cr-busca-vazia { grid-column: 1 / -1; }
    .cr-admin { display: none; }
    .cr-avisos { right: 16px; top: calc(64px + env(safe-area-inset-top, 0px)); }

    .cr-nav { display: grid; grid-template-columns: repeat(5, 1fr); align-items: center; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
              height: calc(68px + env(safe-area-inset-bottom, 0px)); padding-bottom: env(safe-area-inset-bottom, 0px);
              background: var(--cr-superficie); border-top: 1px solid var(--cr-linha); }
    .cr-nav a, .cr-nav button { display: flex; flex-direction: column; align-items: center; gap: 3px; font: inherit; font-size: 11px; font-weight: 700;
              color: var(--cr-texto-2) !important; background: none; border: 0; cursor: pointer; padding: 0; }
    .cr-nav .ativo { color: var(--cr-marca) !important; }
    html[data-theme="dark"] body.cr .cr-nav .ativo { color: var(--cr-claro) !important; }
    .cr-nav .lancar span { width: 50px; height: 50px; border-radius: 15px; background: var(--cr-marca); color: #fff; display: flex; align-items: center; justify-content: center;
              margin-top: -26px; box-shadow: 0 8px 18px var(--cr-sombra); }
}
@media (prefers-reduced-motion: reduce) { .cr-mod { transition: none; } .cr-mod:hover { transform: none; } }

/* rótulo de campo em maiúsculas só no título do campo — não nas opções nem na área de arquivo (06/10/2026) */
.cr-campo label.cr-soltar, .cr-campo label.cr-opcao, .cr-campo .cr-acoes-linha label { text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 700; color: var(--cr-texto); }
.cr-campo label.cr-soltar { color: var(--cr-texto-2); font-weight: 600; }
.cr-campo label.cr-opcao:has(input:checked) { color: #fff; }

/* coluna da área principal nunca passa da tela: sem isso um item largo esticava a página no celular (06/10/2026) */
.cr-main { grid-template-columns: minmax(0, 1fr); }
.cr-main > * { min-width: 0; }

/* ── Eleições — apuração (eleicoes.php, 07/10/2026) ───────────────────────────────────────────
   Cor de candidato só na marca (bolinha, barra, mapa); número e nome ficam na cor do texto.
   13 → --el-13, 22 → --el-22; governadores: --gr-3 e --gr-4 (fixos pelo número, nunca pela posição). */
.el-seg { display: inline-flex; background: var(--cr-trilho); border-radius: 10px; padding: 3px; gap: 2px; }
.el-seg a, .el-seg button { height: 32px; padding: 0 14px; border-radius: 8px; border: 0; background: none; font: inherit; font-size: 14px; font-weight: 800; color: var(--cr-texto-2) !important; display: inline-flex; align-items: center; cursor: pointer; white-space: nowrap; }
.el-seg [aria-current="page"], .el-seg [aria-pressed="true"] { background: var(--cr-superficie); color: var(--cr-marca-escura) !important; box-shadow: 0 1px 3px var(--cr-sombra); }
.el-linha { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.el-status { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: 13px; color: var(--cr-texto-2); }
.el-vivo { width: 9px; height: 9px; border-radius: 50%; background: var(--cr-emdia); display: inline-block; }
.el-vivo.pulsa { animation: el-pulsa 1.6s ease-in-out infinite; }
@keyframes el-pulsa { 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .el-vivo.pulsa { animation: none; } }

.el-placar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.el-cand { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 14px; align-items: center; }
.el-cand .bola { grid-row: span 3; width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-family: 'Quicksand', sans-serif; font-weight: 700; font-size: 21px; }
.el-cand .nome { font-family: 'Quicksand', 'Nunito', sans-serif; font-weight: 700; font-size: 19px; color: var(--cr-marca-escura); line-height: 1.2; }
.el-cand .nome small { font-family: 'Nunito', sans-serif; font-size: 12px; font-weight: 700; color: var(--cr-texto-2); margin-left: 6px; }
.el-cand .pct { font-family: 'Quicksand', 'Nunito', sans-serif; font-weight: 700; font-size: 42px; line-height: 1.05; color: var(--cr-texto); font-variant-numeric: tabular-nums; }
.el-cand .vot { font-size: 15px; color: var(--cr-texto-2); font-variant-numeric: tabular-nums; }
.el-cand .vot b { color: var(--cr-texto); font-size: 18px; }
/* faixa da diferença abaixo do placar (08/10) */
.el-dif { display: flex; align-items: center; justify-content: center; gap: 8px 18px; flex-wrap: wrap; padding: 14px 20px; text-align: center; }
.el-dif .rot { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--cr-texto-2); }
.el-dif .val { font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 28px; line-height: 1.1; color: var(--cr-texto); font-variant-numeric: tabular-nums; }
.el-dif .val small { font-family: 'Nunito', sans-serif; font-size: 14px; font-weight: 600; color: var(--cr-texto-2); }
.el-dif .quem { font-size: 14px; color: var(--cr-texto-2); }
.el-dif .quem b { color: var(--cr-texto); }
.el-dif .pp-c { display: none; }
/* cartão das seções apuradas e botão Atualizar (08/10) */
.el-secoes { display: grid; gap: 8px; padding: 14px 20px; }
.el-secoes-l { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.el-secoes-l .rot { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--cr-texto-2); }
.el-secoes-l .val { font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 24px; color: var(--cr-marca-escura); font-variant-numeric: tabular-nums; }
.el-secoes-l.pe { font-size: 13px; color: var(--cr-texto-2); font-variant-numeric: tabular-nums; }
.el-atualizar { display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 11px; border-radius: 9999px; border: 1px solid var(--cr-bt-borda);
                background: var(--cr-superficie); color: var(--cr-marca); font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.el-atualizar:hover { border-color: var(--cr-marca); }
.el-atualizar .ic { width: 14px; height: 14px; }
.el-atualizar.girando .ic { animation: el-gira .8s linear infinite; }
@keyframes el-gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .el-atualizar.girando .ic { animation: none; } }
@media (max-width: 767px) { .el-secoes { padding: 12px 14px; } .el-secoes-l .val { font-size: 20px; } }
.el-sim { background: var(--cr-atencao-bg); color: var(--cr-atencao); border: 1px solid var(--cr-atencao-ponto); border-radius: 12px; padding: 10px 14px; font-weight: 800; font-size: 14px; text-align: center; letter-spacing: .02em; }
/* seletores estado + município e painel do município dentro do cartão do mapa (08/10) */
.el-sels { display: flex; gap: 8px; flex-wrap: wrap; }
.el-sels select { min-width: 170px; }
.el-sels select:disabled { opacity: .55; }
.el-mun-box { background: var(--cr-fundo); border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; }
.el-mun-box .el-cardh { margin-bottom: 10px; flex-wrap: nowrap; }
.el-mun-todos { margin-top: 12px; }
.el-mun-todos summary { color: var(--cr-marca); }
.el-mun-resto { margin-top: 12px; font-size: 13px; color: var(--cr-texto-2); }
.el-mun-box .el-cardh > div { min-width: 0; }
.el-mun-box h3 { margin: 0; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 17px; color: var(--cr-marca-escura); }
.el-mun-box p { margin: 2px 0 0; font-size: 13px; color: var(--cr-texto-2); }
.el-mun-x { height: 32px; padding: 0 9px; }
.el-mapa path[data-m] { cursor: pointer; }
/* celular: 2 linhas — "DIFERENÇA 2.224.965 votos" / "● Flávio Bolsonaro à frente · 1,87 p.p." */
@media (max-width: 767px) {
    .el-dif { display: grid; grid-template-columns: auto auto; justify-content: center; align-items: baseline; gap: 2px 10px; padding: 12px 14px; }
    .el-dif .val { font-size: 22px; white-space: nowrap; }
    .el-dif .quem { grid-column: 1 / -1; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .el-dif .pp-l { display: none; } .el-dif .pp-c { display: inline; }
}
.el-placar .cr-card.lider { border-color: var(--cr-marca); box-shadow: 0 0 0 1px var(--cr-marca); }

.el-duelo { position: relative; display: flex; gap: 2px; height: 22px; border-radius: 6px; overflow: hidden; background: var(--cr-trilho); }
.el-duelo span { display: block; height: 100%; min-width: 0; transition: width .6s ease; }
.el-duelo .meio { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 2px; background: var(--cr-texto); opacity: .55; }
.el-duelo.fino { height: 12px; border-radius: 4px; }
.el-duelo.fino .meio { top: -2px; bottom: -2px; }
.el-legduelo { display: flex; justify-content: space-between; font-size: 12px; color: var(--cr-texto-2); margin-top: 6px; }

.el-prog { height: 10px; border-radius: 9999px; background: var(--cr-trilho); overflow: hidden; }
.el-prog span { display: block; height: 100%; background: var(--cr-marca); border-radius: 9999px; transition: width .6s ease; }
.el-prog.fino { height: 6px; }
.el-apur { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 14px; align-items: center; }
.el-apur b { font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 20px; color: var(--cr-marca-escura); font-variant-numeric: tabular-nums; }

.el-nums { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.el-nums div { background: var(--cr-fundo); border-radius: 10px; padding: 10px 12px; min-width: 0; }
.el-nums small { display: block; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--cr-texto-2); }
.el-nums b { display: block; font-size: 17px; color: var(--cr-texto); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.el-nums span { font-size: 12px; color: var(--cr-texto-2); }
.el-demais { font-size: 13px; color: var(--cr-texto-2); }
.el-legduelo b { color: var(--cr-texto); }
.el-legduelo .dir { text-align: right; }
.el-outros { margin-top: 10px; font-size: 13px; color: var(--cr-texto-2); }
.el-outros summary { cursor: pointer; font-weight: 700; }
.el-outros ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 4px 20px; }
.el-outros li { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--cr-linha); padding: 4px 0; }
.el-outros li b { color: var(--cr-texto); font-variant-numeric: tabular-nums; }

.el-cardh { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.el-cardh h2 { margin: 0; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 19px; color: var(--cr-marca-escura); }
.el-cardh p { margin: 2px 0 0; font-size: 13px; color: var(--cr-texto-2); }
.el-cardh select { height: 36px; padding: 0 30px 0 10px; border: 1px solid var(--cr-bt-borda); border-radius: 10px; background: var(--cr-superficie); color: var(--cr-texto); font: inherit; font-size: 14px; }

.el-mapa-caixa { position: relative; }
.el-mapa { width: 100%; height: auto; max-height: 78vh; display: block; touch-action: manipulation; overflow: hidden; }   /* 13/10: com o município escolhido, o traço do zoom vazava 2 px no celular */
.el-mapa path { stroke: var(--cr-superficie); stroke-width: .35; vector-effect: non-scaling-stroke; }
.el-mapa .ufs path { fill: none; stroke: var(--cr-texto-2); stroke-width: .9; pointer-events: none; }
.el-mapa path.foco { stroke: var(--cr-texto); stroke-width: 2; }
.el-dica { position: absolute; pointer-events: none; background: var(--cr-superficie); border: 1px solid var(--cr-linha); border-radius: 10px; box-shadow: 0 6px 20px var(--cr-sombra); padding: 9px 12px; font-size: 13px; min-width: 190px; max-width: 260px; z-index: 5; }
.el-dica b { display: block; color: var(--cr-marca-escura); font-size: 14px; }
.el-dica .l { display: flex; justify-content: space-between; gap: 10px; align-items: center; font-variant-numeric: tabular-nums; }
.el-dica .l i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; }
.el-dica small { color: var(--cr-texto-2); }
.el-legenda { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: var(--cr-texto-2); margin-top: 10px; align-items: center; }
.el-legenda i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.el-legenda .esc { display: inline-flex; gap: 2px; margin-right: 6px; vertical-align: -1px; }
.el-legenda .esc i { margin: 0; }

.el-tab .nome b { font-weight: 800; }
.el-tab tr.reg td { background: var(--cr-fundo); font-weight: 800; }
.el-tab tr.br td { font-weight: 800; }
.el-tab td.duelo { width: 38%; min-width: 180px; }
.el-tab td.apur { width: 16%; min-width: 110px; }
.el-tab td.apur span { font-size: 12px; color: var(--cr-texto-2); }
.el-tab .pp { display: flex; justify-content: space-between; font-size: 12px; color: var(--cr-texto-2); margin-top: 4px; font-variant-numeric: tabular-nums; }
.el-tab .pp b { color: var(--cr-texto); }

.el-govs { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.el-gov { display: grid; gap: 10px; }
.el-gov .cand { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 8px; align-items: baseline; font-size: 14px; }
.el-gov .cand i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; align-self: center; }
.el-gov .cand b { font-variant-numeric: tabular-nums; }
.el-gov .cand small { color: var(--cr-texto-2); font-size: 12px; }
.el-gov .cand .tx { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.el-aviso { text-align: center; padding: 40px 20px; color: var(--cr-texto-2); }
.el-aviso b { display: block; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 19px; color: var(--cr-marca-escura); margin-bottom: 6px; }
.el-espera { display: flex; flex-direction: column; align-items: center; margin-top: 16px; }   /* tela de espera do 2º turno (2ª auditoria 08/10) */
.el-espera > * + * { margin-top: 10px; }
.el-espera-rel { font-family: 'Quicksand', 'Nunito', sans-serif; font-weight: 700; font-size: 22px; color: var(--cr-marca-escura); }
.el-espera-disp { font-size: 15px; color: var(--cr-texto); }
.el-aviso .el-espera-disp b { display: inline; font-size: inherit; margin: 0; }

/* filtros (07/10): uma linha acima dos gráficos, logo depois do placar. 13/10 (pedido dele): FIXOS no lugar — não flutuam
   mais ao rolar, nem no computador ("atrapalha visualmente"); antes ficavam presos no topo (item C de 08/10) */
.el-filtros { padding: 16px 20px; position: relative; z-index: 40; }
#elMapa { scroll-margin-top: 16px; }
.el-filtros-linha { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto auto; gap: 12px 14px; align-items: end; }
.el-filtros-linha.com-uf { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, .8fr) auto auto; }
.el-filtros .cr-campo input, .el-filtros .cr-campo select { height: 38px; }
.el-filtros .el-seg { height: 38px; align-items: center; }
.el-filtros .el-seg button { height: 32px; padding: 0 11px; font-size: 13px; }
.el-filtros-fim { display: flex; align-items: end; }
.el-filtros-fim .cr-btn { height: 38px; }
.el-filtros-abre { display: none !important; }
/* sugestões do município (lista própria; o datalist não aparece no iPhone) */
.el-auto { position: relative; }
.el-sug { position: absolute; left: 0; right: 0; top: 100%; margin: 4px 0 0; padding: 4px; list-style: none; z-index: 20;
          background: var(--cr-superficie); border: 1px solid var(--cr-linha); border-radius: 10px; box-shadow: 0 8px 24px var(--cr-sombra); max-height: 320px; overflow-y: auto; }
.el-sug li { padding: 9px 10px; border-radius: 8px; cursor: pointer; font-size: 14px; color: var(--cr-texto); }
.el-sug li b { color: var(--cr-marca-escura); }
.el-sug li[aria-selected="true"], .el-sug li[data-i]:hover { background: var(--cr-icone-fundo); }
.el-sug li.vazio { color: var(--cr-texto-2); cursor: default; }
.el-resumo { margin: 10px 0 0; font-size: 13px; color: var(--cr-texto-2); }
.el-ponto { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 7px; vertical-align: 0; }
.el-vazio { text-align: center; color: var(--cr-texto-2); padding: 24px !important; }
.el-mun-lista { display: grid; gap: 12px; }
.el-mun-l { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: baseline; }
.el-mun-l .el-prog { grid-column: 1 / -1; }
.el-mun-l .tx { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.el-mun-l small { color: var(--cr-texto-2); font-size: 12px; }
.el-mun-l .num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.el-mapa path.sel { stroke: var(--cr-texto); stroke-width: 2.5; }

/* itens 1–6 (07/10): camadas do mapa, linha da virada, o que falta, viradas */
.el-camadas { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; font-size: 13px; font-weight: 800; color: var(--cr-texto-2); }
.el-camadas .el-seg { flex-wrap: wrap; }
.el-graf { position: relative; height: 300px; }
.el-nums div.ouro { background: var(--cr-dourado); }
body.cr .cr-selo.ouro { background: var(--cr-dourado); color: var(--cr-topo); }
body.cr .cr-selo.cinza { background: var(--cr-trilho); color: var(--cr-texto-2); }
.el-nums div.ouro small, .el-nums div.ouro b, .el-nums div.ouro span { color: var(--cr-topo); }
.el-nums.el-nums3 { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 16px; }
.el-falta { display: grid; gap: 8px; }
.el-falta-l { display: grid; grid-template-columns: 150px minmax(0, 1fr) 80px 175px; gap: 12px; align-items: center; font-size: 14px; }
.el-falta-l .num { text-align: right; font-variant-numeric: tabular-nums; }
.el-falta-l small { color: var(--cr-texto-2); font-size: 12px; white-space: nowrap; }
.el-falta-l small b { color: var(--cr-texto); }

/* acesso por link + senha e monitor (08/10) */
.el-entrada { max-width: 440px; width: 100%; margin: 24px auto; display: grid; gap: 12px; }
.el-entrada h1 { margin: 0; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 24px; color: var(--cr-marca-escura); }
.el-entrada p { margin: 0; color: var(--cr-texto-2); }
.el-entrada-form { display: grid; gap: 14px; margin-top: 6px; }
.el-entrada-form input { font-size: 16px; }
.el-entrada-form label small { text-transform: none; letter-spacing: 0; font-weight: 600; }
.el-entrada .cr-selo { height: auto; padding: 6px 12px; }
.el-badge { font-style: normal; font-size: 12px; font-weight: 800; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 9999px; background: var(--cr-emdia); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.el-nav button { position: relative; }
.el-badge-nav { position: absolute; top: 2px; right: 18%; }
.el-mon-caixa { max-width: 820px; max-height: 88vh; overflow: auto; }
.el-mon-link { display: flex; gap: 10px; align-items: center; justify-content: space-between; background: var(--cr-fundo); border-radius: 10px; padding: 10px 12px; font-size: 13px; margin-bottom: 12px; }
.el-mon-link span { min-width: 0; overflow-wrap: anywhere; }
.el-mon-lista { display: grid; gap: 2px; }
.el-mon-l { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 4px; border-bottom: 1px solid var(--cr-linha); }
.el-mon-l .q small { display: block; font-size: 12px; color: var(--cr-texto-2); }
.el-mon-l.fora { opacity: .65; }
.el-mon-l .cr-btn { height: 32px; font-size: 13px; }
.cr-btn.perigo-txt { color: var(--cr-vencido) !important; }
.el-mon-pe { display: flex; justify-content: flex-end; margin-top: 14px; }
.el-mon-pe .cr-btn:disabled { opacity: .45; cursor: default; }

@media (max-width: 980px) { .el-nums { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .el-filtros-linha, .el-filtros-linha.com-uf { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .el-filtros-linha > .cr-campo:has(.el-seg) { grid-column: 1 / -1; } }
@media (max-width: 767px) {
    .el-placar { gap: 10px; }
    .el-placar .cr-card { padding: 14px; }
    .el-cand { grid-template-columns: minmax(0, 1fr); }
    .el-cand .bola { grid-row: auto; width: 34px; height: 34px; font-size: 15px; }
    .el-cand .nome { font-size: 15px; } .el-cand .nome small { display: block; margin: 0; }
    .el-cand .pct { font-size: 30px; }
    .el-cand .vot b { font-size: 15px; } .el-cand .vot { font-size: 13px; }
    .el-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* tabela vira blocos: lugar + diferença em cima, apuração, barra na largura toda */
    .el-tab thead { display: none; }
    .el-tab, .el-tab tbody { display: block; }
    .el-tab tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; padding: 12px 14px; border-bottom: 1px solid var(--cr-linha); }
    .el-tab tr:last-child { border-bottom: 0; }
    .el-tab tr.reg { background: var(--cr-fundo); }
    .el-tab tr.reg td { background: none; }
    .el-tab td { padding: 0; border: 0 !important; min-width: 0 !important; width: auto !important; }
    .el-tab td.nome { grid-column: 1; grid-row: 1; }
    .el-tab td.num { grid-column: 2; grid-row: 1; }
    .el-tab td.apur { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; }
    .el-tab td.duelo { grid-column: 1 / -1; }
    .el-govs { grid-template-columns: minmax(0, 1fr); }
    .el-nums.el-nums3 { grid-template-columns: minmax(0, 1fr); }
    .el-legduelo { gap: 10px; font-size: 13px; }
    .el-legduelo .m50 { display: none; }
    .el-legduelo span { min-width: 0; }
    .el-outros ul { grid-template-columns: minmax(0, 1fr); }
    .el-graf { height: 240px; }
    .el-falta-l { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; }
    .el-falta-l .el-prog { grid-column: 1 / -1; grid-row: 2; }
    .el-falta-l small { grid-column: 1 / -1; }
    .el-camadas .el-seg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .el-camadas .el-seg button { justify-content: center; font-size: 13px; }
    .el-virtab thead { display: none; }
    .el-virtab, .el-virtab tbody { display: block; }
    .el-virtab tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 12px 14px; border-bottom: 1px solid var(--cr-linha); }
    .el-virtab td { padding: 0; border: 0 !important; text-align: left !important; font-size: 13px; }
    .el-filtros { padding: 12px; }
    .el-filtros.aberto { max-height: calc(100vh - 150px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
    #elMapa { scroll-margin-top: 80px; }
    .el-so-desk { display: none !important; }
    .el-filtros { position: static; }   /* 10/10 (pedido dele): no celular a barra de filtros fica no lugar, não flutua ao rolar */
    .el-sels { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: 100%; }
    .el-sels select { min-width: 0; width: 100%; }
    .el-sels select:only-child { grid-column: 1 / -1; }   /* 10/10: seletor sozinho (município do Governador) ocupa a linha — cortava "Todos os mun…" */
    .el-mun-box { padding: 12px; }
    .el-mon-caixa { padding: 16px; }
    .el-mon-link { flex-direction: column; align-items: stretch; }
    /* iPhone amplia a página ao tocar em campo com letra < 16px, e ela fica arrastando para o lado */
    .el-filtros input, .el-filtros select, .el-cardh select, #elGovSel, #elZoom { font-size: 16px !important; }
    .el-sug li { font-size: 15px; padding: 11px 10px; }
    .el-filtros-abre { display: flex !important; width: 100%; justify-content: center; }
    .el-filtros:not(.aberto) .el-filtros-linha { display: none; }
    .el-filtros.aberto .el-filtros-abre { margin-bottom: 12px; }
    .el-filtros-linha, .el-filtros-linha.com-uf { grid-template-columns: minmax(0, 1fr); }
    .el-filtros .el-seg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .el-filtros .el-seg button { padding: 0 4px; justify-content: center; font-size: 12px; }
    .el-filtros-fim .cr-btn { width: 100%; justify-content: center; }
    /* candidatos em blocos: nome + situação em cima, votos e % embaixo */
    .el-cands thead { display: none; }
    .el-cands, .el-cands tbody { display: block; }
    .el-cands tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 12px 14px; border-bottom: 1px solid var(--cr-linha); }
    .el-cands tr:last-child { border-bottom: 0; }
    .el-cands td { padding: 0; border: 0 !important; text-align: left !important; }
    .el-cands td.nome { grid-column: 1 / -1; }
}

/* ── TV da apuração (eleicoes.php?tv=1, 08/10/2026) — no espírito da TV do escritório: fundo da marca,
   conteúdo à esquerda, o canal flutuando à direita com sombra em duas camadas ─────────────────────── */
body.cr.el-tv-corpo { min-height: 100vh; overflow-x: hidden; background: radial-gradient(120% 90% at 0% 0%, var(--cr-topo) 0%, var(--cr-fundo) 62%) fixed; }
.el-tv-topo { display: flex; align-items: center; gap: 12px 14px; padding: 14px 2vw; flex-wrap: wrap; }
.el-tv-bt { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 14px; border-radius: 9999px; border: 1px solid var(--cr-bt-borda);
            background: var(--cr-superficie); color: var(--cr-texto) !important; font: inherit; font-weight: 800; font-size: 14px; cursor: pointer; white-space: nowrap; transition: opacity .4s; }
.el-tv-bt .ic { width: 18px; height: 18px; }
.el-tv-bt[aria-pressed="true"] { border-color: var(--cr-dourado); }
.el-tv-canais { display: inline-flex; padding: 3px; gap: 3px; background: var(--cr-superficie); border: 1px solid var(--cr-bt-borda); border-radius: 9999px; transition: opacity .4s; }
.el-tv-canais button { height: 30px; padding: 0 16px; border-radius: 9999px; border: 0; background: none; color: var(--cr-texto-2); font: inherit; font-weight: 800; font-size: 14px; cursor: pointer; }
.el-tv-canais button[aria-pressed="true"] { background: var(--cr-dourado); color: var(--cr-topo); }
.el-tv-marca { display: flex; align-items: center; gap: 10px; }
.el-tv-marca svg { width: 34px; height: 34px; }
.el-tv-marca b { font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 20px; color: var(--cr-texto); }
.el-tv-corpo .el-status { margin-left: auto; }
.el-tv-hora { display: grid; text-align: right; line-height: 1.1; }
.el-tv-hora b { font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 26px; color: var(--cr-texto); font-variant-numeric: tabular-nums; }
.el-tv-hora span { font-size: 12px; color: var(--cr-texto-2); }
.el-tv-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 2vw; padding: 0 2vw 2vw; align-items: start; }
.el-tv-pilha { display: grid; gap: 1vw; }
.el-tv-corpo .el-cand .pct { font-size: clamp(40px, 3.3vw, 72px); }
.el-tv-corpo .el-cand .nome { font-size: clamp(18px, 1.3vw, 26px); }
.el-tv-corpo .el-graf { height: 30vh; }
.el-tv-canal { position: sticky; top: 1vw; background: var(--cr-superficie); border-radius: 18px; overflow: hidden; border-top: 4px solid var(--cr-dourado);
               box-shadow: 0 2px 6px rgba(0, 0, 0, .35), 0 26px 60px rgba(0, 0, 0, .45); }
.el-tv-canal-cab { display: flex; align-items: center; gap: 14px; padding: 12px 16px; }
.el-tv-canal-cab img { height: 30px; width: auto; flex: 0 0 auto; }
.el-tv-canal-cab .tx { min-width: 0; flex: 1; }
.el-tv-canal-cab .tx b { display: block; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 18px; color: var(--cr-texto); }
.el-tv-canal-cab .tx small { display: block; font-size: 13px; color: var(--cr-texto-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.el-tv-ao { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--cr-dourado); margin-right: 6px; animation: el-pulsa 1.6s ease-in-out infinite; }
.el-tv-palco { position: relative; aspect-ratio: 16 / 9; background: var(--cr-fundo); }
.el-tv-palco iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }   /* a caixa manda, o quadro é absoluto (armadilha 1 da TV do escritório) */
body.tv-ocioso { cursor: none; }
body.tv-ocioso .el-tv-bt, body.tv-ocioso .el-tv-canais { opacity: 0; pointer-events: none; }
@media (max-width: 1000px) {
    .el-tv-grade { grid-template-columns: minmax(0, 1fr); }
    .el-tv-canal { position: static; order: -1; }
    .el-tv-corpo .el-status { margin-left: 0; width: 100%; }
    .el-tv-marca b { font-size: 17px; }
}

/* título do Governador com o estado escolhível (08/10) */
.el-gov-tit { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.el-gov-tit label { cursor: pointer; }
.el-gov-tit select { font: inherit; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: inherit; font-weight: 700; color: var(--cr-marca-escura);
                     background: var(--cr-superficie); border: 1px solid var(--cr-bt-borda); border-radius: 10px; height: 38px; padding: 0 30px 0 12px; cursor: pointer; max-width: 100%; }
.el-gov-tit select:focus { outline: none; border-color: var(--cr-marca); box-shadow: 0 0 0 3px var(--cr-icone-fundo); }
.el-tv-grade > .el-sim { grid-column: 1 / -1; }   /* a faixa de simulação ocupa a linha toda; não vira célula da grade */
.el-tv-corpo [data-acao="virada-tab"] { display: none; }
/* TV: selo "Matematicamente eleito — Nome" / "Eleito — Nome" (08/10), ouro da logo */
.el-tv-mat { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; padding: 16px 22px; border-radius: 9999px;
             background: var(--cr-dourado); color: var(--cr-topo); box-shadow: 0 2px 6px rgba(0, 0, 0, .3), 0 18px 40px rgba(0, 0, 0, .35);
             font-family: 'Quicksand', 'Nunito', sans-serif; text-align: center; animation: el-surge .5s ease-out; }
.el-tv-mat .ic { width: clamp(26px, 2vw, 40px); height: clamp(26px, 2vw, 40px); stroke-width: 2.2; }
.el-tv-mat span { font-size: clamp(16px, 1.25vw, 24px); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.el-tv-mat b { font-size: clamp(24px, 2vw, 40px); font-weight: 700; }
@keyframes el-surge { from { transform: scale(.94); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .el-tv-mat { animation: none; } }
@media (max-width: 767px) { .el-tv-mat { border-radius: 18px; padding: 12px 16px; gap: 4px 10px; } }

/* botões da TV na cor do site (08/10 — ele não gostou do preto): turquesa com texto branco; canal escolhido em ouro */
.el-tv-corpo .el-tv-bt { background: var(--cr-marca); border-color: var(--cr-marca); color: #fff !important; }
.el-tv-corpo .el-tv-bt:hover { filter: brightness(1.1); }
.el-tv-corpo .el-tv-bt[aria-pressed="true"] { border-color: var(--cr-dourado); box-shadow: 0 0 0 1px var(--cr-dourado); }
.el-tv-corpo .el-tv-canais { background: var(--cr-topo); border-color: var(--cr-marca); }
.el-tv-corpo .el-tv-canais button { color: #fff; }
.el-tv-corpo .el-tv-canais button[aria-pressed="true"] { background: var(--cr-dourado); color: var(--cr-topo); }
.el-tv-passos { margin: 8px 0 10px; padding-left: 20px; display: grid; gap: 6px; color: var(--cr-texto); }
.el-tv-corpo .cr-modal-caixa h2 { margin: 0 0 8px; font-family: 'Quicksand', 'Nunito', sans-serif; color: var(--cr-marca-escura); }
.el-tv-corpo .cr-modal-caixa p { margin: 0 0 6px; color: var(--cr-texto-2); }
.el-tv-corpo .cr-modal-bts { display: flex; justify-content: flex-end; margin-top: 12px; }
@media (display-mode: standalone) { .el-tv-topo { padding-top: max(14px, env(safe-area-inset-top)); } }

/* sem botão de tela cheia (iPhone): a troca de canal fica centralizada no topo (08/10) */
@media (max-width: 1000px) {
    body.tv-sem-cheia .el-tv-topo { justify-content: center; }
    body.tv-sem-cheia .el-tv-canais { order: -1; margin: 0 auto; }
    body.tv-sem-cheia .el-tv-topo::before { content: ''; order: 0; flex-basis: 100%; height: 0; }   /* quebra a linha logo depois dos canais */
}
/* 1º turno que foi para o 2º: o mesmo selo em turquesa (não é "eleito") */
.el-tv-mat.segundo { background: var(--cr-marca); color: #fff; }
/* selo do 2º turno menor e discreto (08/10 — "ficou muito grande") */
.el-tv-mat.segundo { padding: 8px 16px; gap: 10px; box-shadow: none; animation: none; }
.el-tv-mat.segundo .ic { width: 20px; height: 20px; }
.el-tv-mat.segundo span { font-size: 13px; }
.el-tv-mat.segundo b { font-size: 17px; }
@media (max-width: 767px) { .el-tv-mat.segundo { padding: 8px 12px; } .el-tv-mat.segundo b { font-size: 15px; } }
/* 08/10: na PÁGINA, "Eleito" e "2º turno" do mesmo tamanho, compactos (~metade do grande); na TV os dois ficam grandes */
body.cr:not(.el-tv-corpo) .el-tv-mat { padding: 8px 16px; gap: 10px; box-shadow: none; }
body.cr:not(.el-tv-corpo) .el-tv-mat .ic { width: 20px; height: 20px; }
body.cr:not(.el-tv-corpo) .el-tv-mat span { font-size: 13px; }
body.cr:not(.el-tv-corpo) .el-tv-mat b { font-size: 17px; }
.el-tv-corpo .el-tv-mat.segundo { padding: 16px 22px; gap: 14px; }
.el-tv-corpo .el-tv-mat.segundo .ic { width: clamp(26px, 2vw, 40px); height: clamp(26px, 2vw, 40px); }
.el-tv-corpo .el-tv-mat.segundo span { font-size: clamp(16px, 1.25vw, 24px); }
.el-tv-corpo .el-tv-mat.segundo b { font-size: clamp(24px, 2vw, 40px); }
@media (max-width: 767px) { body.cr:not(.el-tv-corpo) .el-tv-mat { padding: 8px 12px; } body.cr:not(.el-tv-corpo) .el-tv-mat b { font-size: 15px; } }

/* ── RELATÓRIO DE DESEMPENHO (eleicoes.php?rel=1, 08/10/2026) — só visualização ───────────── */
.el-rel-f { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.el-rel-f select { height: 40px; }
#elRel { display: grid; gap: 16px; }
#rCorpo { display: grid; gap: 16px; }
.el-rel-graf { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.el-rel-g { padding: 16px 18px; min-width: 0; }
.el-rel-g h3 { margin: 0; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 16px; color: var(--cr-marca-escura); }
.el-rel-g p { margin: 2px 0 10px; font-size: 13px; color: var(--cr-texto-2); }
.el-rel-cv { position: relative; height: 260px; }
.el-rel-g.alto .el-rel-cv { height: 520px; }
.el-ind { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
.el-ind-l { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid var(--cr-linha); }
.el-ind-l .nn { font-size: 12px; font-weight: 800; color: var(--cr-texto-2); font-variant-numeric: tabular-nums; }
.el-ind-l .tx b { display: block; font-size: 14px; font-weight: 700; color: var(--cr-texto); }
.el-ind-l .tx small { display: block; font-size: 12px; color: var(--cr-texto-2); }
.el-ind-l .val { font-weight: 800; color: var(--cr-marca-escura); text-align: right; font-variant-numeric: tabular-nums; max-width: 50vw; }
.el-rel-tab td small { color: var(--cr-texto-2); font-weight: 600; }
.el-rel-aviso { position: fixed; left: 50%; bottom: 90px; transform: translateX(-50%); z-index: 95; background: var(--cr-marca-escura); color: var(--cr-superficie);
                padding: 10px 16px; border-radius: 9999px; font-weight: 800; font-size: 14px; box-shadow: 0 8px 24px var(--cr-sombra); }
/* só visualização: sem seleção nem cópia; impressão sai em branco com o aviso */
.el-rel-corpo #elRel { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
@media print {
    body.el-rel-corpo > * { display: none !important; }
    body.el-rel-corpo::before { content: "Impressão desativada — este relatório é só para visualização."; display: block; padding: 40px; font: 700 18px sans-serif; }
}
@media (max-width: 980px) { .el-rel-f { grid-template-columns: repeat(2, minmax(0, 1fr)); } .el-ind { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 767px) {
    .el-rel-f { grid-template-columns: minmax(0, 1fr); }
    .el-rel-f select { font-size: 16px; }
    .el-rel-graf { grid-template-columns: minmax(0, 1fr); }
    .el-rel-g.alto .el-rel-cv { height: 460px; }
    .el-ind-l { grid-template-columns: 28px minmax(0, 1fr); }
    .el-ind-l .val { grid-column: 2; text-align: left; max-width: none; }
}
/* demais candidatos: % e votos lado a lado (08/10) */
.el-outros li .vv { display: inline-flex; gap: 8px; align-items: baseline; white-space: nowrap; }
.el-outros li .vv small { color: var(--cr-texto-2); font-size: 12px; font-variant-numeric: tabular-nums; }
.el-outros ul { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
@media (max-width: 767px) { .el-outros ul { grid-template-columns: minmax(0, 1fr); } }
/* dica dos gráficos do relatório (08/10) */
.el-rel-dica { display: flex; align-items: center; gap: 10px; margin: 0; padding: 10px 14px; border-radius: 12px; background: var(--cr-icone-fundo);
               color: var(--cr-marca-escura); font-size: 14px; }
.el-rel-dica .ic { flex: 0 0 auto; color: var(--cr-marca); }
.el-rel-g.inteiro { grid-column: 1 / -1; }   /* gráfico das capitais ocupa a largura toda (08/10) */
/* relatório, tabela "Candidatos": no celular cada linha vira cartão (08/10 — esticava fora da tela no iPhone) */
@media (max-width: 767px) {
    .el-rel-tab thead { display: none; }
    .el-rel-tab, .el-rel-tab tbody { display: block; }
    .el-rel-tab tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 10px; padding: 12px 14px; border-bottom: 1px solid var(--cr-linha); }
    .el-rel-tab tr:last-child { border-bottom: 0; }
    .el-rel-tab td { padding: 0; border: 0 !important; text-align: left !important; min-width: 0; }
    .el-rel-tab td.pos { display: none; }
    .el-rel-tab td.nome { grid-column: 1 / -1; }
    .el-rel-tab td.nome b::before { content: attr(data-pos); }
    .el-rel-tab td[data-rot]::before { content: attr(data-rot); display: block; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--cr-texto-2); }
    .el-rel-tab .cr-tabela-caixa, .el-rel-tab { overflow: visible; }
}
.el-rel-tab .pos-cel { display: none; }
@media (max-width: 767px) { .el-rel-tab .pos-cel { display: inline; color: var(--cr-texto-2); } }
/* painel do município: participação em números (08/10) */
.el-mun-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.el-mun-nums div { background: var(--cr-superficie); border-radius: 10px; padding: 8px 10px; min-width: 0; border: 1px solid transparent; }
.el-mun-nums div.dest { border-color: var(--cr-marca); box-shadow: 0 0 0 1px var(--cr-marca); }
.el-mun-nums small { display: block; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--cr-texto-2); }
.el-mun-nums b { display: block; font-size: 16px; color: var(--cr-texto); font-variant-numeric: tabular-nums; }
.el-mun-nums span { font-size: 12px; color: var(--cr-texto-2); }

/* ── plenários do relatório de partido (08/10) ── */
.el-plens { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.el-plen-tit { margin: 0; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 19px; color: var(--cr-marca-escura); }
.el-plen-sub { margin: 2px 0 10px; font-size: 13px; color: var(--cr-texto-2); }
.el-plen { width: 100%; height: auto; display: block; }
.el-plen circle { cursor: pointer; transition: opacity .15s; }
.el-plen-n { font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 0.22px; font-weight: 700; fill: var(--cr-texto); }
.el-plen-t { font-size: 0.08px; fill: var(--cr-texto-2); }
.el-plen-info { text-align: center; margin: 6px 0 4px; font-size: 14px; color: var(--cr-texto-2); min-height: 21px; }
.el-plen-info b { color: var(--cr-texto); }
.el-plen-leg { display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: center; font-size: 13px; color: var(--cr-texto-2); margin: 6px 0 10px; }
.el-plen-leg i { display: inline-block; width: 11px; height: 11px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; }
.el-plen-leg b { color: var(--cr-texto); }
.el-plen-part p, .el-class { margin: 4px 0; font-size: 13px; color: var(--cr-texto-2); }
@media (max-width: 980px) { .el-plens { grid-template-columns: minmax(0, 1fr); } }
/* comparativo das regiões: no celular cada região vira cartão com rótulos (08/10) */
.el-reg-tab td small { display: block; font-size: 12px; color: var(--cr-texto-2); font-weight: 600; }
@media (max-width: 767px) {
    .el-reg-tab tr { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .el-reg-tab td.nome { grid-column: 1 / -1; }
}

/* ── AUDITORIA DE LAYOUT (08/10/2026) ────────────────────────────────────────────────────
   contraste mínimo 4,5:1 para texto; nada menor que 12 px nas telas da eleição; alvos de toque ≥ 32 px */
#elConteudo .cr-selo.fino, #elRel .cr-selo.fino, .el-status .cr-selo.fino { font-size: 12px; }
.el-tv-mat.segundo .ic, .el-tv-mat.segundo span { color: inherit; }
html[data-theme="dark"] body.cr .el-tv-mat.segundo { background: var(--cr-topo); box-shadow: inset 0 0 0 1px var(--cr-marca); }   /* turquesa claro + branco dava 3,5:1 */
.el-tv-corpo .el-tv-bt { background: var(--cr-topo); border-color: var(--cr-marca); }                                                 /* TV é sempre escura: 3,5:1 → ~9:1 */
.el-tv-corpo .el-tv-canais button[aria-pressed="true"], body.cr .cr-selo.ouro, .el-tv-mat:not(.segundo) { color: var(--el-tinta); }  /* texto sobre ouro */
.el-cand .bola.clara { color: var(--el-tinta); }                                                                                      /* número sobre laranja: 2,9:1 → 7:1 */
.el-outros summary { min-height: 32px; display: flex; align-items: center; }                                                          /* era 19 px de altura */
@media (max-width: 767px) { .el-atualizar { height: 32px; padding: 0 13px; } }                                                        /* era 26 px */
.el-bloco-rot { color: var(--cr-texto); font-weight: 800; }
.el-bloco-rot i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: 0; }
.el-tab td.num small, .cr-tabela td.num small { font-size: 12px; }   /* nome sob a diferença: era 11,7 px (auditoria de layout 08/10) */
/* TV: aviso quando o vídeo não começa (08/10) */
.el-tv-palco { position: relative; }
.el-tv-semvideo { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 14px 18px; text-align: center;   /* faixa embaixo: o "Fazer login" do YouTube continua visível */
                  background: var(--cr-topo); color: #fff; }
.el-tv-semvideo[hidden] { display: none; }
.el-tv-semvideo b { font-size: 17px; }
.el-tv-semvideo span { max-width: 520px; font-size: 15px; line-height: 1.45; opacity: .9; }
.el-tv-semvideo .el-tv-bt { display: inline-flex; align-items: center; text-decoration: none; color: #fff; }
/* ── NAVEGADOR ANTIGO (TV Samsung Tizen 5.0 = Chrome 63, 08/10/2026) ─────────────────────────────
   Sem aspect-ratio, inset e clamp(): a caixa do vídeo ficava com altura 0 (vídeo sumido) e os tamanhos
   em clamp() caíam no padrão. O gap é tratado por assets/eleicoes-legado.js. */
@supports not (aspect-ratio: 1) {
  .el-tv-palco { height: 0; padding-top: 56.25%; }
  .el-tv-palco iframe { top: 0; left: 0; }
  .el-tv-semvideo { bottom: 0; left: 0; right: 0; }
  .cr-mais, .cr-modal { top: 0; right: 0; bottom: 0; left: 0; }
  .el-tv-corpo .el-cand .pct { font-size: 3.3vw; }
  .el-tv-corpo .el-cand .nome { font-size: 1.3vw; }
  .el-tv-mat .ic, .el-tv-corpo .el-tv-mat.segundo .ic { width: 2vw; height: 2vw; }
  .el-tv-mat span, .el-tv-corpo .el-tv-mat.segundo span { font-size: 1.25vw; }
  .el-tv-mat b, .el-tv-corpo .el-tv-mat.segundo b { font-size: 2vw; }
}
/* monitor: trocar link e senha (08/10) */
.el-mon-troca { margin: 0 0 12px; }
.el-mon-troca-l { display: flex; gap: 10px; }
.el-mon-troca-l input { flex: 1; min-width: 0; font-size: 16px; }
.el-mon-troca-ok { margin: 8px 0 0; font-size: 13px; color: var(--cr-texto); }
/* ── TV, 2ª foto (08/10): tudo na altura da tela, cartões mais baixos e com folga, selo embaixo do vídeo ──
   Espaços com margem/grid-gap (não gap no flex): a TV Samsung é Chrome 63. Coluna da direita = vídeo + selo. */
.el-tv-corpo .el-tv-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); grid-template-rows: auto auto; gap: 0 2.4vw; grid-gap: 0 2.4vw; padding-bottom: 1vw; }   /* 08/10: mais folga entre cartões e vídeo (pedido dele) */
.el-tv-corpo .el-tv-esq { grid-column: 1; grid-row: 1 / span 2; }
.el-tv-corpo .el-tv-canal { grid-column: 2; grid-row: 1; position: static; }
.el-tv-corpo .el-tv-grade > .el-tv-mat { grid-column: 2; grid-row: 2; margin-top: 3vh; align-self: start; }
.el-tv-corpo .el-tv-pilha { display: block; }
.el-tv-corpo .el-tv-pilha > * + * { margin-top: 1.6vh; }
.el-tv-corpo .el-placar { grid-gap: 1.6vh 1vw; }
.el-tv-corpo .el-placar .cr-card { padding: 1.4vh 1.2vw; }
.el-tv-corpo .el-cand { grid-column-gap: 12px; }
.el-tv-corpo .el-cand .pct { font-size: 2.5vw; }
.el-tv-corpo .el-cand .nome { font-size: 1.05vw; }
.el-tv-corpo .el-cand .bola { width: 2.4vw; height: 2.4vw; font-size: .95vw; }
.el-tv-corpo .el-dif { padding: 1vh 1.2vw; }
.el-tv-corpo .el-dif .val, .el-tv-corpo .el-dif b.n { font-size: 1.5vw; }
.el-tv-corpo .el-secoes { padding: 1.1vh 1.2vw; grid-gap: .6vh; }
.el-tv-corpo .el-secoes-l .val { font-size: 1.35vw; }
.el-tv-corpo #elVirada { padding: 1.4vh 1.2vw; }
.el-tv-corpo #elVirada h2 { font-size: 1.1vw; margin: 0; }
.el-tv-corpo #elVirada .el-cardh p, .el-tv-corpo #elViradaResumo { font-size: .75vw; margin: .3vh 0 0; }
/* o gráfico fica com o que sobra da altura da tela (topo + placar + diferença + seções ≈ 47vh) */
.el-tv-corpo .el-graf { height: calc(100vh - 52vh - 120px); min-height: 160px; margin-top: .8vh; }
/* TV antiga (classe sem-gap posta por eleicoes-legado.js): espaço fixo no selo e na faixa da diferença, mesmo antes da camada reaplicar */
.sem-gap .el-tv-mat > * + * { margin-left: 14px; }
.sem-gap .el-dif > * + * { margin-left: 16px; }
/* TV (08/10, pedido dele): a barra "CNN Brasil · AO VIVO" some junto com os botões (6 s sem mexer) e o vídeo fica
   flutuando sozinho; volta ao mexer o mouse/controle. max-height + transição: funciona na TV Samsung (Chrome 63). */
.el-tv-corpo .el-tv-canal-cab { max-height: 90px; transition: max-height .45s ease, padding .45s ease, opacity .3s ease; overflow: hidden; }
.el-tv-corpo .el-tv-canal { transition: border-color .45s ease, background-color .45s ease; }
body.tv-ocioso .el-tv-canal-cab { max-height: 0; padding-top: 0; padding-bottom: 0; opacity: 0; }
body.tv-ocioso .el-tv-canal { border-top-color: transparent; background-color: transparent; }
/* TV (08/10, pedido dele): selo de eleito no ALTO da coluna da direita e o vídeo centralizado na altura da tela.
   A grade ocupa a tela toda menos o topo; linha 1 = selo (some quando não há selo), linha 2 = vídeo no meio do que sobra. */
.el-tv-corpo .el-tv-grade { height: calc(100vh - 74px); grid-template-rows: auto minmax(0, 1fr); box-sizing: border-box; }
.el-tv-corpo .el-tv-grade > .el-tv-mat { grid-column: 2; grid-row: 1; margin-top: 0; margin-bottom: 2vh; align-self: start; }
.el-tv-corpo .el-tv-canal { grid-column: 2; grid-row: 2; align-self: center; }
/* o vídeo no meio da TELA (não do espaço abaixo do selo): ocupa as 2 linhas e se centraliza; o selo fica por cima, no alto */
.el-tv-corpo .el-tv-canal { grid-row: 1 / span 2; align-self: center; }
.el-tv-corpo .el-tv-grade > .el-tv-mat { position: relative; z-index: 2; }
/* ── TV: topo no modelo da TV do escritório (08/10, pedido dele) ──────────────────────────────────────
   Altura fixa e sem quebra de linha: o "ao vivo" trocava de largura a cada atualização e a linha quebrava,
   empurrando a tela inteira para baixo e de volta ("dá uma abaixada e volta"). Botões somem encolhendo
   (max-width), e o fio cresce no lugar — sem pulo. Margens, não gap: a TV é Chrome 63. */
.el-tv-corpo .el-tv-topo { flex-wrap: nowrap; height: 74px; box-sizing: border-box; padding: 0 2vw; overflow: hidden; }
.el-tv-corpo .el-tv-topo > * + * { margin-left: 1.1vw; }
.el-tv-corpo .el-tv-topo .el-tv-bt, .el-tv-corpo .el-tv-topo .el-tv-canais { max-width: 14em; overflow: hidden; white-space: nowrap; flex: 0 0 auto;
    transition: opacity .35s, max-width .35s, padding .35s, margin .35s, border-width .35s; }
.el-tv-corpo .el-tv-topo .el-tv-bt { height: 30px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; padding: 0 12px; }
body.tv-ocioso .el-tv-topo .el-tv-bt, body.tv-ocioso .el-tv-topo .el-tv-canais { max-width: 0; padding-left: 0; padding-right: 0; border-width: 0; margin-left: 0; }
.el-tv-fio { flex: 1 1 auto; min-width: 2vw; height: 1px; background: linear-gradient(90deg, var(--cr-dourado), transparent); opacity: .6; }
.el-tv-corpo .el-tv-topo .el-status { margin-left: 1.4vw; flex: 0 0 auto; white-space: nowrap; font-size: 15px; }
.el-tv-tempo { display: flex; align-items: center; flex: 0 0 auto; padding-right: 1.3vw; border-right: 1px solid var(--cr-linha);
    font-family: 'Quicksand', 'Nunito', sans-serif; font-weight: 500; font-size: 30px; line-height: 1; color: var(--cr-texto); font-variant-numeric: tabular-nums; }
.el-tv-tempo svg { width: 26px; height: 26px; margin-right: 10px; fill: none; stroke: var(--cr-dourado); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.el-tv-relogio { flex: 0 0 auto; text-align: right; line-height: 1; }
.el-tv-relogio .hora { font-family: 'Quicksand', 'Nunito', sans-serif; font-weight: 500; font-size: 40px; letter-spacing: -.02em; color: var(--cr-texto); font-variant-numeric: tabular-nums; }
.el-tv-relogio .hora small { font-size: .42em; color: var(--cr-dourado); margin-left: .2em; font-variant-numeric: tabular-nums; }
.el-tv-relogio .data { margin-top: 4px; font-size: 12px; color: var(--cr-texto-2); white-space: nowrap; }
/* a marca no canto inferior direito, discreta */
.el-tv-marca-canto { position: fixed; right: 2vw; bottom: 1.6vh; z-index: 3; opacity: .85; }
.el-tv-marca-canto > * + * { margin-left: 10px; }
.el-tv-marca-canto svg { width: 30px; height: 30px; }
.el-tv-marca-canto b { font-size: 17px; }
/* 08/10: o selo de eleito um pouco mais baixo (pedido dele); e, parado, o fio começa colado na margem */
.el-tv-corpo .el-tv-grade > .el-tv-mat { margin-top: 3vh; }
body.tv-ocioso .el-tv-topo .el-tv-fio { margin-left: 0; }
/* TV (08/10): "Totalização final" na MESMA linha de "TSE às…" (o status quebrava linha na TV) e o botão
   "Sair da tela cheia" com espaço para o texto inteiro */
.el-tv-corpo .el-tv-topo .el-status { flex-wrap: nowrap; align-items: center; line-height: 1; gap: 0; }
.el-tv-corpo .el-tv-topo .el-status > .cr-selo, .el-tv-corpo .el-tv-topo .el-status > .el-vivo { flex: 0 0 auto; margin-right: 8px; }
.el-tv-corpo .el-tv-topo .el-status > b { margin-right: 4px; }
.sem-gap .el-tv-corpo .el-tv-topo .el-status > * { margin-left: 0; }
.el-tv-corpo .el-tv-topo .el-tv-bt { max-width: 24em; }
.el-tv-corpo .el-tv-topo .el-tv-bt span { white-space: nowrap; }
/* TV (08/10, pedido dele): ao entrar em tela cheia o vídeo "subia" — estava centralizado pela ALTURA, que muda
   quando a barra do navegador some. Agora a posição sai da LARGURA (vw), que não muda: mesma altura nos dois modos.
   12vw = 230 px numa tela de 1920 → vídeo no meio de uma tela 1080. */
.el-tv-corpo .el-tv-canal { align-self: start; margin-top: 12vw; }
/* de onde é a temperatura (08/10, pedido dele): "Palmas – TO" embaixo, no mesmo estilo da data do relógio */
.el-tv-tempo .t { text-align: right; line-height: 1; }
.el-tv-tempo .t small { display: block; margin-top: 4px; font-family: 'Nunito', sans-serif; font-weight: 400; font-size: 12px; color: var(--cr-texto-2); white-space: nowrap; }
/* ── TV no CELULAR (08/10): os ajustes da TV do escritório (grade de altura fixa, vídeo por vw, topo de 74 px)
   são para tela grande. No celular volta a pilha simples: vídeo em cima, depois os cartões; topo quebra linha. */
@media (max-width: 767px) {
  .el-tv-corpo .el-tv-grade { display: block; height: auto; padding: 0 12px 16px; }
  .el-tv-corpo .el-tv-canal { margin: 0 0 14px; }
  .el-tv-corpo .el-tv-grade > .el-tv-mat { margin: 0 0 14px; }
  .el-tv-corpo .el-tv-pilha > * + * { margin-top: 12px; }
  .el-tv-corpo .el-tv-topo { height: auto; flex-wrap: wrap; padding: 10px 12px; overflow: visible; }
  .el-tv-corpo .el-tv-topo > * + * { margin-left: 8px; }
  .el-tv-fio { display: none; }
  .el-tv-corpo .el-tv-topo .el-status { order: 10; width: 100%; margin: 8px 0 0; white-space: normal; font-size: 13px; }
  .el-tv-tempo { font-size: 22px; margin-left: auto !important; } .el-tv-tempo svg { width: 20px; height: 20px; }
  .el-tv-relogio .hora { font-size: 28px; } .el-tv-relogio .data { display: none; }
  .el-tv-corpo .el-cand .pct { font-size: 34px; } .el-tv-corpo .el-cand .nome { font-size: 16px; }
  .el-tv-corpo .el-cand .bola { width: 40px; height: 40px; font-size: 15px; }
  .el-tv-corpo .el-dif .val, .el-tv-corpo .el-dif b.n { font-size: 22px; }
  .el-tv-corpo .el-secoes-l .val { font-size: 20px; }
  .el-tv-corpo #elVirada h2 { font-size: 17px; } .el-tv-corpo #elVirada .el-cardh p, .el-tv-corpo #elViradaResumo { font-size: 13px; }
  .el-tv-corpo .el-graf { height: 240px; }
  .el-tv-marca-canto { display: none; }
}

/* ── 09/10/2026: abas Senadores, Dep. Federais e Dep. Estaduais (pedido dele) ── */
.el-seg-cargos { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.el-seg-cargos::-webkit-scrollbar { display: none; }
.el-seg-cargos a { flex: 0 0 auto; }
@media (max-width: 767px) { .el-linha > .el-seg-cargos { width: 100%; } .el-seg-cargos a { padding: 0 10px; font-size: 13px; } }
.dp-barra { display: flex; height: 34px; border-radius: 8px; overflow: hidden; margin: 6px 0 10px; background: var(--cr-trilho); }
.dp-barra span { min-width: 2px; display: flex; align-items: center; justify-content: center; overflow: hidden; white-space: nowrap;
  font-size: 12px; font-weight: 800; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.45); border-right: 1px solid var(--cr-superficie); }
.dp-barra span:last-child { border-right: 0; }
.dp-blocos, .dp-chips { display: flex; flex-wrap: wrap; margin: 0 0 12px; }
.dp-blocos > span, .dp-chips > span { display: inline-flex; align-items: center; margin: 0 14px 6px 0; font-size: 14px; color: var(--cr-texto); }
.dp-chips > span { font-size: 13px; margin-right: 12px; }
.dp-blocos i, .dp-chips i { width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; display: inline-block; }
.dp-blocos b, .dp-chips b { margin-left: 4px; }
.dp-blocos small { margin-left: 4px; color: var(--cr-texto-2); }
.dp-tab td small { display: block; color: var(--cr-texto-2); font-size: 12px; margin-left: 18px; }
.dp-tab td .el-ponto { margin-right: 6px; }
.dp-tab tr.dp-sem td { color: var(--cr-texto-2); }
/* 10/10 (pedido dele): no celular as tabelas dos deputados cortavam % e Situação — elas descem para dentro das outras colunas */
.dp-tab .dp-so-cel { display: none; }
@media (max-width: 767px) {
  .dp-tab .dp-so-desk { display: none; }
  .dp-tab td small.dp-so-cel { display: block; margin-left: 0; }
  .dp-tab td span.dp-so-cel { display: block; margin: 4px 0 0 18px; }
}
.dp-h4 { margin: 14px 0 6px; font-size: 14px; color: var(--cr-marca-escura); }

/* ── 09/10/2026: checklist — resultado final, faixa que leva ao 2º turno e banner do 2º turno (pedido dele) ── */
.el-final .el-tab th:nth-child(2), .el-final .el-tab td.apur { display: none; }
.el-tv-mat.el-link { cursor: pointer; }
.el-tv-mat.el-link:hover, .el-tv-mat.el-link:focus-visible { filter: brightness(1.06); outline: 2px solid var(--cr-marca); outline-offset: 2px; }
.el-banner2 { display: flex; align-items: center; flex-wrap: wrap; margin: 4px 0 14px; padding: 10px 14px; border-radius: 12px;
  background: var(--cr-dourado); color: var(--el-tinta) !important; text-decoration: none !important; box-shadow: 0 2px 8px var(--cr-sombra); }
.el-banner2 > span { margin: 2px 12px 2px 0; }
.el-banner2-tag { background: var(--el-banner-bg); color: #fff; font-weight: 800; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; }
.el-banner2-tx { flex: 1 1 auto; font-size: 15px; }
.el-banner2-tx span { font-variant-numeric: tabular-nums; }
.el-banner2-ir { font-weight: 800; white-space: nowrap; margin-right: 0 !important; background: var(--el-banner-bt); color: #fff; padding: 7px 14px; border-radius: 999px; font-size: 14px; }
.el-banner2:hover .el-banner2-ir, .el-banner2:focus-visible .el-banner2-ir { filter: brightness(1.12); }
.el-banner2.vivo .el-banner2-tag { background: var(--el-banner-bt); color: #fff; }   /* não usar --el-13: é a cor de um candidato */
@media (max-width: 600px) { .el-banner2-tx { font-size: 13px; flex-basis: 100%; order: 3; } }
/* 13/10: a mesma faixa na TV — no alto da coluna dos cartões, letra de quem olha de longe, sem botão (não há para onde ir) */
.el-tv-corpo .el-banner2-tv { margin: 0 0 1.6vh; padding: 1.4vh 1.4vw; flex-wrap: nowrap; cursor: default; }
.el-tv-corpo .el-banner2-tv .el-banner2-tag { font-size: clamp(12px, 1vw, 18px); padding: .35em .9em; flex: 0 0 auto; margin-right: 1vw; }
.el-tv-corpo .el-banner2-tv .el-banner2-tx { font-size: clamp(14px, 1.25vw, 24px); line-height: 1.3; }
@media (max-width: 767px) { .el-tv-corpo .el-banner2-tv { flex-wrap: wrap; padding: 10px 12px; } .el-tv-corpo .el-banner2-tv .el-banner2-tx { font-size: 14px; flex-basis: auto; order: 0; } }

/* ── 09/10/2026: TV pública sem vídeo (modelo) — os 27 estados em quadrados no lugar do canal. Chrome 63: grid + grid-gap. ── */
.el-tv-ufs { background: var(--cr-superficie); border-radius: 18px; border-top: 1px solid var(--cr-dourado); padding: 1.4vw 1.6vw; }   /* 09/10: fio fino (a barra de 4px ele achou forte) */
.el-tvu-tit { margin: 0 0 1vw; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: clamp(16px, 1.5vw, 30px); color: var(--cr-texto); }
.el-tvu-vazio { color: var(--cr-texto-2); font-size: clamp(14px, 1.1vw, 22px); }
.el-tvu-grade { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: 5.6vh; grid-gap: .5vw; gap: .5vw; }
.el-tvu { position: relative; border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.55); line-height: 1.05; }
.el-tvu > i { position: absolute; left: 0; top: 0; right: 0; bottom: 0; }
.el-tvu b, .el-tvu span { position: relative; }
.el-tvu b { font-family: 'Quicksand', 'Nunito', sans-serif; font-size: clamp(13px, 1.25vw, 26px); font-weight: 800; letter-spacing: .03em; }
.el-tvu span { font-size: clamp(11px, .9vw, 19px); font-weight: 700; font-variant-numeric: tabular-nums; }
.el-tvu em { position: absolute; left: 6%; right: 6%; bottom: 5px; height: 3px; background: rgba(255,255,255,.28); border-radius: 2px; }
.el-tvu em u { display: block; height: 100%; background: #fff; border-radius: 2px; }
.el-tvu-leg { display: flex; flex-wrap: wrap; margin-top: 1vw; color: var(--cr-texto-2); font-size: clamp(12px, .95vw, 19px); }
.el-tvu-leg span { display: inline-flex; align-items: center; margin: 0 1.4vw .4vw 0; }
.el-tvu-leg i { width: 14px; height: 14px; border-radius: 4px; margin-right: 6px; display: inline-block; }
.el-tv-corpo .el-tv-ufs { grid-column: 2; grid-row: 2; align-self: start; }   /* abaixo do selo (linha 1); sem selo, a linha 1 some */
@supports not (aspect-ratio: 1) { .el-tvu b { font-size: 22px; } .el-tvu span { font-size: 16px; } .el-tvu-tit { font-size: 26px; } .el-tvu-leg { font-size: 16px; } }
/* 09/10: o painel da TV pública virou o MAPA do Brasil por município (os quadrados ele reprovou) */
.el-tvm-caixa { display: flex; justify-content: center; }
.el-tvm-svg { width: 100%; height: 55vh; max-height: 55vh; }
.el-tv-corpo .el-tvu-leg { justify-content: center; }
/* 09/10: TV — modo "Por estado" do mapa: sigla e % do líder sobre cada estado com espaço (decisão dele) */
.el-tvm-rot text { fill: #fff; stroke: rgba(0, 0, 0, .55); stroke-width: 4px; paint-order: stroke; stroke-linejoin: round; font-family: 'Quicksand', 'Nunito', sans-serif; font-weight: 800; pointer-events: none; }
.el-tvm-rot .s { font-size: 32px; letter-spacing: .04em; }
.el-tvm-rot .p { font-size: 26px; font-weight: 700; }

/* ── 09/10: "depois" — compartilhar imagem (item 2) ── */
.el-compart { display: flex; justify-content: flex-end; }
.el-compart .cr-btn, .el-mun-bts .cr-btn.el-bt-img { height: 34px; font-size: 13px; }
.el-mun-bts { display: flex; align-items: center; flex: 0 0 auto; }   /* 13/10: encolhia a 50 px e o × saía do cartão no celular */
.el-mun-bts > * + * { margin-left: 8px; }
@media (max-width: 600px) { .el-compart { justify-content: stretch; } .el-compart .cr-btn { width: 100%; justify-content: center; } .el-mun-bts .cr-btn.el-bt-img { font-size: 0; letter-spacing: 0; flex: 0 0 40px; width: 40px; padding: 0; justify-content: center; }   /* 13/10: com 2 classes perdia para a de 13px e o texto empurrava o ícone para fora do botão */ .el-mun-bts .el-bt-img .ic { margin: 0; } }
/* item 1 (09/10): Minha cidade */
.el-minha { padding: 14px 18px; border-left: 4px solid var(--cr-dourado); }
.el-minha-cab { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.el-minha-cab small { display: block; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--cr-texto-2); }
.el-minha-cab b { font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 20px; color: var(--cr-marca-escura); }
.el-minha-bts { display: flex; }
.el-minha-bts .cr-btn { height: 34px; font-size: 13px; margin-left: 8px; }
.el-minha-l { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 8px 18px; gap: 8px 18px; margin-top: 10px; }
.el-minha-l > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.el-minha-l .tx { font-weight: 700; color: var(--cr-texto); } .el-minha-l b { font-size: 18px; color: var(--cr-texto); font-variant-numeric: tabular-nums; }
.el-minha-l .el-prog { flex-basis: 100%; margin-top: 4px; }
@media (max-width: 600px) { .el-minha-l { grid-template-columns: 1fr; } .el-minha-bts { width: 100%; margin-top: 8px; } .el-minha-bts .cr-btn { margin: 0 8px 0 0; flex: 1; justify-content: center; } }
/* item 3 (09/10): Governadores no Brasil */
.el-govbr { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); grid-gap: 20px; gap: 20px; align-items: start; }
.el-govbr-svg { width: 100%; height: auto; max-height: 560px; }
.el-govbr-svg path { stroke: var(--cr-superficie); stroke-width: 1.2; cursor: pointer; }
.el-govbr h3 { margin: 4px 0 6px; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--cr-texto-2); }
.el-govbr-tab { margin-bottom: 14px; } .el-govbr-tab td { padding: 6px 8px; } .el-govbr-tab .el-ponto { margin-right: 8px; }
@media (max-width: 767px) { .el-govbr { grid-template-columns: 1fr; } }
/* item 8 (09/10): no celular o placar E a diferença cabem na 1ª tela — topo compacto (banner baixo, título menor, sem subtítulo) */
@media (max-width: 600px) {
  body.cr:not(.el-tv-corpo) .el-banner2 { padding: 8px 10px; margin: 0 0 10px; align-items: center; flex-wrap: nowrap; }
  body.cr:not(.el-tv-corpo) .el-banner2 > span { margin: 0 8px 0 0; }
  body.cr:not(.el-tv-corpo) .el-banner2-tag { font-size: 10px; padding: 2px 7px; flex: 0 0 auto; }
  body.cr:not(.el-tv-corpo) .el-banner2-tx { font-size: 12px; line-height: 1.25; flex: 1 1 auto; order: 0; flex-basis: auto; }
  body.cr:not(.el-tv-corpo) .el-banner2-ir { font-size: 12px; padding: 6px 10px; flex: 0 0 auto; }
  body.cr:not(.el-tv-corpo) .cr-titulo { margin-bottom: 6px; }
  body.cr:not(.el-tv-corpo) .cr-titulo h1 { font-size: 22px; margin: 0; }
  body.cr:not(.el-tv-corpo) .cr-titulo h1 + p { display: none; }
}
/* item 9 (09/10): barra de filtros fina quando presa no topo (computador) */
@media (min-width: 768px) {
  .el-filtros.colado { padding-top: 6px; padding-bottom: 6px; }
  .el-filtros.colado .cr-campo > label, .el-filtros.colado .el-resumo { display: none; }
  .el-filtros.colado input, .el-filtros.colado select { height: 32px; min-height: 32px; font-size: 14px; }
  .el-filtros.colado .el-seg { height: 32px; } .el-filtros.colado .el-seg button { height: 26px; }
  .el-filtros.colado .el-filtros-fim .cr-btn { height: 32px; }
}
/* item 7 (09/10): seletor "Ordenar" das tabelas e "Ver todos" no celular */
.el-ord { display: inline-flex; align-items: center; font-size: 13px; color: var(--cr-texto-2); margin-left: 10px; }
.el-ord span { margin-right: 6px; font-weight: 700; }
.el-ord select { height: 32px; font-size: 13px; }
.el-ver-todos { height: 34px; font-size: 13px; margin-top: 10px; width: 100%; justify-content: center; }
@media (max-width: 600px) { .el-ord { margin: 8px 0 0; } .el-tab tr { padding: 9px 12px; } }
/* item 13 (09/10): quadro do município — brancos, nulos e 2022 */
.el-mun-2022 { margin: 2px 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--cr-linha); font-size: 13px; color: var(--cr-texto-2); }
.el-mun-2022 b { color: var(--cr-texto); } .el-mun-2022 .el-ponto { margin: 0 4px 0 6px; }
/* item 11 (09/10): relatório — destaques, blocos recolhíveis, mapa de 2022, link da régua */
.el-rel-dest { border-left: 4px solid var(--cr-dourado); }
.el-rel-dest h2 { margin: 0 0 8px; }
.el-rel-dest ul { margin: 0 0 6px; padding-left: 20px; } .el-rel-dest li { margin: 4px 0; color: var(--cr-texto); line-height: 1.45; }
.el-rel-grupo { padding: 0; } .el-rel-grupo > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; }
.el-rel-grupo > summary::-webkit-details-marker { display: none; }
.el-rel-grupo > summary b { display: block; font-family: 'Quicksand', 'Nunito', sans-serif; font-size: 18px; color: var(--cr-marca-escura); }
.el-rel-grupo > summary small { display: block; color: var(--cr-texto-2); font-size: 13px; }
.el-rel-grupo > summary em { font-style: normal; font-size: 12px; font-weight: 800; color: var(--cr-texto-2); white-space: nowrap; margin-left: 12px; }
.el-rel-grupo > summary em::after { content: ' ▾'; } .el-rel-grupo[open] > summary em::after { content: ' ▴'; }
.el-rel-grupo > .el-ind { padding: 0 20px 16px; }
.el-rel-mapa22 svg { width: 100%; height: auto; max-height: 640px; display: block; }
.el-rel-mapa22 svg path { stroke: var(--cr-superficie); stroke-width: .3; vector-effect: non-scaling-stroke; }
.el-rel-regua { margin: 0 0 12px; font-size: 14px; } .el-rel-regua a { font-weight: 700; }
/* item 12 (09/10): o filtro nas tabelas */
.el-tab tr.el-sel td { box-shadow: inset 0 0 0 9999px rgba(226, 182, 90, .16); }
.el-tab tr.el-sel td.nome { box-shadow: inset 4px 0 0 var(--cr-dourado), inset 0 0 0 9999px rgba(226, 182, 90, .16); }
.el-tab tr.el-apagado { opacity: .32; }
/* revisão 09/10: o botão de compartilhar no celular não passa da largura da tela (gerava rolagem lateral) */
@media (max-width: 600px) { .el-compart .cr-btn { box-sizing: border-box; max-width: 100%; min-width: 0; } .el-compart { overflow: hidden; } }
/* 09/10: trocar a cidade (Minha cidade) */
.el-minha.fino { padding: 8px 14px; border-left-width: 3px; }
.el-minha-convite { display: flex; align-items: center; justify-content: space-between; font-weight: 700; color: var(--cr-texto-2); }
.el-minha-convite .cr-btn { height: 32px; font-size: 13px; }
.el-link-bt { background: none; border: 0; padding: 0; font: inherit; color: var(--cr-marca); text-decoration: underline; cursor: pointer; }
.el-minha .el-auto { position: relative; }
@media (max-width: 600px) {   /* 09/10: os 3 botões do cartão da cidade cabem no celular (o de compartilhar vira só o ícone) */
  .el-minha-bts { flex-wrap: wrap; }
  .el-minha-bts .cr-btn { margin: 6px 6px 0 0; flex: 1 1 auto; min-width: 0; box-sizing: border-box; }
  .el-minha-bts .el-bt-img { font-size: 0; letter-spacing: 0; flex: 0 0 40px; width: 40px; padding: 0; justify-content: center; }   /* 13/10: o espaçamento das letras sobrava com a letra em 0 e empurrava o ícone para fora */
  .el-minha-bts .el-bt-img .ic { margin: 0; }
}
/* auditoria da extensão (09/10) */
.el-tvm-rot text.peq .s { font-size: 20px; } .el-tvm-rot text.peq .p { display: none; }   /* AL, SE, ES, RN, PB: só a sigla, menor */
@media (max-width: 1366px) { .el-tv-corpo .el-tv-topo .el-tv-bt span { display: none; } .el-tv-corpo .el-tv-topo .el-tv-bt { padding-left: 10px; padding-right: 10px; } }   /* A11: o relógio não sai da tela */
.cr-mais-folha a[aria-current="page"] { font-weight: 800; color: var(--cr-marca) !important; background: var(--cr-icone-fundo); }   /* B8: cargo e turno atuais marcados */
/* 09/10: "Ver menos" no quadro do município; DF com sigla bem pequena */
.el-mun-todos .ab-a { display: none; } .el-mun-todos[open] .ab-f { display: none; } .el-mun-todos[open] .ab-a { display: inline; }
.el-tvm-rot text.mini .s { font-size: 13px; }
#elTabUfMais0 .el-ver-todos { margin: 0 0 10px; }
.el-tvm-rot .el-fio-df { stroke: var(--cr-texto-2); stroke-width: 1.5px; }
.el-tvm-rot text.peq[x] .s { font-size: 20px; }
.el-tvm-rot text.df .s { font-size: 26px; }

/* 10/10 (pedido dele): varredura do celular — nada escondido de lado nas páginas da eleição */
@media (max-width: 767px) {
  .el-linha > .el-seg-cargos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-gap: 2px; overflow: visible; }   /* cargos em 2 linhas: 3 + 2 */
  .el-seg-cargos a { grid-column: span 2; justify-content: center; padding: 0 4px; min-width: 0; }
  .el-seg-cargos a:nth-child(n+4) { grid-column: span 3; }
  #elConteudo .cr-tabela:not(.el-rel-tab) th, #elConteudo .cr-tabela:not(.el-rel-tab) td, #elRel .cr-tabela:not(.el-rel-tab) th, #elRel .cr-tabela:not(.el-rel-tab) td { padding: 9px 7px; }
  #elConteudo .cr-tabela th, #elRel .cr-tabela th { letter-spacing: .02em; }
  .el-rel-tab td, .el-rel-tab td.num { white-space: normal; overflow-wrap: break-word; }   /* cartão do relatório: quebra a linha em vez de sair pela direita */
  .el-rel-tab td[data-rot]::before { letter-spacing: .02em; }
  .dp-tab td.num small.dp-so-cel { white-space: normal; }
}
@media (max-width: 360px) {
  nav.cr-abas[aria-label="Turno"] { flex-wrap: wrap; overflow: visible; }   /* TV e Relatório descem para a 2ª linha em vez de sumir de lado */
  nav.cr-abas[aria-label="Turno"] a { padding: 10px 9px; }
  .dp-tab { font-size: 13px; } .dp-tab th { font-size: 11px; }
  .dp-tab td:first-child { word-break: break-word; overflow-wrap: anywhere; }   /* sigla longa (REPUBLICANOS) quebra em vez de alargar a tabela */
  .el-seg-cargos a { font-size: 12px; }
}

/* 10/10 (pedido dele): BUSCA COMPLETA no alto do cartão de filtros (assets/eleicoes-busca.js) — no celular fica sempre à vista */
.el-busca { margin-bottom: 12px; }
.el-busca input { width: 100%; height: 42px; }
.el-busca .el-sug { max-height: 60vh; overflow-y: auto; z-index: 45; }
.el-busca .el-sug li b { display: block; color: var(--cr-texto); }
.el-busca .el-sug li small { display: block; margin-top: 1px; font-size: 12px; font-weight: 600; color: var(--cr-texto-2); }
.el-filtros.colado .el-busca { margin-bottom: 6px; }
.el-filtros.colado .el-busca input { height: 34px; }

/* 12/10: estado no 2º turno que o TSE ainda não publicou (Tocantins) */
.el-aguarda-tse { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--cr-icone-fundo); border-left: 4px solid var(--cr-marca); font-size: 14px; line-height: 1.45; color: var(--cr-texto); }
/* 12/10: busca por partido abre no quadro nacional — partido destacado + resumo */
.dp-chips > span.sel { padding: 2px 8px; border-radius: 9999px; background: var(--cr-icone-fundo); box-shadow: inset 0 0 0 2px var(--cr-marca); font-weight: 800; }
.dp-par-resumo { margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--cr-icone-fundo); font-size: 14px; line-height: 1.45; color: var(--cr-texto); }

/* 12/10 (auditoria): no computador, a coluna do "Limpar" escondido ainda guardava espaço e a linha de filtros terminava antes do "Buscar" */
@media (min-width: 981px) {
  .el-filtros-linha, .el-filtros-linha.com-uf { display: flex; align-items: flex-end; }
  .el-filtros-linha > .cr-campo { flex: 1 1 0; min-width: 0; }
  .el-filtros-linha > .cr-campo:first-child { flex-grow: 1.3; }
  .el-filtros-linha > .cr-campo:has(.el-seg), .el-filtros-linha > .el-filtros-fim { flex: 0 0 auto; }
  .el-filtros-fim:has(> [hidden]:only-child) { display: none; } }
/* 12/10: linha a que a busca levou (Exterior) */
.el-busca-alvo td { background: var(--cr-atencao-bg); }
/* 13/10 (auditoria): rótulo da barra de bancada sobre fatia clara vai escuro (contraste ≥ 4,5:1 nos dois temas) — o eleicoes-dep.js escolhe */
:root { --el-rotulo-escuro: #10181b; }
.dp-barra span.escuro { color: var(--el-rotulo-escuro); text-shadow: none; }
/* 13/10 (auditoria de contraste): no escuro, branco sobre --cr-marca (#3a95a5) dava 3,5:1 — botão cheio usa um tom mais fundo (5:1) */
html[data-theme="dark"] body.cr { --cr-marca-bt: #24798a; }
html[data-theme="dark"] body.cr .cr-btn.pri:not(.perigo), html[data-theme="dark"] body.cr .cr-nav .lancar span { background: var(--cr-marca-bt); }
/* 13/10 (auditoria): "×" para fechar a folha "Mais" */
.cr-mais-folha { position: relative; }
.cr-mais-x { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border-radius: 9999px; border: 1px solid var(--cr-bt-borda);
  background: var(--cr-superficie); color: var(--cr-texto-2); display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.cr-mais-x .ic { width: 18px; height: 18px; }
