/* =====================================================================
   PT Fiscais 2026 — folha de estilo única
   Paleta: vermelho institucional + verde/amarelo complementares.
   Sem gradientes, sem sombras pesadas, sem animações decorativas.
   ===================================================================== */

:root {
  --vermelho: #D71920;
  --vermelho-escuro: #A9151B;
  --vermelho-claro: #FBEAEC;
  --verde: #00843D;
  --verde-escuro: #075D37;
  --verde-claro: #E5F4EB;
  --amarelo: #FFDF00;
  --amarelo-escuro: #8B6A00;
  --amarelo-claro: #FFF9D8;
  --branco: #FFFFFF;
  --cinza: #F5F6F8;
  --cinza-borda: #E3E6EA;
  --cinza-medio: #8A9099;
  --texto: #222222;
  --texto-suave: #5A6068;
  --azul: #12518F;
  --azul-claro: #E7F0FA;
  --raio: 8px;
  --raio-pequeno: 5px;
  --sombra: 0 1px 2px rgba(16, 24, 40, .06);
  --fonte: "Segoe UI", Roboto, "Helvetica Neue", Arial, system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--fonte);
  font-size: 15px;
  line-height: 1.55;
  color: var(--texto);
  background: var(--cinza);
}

h1, h2, h3, h4 { margin: 0 0 .5em; line-height: 1.25; font-weight: 700; }
h1 { font-size: 24px; }
h2 { font-size: 18px; }
h3 { font-size: 15px; }
p { margin: 0 0 1em; }
a { color: var(--vermelho); text-decoration: none; }
a:hover { text-decoration: underline; }
small { font-size: 12.5px; color: var(--texto-suave); }
strong { font-weight: 600; }
hr { border: 0; border-top: 1px solid var(--cinza-borda); margin: 24px 0; }

.container {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 20px;
}

.oculto, [hidden] { display: none !important; }
.somente-leitor {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

/* ---------------------------------------------------------------- Topo */
.topo {
  background: var(--branco);
  border-bottom: 3px solid var(--vermelho);
}
.topo__interno {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 66px;
  flex-wrap: wrap;
}

.marca { display: flex; align-items: center; gap: 12px; color: var(--texto); }
.marca:hover { text-decoration: none; }
.marca__barra {
  width: 6px; height: 34px;
  background: var(--vermelho);
  border-radius: 2px;
  flex: 0 0 auto;
}
.marca__texto { display: flex; flex-direction: column; line-height: 1.2; }
.marca__texto strong { font-size: 16px; letter-spacing: -.2px; }
.marca__texto small { font-size: 12px; color: var(--texto-suave); }

.topo__nav {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 14px;
}
.topo__nav a { color: var(--texto-suave); padding: 6px 0; }
.topo__nav a:hover { color: var(--vermelho); text-decoration: none; }
.topo__nav a.ativo { color: var(--texto); font-weight: 600; box-shadow: inset 0 -2px 0 var(--vermelho); }
.topo__entrar {
  border: 1px solid var(--cinza-borda);
  padding: 8px 14px !important;
  border-radius: var(--raio-pequeno);
}
.topo__entrar:hover { border-color: var(--vermelho); }

.topo__usuario { display: flex; align-items: center; gap: 10px; font-size: 13.5px; }
.topo__nome { font-weight: 600; }

.etiqueta {
  background: var(--cinza);
  border: 1px solid var(--cinza-borda);
  color: var(--texto-suave);
  font-size: 11.5px;
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
}

/* Menu administrativo */
.menu {
  background: var(--vermelho-escuro);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.menu__interno {
  display: flex;
  gap: 2px;
  align-items: stretch;
  min-height: 44px;
}
.menu__link {
  display: flex;
  align-items: center;
  padding: 10px 14px;
  color: rgba(255, 255, 255, .86);
  font-size: 13.5px;
  white-space: nowrap;
  border-bottom: 3px solid transparent;
}
.menu__link:hover { background: rgba(0, 0, 0, .16); color: #fff; text-decoration: none; }
.menu__link--ativo { background: rgba(0, 0, 0, .22); color: #fff; border-bottom-color: var(--amarelo); font-weight: 600; }
.menu__link--publico { margin-left: auto; color: var(--amarelo); }

/* ------------------------------------------------------------ Conteúdo */
.conteudo { padding-top: 28px; padding-bottom: 48px; }
.conteudo--admin { padding-top: 22px; }

.pagina-cabecalho {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.pagina-cabecalho h1 { margin: 0; }
.pagina-cabecalho__sub { color: var(--texto-suave); font-size: 13.5px; margin-top: 4px; }
.pagina-cabecalho__acoes { display: flex; gap: 8px; flex-wrap: wrap; }

/* --------------------------------------------------------------- Cartões */
.cartoes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  margin-bottom: 22px;
}
.cartao {
  background: var(--branco);
  border: 1px solid var(--cinza-borda);
  border-left: 3px solid var(--cinza-borda);
  border-radius: var(--raio);
  padding: 14px 16px;
  box-shadow: var(--sombra);
}
.cartao__rotulo {
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: var(--texto-suave);
  font-weight: 600;
  margin-bottom: 6px;
}
.cartao__valor { font-size: 27px; font-weight: 700; line-height: 1.1; letter-spacing: -.5px; }
.cartao__nota { font-size: 12px; color: var(--texto-suave); margin-top: 4px; }
.cartao--vermelho { border-left-color: var(--vermelho); }
.cartao--verde { border-left-color: var(--verde); }
.cartao--amarelo { border-left-color: var(--amarelo-escuro); }
.cartao--cinza { border-left-color: var(--cinza-medio); }
.cartao--azul { border-left-color: var(--azul); }

/* ---------------------------------------------------------------- Painel */
.painel {
  background: var(--branco);
  border: 1px solid var(--cinza-borda);
  border-radius: var(--raio);
  margin-bottom: 20px;
  box-shadow: var(--sombra);
  overflow: hidden;
}
.painel__cabecalho {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 14px 18px;
  border-bottom: 1px solid var(--cinza-borda);
}
.painel__cabecalho h2 { margin: 0; font-size: 15px; }
.painel__corpo { padding: 18px; }
.painel__corpo--compacto { padding: 0; }
.painel__rodape { padding: 12px 18px; border-top: 1px solid var(--cinza-borda); background: #FBFCFD; }

/* --------------------------------------------------------------- Tabelas */
.tabela-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tabela { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tabela th {
  text-align: left;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--texto-suave);
  font-weight: 600;
  background: #FAFBFC;
  padding: 10px 12px;
  border-bottom: 1px solid var(--cinza-borda);
  white-space: nowrap;
}
.tabela td {
  padding: 10px 12px;
  border-bottom: 1px solid #EFF1F4;
  vertical-align: middle;
}
.tabela tbody tr:hover { background: #FBFCFD; }
.tabela tbody tr:last-child td { border-bottom: 0; }
.tabela__numero { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabela__principal { font-weight: 600; }
.tabela__secundario { display: block; font-size: 12px; color: var(--texto-suave); font-weight: 400; }
.tabela--compacta td, .tabela--compacta th { padding: 7px 10px; }

/* ----------------------------------------------------------------- Selos */
.selo {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
  border: 1px solid transparent;
}
.selo--verde { background: var(--verde-claro); color: #046A2A; border-color: #BFE3CE; }
.selo--amarelo { background: var(--amarelo-claro); color: #7A5E00; border-color: #F0E2A8; }
.selo--vermelho { background: var(--vermelho-claro); color: var(--vermelho-escuro); border-color: #F2C9C9; }
.selo--cinza { background: #F0F1F3; color: #56606B; border-color: #E1E4E8; }
.selo--azul { background: var(--azul-claro); color: var(--azul); border-color: #C9DDF2; }

/* --------------------------------------------------------------- Botões */
.botao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 38px;
  padding: 8px 16px;
  border-radius: var(--raio-pequeno);
  border: 1px solid var(--verde);
  background: var(--verde);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  line-height: 1.2;
  text-align: center;
}
.botao:hover { background: var(--verde-escuro); border-color: var(--verde-escuro); color: #fff; text-decoration: none; }
.botao:focus-visible { outline: 3px solid rgba(0, 132, 61, .28); outline-offset: 1px; }
.botao[disabled] { opacity: .55; cursor: not-allowed; }
.botao--secundario { background: var(--branco); color: var(--texto); border-color: #C9CED6; }
.botao--secundario:hover { background: #F7F8FA; border-color: #AEB5BF; color: var(--texto); }
.botao--fantasma { background: transparent; color: var(--texto-suave); border-color: var(--cinza-borda); }
.botao--fantasma:hover { background: var(--cinza); color: var(--texto); border-color: #C9CED6; }
.botao--perigo { background: var(--branco); color: var(--vermelho); border-color: #F2C9C9; }
.botao--perigo:hover { background: var(--vermelho-claro); color: var(--vermelho-escuro); }
.botao--pequeno { min-height: 30px; padding: 5px 10px; font-size: 12.5px; }
.botao--bloco { width: 100%; }
.botao--verde { background: var(--verde); border-color: var(--verde); }
.botao--verde:hover { background: #007A2E; border-color: #007A2E; }

/* -------------------------------------------------------------- Alertas */
.alerta {
  padding: 12px 16px;
  border-radius: var(--raio-pequeno);
  border: 1px solid var(--cinza-borda);
  background: var(--branco);
  font-size: 14px;
  margin-bottom: 16px;
}
.alerta--sucesso { border-color: #BFE3CE; background: var(--verde-claro); color: #065F28; }
.alerta--erro { border-color: #F2C9C9; background: var(--vermelho-claro); color: var(--vermelho-escuro); }
.alerta--aviso { border-color: #F0E2A8; background: var(--amarelo-claro); color: #6B5300; }
.alerta--info { border-color: #C9DDF2; background: var(--azul-claro); color: #12406E; }
.alerta ul { margin: 6px 0 0; padding-left: 20px; }

/* ----------------------------------------------------------- Formulário */
.formulario { max-width: 100%; }

.grade { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grade--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grade--1 { grid-template-columns: 1fr; }
.campo { display: flex; flex-direction: column; gap: 5px; }
.campo--largo { grid-column: 1 / -1; }

.campo__rotulo { font-size: 13px; font-weight: 600; }
.campo__rotulo .opcional { font-weight: 400; color: var(--texto-suave); font-size: 12px; }
.campo__ajuda { font-size: 12px; color: var(--texto-suave); }

input[type="text"], input[type="email"], input[type="password"], input[type="tel"],
input[type="number"], input[type="date"], input[type="search"], input[type="file"],
select, textarea {
  width: 100%;
  min-height: 40px;
  padding: 8px 11px;
  border: 1px solid #CBD1D9;
  border-radius: var(--raio-pequeno);
  background: var(--branco);
  font-family: inherit;
  font-size: 14px;
  color: var(--texto);
}
textarea { min-height: 88px; resize: vertical; }
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--vermelho);
  box-shadow: 0 0 0 3px rgba(204, 0, 0, .12);
}
input[type="file"] { padding: 6px 8px; min-height: 44px; }
.campo--erro input, .campo--erro select, .campo--erro textarea { border-color: var(--vermelho); }
.campo__erro { font-size: 12.5px; color: var(--vermelho-escuro); font-weight: 600; }

.check { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; line-height: 1.5; }
.check input[type="checkbox"] {
  width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--vermelho); flex: 0 0 auto;
}
.check + .check { margin-top: 10px; }
.check--caixa {
  border: 1px solid var(--cinza-borda);
  border-radius: var(--raio-pequeno);
  padding: 12px 14px;
  background: #FCFCFD;
}

fieldset {
  border: 1px solid var(--cinza-borda);
  border-radius: var(--raio);
  padding: 16px;
  margin: 0 0 18px;
  background: var(--branco);
}
legend {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: var(--vermelho);
  padding: 0 6px;
}

.acoes-form { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 8px; }

/* --------------------------------------------------------------- Filtros */
.filtros {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: flex-end;
  padding: 14px 18px;
  background: var(--branco);
  border: 1px solid var(--cinza-borda);
  border-radius: var(--raio);
  margin-bottom: 16px;
}
.filtros .campo { min-width: 150px; flex: 1 1 150px; }
.filtros .campo--busca { flex: 2 1 220px; }
.filtros .botao { flex: 0 0 auto; }
.filtros__limpar { font-size: 12.5px; align-self: center; }

/* ------------------------------------------------------------ Paginação */
.paginacao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 18px;
  border-top: 1px solid var(--cinza-borda);
  background: #FBFCFD;
  flex-wrap: wrap;
}
.paginacao__info { font-size: 12.5px; color: var(--texto-suave); }

/* ---------------------------------------------------------------- Mapa */
.mapa {
  width: 100%;
  height: 520px;
  border-radius: var(--raio);
  border: 1px solid var(--cinza-borda);
  background: #E9EDF2;
  z-index: 1;
}
.mapa-tile-warning {
  position: absolute; z-index: 1000; top: 12px; left: 58px; max-width: min(390px, calc(100% - 76px));
  padding: 9px 12px; border: 1px solid #E7D889; border-radius: 7px;
  background: rgba(255, 249, 216, .96); color: #614B00; font-size: 12px; line-height: 1.45;
}
.mapa--sem-base { background-color: #EDF2EE; }
.mapa-legenda {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 12.5px;
  color: var(--texto-suave);
  padding: 10px 18px;
  border-top: 1px solid var(--cinza-borda);
}
.mapa-legenda span { display: inline-flex; align-items: center; gap: 6px; }
.ponto { width: 11px; height: 11px; border-radius: 50%; display: inline-block; }
.ponto--verde { background: var(--verde); }
.ponto--amarelo { background: #E0B400; }
.ponto--vermelho { background: var(--vermelho); }
.ponto--cinza { background: var(--cinza-medio); }

/* ----------------------------------------------------------------- Misc */
.vazio {
  text-align: center;
  padding: 40px 20px;
  color: var(--texto-suave);
  font-size: 14px;
}
.dica {
  font-size: 12.5px;
  color: var(--texto-suave);
  background: #F8F9FB;
  border: 1px dashed var(--cinza-borda);
  border-radius: var(--raio-pequeno);
  padding: 10px 12px;
}
.barra { height: 6px; background: #EAEDF1; border-radius: 999px; overflow: hidden; min-width: 60px; }
.barra__preenchimento { height: 100%; background: var(--verde); }
.barra__preenchimento--parcial { background: #E0B400; }
.barra__preenchimento--pendente { background: var(--vermelho); }

.lista-limpa { list-style: none; margin: 0; padding: 0; }
.lista-limpa li { padding: 8px 0; border-bottom: 1px solid #EFF1F4; }
.lista-limpa li:last-child { border-bottom: 0; }

.duas-colunas { display: grid; grid-template-columns: 1.6fr 1fr; gap: 20px; align-items: start; }
.duas-colunas--iguais { grid-template-columns: 1fr 1fr; }

.dado { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; font-size: 13.5px; }
.dado dt { color: var(--texto-suave); }
.dado dd { margin: 0; font-weight: 600; text-align: right; }

.link-perigo { color: var(--vermelho); }
.texto-suave { color: var(--texto-suave); }
.texto-pequeno { font-size: 12.5px; }
.agorarapido { font-variant-numeric: tabular-nums; }

/* --------------------------------------------------------------- Rodapé */
.rodape {
  background: var(--branco);
  border-top: 1px solid var(--cinza-borda);
  padding: 24px 0 32px;
  font-size: 12.5px;
  color: var(--texto-suave);
}
.rodape p { margin: 0 0 6px; }
.rodape__aviso { max-width: 760px; line-height: 1.6; }
.rodape__links { display: flex; gap: 8px; }
.rodape--admin { padding: 16px 0; }
.rodape__mini { font-size: 12px; margin: 0; }

/* -------------------------------------------------------------- Público */
.pagina-publica .conteudo { padding-top: 32px; }
.hero {
  background: var(--branco);
  border: 1px solid var(--cinza-borda);
  border-top: 4px solid var(--vermelho);
  border-radius: var(--raio);
  padding: 28px;
  margin-bottom: 22px;
}
.hero h1 { font-size: 26px; margin-bottom: 8px; }
.hero p { color: var(--texto-suave); max-width: 680px; }
.hero__selo {
  display: inline-block;
  background: var(--vermelho-claro);
  color: var(--vermelho-escuro);
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  margin-bottom: 12px;
}
.protocolo-caixa {
  background: var(--branco);
  border: 1px solid var(--cinza-borda);
  border-left: 4px solid var(--verde);
  border-radius: var(--raio);
  padding: 24px;
  text-align: center;
}
.protocolo-caixa__codigo {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 1.5px;
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  margin: 10px 0;
  word-break: break-all;
}
.passos { counter-reset: passo; list-style: none; padding: 0; margin: 0; }
.passos li {
  counter-increment: passo;
  padding-left: 34px;
  position: relative;
  margin-bottom: 12px;
  font-size: 13.5px;
}
.passos li::before {
  content: counter(passo);
  position: absolute;
  left: 0; top: 1px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--vermelho);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ------------------------------------------------------------- Check-in */
.cartao-checkin {
  max-width: 460px;
  margin: 40px auto;
  background: var(--branco);
  border: 1px solid var(--cinza-borda);
  border-radius: var(--raio);
  padding: 28px;
  text-align: center;
}
.cartao-checkin h1 { font-size: 20px; }
.cartao-checkin .dado { text-align: left; }

/* ------------------------------------------------------------ Impressão */
@media print {
  body { background: #fff; font-size: 11pt; }
  .topo, .menu, .rodape, .botao, .filtros, .paginacao, .no-print { display: none !important; }
  .conteudo { padding: 0; max-width: none; }
  .painel { border: 0; box-shadow: none; }
  .painel__cabecalho { border-bottom: 1px solid #000; }
  .tabela th { background: #eee !important; }
  .tabela td, .tabela th { padding: 4px 6px; }
  a { color: #000; text-decoration: none; }
  .impressao-cabecalho { display: block !important; margin-bottom: 12px; }
}
.impressao-cabecalho { display: none; }

/* ---------------------------------------------------------------- Mobile */
@media (max-width: 820px) {
  .container { padding: 0 14px; }
  .topo__interno { min-height: 58px; }
  .topo { position: sticky; top: 0; z-index: 20; }
  .topo__nav { width: 100%; gap: 14px; padding-bottom: 8px; font-size: 13px; }
  .topo__entrar { margin-left: auto; }
  .duas-colunas, .duas-colunas--iguais { grid-template-columns: 1fr; }
  .grade, .grade--3 { grid-template-columns: 1fr; }
  .cartoes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cartao__valor { font-size: 22px; }
  .mapa { height: 380px; }
  .conteudo { padding-top: 18px; }
  .hero { padding: 20px; }
  .hero h1 { font-size: 21px; }
  .tabela { font-size: 13px; }
  h1 { font-size: 20px; }
}

@media (max-width: 420px) {
  .cartoes { grid-template-columns: 1fr; }
  .menu__link { padding: 10px 11px; font-size: 12.5px; }
}

/* =====================================================================
   Interface operacional 2026
   Sidebar compacta, mapa em destaque e ações derivadas dos dados reais.
   ===================================================================== */
:root {
  --vermelho: #B5121B;
  --vermelho-escuro: #8F1018;
  --vermelho-claro: #FFF0F1;
  --verde: #13884A;
  --verde-claro: #EAF6EF;
  --amarelo: #F2B600;
  --amarelo-escuro: #A87400;
  --amarelo-claro: #FFF8E2;
  --cinza: #F4F6F9;
  --cinza-borda: #E4E8EF;
  --cinza-medio: #8792A2;
  --texto: #18212F;
  --texto-suave: #617087;
  --raio: 12px;
  --raio-pequeno: 8px;
  --sombra: 0 1px 3px rgba(24, 33, 47, .045), 0 5px 18px rgba(24, 33, 47, .035);
}

body { color: var(--texto); background: var(--cinza); }
button, input, select, textarea { font: inherit; }
a { transition: color .16s ease, background-color .16s ease, border-color .16s ease; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(181, 18, 27, .24);
  outline-offset: 2px;
}
.pular-conteudo {
  position: fixed; z-index: 200; top: 8px; left: 8px;
  transform: translateY(-150%); padding: 10px 14px; border-radius: 8px;
  background: #fff; color: var(--vermelho); box-shadow: 0 4px 16px #1720332b;
}
.pular-conteudo:focus { transform: translateY(0); }

/* ---------------------------------------------------------- administração */
.pagina-admin { min-height: 100vh; background: #F3F5F8; }
.admin-shell { min-height: 100vh; }
.admin-sidebar {
  position: fixed; z-index: 40; inset: 0 auto 0 0; width: 258px;
  display: flex; flex-direction: column; padding: 19px 14px 15px;
  color: #fff; background: #075D37;
  box-shadow: 3px 0 18px rgba(7, 72, 42, .13);
}
.admin-brand {
  min-height: 0; display: flex; flex-direction: column; align-items: stretch; gap: 8px;
  padding: 3px 7px 15px; color: #fff; text-decoration: none;
}
.admin-brand:hover { color: #fff; text-decoration: none; }
.admin-brand__logo { display: block; width: 100%; max-width: 226px; height: auto; border-radius: 7px; }
.marca__simbolo {
  width: 48px; height: 48px; flex: 0 0 48px;
  display: grid; place-items: center; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 93%, 50% 72%, 21% 93%, 32% 57%, 2% 35%, 39% 35%);
  background: #fff; color: var(--vermelho); font-size: 14px; font-weight: 900; letter-spacing: -.8px;
}
.marca__simbolo > span { transform: translateY(1px); }
.admin-brand__texto { min-width: 0; display: flex; flex-direction: column; gap: 3px; line-height: 1.16; }
.admin-brand__texto strong { color: #fff; font-size: 17px; letter-spacing: .25px; }
.admin-brand__texto small { overflow: hidden; max-width: 166px; color: rgba(255,255,255,.75); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.admin-sidebar__section-label {
  padding: 12px 11px 8px; color: rgba(255,255,255,.7);
  font-size: 10px; font-weight: 700; letter-spacing: 1.15px;
}
.admin-nav { min-height: 0; flex: 1 1 auto; overflow-y: auto; padding: 0 0 10px; scrollbar-color: rgba(255,255,255,.32) transparent; scrollbar-width: thin; }
.admin-sidebar .menu__link {
  position: relative; min-height: 42px; display: flex; align-items: center; gap: 12px;
  margin: 2px 0; padding: 9px 11px; border: 0; border-radius: 8px;
  color: rgba(255,255,255,.85); font-size: 13px; font-weight: 500; text-decoration: none;
  transition: background-color .16s ease, color .16s ease;
}
.admin-sidebar .menu__link svg,
.sidebar-public-link svg,
.sidebar-election-mark svg {
  width: 19px; height: 19px; flex: 0 0 19px; fill: none;
  stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.admin-sidebar .menu__link:hover { color: #fff; background: rgba(255,255,255,.12); text-decoration: none; }
.admin-sidebar .menu__link--ativo { color: #15492E; background: #FFDF00; font-weight: 700; box-shadow: 0 3px 10px rgba(0, 40, 20, .14); }
.admin-sidebar .menu__link--ativo:hover { color: #15492E; background: #FFDF00; }
.admin-sidebar .menu__link--ativo::before {
  position: absolute; left: -14px; top: 9px; bottom: 9px; width: 3px;
  border-radius: 0 3px 3px 0; background: #fff; content: "";
}
.sidebar-public-link {
  display: flex; align-items: center; gap: 9px; min-height: 42px;
  margin: 10px 2px 12px; padding: 9px 10px; border: 1px solid rgba(255,255,255,.22);
  border-radius: 9px; color: #fff; font-size: 12px; font-weight: 600; text-decoration: none;
}
.sidebar-public-link > span { margin-left: auto; color: #FFDF00; font-size: 17px; }
.sidebar-public-link:hover { background: rgba(255,255,255,.1); color: #fff; text-decoration: none; }
.admin-sidebar__footer {
  display: flex; align-items: center; gap: 11px; padding: 13px 10px 2px;
  border-top: 1px solid rgba(255,255,255,.17);
}
.sidebar-election-mark {
  width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center;
  border: 1px solid rgba(255,255,255,.18); border-radius: 9px; background: rgba(255,255,255,.08); color: #FFE06B;
}
.sidebar-election-mark svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.admin-sidebar__footer > span:last-child { display: flex; flex-direction: column; gap: 3px; }
.admin-sidebar__footer strong { color: #fff; font-size: 11.5px; }
.admin-sidebar__footer small { color: rgba(255,255,255,.69); font-size: 10.5px; }

.admin-workspace { min-height: 100vh; display: flex; flex-direction: column; margin-left: 258px; }
.admin-topbar {
  position: sticky; top: 0; z-index: 25; min-height: 70px; display: flex; align-items: center;
  justify-content: space-between; gap: 22px; padding: 10px clamp(20px, 2.2vw, 34px);
  border-bottom: 1px solid #E7EAF0; background: rgba(255,255,255,.96); backdrop-filter: blur(12px);
}
.admin-topbar__start, .admin-topbar__end { min-width: 0; display: flex; align-items: center; gap: 18px; }
.admin-topbar__start { flex: 1 1 auto; }
.admin-topbar__end { flex: 0 0 auto; justify-content: flex-end; }
.admin-search { position: relative; width: min(100%, 540px); display: flex; align-items: center; }
.admin-search > svg {
  position: absolute; left: 14px; width: 18px; height: 18px; fill: none; stroke: #758197;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; pointer-events: none;
}
.admin-search input {
  min-height: 42px; padding: 8px 62px 8px 42px; border-color: #E3E7ED;
  border-radius: 9px; background: #F7F8FA; font-size: 13px;
}
.admin-search input::placeholder { color: #929BAB; }
.admin-search kbd {
  position: absolute; right: 10px; padding: 2px 6px; border: 1px solid #E0E4EA;
  border-radius: 5px; background: white; color: #8792A2; font-family: inherit; font-size: 10px;
}
.admin-eleicao { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border: 1px solid #F2DCDD; border-radius: 9px; background: #FFF8F8; }
.admin-eleicao > svg { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: var(--vermelho); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.admin-eleicao > span { display: flex; flex-direction: column; gap: 1px; white-space: nowrap; }
.admin-eleicao small { color: #7C6470; font-size: 10px; }
.admin-eleicao strong { color: var(--vermelho); font-size: 11px; font-weight: 700; }
.admin-account { display: flex; align-items: center; gap: 9px; padding-left: 15px; border-left: 1px solid #E7EAF0; }
.admin-account__avatar { width: 37px; height: 37px; display: grid; place-items: center; border: 2px solid #F1E4E4; border-radius: 50%; background: #F9E9E9; color: var(--vermelho); font-size: 12px; font-weight: 800; }
.admin-account__details { min-width: 0; max-width: 170px; display: flex; flex-direction: column; gap: 1px; }
.admin-account__details strong { overflow: hidden; color: #202A38; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.admin-account__details small { overflow: hidden; color: #7B8799; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.admin-account__logout { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 6px; color: #687487; }
.admin-account__logout:hover { background: #F6E9EA; color: var(--vermelho); }
.admin-account__logout svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.admin-menu-toggle { display: none; }
.admin-nav-scrim { display: none; }

.pagina-admin .conteudo--admin {
  width: 100%; max-width: none; flex: 1 0 auto; margin: 0;
  padding: 25px clamp(18px, 2.2vw, 34px) 34px;
}
.pagina-admin .pagina-cabecalho { margin-bottom: 17px; align-items: center; }
.pagina-admin .pagina-cabecalho h1 { color: #18212F; font-size: clamp(22px, 2vw, 27px); letter-spacing: -.55px; }
.pagina-admin .pagina-cabecalho__sub { margin-top: 5px; color: #68758A; font-size: 12.5px; }
.pagina-admin .pagina-cabecalho__acoes { gap: 8px; }
.pagina-admin .rodape--admin { width: 100%; margin: 0; padding: 13px clamp(18px, 2.2vw, 34px) 16px; border-top-color: #E8EBF0; background: #fff; }
.pagina-admin .rodape__mini { display: flex; justify-content: space-between; gap: 8px 18px; flex-wrap: wrap; color: #788396; font-size: 10.5px; }
.pagina-admin .filtros { padding: 13px 15px; border-color: #E7EAF0; border-radius: 10px; box-shadow: 0 1px 2px rgba(24,33,47,.025); }
.pagina-admin .painel { border-color: #E5E9EF; border-radius: 11px; box-shadow: 0 1px 2px rgba(24,33,47,.025); }
.pagina-admin .painel__cabecalho { padding: 14px 17px; border-bottom-color: #EDF0F3; }
.pagina-admin .painel__cabecalho h2 { color: #222C3A; }
.pagina-admin .botao { border-radius: 7px; }

/* Indicadores */
.dashboard-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 15px 0 16px; }
.dashboard-kpi {
  min-width: 0; min-height: 100px; display: flex; align-items: flex-start; gap: 12px;
  padding: 15px 14px; border: 1px solid #E5E9EF; border-left: 1px solid #E5E9EF;
  border-radius: 11px; background: #fff; box-shadow: 0 1px 2px rgba(24,33,47,.025);
}
.dashboard-kpi__icon { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 50%; background: #F0F3F7; color: #647187; }
.dashboard-kpi__icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-kpi__body { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.dashboard-kpi .cartao__rotulo { margin: 1px 0 6px; color: #6F7B8D; font-size: 10px; letter-spacing: .45px; }
.dashboard-kpi .cartao__valor { color: #18212F; font-size: clamp(23px, 2vw, 29px); font-weight: 750; letter-spacing: -.8px; font-variant-numeric: tabular-nums; }
.dashboard-kpi .cartao__nota { margin-top: 5px; color: #738095; font-size: 10.5px; line-height: 1.4; }
.dashboard-kpi--pessoas .dashboard-kpi__icon { background: #FFF0F1; color: #C41621; }
.dashboard-kpi--coberto .dashboard-kpi__icon { background: #EAF6EF; color: #13884A; }
.dashboard-kpi--parcial .dashboard-kpi__icon { background: #FFF7DF; color: #A87400; }
.dashboard-kpi--pendente .dashboard-kpi__icon { background: #FFF0F1; color: #C41621; }
.dashboard-kpi--confirmados .dashboard-kpi__icon { background: #EAF6EF; color: #13884A; }

/* Mapa e distribuição */
.dashboard-main-grid { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(300px, .92fr); gap: 14px; align-items: stretch; }
.dashboard-panel { min-width: 0; margin: 0; overflow: hidden; background: #fff; }
.dashboard-map-panel { display: flex; flex-direction: column; }
.dashboard-panel__header { min-height: 59px; gap: 10px; }
.dashboard-panel__title { min-width: 0; display: flex; align-items: center; gap: 10px; }
.dashboard-panel__title-icon { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 9px; background: #FFF0F1; color: var(--vermelho); }
.dashboard-panel__title-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-panel__title h2, .dashboard-panel__header h2 { margin: 0; font-size: 14px; font-weight: 700; letter-spacing: -.1px; }
.dashboard-panel__title p, .dashboard-panel__header p { margin: 3px 0 0; color: #7B8799; font-size: 10.5px; line-height: 1.35; }
.dashboard-panel__actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.dashboard-panel__actions .botao { white-space: nowrap; }
.map-count { color: #6A778B; font-size: 10.5px; white-space: nowrap; }
.dashboard-map-panel .mapa--dashboard { width: 100%; height: 425px; min-height: 310px; border: 0; border-radius: 0; background: #EDF2ED; }
.dashboard-map-panel .leaflet-container { z-index: 1; font-family: var(--fonte); font-size: 12px; }
.dashboard-map-panel .leaflet-control-attribution { font-size: 9px; }
.dashboard-map-panel .leaflet-popup-content-wrapper { border-radius: 9px; box-shadow: 0 5px 22px rgba(24,33,47,.2); }
.dashboard-map-panel .leaflet-popup-content { margin: 11px 13px; }
.mapa-popup { min-width: 160px; display: flex; flex-direction: column; gap: 4px; line-height: 1.4; }
.mapa-popup__nome { margin-bottom: 2px; color: #192333; font-size: 12.5px; }
.mapa-popup__endereco, .mapa-popup__detalhe { color: #66748A; font-size: 10.5px; }
.mapa-popup__status { display: inline-flex; align-self: flex-start; margin-top: 3px; padding: 2px 7px; border-radius: 99px; font-size: 10px; font-weight: 700; }
.mapa-popup__status--verde { background: #E6F4EC; color: #08733A; }
.mapa-popup__status--amarelo { background: #FFF6D9; color: #876000; }
.mapa-popup__status--vermelho { background: #FCE8E9; color: #9D1118; }
.mapa-popup__status--cinza { background: #EEF0F3; color: #5D6774; }
.mapa-popup__link { margin-top: 5px; font-size: 11px; font-weight: 700; }
.mapa--indisponivel { display: grid; place-items: center; padding: 28px; color: #66748A; text-align: center; font-size: 13px; }
.mapa-legenda--dashboard { min-height: 43px; justify-content: flex-start; gap: 17px; padding: 9px 16px; border-top: 1px solid #EDF0F3; background: #fff; font-size: 10.5px; }
.mapa-legenda--dashboard span { gap: 7px; }
.mapa-legenda--dashboard .ponto { width: 9px; height: 9px; }
.mapa-vazio { flex: 1 1 auto; min-height: 425px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 34px; background: radial-gradient(circle at 50% 46%, #F1F5F3 0, #F8FAF9 43%, #fff 100%); text-align: center; }
.mapa-vazio__icone { width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid #E2E9E4; border-radius: 50%; background: #fff; color: #748477; }
.mapa-vazio__icone svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.mapa-vazio strong { color: #283446; font-size: 14px; }
.mapa-vazio > span:not(.mapa-vazio__icone) { max-width: 365px; color: #758195; font-size: 11.5px; }
.mapa-vazio > a { font-size: 11.5px; font-weight: 700; }
.dashboard-map-footnote { display: flex; justify-content: space-between; gap: 8px; padding: 9px 15px; border-top: 1px solid #EDF0F3; color: #8590A0; font-size: 9.5px; }
.dashboard-map-footnote #indicador-atualizacao { color: #66758A; text-align: right; }

.dashboard-aside { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.dashboard-aside .dashboard-panel { width: 100%; margin-bottom: 0; }
.dashboard-coverage-content { min-height: 176px; display: flex; align-items: center; justify-content: space-evenly; gap: 15px; padding: 16px 17px; }
.coverage-ring { position: relative; width: 143px; height: 143px; flex: 0 0 143px; display: grid; place-items: center; border-radius: 50%; background: #EDF0F4; }
.coverage-ring::before { position: absolute; inset: 20px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px rgba(24,33,47,.035); content: ""; }
.coverage-ring__center { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 0; }
.coverage-ring__center strong { color: #172130; font-size: 25px; line-height: 1.15; letter-spacing: -.6px; font-variant-numeric: tabular-nums; }
.coverage-ring__center span { color: #758195; font-size: 10px; }
.coverage-legend { min-width: 115px; display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.coverage-legend li { display: flex; align-items: flex-start; gap: 8px; }
.coverage-legend .ponto { width: 9px; height: 9px; flex: 0 0 9px; margin-top: 4px; }
.coverage-legend li > span { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 4px; color: #39465A; font-size: 10.5px; line-height: 1.25; }
.coverage-legend strong { color: #1C2737; font-size: 11.5px; }
.coverage-legend small { flex: 0 0 100%; margin-top: 2px; color: #8A94A3; font-size: 9.5px; }
.dashboard-panel__footer { padding: 10px 15px; border-top: 1px solid #EEF0F3; background: #FCFCFD; }
.dashboard-panel__footer a, .dashboard-link { color: var(--vermelho); font-size: 10.5px; font-weight: 700; }
.dashboard-panel__footer a:hover, .dashboard-link:hover { color: var(--vermelho-escuro); }
.dashboard-panel__footer a span, .dashboard-link span { margin-left: 3px; }

/* Atalhos operacionais */
.dashboard-actions-panel { flex: 1 1 auto; }
.dashboard-action-list { padding: 3px 14px 8px; }
.dashboard-action { min-height: 58px; display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #EEF0F3; color: inherit; text-decoration: none; }
.dashboard-action:last-child { border-bottom: 0; }
.dashboard-action:hover { color: inherit; text-decoration: none; }
.dashboard-action__icon { width: 31px; height: 31px; flex: 0 0 31px; display: grid; place-items: center; border-radius: 8px; }
.dashboard-action__icon svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-action__icon--red { background: #FFF0F1; color: #B5121B; }
.dashboard-action__icon--amber { background: #FFF7E0; color: #A87400; }
.dashboard-action__icon--green { background: #EAF6EF; color: #13884A; }
.dashboard-action__icon--slate { background: #EFF2F6; color: #65738A; }
.dashboard-action__text { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; }
.dashboard-action__text strong { overflow: hidden; color: #293548; font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-action__text small { overflow: hidden; color: #8590A0; font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-action__count { min-width: 30px; padding: 4px 7px; border-radius: 99px; background: #F0F2F5; color: #5E6B7D; font-size: 10px; font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; }
.dashboard-action__count--red { background: #FFF0F1; color: #A5141B; }
.dashboard-action__count--green { background: #EAF6EF; color: #08733A; }
.dashboard-action-empty { padding: 22px 8px; color: #758195; font-size: 11px; text-align: center; }
.dashboard-action:hover .dashboard-action__text strong { color: var(--vermelho); }

/* Pendências por local / qualidade */
.dashboard-lower-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .8fr); gap: 14px; align-items: start; margin-top: 14px; }
.dashboard-lower-grid .dashboard-panel { margin-bottom: 0; }
.dashboard-priority-panel .dashboard-panel__header { padding: 13px 16px; }
.dashboard-priority-table { min-width: 650px; font-size: 11px; }
.dashboard-priority-table th { padding: 9px 10px; color: #758195; background: #FAFBFC; font-size: 9px; letter-spacing: .45px; }
.dashboard-priority-table td { padding: 9px 10px; border-bottom-color: #F0F2F5; }
.dashboard-priority-table .tabela__principal { color: #263346; font-size: 11px; }
.dashboard-priority-table .tabela__secundario { margin-top: 2px; font-size: 9.5px; }
.priority-staff-count { min-width: 90px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.priority-staff-count strong { font-size: 11.5px; }
.priority-staff-count > span { color: #8792A2; font-size: 10px; }
.priority-staff-count .barra { max-width: 80px; min-width: 55px; height: 4px; margin-top: 5px; }
.dashboard-priority-table .selo { padding: 2px 7px; font-size: 9px; }
.priority-actions { min-width: 78px; text-align: right; white-space: nowrap; }
.priority-actions .botao { min-height: 26px; padding: 4px 8px; font-size: 10px; }
.dashboard-data-note { color: #8993A1; font-size: 9.5px; line-height: 1.5; }
.dashboard-data-note strong { color: #59677C; }
.dashboard-empty-state { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 35px 18px; }
.dashboard-empty-state strong { color: #344155; font-size: 13px; }
.dashboard-empty-state > span { max-width: 340px; font-size: 11px; }
.dashboard-empty-state .botao { margin-top: 4px; }
.dashboard-quality-list { padding: 4px 15px 7px; }
.dashboard-quality-item { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid #EEF0F3; color: inherit; text-decoration: none; }
.dashboard-quality-item:last-child { border-bottom: 0; }
.dashboard-quality-item:hover { color: inherit; text-decoration: none; }
.dashboard-quality-item > span:first-child { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.dashboard-quality-item strong { color: #344155; font-size: 10px; line-height: 1.35; }
.dashboard-quality-item small { color: #8A94A3; font-size: 9px; }
.dashboard-quality-item__count { display: flex; align-items: center; gap: 6px; color: #9B6C00; font-size: 12px; font-weight: 750; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dashboard-quality-item__count > span { color: #A5AEBA; font-size: 14px; }
.dashboard-quality-item:hover strong { color: var(--vermelho); }
.dashboard-quality-clear { min-height: 148px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: #647487; text-align: center; }
.dashboard-quality-clear > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #EAF6EF; color: #13884A; font-size: 17px; }
.dashboard-quality-clear strong { font-size: 11px; }
.dashboard-note-panel { min-height: 174px; display: flex; align-items: center; gap: 14px; padding: 23px 21px; background: linear-gradient(135deg, #fff 0%, #FFFAFA 100%); }
.dashboard-note-panel__icon { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border-radius: 10px; background: #FFF0F1; color: var(--vermelho); }
.dashboard-note-panel__icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-note-panel h2 { margin: 0 0 6px; color: #2B3749; font-size: 12px; }
.dashboard-note-panel p { margin: 0; color: #758195; font-size: 10.5px; line-height: 1.55; }

/* --------------------------------------------------------------- Público */
.pagina-publica { min-height: 100vh; background: #F7F8FA; }
.public-shell { min-height: 100vh; display: flex; flex-direction: column; background: radial-gradient(ellipse at 12% 16%, rgba(19,136,74,.035), transparent 32%), radial-gradient(ellipse at 88% 27%, rgba(242,182,0,.045), transparent 30%), #F7F8FA; }
.public-header { position: relative; z-index: 10; border-bottom: 1px solid #E8EBF0; background: rgba(255,255,255,.96); }
.public-header__inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.public-brand { min-width: 0; display: flex; align-items: center; gap: 11px; color: #1F2937; text-decoration: none; }
.public-brand:hover { color: #1F2937; text-decoration: none; }
.public-brand__logo { display: block; width: 112px; height: 58px; flex: 0 0 112px; object-fit: contain; border-radius: 5px; }
.public-brand__text { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.public-brand__text strong { overflow: hidden; color: #222C3A; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.public-brand__text small { overflow: hidden; max-width: 260px; color: #778397; font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.public-header__right { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 22px; }
.public-election { display: flex; align-items: center; gap: 8px; padding-right: 20px; border-right: 1px solid #E8EBF0; }
.public-election__dot { width: 8px; height: 8px; border-radius: 50%; background: #13884A; box-shadow: 0 0 0 4px #EAF6EF; }
.public-election > span:last-child { display: flex; flex-direction: column; gap: 1px; white-space: nowrap; }
.public-election small { color: #7C8798; font-size: 9px; }
.public-election strong { color: #313C4E; font-size: 10.5px; }
.pagina-publica .public-nav { gap: 18px; flex-wrap: nowrap; font-size: 11.5px; }
.pagina-publica .public-nav a { color: #657187; padding: 8px 0; white-space: nowrap; }
.pagina-publica .public-nav a:hover { color: var(--verde); }
.pagina-publica .public-nav a.ativo { color: var(--verde); box-shadow: inset 0 -2px 0 var(--amarelo); }
.pagina-publica .public-nav .topo__entrar { padding: 8px 11px !important; border-color: #E2E6EC; border-radius: 7px; color: #46536A; }
.pagina-publica .public-nav .topo__entrar:hover { border-color: #E7B7BA; color: var(--vermelho); }
.pagina-publica .conteudo--publico { width: 100%; max-width: 980px; flex: 1 0 auto; padding-top: 29px; padding-bottom: 46px; }
.pagina-publica > .topo { border-bottom: 1px solid #E8EBF0; border-top: 0; }
.marca--login .marca__logo { display: block; width: 112px; height: 58px; object-fit: contain; border-radius: 5px; }
.pagina-publica > main:not(.conteudo) { min-height: calc(100vh - 160px); display: flex; align-items: center; justify-content: center; padding: 20px 14px; }
.pagina-publica .cartao-checkin { border-color: #E5E9EF; border-radius: 14px; box-shadow: 0 8px 30px rgba(24,33,47,.07); }
.pagina-publica .cartao-checkin h1 { color: #1E2938; }
.pagina-publica .cartao-checkin .dado { border-bottom: 1px solid #F0F2F5; }
.pagina-publica .hero { position: relative; overflow: hidden; max-width: 900px; margin: 0 auto 17px; padding: 25px 28px 22px; border: 1px solid #E6E9EF; border-top: 0; border-radius: 13px; background: #fff; box-shadow: 0 2px 9px rgba(24,33,47,.035); }
.pagina-publica .hero::before { position: absolute; inset: 0 auto 0 0; width: 5px; background: linear-gradient(to bottom, var(--verde) 0 55%, var(--amarelo) 55% 88%, var(--vermelho) 88% 100%); content: ""; }
.pagina-publica .hero h1 { margin-bottom: 7px; color: #1C2737; font-size: clamp(22px, 3vw, 28px); letter-spacing: -.55px; }
.pagina-publica .hero p { max-width: 750px; margin-bottom: 8px; color: #647187; font-size: 13px; }
.pagina-publica .hero .texto-pequeno { margin: 10px 0 0; font-size: 10.5px; }
.pagina-publica .hero__selo { padding: 5px 10px; background: var(--amarelo-claro); color: var(--verde-escuro); font-size: 9px; letter-spacing: .55px; text-transform: uppercase; }
.pagina-publica .formulario { max-width: 900px; margin: 0 auto; }
.pagina-publica fieldset { margin-bottom: 13px; padding: 19px 21px 21px; border-color: #E6E9EF; border-radius: 12px; background: #fff; box-shadow: 0 1px 3px rgba(24,33,47,.025); }
.pagina-publica legend { color: #9D151C; font-size: 10px; letter-spacing: .8px; }
.pagina-publica .campo__rotulo { color: #344155; font-size: 11.5px; }
.pagina-publica .campo__rotulo .opcional { color: #8691A1; font-size: 10px; }
.pagina-publica input[type="text"], .pagina-publica input[type="email"], .pagina-publica input[type="password"], .pagina-publica input[type="tel"], .pagina-publica input[type="number"], .pagina-publica input[type="date"], .pagina-publica input[type="search"], .pagina-publica select, .pagina-publica textarea {
  min-height: 41px; border-color: #DDE2E9; border-radius: 7px; background-color: #fff; color: #283548; font-size: 12px;
}
.pagina-publica input::placeholder, .pagina-publica textarea::placeholder { color: #A0A8B4; }
.pagina-publica textarea { min-height: 86px; }
.pagina-publica .check { color: #47546A; font-size: 11.5px; }
.pagina-publica .check--caixa { border-color: #E5E9EF; border-radius: 8px; background: #FCFCFD; }
.pagina-publica .campo__ajuda { color: #7A8698; font-size: 10px; }
.pagina-publica .acoes-form { margin-top: 14px; }
.pagina-publica .acoes-form .botao { min-height: 43px; padding: 10px 22px; border-radius: 8px; font-size: 12px; }
.public-footer { margin-top: auto; border-top: 1px solid #E6E9EF; background: #fff; }
.public-footer__inner { display: grid; grid-template-columns: minmax(190px, .8fr) minmax(300px, 1.7fr) auto; align-items: center; gap: 18px 28px; padding-top: 17px; padding-bottom: 19px; }
.public-footer__brand { display: flex; align-items: center; gap: 9px; }
.public-footer__logo { display: block; width: 57px; height: 31px; flex: 0 0 57px; object-fit: contain; border-radius: 4px; }
.public-footer__brand > span:last-child { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.public-footer__brand strong { overflow: hidden; color: #414D60; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.public-footer__brand small { color: #8691A1; font-size: 9px; }
.public-footer .rodape__aviso { max-width: 560px; margin: 0; color: #778397; font-size: 9.5px; line-height: 1.5; }
.public-footer .rodape__links { align-items: center; margin: 0; color: #A0A8B4; font-size: 9.5px; white-space: nowrap; }
.public-footer .rodape__links a { color: #657187; }
.public-footer .rodape__links a:hover { color: var(--vermelho); }

/* ------------------------------------------------------------ breakpoints */
@media (max-width: 1360px) {
  .dashboard-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-main-grid { grid-template-columns: minmax(0, 1.55fr) minmax(290px, .9fr); }
  .dashboard-map-panel .mapa--dashboard { height: 390px; }
  .mapa-vazio { min-height: 390px; }
  .dashboard-coverage-content { gap: 10px; padding-right: 12px; padding-left: 12px; }
  .coverage-ring { width: 128px; height: 128px; flex-basis: 128px; }
  .coverage-ring::before { inset: 18px; }
}
@media (max-width: 1080px) {
  .admin-sidebar { width: 238px; }
  .admin-workspace { margin-left: 238px; }
  .admin-topbar { gap: 12px; padding-right: 18px; padding-left: 18px; }
  .admin-topbar__start, .admin-topbar__end { gap: 11px; }
  .admin-eleicao { padding: 7px 9px; }
  .admin-account { padding-left: 10px; }
  .dashboard-main-grid { grid-template-columns: minmax(0, 1.4fr) minmax(265px, .9fr); }
  .dashboard-lower-grid { grid-template-columns: minmax(0, 1.35fr) minmax(250px, .8fr); }
  .dashboard-coverage-content { flex-direction: column; justify-content: center; }
  .coverage-legend { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
}
@media (max-width: 900px) {
  .admin-sidebar { z-index: 60; width: min(290px, calc(100vw - 48px)); transform: translateX(-105%); transition: transform .22s ease; }
  .menu-aberto .admin-sidebar { transform: translateX(0); }
  .admin-workspace { margin-left: 0; }
  .admin-nav-scrim { position: fixed; z-index: 55; inset: 0; display: block; width: 100%; height: 100%; border: 0; background: rgba(13, 20, 31, .42); }
  .admin-menu-toggle { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border: 1px solid #E4E8EE; border-radius: 8px; background: #fff; color: #46536A; cursor: pointer; }
  .admin-menu-toggle svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
  .dashboard-main-grid { grid-template-columns: minmax(0, 1.5fr) minmax(245px, .9fr); }
  .dashboard-lower-grid { grid-template-columns: 1fr 1fr; }
  .public-header__inner { flex-wrap: wrap; padding-top: 10px; padding-bottom: 10px; }
  .public-header__right { flex: 1 1 auto; }
  .public-election { display: none; }
  .public-header__right { justify-content: flex-end; }
}
@media (max-width: 700px) {
  .admin-topbar { min-height: 62px; gap: 9px; padding: 8px 13px; }
  .admin-topbar__start, .admin-topbar__end { gap: 8px; }
  .admin-search { width: min(100%, 430px); }
  .admin-search input { min-height: 39px; padding-right: 12px; }
  .admin-search kbd { display: none; }
  .admin-eleicao { display: none; }
  .admin-account { gap: 7px; border-left: 0; padding-left: 0; }
  .admin-account__avatar { width: 33px; height: 33px; }
  .admin-account__details { max-width: 120px; }
  .admin-account__details strong { font-size: 10.5px; }
  .admin-account__details small { font-size: 9px; }
  .admin-account__logout { width: 26px; }
  .pagina-admin .conteudo--admin { padding: 19px 13px 28px; }
  .pagina-admin .pagina-cabecalho { align-items: flex-start; }
  .pagina-admin .pagina-cabecalho__acoes { width: 100%; }
  .pagina-admin .rodape--admin { padding: 12px 14px; }
  .pagina-admin .rodape__mini { display: block; line-height: 1.6; }
  .pagina-admin .rodape__mini span { display: block; }
  .dashboard-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .dashboard-kpi { min-height: 91px; gap: 9px; padding: 12px 10px; }
  .dashboard-kpi__icon { width: 32px; height: 32px; flex-basis: 32px; }
  .dashboard-kpi__icon svg { width: 17px; height: 17px; }
  .dashboard-kpi .cartao__rotulo { font-size: 8.5px; }
  .dashboard-kpi .cartao__valor { font-size: 22px; }
  .dashboard-kpi .cartao__nota { font-size: 9px; }
  .dashboard-main-grid, .dashboard-lower-grid { grid-template-columns: 1fr; gap: 12px; }
  .dashboard-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .dashboard-coverage-content { min-height: 0; flex-direction: row; gap: 8px; padding: 14px 10px; }
  .coverage-ring { width: 112px; height: 112px; flex-basis: 112px; }
  .coverage-ring::before { inset: 16px; }
  .coverage-ring__center strong { font-size: 21px; }
  .coverage-legend { display: flex; width: auto; gap: 7px; }
  .coverage-legend li > span { font-size: 9px; }
  .coverage-legend strong { font-size: 10px; }
  .coverage-legend small { font-size: 8.5px; }
  .dashboard-map-panel .mapa--dashboard { height: 355px; min-height: 300px; }
  .mapa-vazio { min-height: 300px; }
  .dashboard-panel__header { align-items: flex-start; }
  .dashboard-panel__actions { flex-wrap: wrap; }
  .dashboard-lower-grid .dashboard-panel { margin-bottom: 0; }
  .public-header__inner { align-items: flex-start; gap: 8px; }
  .public-header__right { width: 100%; justify-content: flex-start; overflow: hidden; }
  .pagina-publica .public-nav { width: 100%; gap: 16px; overflow-x: auto; padding-bottom: 2px; font-size: 10.5px; }
  .pagina-publica .public-nav .topo__entrar { margin-left: auto; }
  .pagina-publica .conteudo--publico { padding: 18px 14px 30px; }
  .pagina-publica .hero { padding: 20px 18px 18px; }
  .pagina-publica .formulario { width: 100%; }
  .pagina-publica fieldset { padding: 16px 15px 17px; }
  .public-footer__inner { grid-template-columns: 1fr; gap: 10px; padding-top: 15px; padding-bottom: 16px; }
  .public-footer .rodape__links { white-space: normal; }
}
@media (max-width: 480px) {
  .admin-account__details { display: none; }
  .admin-account { padding-left: 1px; }
  .admin-topbar__start { gap: 7px; }
  .admin-menu-toggle { width: 35px; height: 35px; flex-basis: 35px; }
  .admin-search input { min-height: 37px; font-size: 11px; }
  .dashboard-kpis { gap: 7px; }
  .dashboard-kpi { min-height: 88px; gap: 7px; padding: 10px 8px; }
  .dashboard-kpi__icon { width: 28px; height: 28px; flex-basis: 28px; }
  .dashboard-kpi__icon svg { width: 15px; height: 15px; }
  .dashboard-kpi .cartao__rotulo { font-size: 8px; }
  .dashboard-kpi .cartao__valor { font-size: 20px; }
  .dashboard-kpi .cartao__nota { font-size: 8.5px; }
  .dashboard-aside { grid-template-columns: 1fr; }
  .dashboard-coverage-content { min-height: 150px; }
  .coverage-ring { width: 126px; height: 126px; flex-basis: 126px; }
  .dashboard-panel__actions .map-count { display: none; }
  .dashboard-map-panel .mapa--dashboard { height: 320px; }
  .dashboard-map-footnote { flex-direction: column; }
  .dashboard-map-footnote #indicador-atualizacao { text-align: left; }
  .pagina-admin .pagina-cabecalho__acoes .botao { flex: 1 1 auto; }
  .pagina-publica .public-nav { gap: 13px; }
  .pagina-publica .public-nav .topo__entrar { padding: 7px 8px !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Identidade Fiscais do Lula: verde e amarelo predominam; vermelho é acento. */
.admin-brand__texto { width: 100%; padding: 0 2px; }
.admin-brand__texto small { max-width: 100%; color: rgba(255,255,255,.84); }
.pagina-publica .public-nav .topo__entrar:hover { border-color: #A9D8BB; color: var(--verde); }
.public-header { border-bottom-color: #D9EADF; }
.admin-account__avatar { background: #E7F5EB; color: var(--verde-escuro); }

/* ----------------------------------------------------- inscrição / campanha */
.pagina-publica .conteudo--inscricao { width: 100%; max-width: 1620px; padding-top: 22px; padding-bottom: 34px; }
.inscricao-layout {
  display: grid;
  grid-template-columns: minmax(215px, .72fr) minmax(520px, 2.28fr) minmax(235px, .84fr);
  gap: 17px;
  align-items: start;
}
.inscricao-main { min-width: 0; }
.inscricao-main .hero { max-width: none; margin: 0 0 14px; padding: 24px 24px 20px; }
.inscricao-main .hero h1, .inscricao-main .hero p { max-width: 100%; }
.inscricao-main .formulario { width: 100%; max-width: none; margin: 0; }
.inscricao-main fieldset { padding: 17px 18px 18px; margin-bottom: 12px; }
.inscricao-main legend { color: var(--verde-escuro); }
.inscricao-main .acoes-form { margin: 14px 0 20px; }
.inscricao-main .acoes-form > .botao { min-width: 180px; }

.inscricao-campanha {
  position: relative;
  isolation: isolate;
  min-height: 650px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 23px 20px 18px;
  border: 1px solid #A9151B;
  border-radius: 14px;
  background: #B81720;
  color: #fff;
  box-shadow: 0 7px 22px rgba(70, 18, 20, .13);
}
.inscricao-campanha::before {
  position: absolute; z-index: -1; top: -35px; right: -72px; width: 178px; height: 178px;
  border-radius: 50%; background: var(--verde); content: "";
}
.inscricao-campanha::after {
  position: absolute; z-index: -1; right: -70px; bottom: -58px; left: -55px; height: 206px;
  border-radius: 52% 48% 0 0 / 24% 31% 0 0; background: var(--amarelo); content: "";
  transform: rotate(-8deg);
}
.inscricao-campanha__texto { position: relative; z-index: 1; }
.inscricao-campanha__selo {
  display: inline-block; margin-bottom: 22px; padding: 5px 9px;
  border: 1px solid rgba(255,255,255,.36); border-radius: 999px;
  background: rgba(0,0,0,.12); color: #fff; font-size: 9px; font-weight: 700;
  letter-spacing: .55px; text-transform: uppercase;
}
.inscricao-campanha h2 { max-width: 230px; margin: 0 0 15px; color: #fff; font-size: clamp(22px, 2vw, 28px); line-height: 1.12; letter-spacing: -.5px; }
.inscricao-campanha h2 em { color: var(--amarelo); font-style: normal; }
.inscricao-campanha p { max-width: 225px; margin: 0; color: rgba(255,255,255,.91); font-size: 13px; line-height: 1.55; }
.inscricao-campanha__gif {
  position: relative; z-index: 1; display: block; width: min(100%, 190px); height: auto;
  margin: auto auto 34px; border-radius: 7px; background: #F7F4EC;
}
.inscricao-campanha__rodape {
  position: relative; z-index: 1; display: flex; flex-direction: column; gap: 2px;
  margin: 0 -20px -18px; padding: 11px 20px 13px;
  background: rgba(255,255,255,.89); color: #234431; font-size: 10px;
}
.inscricao-campanha__rodape span { color: #53715F; font-size: 9px; text-transform: uppercase; letter-spacing: .6px; }
.inscricao-campanha__rodape strong { color: #173E2B; font-size: 12px; }

.inscricao-lateral { min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.inscricao-info-card {
  padding: 17px 16px;
  border: 1px solid #E4E9E5; border-radius: 12px;
  background: #fff; box-shadow: 0 2px 8px rgba(24, 50, 34, .045);
}
.inscricao-info-card h2 { margin: 0 0 8px; color: #1D2A23; font-size: 15px; line-height: 1.25; }
.inscricao-info-card p { margin: 0 0 12px; color: #64746A; font-size: 11.5px; line-height: 1.5; }
.inscricao-info-card__icone {
  width: 36px; height: 36px; display: grid; place-items: center; margin-bottom: 12px;
  border-radius: 10px; background: var(--verde-claro); color: var(--verde); font-size: 22px; font-weight: 800;
}
.inscricao-info-card ul { display: grid; gap: 9px; margin: 13px 0 0; padding: 0; list-style: none; }
.inscricao-info-card li { display: flex; align-items: flex-start; gap: 8px; color: #4C5B51; font-size: 10.5px; line-height: 1.35; }
.inscricao-info-card li::before { width: 8px; height: 8px; flex: 0 0 8px; margin-top: 3px; border-radius: 50%; background: var(--verde); content: ""; }
.inscricao-info-card--destaque { border-color: #E5ECDD; background: linear-gradient(145deg, #F3F9F3, #fff 72%); }
.inscricao-info-card--privacidade { border-color: #F1E1A0; background: #FFF9DF; }
.inscricao-info-card--privacidade h2 { color: #634D00; }
.inscricao-info-card--privacidade p { color: #76632D; }
.inscricao-info-card--privacidade .inscricao-info-card__link { color: #876800; }
.inscricao-info-card__link { display: inline-flex; align-items: center; gap: 6px; color: var(--verde); font-size: 10.5px; font-weight: 700; }
.inscricao-info-card__link:hover { color: var(--verde-escuro); }

@media (max-width: 1240px) {
  .pagina-publica .conteudo--inscricao { max-width: 1180px; }
  .inscricao-layout { grid-template-columns: minmax(200px, .7fr) minmax(0, 2fr); }
  .inscricao-lateral { grid-column: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .inscricao-info-card--destaque { grid-row: span 2; }
  .inscricao-campanha { min-height: 600px; }
}
@media (max-width: 900px) {
  .pagina-publica .conteudo--inscricao { max-width: 980px; padding-top: 16px; }
  .inscricao-layout { grid-template-columns: 1fr; gap: 12px; }
  .inscricao-campanha { min-height: 215px; padding: 19px 19px 15px; }
  .inscricao-campanha__selo { margin-bottom: 11px; }
  .inscricao-campanha h2, .inscricao-campanha p { max-width: calc(100% - 135px); }
  .inscricao-campanha h2 { font-size: 22px; }
  .inscricao-campanha__gif { position: absolute; right: 16px; bottom: 24px; width: 112px; margin: 0; }
  .inscricao-campanha__rodape { margin: 18px -19px -15px; padding: 9px 19px; }
  .inscricao-main .hero { padding: 20px 19px 17px; }
  .inscricao-lateral { grid-column: auto; }
}
@media (max-width: 560px) {
  .inscricao-campanha { min-height: 198px; }
  .inscricao-campanha h2, .inscricao-campanha p { max-width: calc(100% - 100px); }
  .inscricao-campanha h2 { font-size: 19px; }
  .inscricao-campanha p { font-size: 11px; }
  .inscricao-campanha__gif { right: 12px; bottom: 28px; width: 88px; }
  .inscricao-main .hero h1 { font-size: 21px; }
  .inscricao-main fieldset { padding: 15px 13px; }
  .inscricao-lateral { display: flex; }
}
