/* Canal NR-1 — identidade IMxr em versão clara.
   Tokens vindos do alpha.imxr.io: azul #4475ce, roxo #6e3cd2, Inter,
   cantos de 12px em controles e 20px em painéis. Aqui o fundo é claro:
   quem chega vai ler texto corrido e preencher formulário longo. */

:root {
  /* #4475ce e o azul da marca. Sobre branco ele da 4,49:1, logo abaixo
     do minimo de 4,5:1, entao ele fica so onde nao carrega texto: bordas,
     reguas e o anel de foco. Texto e botao usam os dois tons abaixo. */
  --azul-marca: #4475ce;
  --azul: #3c68bf;
  --azul-escuro: #355ea6;
  --azul-claro: #eaf0fc;
  --roxo: #6e3cd2;

  --tinta: #111a2e;
  --corpo: #4d5a75;
  --apagado: #626f88;

  --papel: #ffffff;
  --papel-fundo: #f2f5fb;
  --hairline: #dbe3f2;

  --erro: #b4252f;
  --erro-papel: #fdf1f2;
  --ok: #1a7a52;
  --ok-papel: #eef8f3;

  --sans: Inter, -apple-system, "Segoe UI", system-ui, sans-serif;

  --coluna: 42rem;
  --canto: 12px;
  --canto-painel: 20px;
}

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

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

body {
  margin: 0;
  background: var(--papel-fundo);
  color: var(--tinta);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.65;
  font-feature-settings: "kern", "liga", "cv11";
}

.folha {
  max-width: 60rem;
  min-height: 100vh;
  margin: 0 auto;
  padding: 0 1.25rem 5rem;
  background: var(--papel);
}

@media (min-width: 48rem) {
  .folha { padding-left: 3rem; padding-right: 3rem; }
}

/* ---------- Cabeçalho ---------- */

.topo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--hairline);
}

.marca {
  color: var(--azul-escuro);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-decoration: none;
}

.topo nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  font-size: 0.9375rem;
}

.topo nav a {
  color: var(--corpo);
  text-decoration: none;
  padding: 0.35rem 0.7rem;
  border-radius: var(--canto);
}

.topo nav a:hover { color: var(--tinta); background: var(--papel-fundo); }

.topo nav a[aria-current="page"] {
  color: var(--azul-escuro);
  background: var(--azul-claro);
  font-weight: 500;
}

.etiqueta-restrita {
  color: var(--roxo);
  background: #f0eafc;
  border-radius: 999px;
  padding: 0.25rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 500;
}

/* ---------- Abertura ---------- */

.abertura { padding: 3.5rem 0 2.5rem; }

.abertura h1 {
  font-size: clamp(2rem, 5.5vw, 3rem);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.03em;
  margin: 0 0 1.25rem;
  max-width: 20ch;
  text-wrap: balance;
}

.abertura p {
  max-width: 48ch;
  font-size: 1.0625rem;
  color: var(--corpo);
  margin: 0 0 2rem;
}

.sobre-titulo {
  color: var(--azul-escuro);
  font-size: 0.8125rem;
  font-weight: 600;
  margin: 0 0 0.35rem !important;
}

.acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 0.85rem; }

/* ---------- Botões e links ---------- */

.botao {
  display: inline-block;
  background: var(--azul);
  color: #fff;
  font: inherit;
  font-weight: 600;
  border: 1px solid var(--azul);
  border-radius: var(--canto);
  padding: 0.8rem 1.6rem;
  text-decoration: none;
  cursor: pointer;
}

.botao:hover { background: var(--azul-escuro); border-color: var(--azul-escuro); }
.botao:disabled { opacity: 0.55; cursor: progress; }

.botao.secundario { background: var(--azul-claro); color: var(--azul-escuro); border-color: var(--azul-claro); }
.botao.secundario:hover { background: #dde7fa; border-color: #dde7fa; }

.link-discreto { color: var(--azul-escuro); text-decoration: none; font-weight: 500; }
.link-discreto:hover { text-decoration: underline; }

a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--azul);
  outline-offset: 2px;
}

/* ---------- Garantias ---------- */

.garantias {
  display: grid;
  gap: 1.5rem;
  padding: 2rem 0;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}

@media (min-width: 42rem) {
  .garantias { grid-template-columns: repeat(3, 1fr); gap: 2rem; }
}

.garantias h2 { font-size: 1rem; font-weight: 600; margin: 0 0 0.4rem; }
.garantias p { margin: 0; font-size: 0.9375rem; color: var(--corpo); max-width: 34ch; }

/* ---------- Seções ---------- */

.secao { padding: 3.5rem 0 0; }

.secao > h2 {
  font-size: clamp(1.4rem, 3.5vw, 1.85rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  margin: 0 0 1.5rem;
}

.secao > p { max-width: var(--coluna); color: var(--corpo); }

.intro-faq { margin: -0.75rem 0 2rem; }
.abertura .acompanhar { margin: 1.75rem 0 0; font-size: 0.9375rem; }

/* ---------- FAQ: o grupo é o nível que abre e fecha ---------- */

.grupo {
  background: var(--papel-fundo);
  border: 1px solid var(--hairline);
  border-radius: var(--canto-painel);
  margin-bottom: 0.6rem;
}

.grupo[open] { background: var(--papel); }

.grupo > summary {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1.1rem 1.35rem;
  cursor: pointer;
  list-style: none;
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.grupo > summary::-webkit-details-marker { display: none; }

.grupo > summary .contagem {
  flex: none;
  margin-left: auto;
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--apagado);
  font-variant-numeric: tabular-nums;
}

.grupo > summary::after {
  content: "+";
  flex: none;
  width: 1.5rem;
  height: 1.5rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--azul-claro);
  color: var(--azul-escuro);
  font-size: 1.05rem;
  line-height: 1;
}

.grupo[open] > summary::after { content: "\2013"; }

.conteudo-grupo { padding: 0 1.35rem 0.5rem; }

.item-faq {
  padding: 0 0 1.35rem;
  max-width: var(--coluna);
  border-top: 1px solid var(--hairline);
  padding-top: 1.1rem;
}

.item-faq h3 { font-size: 0.9375rem; font-weight: 600; margin: 0 0 0.4rem; }
.item-faq p { margin: 0 0 0.6rem; color: var(--corpo); }
.item-faq p:last-child { margin-bottom: 0; }

.faq-vazio { color: var(--corpo); max-width: var(--coluna); }

/* ---------- Avisos e painéis ---------- */

.aviso {
  background: var(--azul-claro);
  border-radius: var(--canto-painel);
  padding: 1.25rem 1.4rem;
  margin: 0 0 2.5rem;
  max-width: var(--coluna);
}

.aviso p { margin: 0 0 0.6rem; font-size: 0.9375rem; }
.aviso p:last-child { margin-bottom: 0; }

.painel {
  background: var(--papel-fundo);
  border: 1px solid var(--hairline);
  border-radius: var(--canto-painel);
  padding: 1.5rem 1.6rem;
  margin: 0 0 1.25rem;
  max-width: 48rem;
}

.painel > h2 {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--apagado);
  margin: 0 0 1rem;
}

.banner-ok, .banner-erro {
  border-radius: var(--canto);
  padding: 0.9rem 1.2rem;
  margin: 0 0 1.25rem;
  font-size: 0.9375rem;
  max-width: 48rem;
}

.banner-ok { background: var(--ok-papel); color: var(--ok); }
.banner-erro { background: var(--erro-papel); color: var(--erro); }

/* ---------- Formulário ---------- */

.formulario { max-width: var(--coluna); }

.campo { margin-bottom: 1.75rem; border: 0; padding: 0; }

.campo > label, .campo > legend {
  display: block;
  font-weight: 600;
  font-size: 0.9375rem;
  margin-bottom: 0.3rem;
  padding: 0;
}

.opcional { font-weight: 400; color: var(--apagado); }

.ajuda { margin: 0 0 0.6rem; font-size: 0.875rem; color: var(--corpo); max-width: 52ch; }

input[type="text"], input[type="date"], input[type="email"], select, textarea {
  width: 100%;
  font: inherit;
  color: var(--tinta);
  background: var(--papel);
  border: 1px solid var(--hairline);
  border-radius: var(--canto);
  padding: 0.7rem 0.85rem;
}

input[type="file"] { font-size: 0.9375rem; color: var(--corpo); }

textarea { min-height: 9rem; resize: vertical; line-height: 1.6; }

input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] {
  border-color: var(--erro);
}

.erro-campo { display: block; margin-top: 0.4rem; font-size: 0.875rem; color: var(--erro); }

.armadilha { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.contador { font-size: 0.8125rem; color: var(--apagado); margin-top: 0.35rem; }

.lista-anexos { list-style: none; margin: 0.75rem 0 0; padding: 0; font-size: 0.875rem; }
.lista-anexos li { padding: 0.4rem 0; border-bottom: 1px solid var(--hairline); color: var(--corpo); }

.erro-geral {
  background: var(--erro-papel);
  color: var(--erro);
  border-radius: var(--canto);
  padding: 0.9rem 1.2rem;
  margin-bottom: 1.75rem;
  font-size: 0.9375rem;
}

/* ---------- Protocolo ---------- */

.abertura .protocolo-emitido,
.protocolo-emitido {
  font-size: clamp(1.75rem, 6.5vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
  color: var(--azul-escuro);
  margin: 1rem 0 1.75rem;
  max-width: none;
  word-break: break-all;
}

.consulta { display: flex; flex-wrap: wrap; gap: 0.75rem; max-width: 30rem; }
.consulta input { flex: 1 1 15rem; text-transform: uppercase; }

.andamento { margin-top: 2.5rem; max-width: var(--coluna); }
.andamento dl { display: grid; grid-template-columns: auto 1fr; gap: 0.6rem 1.5rem; margin: 0; }
.andamento dt { color: var(--corpo); font-size: 0.9375rem; }
.andamento dd { margin: 0; font-weight: 500; }

.recado {
  margin-top: 1.75rem;
  background: var(--azul-claro);
  border-radius: var(--canto-painel);
  padding: 1.25rem 1.4rem;
}

.recado h2 { font-size: 0.8125rem; font-weight: 600; color: var(--azul-escuro); margin: 0 0 0.5rem; }
.recado p { margin: 0; }

/* ---------- Página de gestão do caso ---------- */

.protocolo-caso {
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  margin-bottom: 0.75rem !important;
}

.situacao-atual { margin: 0 !important; }

.pastilha {
  display: inline-block;
  border-radius: 999px;
  padding: 0.3rem 0.9rem;
  font-size: 0.875rem;
  font-weight: 500;
  background: var(--papel-fundo);
  color: var(--corpo);
}

.pastilha-recebida { background: #fdf3e6; color: #8a5a12; }
.pastilha-em_apuracao { background: var(--azul-claro); color: var(--azul-escuro); }
.pastilha-concluida { background: var(--ok-papel); color: var(--ok); }
.pastilha-arquivada { background: var(--papel-fundo); color: var(--apagado); }

.dados-caso { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem 1.5rem; margin: 0; }
.dados-caso dt { color: var(--corpo); font-size: 0.875rem; white-space: nowrap; }
.dados-caso dd { margin: 0; font-weight: 500; font-size: 0.9375rem; }

.relato {
  margin: 0;
  background: var(--papel);
  border-left: 3px solid var(--azul-marca);
  border-radius: 0 var(--canto) var(--canto) 0;
  padding: 1.1rem 1.25rem;
  line-height: 1.7;
}

.anexos-caso { list-style: none; margin: 0; padding: 0; }

.anexos-caso li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--hairline);
}

.anexos-caso li:last-child { border-bottom: 0; }
.anexos-caso a { color: var(--azul-escuro); font-weight: 500; word-break: break-all; }
.anexos-caso span { flex: none; color: var(--apagado); font-size: 0.8125rem; }

.vazio { margin: 0; color: var(--apagado); font-size: 0.9375rem; }

.situacoes { display: grid; gap: 0.5rem; }

.opcao-situacao {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  background: var(--papel);
  border: 1px solid var(--hairline);
  border-radius: var(--canto);
  padding: 0.7rem 0.9rem;
  cursor: pointer;
  font-size: 0.9375rem;
}

.opcao-situacao:has(input:checked) {
  border-color: var(--azul);
  background: var(--azul-claro);
  font-weight: 500;
}

.opcao-situacao input { accent-color: var(--azul); margin: 0; }

/* ---------- Rodapé ---------- */

.rodape {
  margin-top: 4rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--hairline);
  font-size: 0.875rem;
  color: var(--corpo);
  max-width: var(--coluna);
}

.rodape p { margin: 0 0 0.6rem; }

.revelar { animation: subir 0.4s cubic-bezier(0.16, 1, 0.3, 1) both; }

@keyframes subir {
  from { opacity: 0; transform: translateY(0.6rem); }
  to { opacity: 1; transform: none; }
}

.oculto { display: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
