/**
 * Estilos das páginas públicas do módulo LGPD (formulário art. 18 e afins).
 *
 * Namespace próprio `lgpd-*` para manter o módulo portátil entre temas.
 * Todas as cores saem de custom properties com fallback: o tema pode
 * sobrescrever apenas as variáveis (ex.: --lgpd-accent) sem tocar neste arquivo,
 * e a sobrescrita vence independente da ordem de carregamento dos CSS.
 *
 * As classes estruturais do tema (.container-site, .field, .btn, .tx-content)
 * NÃO são redefinidas aqui — a view aplica as duas (ex.: class="field lgpd-field")
 * para que .lgpd-field sirva de gancho em temas que não tenham .field.
 */

.lgpd-form { max-width: 48rem; }

.lgpd-form-group { margin-bottom: 1rem; }

.lgpd-form-row { display: grid; gap: 1rem; margin-bottom: 1rem; }
@media (min-width: 768px) {
  .lgpd-form-row-2 { grid-template-columns: 1fr 1fr; }
}
.lgpd-form-row .lgpd-form-group { margin-bottom: 0; }

.lgpd-label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.35rem;
  color: var(--lgpd-label-color, #2b363c);
}

.lgpd-required { color: var(--lgpd-error, #b91c1c); }

.lgpd-hint {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: var(--lgpd-hint-color, #66718a);
}

.lgpd-field-error {
  margin-top: 0.35rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--lgpd-error, #b91c1c);
}

.lgpd-alert {
  border-radius: var(--lgpd-radius, 8px);
  border-left: 4px solid;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
}
.lgpd-alert p:last-child { margin-bottom: 0; }

.lgpd-alert-success {
  background: var(--lgpd-success-bg, #ecfdf5);
  border-color: var(--lgpd-success, #047857);
  color: var(--lgpd-success-fg, #064e3b);
}

.lgpd-alert-error {
  background: var(--lgpd-error-bg, #fef2f2);
  border-color: var(--lgpd-error, #b91c1c);
  color: var(--lgpd-error-fg, #7f1d1d);
}

.lgpd-protocolo {
  display: inline-block;
  margin: 0.25rem 0 0.5rem;
  font-size: 1.375rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.lgpd-form-acoes { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* ------------------------------------------------------------------
 * Página pública /lgpd
 * ------------------------------------------------------------------ */

/* Texto visível só para leitores de tela (não depende do .sr-only do tema). */
.lgpd-sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.lgpd-secao { margin-bottom: 2.5rem; }
.lgpd-secao > h2 {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
  color: var(--lgpd-titulo-color, #021c51);
}

.lgpd-card {
  background: var(--lgpd-card-bg, #f7f8fa);
  border: 1px solid var(--lgpd-card-borda, #e1e4ea);
  border-radius: var(--lgpd-radius, 8px);
  padding: 1.25rem 1.5rem;
}

.lgpd-dl { margin: 0; }
.lgpd-dl dt {
  font-weight: 600;
  color: var(--lgpd-label-color, #2b363c);
  margin-top: 0.75rem;
}
.lgpd-dl dt:first-child { margin-top: 0; }
.lgpd-dl dd { margin: 0.15rem 0 0; }
@media (min-width: 768px) {
  .lgpd-dl { display: grid; grid-template-columns: minmax(12rem, 18rem) 1fr; column-gap: 1.5rem; row-gap: 0.5rem; }
  .lgpd-dl dt, .lgpd-dl dt:first-child { margin-top: 0; }
  .lgpd-dl dd { margin: 0; }
}

/* Variável própria (não reusa --lgpd-accent, que é a cor do botão "Aceitar"
   do banner de cookies — semânticas diferentes, defaults diferentes). */
.lgpd-cta {
  border-left: 4px solid var(--lgpd-cta-borda, #034ad8);
  padding-left: 1.25rem;
}
.lgpd-direitos { list-style: disc; padding-left: 1.5rem; }
.lgpd-direitos li { margin-bottom: 0.25rem; }

.lgpd-links { list-style: disc; padding-left: 1.5rem; }
.lgpd-links li { margin-bottom: 0.35rem; }

/* Descrições auxiliares dentro das células da tabela. */
.lgpd-tabela .lgpd-hint { font-weight: 400; }
.lgpd-tabela th[scope="row"] { text-align: left; font-weight: 600; }

/* ------------------------------------------------------------------
 * Tabela pública de cookies ({tabela_cookies})
 * Emite .table-wrap/.table-tx do tema quando existirem; estas regras dão
 * o mínimo necessário em temas que não os tenham (o CSS do módulo carrega
 * também nas páginas legais desde o gate ampliado em lgpd.php).
 * ------------------------------------------------------------------ */

.lgpd-cookies-tabelas { margin: 1.5rem 0; }

.lgpd-cookies-cat {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 1.5rem 0 0.5rem;
  color: var(--lgpd-titulo-color, #021c51);
}

.lgpd-tabela { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.lgpd-tabela th, .lgpd-tabela td {
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid var(--lgpd-card-borda, #e1e4ea);
  vertical-align: top;
  text-align: left;
}
.lgpd-tabela thead th { font-weight: 700; white-space: nowrap; }
.lgpd-tabela code { font-size: 0.85em; word-break: break-all; }
.lgpd-tabela .lgpd-hint { display: block; margin-top: 0.15rem; }

/* ------------------------------------------------------------------
 * Acompanhamento público da solicitação (/lgpd/acompanhar)
 * Badge de status por estado + bloco de resposta do órgão.
 * ------------------------------------------------------------------ */

.lgpd-badge-status {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1.4;
  border: 1px solid transparent;
}
.lgpd-status-recebida   { background: #eef2ff; color: #034ad8; border-color: #c7d2fe; }
.lgpd-status-em_analise { background: #fffbeb; color: #92400e; border-color: #fde68a; }
.lgpd-status-respondida { background: #ecfdf5; color: #047857; border-color: #a7f3d0; }
.lgpd-status-encerrada  { background: #f1f5f9; color: #475569; border-color: #cbd5e1; }

.lgpd-resposta {
  margin-top: 0.5rem;
  padding: 0.85rem 1rem;
  background: var(--lgpd-card-bg, #f7f8fa);
  border: 1px solid var(--lgpd-card-borda, #e1e4ea);
  border-radius: 8px;
}
