/* =============================================================================
 * portal-visual.css — reformulação estética do portal do eleitor (Bloco 1)
 * Fiel aos prints aprovados (paleta laranja/teal, swoosh, cards grandes,
 * tipografia acessível). Aplicado SOBRE a estrutura real do base.php:
 * .cabecalho, .marca, .nav-abas/.aba, .botao-menu, .gaveta, .palco,
 * .botao/.botao--primario. Carregado DEPOIS de tema.css e cabine.css,
 * então tem precedência. Ativa-se com <body data-visual="portal">.
 * ========================================================================== */
[data-visual="portal"] {
  --laranja:#f26a21; --laranja-escuro:#d9560f; --laranja-claro:#fff1e8;
  --teal:#0f5e6b; --teal-claro:#e6f2f4;
  --verde:#1d8a4d; --verde-claro:#e3f5ea;
  --texto:#1f2a33; --texto-2:#4b5560; --borda:#d9dde2;
  --fundo:#f6f6f4; --branco:#ffffff;
  --fonte:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"Courier New",monospace;
  --raio:12px; --raio-g:18px;
  --sombra:0 1px 2px rgba(31,42,51,.05),0 10px 30px rgba(31,42,51,.07);
  --sombra-hover:0 2px 4px rgba(31,42,51,.06),0 18px 40px rgba(31,42,51,.12);
  --suave:cubic-bezier(.22,1,.36,1);
}

/* ---- base ---- */
[data-visual="portal"]{background:var(--fundo);color:var(--texto);font-family:var(--fonte);line-height:1.5}
[data-visual="portal"] .oculto-visual{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[data-visual="portal"] :focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:6px}

/* ---- cabeçalho: branco, logo à esquerda, abas com ícone ---- */
[data-visual="portal"] .cabecalho{
  position:sticky;top:0;z-index:40;background:#faf7f2;
  border-bottom:1px solid var(--borda);box-shadow:0 1px 0 rgba(31,42,51,.03);
  display:flex;align-items:center;gap:20px;padding:0 clamp(16px,4vw,44px);height:80px;
}
[data-visual="portal"] .marca{display:flex;align-items:center;gap:10px;margin-right:auto}
[data-visual="portal"] .marca img,[data-visual="portal"] .marca .icone-urna{height:42px;width:auto}
/* quando houver a logo horizontal nova, o texto da marca some (a logo já traz o nome) */
[data-visual="portal"] .marca.tem-logo span{display:none}
[data-visual="portal"] .marca span{font-weight:800;font-size:1.5rem;color:var(--texto)}
[data-visual="portal"] .marca span .destaque{color:var(--laranja);background:none}
[data-visual="portal"] .marca::before,[data-visual="portal"] .marca::after{content:none!important;display:none!important}

[data-visual="portal"] .nav-abas ul{display:flex;gap:6px;list-style:none;margin:0;padding:0}
[data-visual="portal"] .nav-abas ul{gap:6px}
[data-visual="portal"] .nav-abas .aba{
  display:inline-flex;align-items:center;gap:9px;
  padding:11px 18px;border-radius:12px;text-decoration:none;
  color:var(--texto);font-weight:700;font-size:1.02rem;transition:background .2s,color .2s;
}
[data-visual="portal"] .nav-abas .aba .icone{width:1.25em;height:1.25em;flex:none}
[data-visual="portal"] .nav-abas .aba:hover{background:var(--laranja-claro);color:var(--laranja-escuro)}
[data-visual="portal"] .nav-abas .aba,[data-visual="portal"] .nav-abas .aba:hover{text-decoration:none}
/* aba "Votar"/ativa em destaque laranja preenchido */
[data-visual="portal"] .nav-abas .aba[aria-current="page"]{background:var(--laranja);color:#fff;box-shadow:var(--sombra)}
[data-visual="portal"] .nav-abas .aba[aria-current="page"]:hover{background:var(--laranja-escuro);color:#fff}

/* botão hambúrguer (mobile) */
[data-visual="portal"] .botao-menu{
  display:none;background:transparent;border:0;color:var(--texto);padding:8px;cursor:pointer;
}
[data-visual="portal"] .botao-menu .icone{width:30px;height:30px}

/* ---- palco / fundo com swoosh ---- */
[data-visual="portal"] .palco{
  position:relative;flex:1;padding:clamp(20px,4vw,48px);max-width:1500px;margin:0 auto;width:100%;overflow-x:hidden;
}
[data-visual="portal"] .card-login{max-width:100%}
[data-visual="portal"] .palco::before,[data-visual="portal"] .palco::after{
  content:"";position:absolute;width:340px;height:222px;pointer-events:none;z-index:0;
  background:url("/assets/img/marca/swoosh.png") no-repeat center/contain;opacity:.10;
}
[data-visual="portal"] .palco::before{top:-10px;left:-60px;transform:rotate(8deg)}
[data-visual="portal"] .palco::after{bottom:20px;right:-70px;transform:rotate(-160deg)}
/* esconde os "furos" e a tela-urna antiga da vitrine no portal reestilizado */
[data-visual="portal"] .palco > .furos{display:none}

/* ---- HOME: layout desktop 2 colunas / mobile centralizado ---- */
[data-visual="portal"] .home{position:relative;z-index:1;display:grid;gap:clamp(24px,4vw,56px);align-items:center;
  grid-template-columns:1.05fr .95fr;max-width:1180px;margin:clamp(12px,3vw,40px) auto;width:100%}
[data-visual="portal"] .home__intro{max-width:560px}
[data-visual="portal"] .home__ilustra{width:132px;height:132px;color:var(--texto);margin-bottom:8px}
[data-visual="portal"] .home__ilustra .escudo{color:var(--laranja)}
[data-visual="portal"] .home h1{font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1.08;margin:.2em 0 .15em}
[data-visual="portal"] .home__sub{font-size:clamp(1.05rem,2vw,1.35rem);color:var(--texto-2);margin:0 0 28px}

/* faixa de 3 destaques (desktop) */
[data-visual="portal"] .destaques{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:8px}
[data-visual="portal"] .destaque-item{text-align:center}
[data-visual="portal"] .destaque-item .icone-d{width:52px;height:52px;margin:0 auto 10px;color:var(--texto)}
[data-visual="portal"] .destaque-item strong{display:block;font-size:1.05rem;margin-bottom:2px}
[data-visual="portal"] .destaque-item span{color:var(--texto-2);font-size:.98rem}

/* ---- card de login "Acesse para votar" ---- */
[data-visual="portal"] .card-login{
  background:var(--branco);border:1px solid var(--borda);border-radius:var(--raio-g);
  box-shadow:var(--sombra);padding:clamp(24px,3vw,40px);position:relative;overflow:hidden;
}
[data-visual="portal"] .card-login h2{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:800;margin:0 0 2px}
[data-visual="portal"] .card-login .dica{color:var(--texto-2);margin:0 0 22px;font-size:1.05rem}
[data-visual="portal"] .card-login label{display:block;font-weight:700;margin:0 0 8px;font-size:1rem}
[data-visual="portal"] .card-login input[type=text],
[data-visual="portal"] .card-login input[type=tel]{
  width:100%;border:2px solid var(--borda);border-radius:12px;background:#fff;
  padding:16px 18px;font-size:1.5rem;font-family:var(--mono);letter-spacing:.02em;color:var(--texto);
  transition:border-color .2s,box-shadow .2s;
}
[data-visual="portal"] .card-login input:focus{border-color:var(--laranja);box-shadow:0 0 0 4px var(--laranja-claro);outline:none}

/* botões grandes e acessíveis */
[data-visual="portal"] .btn-grande{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  background:var(--laranja);color:#fff;border:0;border-radius:12px;cursor:pointer;
  padding:18px 22px;font-size:1.35rem;font-weight:800;margin-top:16px;
  box-shadow:var(--sombra);transition:background .2s,transform .1s,box-shadow .2s;
}
[data-visual="portal"] .btn-grande:hover{background:var(--laranja-escuro);box-shadow:var(--sombra-hover)}
[data-visual="portal"] .btn-grande:active{transform:translateY(1px)}
[data-visual="portal"] .btn-grande--teal{background:var(--teal)}
[data-visual="portal"] .btn-grande--teal:hover{background:#0b4a54}

[data-visual="portal"] .ajuda-linha{margin-top:22px;padding-top:20px;border-top:1px solid var(--borda);text-align:center}
[data-visual="portal"] .ajuda-linha a{color:var(--teal);font-weight:800;display:inline-flex;align-items:center;gap:8px}
[data-visual="portal"] .ajuda-linha p{color:var(--texto-2);margin:.4em 0 0;font-size:.98rem}

/* selo "após identificação, o botão VOTAR aparece" (desktop) */
[data-visual="portal"] .selo-votar{
  display:flex;align-items:center;gap:14px;margin-top:20px;padding:14px 16px;
  background:var(--laranja-claro);border-radius:12px;color:var(--texto-2);font-size:.95rem;
}
[data-visual="portal"] .selo-votar .pill{background:var(--laranja);color:#fff;font-weight:800;padding:8px 16px;border-radius:8px;white-space:nowrap}

/* ---- rodapé ---- */
[data-visual="portal"] .rodape-portal{
  margin-top:auto;border-top:1px solid var(--borda);background:var(--branco);
  padding:18px clamp(16px,4vw,40px);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  color:var(--texto-2);font-size:.92rem;max-width:1500px;margin-left:auto;margin-right:auto;width:100%;
}

/* ---- pop-up "Atenção CPF" ---- */
[data-visual="portal"] .modal-cpf{border:0;border-radius:var(--raio-g);padding:0;max-width:440px;width:92vw;box-shadow:var(--sombra-hover)}
[data-visual="portal"] .modal-cpf::backdrop{background:rgba(31,42,51,.55)}
[data-visual="portal"] .modal-cpf .corpo{padding:32px 28px;text-align:center;position:relative}
[data-visual="portal"] .modal-cpf .fechar-x{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;
  background:#eee;border:0;cursor:pointer;color:var(--texto);display:grid;place-items:center}
[data-visual="portal"] .modal-cpf .escudo-i{width:80px;height:80px;margin:0 auto 12px;color:var(--laranja)}
[data-visual="portal"] .modal-cpf h3{font-size:2rem;font-weight:800;margin:0 0 10px}
[data-visual="portal"] .modal-cpf p{color:var(--texto);font-size:1.15rem;margin:0 0 22px}

/* =============================================================================
 * MOBILE: card centralizado, menu vira gaveta (hambúrguer)
 * ========================================================================== */
@media (max-width:900px){
  [data-visual="portal"] .nav-abas{display:none}
  [data-visual="portal"] .botao-menu{display:inline-flex}
  [data-visual="portal"] .home{grid-template-columns:1fr;text-align:center;max-width:480px}
  [data-visual="portal"] .home__intro{margin:0 auto}
  [data-visual="portal"] .home__ilustra{margin:0 auto 6px}
  [data-visual="portal"] .destaques{grid-template-columns:1fr;gap:14px;margin-top:20px}
  [data-visual="portal"] .card-login{order:-1}      /* login primeiro no mobile */
  [data-visual="portal"] .selo-votar{display:none}
  [data-visual="portal"] .palco::before,[data-visual="portal"] .palco::after{width:200px;height:130px;opacity:.08}
}

/* gaveta mobile no estilo do print (itens grandes, "Votar" laranja) */
[data-visual="portal"] .gaveta{background:var(--branco)}
[data-visual="portal"] .gaveta ul{list-style:none;margin:0;padding:8px 0}
[data-visual="portal"] .gaveta .item{
  display:flex;align-items:center;gap:16px;padding:18px 20px;border-bottom:1px solid var(--borda);
  font-size:1.3rem;font-weight:700;color:var(--texto);
}
[data-visual="portal"] .gaveta .item .icone{width:1.4em;height:1.4em}
[data-visual="portal"] .gaveta .item[aria-current="page"]{background:var(--laranja);color:#fff;border-radius:12px;margin:0 12px;border-bottom:0}

/* respeita quem prefere menos movimento */
@media (prefers-reduced-motion:reduce){
  [data-visual="portal"] *{transition:none!important;animation:none!important}
}

/* ---- utilitárias da home (evita inline-style; CSP style-src 'self') ---- */
[data-visual="portal"] .centro{text-align:center}
[data-visual="portal"] .ic-centro{margin:0 auto 8px}
[data-visual="portal"] .h2-med{font-size:1.55rem}
[data-visual="portal"] .mt-14{margin-top:14px}
[data-visual="portal"] .card-hash{margin-top:22px;background:var(--laranja-claro)}
[data-visual="portal"] .selo-ok{display:inline-flex;align-items:center;gap:8px;background:var(--verde-claro);color:var(--verde);font-weight:800;padding:8px 16px;border-radius:999px;margin:0 0 14px}
[data-visual="portal"] .selo-ok--mt{margin:12px 0 0}
[data-visual="portal"] .hash-box{font-family:var(--mono);font-size:1.35rem;font-weight:700;background:#eef0f2;border-radius:12px;padding:16px;letter-spacing:.04em;word-break:break-all}
[data-visual="portal"] .col-cards{display:flex;flex-direction:column}

/* =============================================================================
 * OVERRIDE do layout antigo: o .palco original é um grid 3rem 1fr 3rem com
 * "furos" laterais e coluna central estreita — isso espremia a home nova.
 * Com a skin ativa, o .palco vira bloco simples e a .home controla a grade.
 * ========================================================================== */
[data-visual="portal"] .palco{
  display:block!important;grid-template-columns:none!important;
  justify-items:stretch!important;align-content:start!important;
  max-width:1500px!important;
}
[data-visual="portal"] .palco > .furos{display:none!important}
[data-visual="portal"] .palco > .tela-urna--vitrine{display:none!important} /* só a vitrine antiga */
/* a barra de adaptação (A- A A+) volta ao fluxo normal, largura total */
[data-visual="portal"] .palco > .barra-adaptacao{grid-column:auto!important;grid-row:auto!important;
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:28px;position:relative;z-index:1}

/* =============================================================================
 * MENU DESKTOP fiel ao print + barra de acessibilidade no topo (correções)
 * ========================================================================== */
/* barra fina de acessibilidade acima do cabeçalho, alinhada à direita */
[data-visual="portal"] .barra-acess{
  display:flex;justify-content:flex-end;align-items:center;gap:4px;flex-wrap:wrap;
  background:#eef0f2;border-bottom:1px solid var(--borda);
  padding:6px clamp(12px,4vw,44px);font-size:.9rem;
}
[data-visual="portal"] .barra-acess .acess-btn{
  display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;cursor:pointer;
  color:var(--texto-2);font-weight:600;padding:6px 10px;border-radius:8px;text-decoration:none;font-size:.9rem;
}
[data-visual="portal"] .barra-acess .acess-btn:hover{background:#fff;color:var(--laranja-escuro)}
[data-visual="portal"] .barra-acess .acess-btn .icone{width:1.05em;height:1.05em}
[data-visual="portal"] .barra-acess .acess-btn[aria-pressed="true"]{background:var(--teal);color:#fff}

/* reescreve as abas: limpas, espaçadas, ícone à esquerda; "Votar" laranja pill.
   !important porque o CSS antigo do portal define .aba de forma agressiva. */
[data-visual="portal"] .nav-abas ul{gap:clamp(6px,1.4vw,22px)!important}
[data-visual="portal"] .nav-abas li{border:0!important}
[data-visual="portal"] .nav-abas .aba{
  display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;
  padding:10px 8px!important;border-radius:12px!important;min-width:0!important;
  color:var(--texto)!important;font-weight:700!important;font-size:1.06rem!important;
  text-decoration:none!important;background:transparent!important;box-shadow:none!important;
}
[data-visual="portal"] .nav-abas .aba .icone{width:1.35em!important;height:1.35em!important;color:var(--texto)!important}
[data-visual="portal"] .nav-abas .aba:hover{background:var(--laranja-claro)!important;color:var(--laranja-escuro)!important}
[data-visual="portal"] .nav-abas .aba:hover .icone{color:var(--laranja-escuro)!important}
/* "Votar" (aba ativa) = pill laranja preenchido, com respiro */
[data-visual="portal"] .nav-abas .aba[aria-current="page"]{
  background:var(--laranja)!important;color:#fff!important;padding:12px 26px!important;box-shadow:var(--sombra)!important;
}
[data-visual="portal"] .nav-abas .aba[aria-current="page"] .icone{color:#fff!important}
[data-visual="portal"] .nav-abas .aba[aria-current="page"]:hover{background:var(--laranja-escuro)!important;color:#fff!important}

/* cabeçalho creme (fiel ao print) e mais alto para respirar */
[data-visual="portal"] .cabecalho{background:#faf7f2!important;height:84px!important;gap:clamp(12px,3vw,40px)!important}

/* na barra de acessibilidade mobile, esconde os rótulos longos p/ caber */
@media (max-width:600px){
  [data-visual="portal"] .barra-acess .acess-btn span:not(:only-child){display:none}
  [data-visual="portal"] .barra-acess{justify-content:center;gap:2px}
}

/* ---- botão Acessibilidade no menu + painel suspenso ---- */
[data-visual="portal"] .acess-wrap{position:relative}
[data-visual="portal"] .acess-toggle{
  display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--borda);
  border-radius:12px;padding:10px 16px;cursor:pointer;color:var(--texto);font-weight:700;font-size:1rem;
}
[data-visual="portal"] .acess-toggle:hover{background:var(--teal-claro);border-color:var(--teal);color:var(--teal)}
[data-visual="portal"] .acess-toggle .icone{width:1.3em;height:1.3em}
[data-visual="portal"] .acess-toggle[aria-expanded="true"]{background:var(--teal);border-color:var(--teal);color:#fff}
[data-visual="portal"] .painel-acess{
  position:absolute;right:0;top:calc(100% + 10px);z-index:60;min-width:230px;
  background:var(--branco);border:1px solid var(--borda);border-radius:var(--raio);
  box-shadow:var(--sombra-hover);padding:12px;display:flex;flex-direction:column;gap:8px;
}
[data-visual="portal"] .painel-acess[hidden]{display:none}
[data-visual="portal"] .painel-acess .linha-acess{display:flex;gap:8px}
[data-visual="portal"] .painel-acess .acess-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:1;
  background:var(--fundo);border:1px solid var(--borda);border-radius:10px;cursor:pointer;
  padding:10px 12px;font-weight:700;color:var(--texto);font-size:1rem;text-decoration:none;
}
[data-visual="portal"] .painel-acess .acess-btn.largo{width:100%;justify-content:flex-start}
[data-visual="portal"] .painel-acess .acess-btn:hover{background:var(--laranja-claro);border-color:var(--laranja);color:var(--laranja-escuro)}
[data-visual="portal"] .painel-acess .acess-btn[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}
[data-visual="portal"] .painel-acess .acess-btn .icone{width:1.15em;height:1.15em}
@media (max-width:900px){ [data-visual="portal"] .acess-wrap{display:none} } /* no mobile vai na gaveta */

/* =============================================================================
 * REFINAMENTOS (menu em caixa, CPF, ajuda, sem barras laterais, sem rolagem)
 * ========================================================================== */
/* 1) SOME com as "barras laterais" (furos = colunas de pontinhos do layout antigo) */
[data-visual="portal"] .furos{display:none!important}

/* 2) desktop: conteúdo cabe na tela, sem rolagem */
@media (min-width:901px){
  [data-visual="portal"],[data-visual="portal"] body{overflow-x:hidden}
  [data-visual="portal"] .palco{padding-top:clamp(12px,2vw,28px);padding-bottom:clamp(12px,2vw,28px)}
  [data-visual="portal"] .home{margin:0 auto;min-height:0}
  [data-visual="portal"] .home h1{font-size:clamp(1.9rem,3.4vw,2.9rem);margin:.1em 0}
  [data-visual="portal"] .home__ilustra{width:108px;height:108px}
  [data-visual="portal"] .card-login{padding:clamp(20px,2.4vw,32px)}
  [data-visual="portal"] .btn-grande{padding:15px 20px;font-size:1.25rem;margin-top:12px}
  [data-visual="portal"] .ajuda-linha{margin-top:16px;padding-top:14px}
  [data-visual="portal"] .selo-votar{margin-top:14px;padding:12px 14px}
  [data-visual="portal"] .rodape-portal{padding:10px clamp(16px,4vw,40px)}
}

/* 3) abas: caixa completa (contorno em volta), como o botão Acessibilidade */
[data-visual="portal"] .nav-abas .aba{
  border:1px solid var(--borda)!important;background:var(--branco)!important;
  padding:11px 18px!important;
}
[data-visual="portal"] .nav-abas .aba:hover{
  border-color:var(--laranja)!important;background:var(--laranja-claro)!important;
}
[data-visual="portal"] .nav-abas .aba[aria-current="page"]{
  border-color:var(--laranja)!important;background:var(--laranja)!important;color:#fff!important;
}

/* 4) CPF: número maior e mais forte */
[data-visual="portal"] .card-login input[type=text],
[data-visual="portal"] .card-login input[type=tel]{
  font-size:1.85rem;font-weight:800;letter-spacing:.06em;padding:18px 20px;
}

/* 5) "Precisa de ajuda?" sem sublinhado/tarja */
[data-visual="portal"] .ajuda-linha a,[data-visual="portal"] .ajuda-linha a:hover{
  text-decoration:none!important;border-bottom:0!important;
}
[data-visual="portal"] .ajuda-linha button.link-ajuda{
  background:none;border:0;cursor:pointer;color:var(--teal);font-weight:800;
  display:inline-flex;align-items:center;gap:8px;font-size:1.05rem;font-family:inherit;
}

/* 6) rodapé: só RAKUDE, pequeno e clicável */
[data-visual="portal"] .rodape-portal{justify-content:center;font-size:.85rem;border-top:1px solid var(--borda)}
[data-visual="portal"] .rodape-portal a{color:var(--texto-2);text-decoration:none}
[data-visual="portal"] .rodape-portal a:hover{color:var(--laranja-escuro);text-decoration:underline}

/* 7) pop-up de ajuda com duas opções */
[data-visual="portal"] .modal-ajuda .opcao{
  display:flex;align-items:center;gap:14px;width:100%;text-align:left;
  background:var(--branco);border:2px solid var(--borda);border-radius:14px;
  padding:16px 18px;margin-top:12px;cursor:pointer;text-decoration:none;color:var(--texto);
  font-weight:700;font-size:1.08rem;transition:border-color .2s,background .2s;
}
[data-visual="portal"] .modal-ajuda .opcao:hover{border-color:var(--laranja);background:var(--laranja-claro)}
[data-visual="portal"] .modal-ajuda .opcao .ic{width:42px;height:42px;flex:none;color:var(--teal)}
[data-visual="portal"] .modal-ajuda .opcao small{display:block;font-weight:500;color:var(--texto-2);font-size:.92rem;margin-top:2px}

/* cartaz "Nossos candidatos" no lugar do título (coluna esquerda) */
[data-visual="portal"] .home__cartaz{
  width:100%;max-width:640px;height:auto;display:block;border-radius:var(--raio-g);
  box-shadow:var(--sombra);
}
@media (min-width:901px){
  [data-visual="portal"] .home__cartaz{max-height:72vh;object-fit:contain;margin:0 auto}
}
@media (max-width:900px){
  [data-visual="portal"] .home__cartaz{max-width:100%;margin:8px auto 0}
}

/* ---- ajustes finais: sem scrollbars extras, imagem maior, créditos ---- */
/* mata a 2a barra de rolagem: nenhum container interno rola */
html[data-visual="portal"],[data-visual="portal"]{overflow-x:hidden}
[data-visual="portal"] .palco{overflow:visible!important}
[data-visual="portal"] main,[data-visual="portal"] .palco,[data-visual="portal"] .home{overflow-y:visible!important}

/* imagem dos candidatos acompanha a altura do card de login */
@media (min-width:901px){
  [data-visual="portal"] .home{align-items:stretch}
  [data-visual="portal"] .home__intro{display:flex;align-items:center}
  [data-visual="portal"] .home__cartaz{max-width:100%;max-height:none;width:100%}
}

/* créditos RAKUDE: texto simples abaixo, sem card */
[data-visual="portal"] .creditos{
  text-align:center;margin:18px auto 6px;font-size:.82rem;color:var(--texto-2);background:none;border:0;padding:0;
}
[data-visual="portal"] .creditos a{color:var(--texto-2);text-decoration:none}
[data-visual="portal"] .creditos a:hover{color:var(--laranja-escuro);text-decoration:underline}
[data-visual="portal"] .rodape-portal{display:none} /* remove o bloco antigo em card */

/* =============================================================================
 * BLOCO 2 — pop-ups do acesso (nascimento, código, senha)
 * ========================================================================== */
[data-visual="portal"] .modal-acesso .corpo{text-align:center;padding:34px 30px}
[data-visual="portal"] .modal-acesso h3{font-size:1.8rem;margin:0 0 8px}
[data-visual="portal"] .modal-acesso p{color:var(--texto-2);font-size:1.05rem;margin:0 0 18px}
[data-visual="portal"] .rot-acesso{display:block;text-align:left;font-weight:700;margin:14px 0 6px;color:var(--texto)}
[data-visual="portal"] .campo-acesso{
  width:100%;border:2px solid var(--borda);border-radius:12px;background:#fff;
  padding:15px 16px;font-size:1.3rem;font-family:var(--mono);color:var(--texto);
}
[data-visual="portal"] .campo-acesso:focus{border-color:var(--laranja);box-shadow:0 0 0 4px var(--laranja-claro);outline:none}
[data-visual="portal"] .erro-acesso{
  color:#b3261e;background:#fdecea;border-radius:10px;padding:10px 12px;margin:12px 0 0;
  font-weight:600;font-size:.98rem;text-align:left;
}
[data-visual="portal"] #erro-cpf-inline{margin-top:10px}

/* as 6 caixas do código */
[data-visual="portal"] .caixas-codigo{display:flex;gap:10px;justify-content:center;margin:6px 0 4px}
[data-visual="portal"] .caixas-codigo .cx{
  width:56px;height:68px;text-align:center;border:2px solid var(--borda);border-radius:12px;
  font-size:2rem;font-weight:800;font-family:var(--mono);color:var(--texto);background:#fff;
}
[data-visual="portal"] .caixas-codigo .cx:focus{border-color:var(--laranja);box-shadow:0 0 0 4px var(--laranja-claro);outline:none}
@media (max-width:480px){
  [data-visual="portal"] .caixas-codigo{gap:6px}
  [data-visual="portal"] .caixas-codigo .cx{width:44px;height:58px;font-size:1.6rem}
  [data-visual="portal"] .modal-acesso .corpo{padding:26px 18px}
}

/* botão sair discreto e aviso da conferência */
[data-visual="portal"] .form-sair{margin-top:14px}
[data-visual="portal"] .link-sair{
  background:none;border:0;cursor:pointer;color:var(--texto-2);font-weight:700;
  font-size:.98rem;text-decoration:underline;font-family:inherit;padding:6px;
}
[data-visual="portal"] .link-sair:hover{color:var(--laranja-escuro)}
[data-visual="portal"] .ajuda-conf{margin:16px 0 0;font-weight:700;color:var(--texto)}

/* ---- nada sublinhado no projeto ---- */
[data-visual="portal"] a,[data-visual="portal"] a:hover,[data-visual="portal"] a:focus,
[data-visual="portal"] .btn-grande,[data-visual="portal"] .aba,[data-visual="portal"] button{text-decoration:none!important}

/* ---- menu: aba como botão/form, "Já votou" e Sair ---- */
[data-visual="portal"] .form-aba{display:inline-flex;margin:0}
[data-visual="portal"] .nav-abas button.aba{font-family:inherit;cursor:pointer}
[data-visual="portal"] .aba--feita{
  background:#eef0f2!important;border-color:var(--borda)!important;color:#8a9199!important;cursor:default;
}
[data-visual="portal"] .aba--feita .icone{color:#8a9199!important}
[data-visual="portal"] .aba--sair{border-color:var(--borda)!important}
[data-visual="portal"] .aba--sair:hover{background:#fdecea!important;border-color:#b3261e!important;color:#b3261e!important}

/* ---- card de espera (contagem regressiva) ---- */
[data-visual="portal"] .contagem{
  font-family:var(--mono);font-size:2.4rem;font-weight:800;color:var(--laranja);
  letter-spacing:.04em;margin:6px 0 2px;
}

/* ---- modal com vídeo (Etapas) ---- */
[data-visual="portal"] .modal-video{max-width:min(820px,94vw);width:min(820px,94vw)}
[data-visual="portal"] .video-wrap{position:relative;padding-top:56.25%;border-radius:12px;overflow:hidden;background:#000;margin-top:8px}
[data-visual="portal"] .video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* =============================================================================
 * MURAL PÚBLICO (sem login)
 * ========================================================================== */
[data-visual="portal"] .mural-publico{position:relative;z-index:1;max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
[data-visual="portal"] .mural-titulo{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:800;margin:0}
[data-visual="portal"] .mural-cabecalho{
  display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:center;
  background:var(--branco);border:1px solid var(--borda);border-radius:var(--raio-g);padding:20px 24px;box-shadow:var(--sombra);
}
[data-visual="portal"] .selo-estado{display:inline-block;font-weight:800;padding:6px 14px;border-radius:999px;margin:6px 0 0;font-size:.95rem}
[data-visual="portal"] .selo-estado--ok{background:var(--verde-claro);color:var(--verde)}
[data-visual="portal"] .selo-estado--info{background:var(--teal-claro);color:var(--teal)}
[data-visual="portal"] .selo-estado--atencao{background:var(--laranja-claro);color:var(--laranja-escuro)}
[data-visual="portal"] .mural-datas{display:flex;gap:26px;margin:0;flex-wrap:wrap}
[data-visual="portal"] .mural-datas dt{font-size:.85rem;color:var(--texto-2);font-weight:700}
[data-visual="portal"] .mural-datas dd{margin:2px 0 0;font-weight:700}

[data-visual="portal"] .mural-docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
[data-visual="portal"] .doc-card{
  display:flex;align-items:center;gap:14px;background:var(--branco);border:1px solid var(--borda);
  border-radius:var(--raio);padding:16px 18px;box-shadow:var(--sombra);
}
[data-visual="portal"] .doc-card div{flex:1;min-width:0}
[data-visual="portal"] .doc-card strong{display:block}
[data-visual="portal"] .doc-card small{color:var(--texto-2)}

[data-visual="portal"] .linha-publica{list-style:none;margin:10px 0 0;padding:0;border-left:3px solid var(--borda)}
[data-visual="portal"] .linha-publica li{position:relative;padding:12px 0 12px 22px}
[data-visual="portal"] .linha-publica li::before{
  content:"";position:absolute;left:-8px;top:18px;width:13px;height:13px;border-radius:50%;
  background:var(--laranja);border:3px solid var(--branco);
}
[data-visual="portal"] .lp-quando{display:block;font-size:.85rem;color:var(--texto-2)}
[data-visual="portal"] .lp-rotulo{display:block;font-size:1.05rem}
[data-visual="portal"] .lp-det{display:block;color:var(--texto-2);font-size:.95rem}
[data-visual="portal"] .lp-hash{font-family:var(--mono);font-size:.8rem;color:#8a9199}

[data-visual="portal"] .lista-avisos{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}
[data-visual="portal"] .lista-avisos li{border-top:1px solid var(--borda);padding-top:14px}
[data-visual="portal"] .lista-avisos li:first-child{border-top:0;padding-top:0}
[data-visual="portal"] .lista-avisos small{display:block;color:var(--texto-2);margin:2px 0 6px}
[data-visual="portal"] .mural-rodape{justify-content:center;flex-wrap:wrap;gap:10px;display:flex;margin-bottom:10px}
@media (max-width:700px){
  [data-visual="portal"] .mural-cabecalho{flex-direction:column;align-items:flex-start}
  [data-visual="portal"] .doc-card{flex-wrap:wrap}
}

/* SAIR: só o ícone (quadrado), depois de Acessibilidade */
[data-visual="portal"] .aba--sair{padding:11px 13px!important;min-width:0}
[data-visual="portal"] .aba--sair .icone{width:1.35em!important;height:1.35em!important}

/* "Já votou": menor e sempre cinza (sem hover, sem clique) */
[data-visual="portal"] .aba--feita{
  font-size:.92rem!important;padding:9px 14px!important;
  background:#eef0f2!important;border-color:var(--borda)!important;color:#8a9199!important;
  cursor:default;pointer-events:none;
}
[data-visual="portal"] .aba--feita .icone{width:1.05em!important;height:1.05em!important;color:#8a9199!important}

/* =============================================================================
 * AJUSTES FINAIS DO MENU E DO MURAL
 * ========================================================================== */
/* "Já votou" CINZA de verdade: a regra generica .nav-abas .aba tinha
   especificidade maior e vencia. Esta é mais específica. */
[data-visual="portal"] .nav-abas .aba--feita,
[data-visual="portal"] .nav-abas .aba.aba--feita{
  background:#e9ecef!important;border-color:#d3d8dd!important;color:#8a9199!important;
  font-size:.88rem!important;padding:9px 13px!important;cursor:default;pointer-events:none;box-shadow:none!important;
}
[data-visual="portal"] .nav-abas .aba--feita .icone{color:#8a9199!important;width:1.05em!important;height:1.05em!important}

/* menu levemente menor, para caber na tela */
[data-visual="portal"] .cabecalho{height:74px!important;gap:10px!important;padding:0 clamp(10px,2.2vw,26px)!important}
[data-visual="portal"] .marca img{height:36px!important}
[data-visual="portal"] .nav-abas ul{gap:6px!important}
[data-visual="portal"] .nav-abas .aba{font-size:.95rem!important;padding:9px 13px!important;gap:7px!important}
[data-visual="portal"] .nav-abas .aba .icone{width:1.15em!important;height:1.15em!important}
[data-visual="portal"] .acess-toggle{font-size:.95rem;padding:9px 13px}
[data-visual="portal"] .aba--sair{padding:9px 11px!important}
@media (max-width:1180px){
  [data-visual="portal"] .acess-toggle span{display:none}   /* só o ícone quando aperta */
}

/* mural: selo de estado sem cor */
[data-visual="portal"] .selo-estado--neutro{background:#eef0f2;color:var(--texto-2)}

/* mural: hash clicável (copia) e botão de documento na linha do tempo */
[data-visual="portal"] button.lp-hash{
  font-family:var(--mono);font-size:.8rem;color:#6b7278;background:#f2f4f6;border:1px solid var(--borda);
  border-radius:8px;padding:4px 8px;cursor:pointer;margin-top:6px;display:inline-block;
}
[data-visual="portal"] button.lp-hash:hover{background:var(--laranja-claro);border-color:var(--laranja);color:var(--laranja-escuro)}
[data-visual="portal"] button.lp-hash.copiado{background:var(--verde-claro);border-color:var(--verde);color:var(--verde)}
[data-visual="portal"] .lp-doc{margin:8px 10px 0 0;display:inline-flex}

/* ---- SAIR: só o ícone, cinza, sem contorno nem fundo ---- */
[data-visual="portal"] .nav-abas .aba--sair,
[data-visual="portal"] .aba--sair{
  background:transparent!important;border:0!important;box-shadow:none!important;
  color:#8a9199!important;padding:8px!important;
}
[data-visual="portal"] .aba--sair .icone{color:#8a9199!important}
[data-visual="portal"] .aba--sair:hover{background:transparent!important;color:#b3261e!important}
[data-visual="portal"] .aba--sair:hover .icone{color:#b3261e!important}

/* ---- os dois cards da home com a MESMA largura e altura ---- */
@media (min-width:901px){
  [data-visual="portal"] .home{align-items:stretch;grid-template-columns:1fr 1fr}
  [data-visual="portal"] .home__intro{display:flex;flex-direction:column;justify-content:center}
  [data-visual="portal"] .home__intro > .card-login,
  [data-visual="portal"] .col-cards > .card-login{height:100%;display:flex;flex-direction:column;justify-content:center}
  [data-visual="portal"] .col-cards{height:100%}
}

/* etapa final da linha do tempo (auditoria) */
[data-visual="portal"] .lp-final::before{background:var(--teal)!important}

/* =============================================================================
 * CARDS DA HOME: largura FIXA e igual, independente do conteúdo
 * ========================================================================== */
@media (min-width:901px){
  [data-visual="portal"] .home{
    grid-template-columns:1fr 1fr!important;   /* duas colunas exatamente iguais */
    gap:clamp(24px,3vw,48px)!important;        /* espaço entre os cards */
    max-width:1100px!important;margin:0 auto!important;
    padding:0 clamp(16px,3vw,40px);            /* margem nas laterais */
    align-items:stretch!important;
  }
  /* cada coluna ocupa 100% da sua metade e a mesma altura */
  [data-visual="portal"] .home__intro,[data-visual="portal"] .col-cards{width:100%;display:flex;flex-direction:column}
  [data-visual="portal"] .home__intro > .card-login,
  [data-visual="portal"] .col-cards > .card-login{
    width:100%;flex:1;display:flex;flex-direction:column;justify-content:center;
  }
  /* o texto não manda mais na largura */
  [data-visual="portal"] .card-login h2,[data-visual="portal"] .card-login p{overflow-wrap:anywhere}
}

/* rodapé: menor, mais claro e mais abaixo */
[data-visual="portal"] .creditos{
  margin:34px auto 10px!important;font-size:.74rem!important;color:#9aa1a8!important;
}
[data-visual="portal"] .creditos a{color:#9aa1a8!important;font-weight:600}
[data-visual="portal"] .creditos a:hover{color:var(--laranja-escuro)!important}

/* =============================================================================
 * PÁGINAS INTERNAS (auditoria, resultados, ajuda, conferir): herdam o visual
 * novo. Elas usam as classes antigas .tela-urna/.titulo-pixel/.cartao-lista.
 * ========================================================================== */
[data-visual="portal"] .palco > .tela-urna{
  display:block!important;position:relative;z-index:1;
  max-width:1000px;margin:0 auto;background:transparent;border:0;box-shadow:none;padding:0;
}
[data-visual="portal"] .tela-urna .titulo-pixel{
  font-family:var(--fonte)!important;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:800;
  letter-spacing:0;color:var(--texto);margin:0 0 6px;text-transform:none;
}
[data-visual="portal"] .tela-urna .subtitulo{color:var(--texto-2);font-size:1.05rem;margin:0 0 18px}
[data-visual="portal"] .cartao-lista{
  background:var(--branco);border:1px solid var(--borda);border-radius:var(--raio-g);
  box-shadow:var(--sombra);padding:22px 24px;margin:0 0 18px;
}
[data-visual="portal"] .cartao-lista h2{font-size:1.3rem;margin:0 0 10px}
[data-visual="portal"] .cartao-lista ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px}
[data-visual="portal"] .cartao-lista .hash,[data-visual="portal"] .hash{
  font-family:var(--mono);font-size:.82rem;color:#6b7278;word-break:break-all;
}
[data-visual="portal"] .tela-urna table.dados{width:100%;border-collapse:collapse;margin-top:10px}
[data-visual="portal"] .tela-urna table.dados th,[data-visual="portal"] .tela-urna table.dados td{
  text-align:left;padding:10px 8px;border-bottom:1px solid var(--borda);font-size:.95rem;
}
[data-visual="portal"] .tela-urna .acoes-cabine{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}

/* ---- páginas internas centralizadas (auditoria) ---- */
[data-visual="portal"] .pagina-centro{max-width:760px!important;margin:0 auto!important;text-align:center}
[data-visual="portal"] .pagina-centro .card-login{text-align:left}
[data-visual="portal"] .pagina-centro .dica.centro{text-align:center;font-size:1.05rem;margin:0 0 18px}
[data-visual="portal"] .lista-hashes{margin:0 0 20px;display:flex;flex-direction:column;gap:12px}
[data-visual="portal"] .lista-hashes > div{border-top:1px solid var(--borda);padding-top:12px}
[data-visual="portal"] .lista-hashes > div:first-child{border-top:0;padding-top:0}
[data-visual="portal"] .lista-hashes dt{font-weight:700;font-size:.95rem;margin:0 0 4px}
[data-visual="portal"] .lista-hashes dt small{font-weight:500;color:var(--texto-2)}
[data-visual="portal"] .lista-hashes dd{margin:0}
[data-visual="portal"] .lista-hashes .lp-hash{max-width:100%;overflow-wrap:anywhere;text-align:left;margin:0}

/* =============================================================================
 * MOBILE (≤ 900px) — reformulação responsiva do portal
 * ========================================================================== */
@media (max-width:900px){
  html,body{overflow-x:hidden}

  /* cabeçalho: só logo + hambúrguer */
  [data-visual="portal"] .cabecalho{height:64px!important;padding:0 14px!important;gap:8px!important;justify-content:space-between}
  [data-visual="portal"] .nav-abas,[data-visual="portal"] .acess-wrap,[data-visual="portal"] .cabecalho .aba--sair{display:none!important}
  [data-visual="portal"] .marca img{height:32px!important}
  [data-visual="portal"] .botao-menu{display:inline-flex!important;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid var(--borda);border-radius:12px;background:var(--branco)}
  [data-visual="portal"] .botao-menu .icone{width:26px;height:26px}

  /* GAVETA deslizante pela direita */
  [data-visual="portal"] .gaveta{
    position:fixed;top:0;right:0;bottom:0;width:min(86vw,360px);z-index:120;
    background:var(--branco);box-shadow:-10px 0 30px rgba(0,0,0,.18);
    transform:translateX(100%);transition:transform .25s ease;overflow-y:auto;padding:12px 0 24px;
  }
  [data-visual="portal"] .gaveta[data-aberta="1"]{transform:translateX(0)}
  .gaveta-fundo{position:fixed;inset:0;background:rgba(31,42,51,.45);z-index:110;opacity:0;pointer-events:none;transition:opacity .25s}
  .gaveta-fundo.visivel{opacity:1;pointer-events:auto}
  body.gaveta-aberta{overflow:hidden}
  [data-visual="portal"] .gaveta .fechar{margin:4px 12px 8px auto;display:flex;gap:8px;align-items:center;border:1px solid var(--borda);border-radius:10px;background:var(--branco);padding:8px 12px;font-weight:700}
  [data-visual="portal"] .gaveta ul{padding:0 12px}
  [data-visual="portal"] .gaveta li form{margin:0}
  [data-visual="portal"] .gaveta .item{
    display:flex;align-items:center;gap:14px;width:100%;box-sizing:border-box;text-align:left;
    padding:16px 14px;border:0;border-bottom:1px solid var(--borda);background:transparent;
    font-size:1.15rem;font-weight:700;color:var(--texto);font-family:inherit;cursor:pointer;border-radius:0;
  }
  [data-visual="portal"] .gaveta .item .icone{width:1.35em;height:1.35em;flex:none}
  [data-visual="portal"] .gaveta .item--destaque{background:var(--laranja);color:#fff;border-radius:12px;border-bottom:0;margin:4px 0 8px}
  [data-visual="portal"] .gaveta .item--destaque .icone{color:#fff}
  [data-visual="portal"] .gaveta .item--feito{background:#e9ecef;color:#8a9199;border-radius:12px;border-bottom:0;margin:4px 0 8px;pointer-events:none}
  [data-visual="portal"] .gaveta .item--sair{color:#b3261e}
  [data-visual="portal"] .gaveta .gaveta-sep{height:10px;border:0}
  [data-visual="portal"] .gaveta .item--acess{flex-direction:column;align-items:flex-start;gap:10px;cursor:default}
  [data-visual="portal"] .gaveta .acess-linha{display:flex;gap:8px;width:100%}
  [data-visual="portal"] .gaveta .acess-btn{flex:1;min-height:44px;border:1px solid var(--borda);border-radius:10px;background:var(--fundo);font-weight:800;font-size:1rem}

  /* HOME: cards empilhados, cheios, sem grade de 2 colunas */
  [data-visual="portal"] .home{display:flex!important;flex-direction:column;gap:16px;padding:0 12px;max-width:none}
  [data-visual="portal"] .home__intro,[data-visual="portal"] .col-cards{width:100%}
  [data-visual="portal"] .card-login{padding:20px 16px;border-radius:16px}
  [data-visual="portal"] .card-login h2{font-size:1.5rem}
  [data-visual="portal"] .card-login input[type=tel],[data-visual="portal"] .card-login input[type=text]{font-size:1.45rem;padding:14px}
  [data-visual="portal"] .btn-grande{font-size:1.15rem;padding:16px}
  [data-visual="portal"] .home__cartaz{max-height:none;width:100%}
  [data-visual="portal"] .palco{padding:14px 0 24px}
  [data-visual="portal"] .creditos{margin:22px auto 8px!important}

  /* POP-UPS sempre dentro da tela e roláveis */
  [data-visual="portal"] dialog.modal-cpf,[data-visual="portal"] .modal-cpf{
    width:94vw!important;max-width:94vw!important;max-height:88dvh!important;overflow:auto;
    margin:auto;box-sizing:border-box;border-radius:16px;
  }
  [data-visual="portal"] .modal-cpf .corpo{padding:26px 16px}
  [data-visual="portal"] .modal-cpf h3{font-size:1.5rem}
  [data-visual="portal"] .modal-video{width:94vw!important}
  [data-visual="portal"] .caixas-codigo .cx{width:44px;height:58px;font-size:1.5rem}

  /* MURAL / AUDITORIA */
  [data-visual="portal"] .mural-publico,[data-visual="portal"] .pagina-centro{padding:0 12px}
  [data-visual="portal"] .mural-cabecalho{padding:16px}
  [data-visual="portal"] .mural-docs{grid-template-columns:1fr}
  [data-visual="portal"] .lp-hash,[data-visual="portal"] button.lp-hash{max-width:100%;overflow-wrap:anywhere;white-space:normal;text-align:left}
}

/* mobile: nada transborda — tudo com box-sizing e largura contida */
@media (max-width:900px){
  [data-visual="portal"] *,[data-visual="portal"] *::before,[data-visual="portal"] *::after{box-sizing:border-box}
  [data-visual="portal"] .home{width:100%;max-width:100%;padding:0 12px;margin:0}
  [data-visual="portal"] .home__intro,[data-visual="portal"] .col-cards,[data-visual="portal"] .card-login{width:100%;max-width:100%}
  [data-visual="portal"] .card-login form,[data-visual="portal"] .card-login input,[data-visual="portal"] .btn-grande{width:100%;max-width:100%}
  [data-visual="portal"] .card-login input{min-width:0}
  [data-visual="portal"] .palco{width:100%;max-width:100%;padding-left:0;padding-right:0}
  [data-visual="portal"] .palco::before,[data-visual="portal"] .palco::after{display:none}
  [data-visual="portal"] .home__cartaz{max-width:100%;height:auto}
}
