/* Auditoria DBF Dengue — ferramenta aberta (leitura local do DBF do SINAN).
   Sem estilo inline: a CSP (style-src 'self') descarta atributo style. Tudo é classe .adbf-*. */

:root {
  --adbf-marinho: #0a1628;
  --adbf-azul: #1a3a6b;
  --adbf-destaque: #0d6efd;
  --adbf-destaque-esc: #0b5ed7;
  --adbf-texto: #212529;
  --adbf-suave: #5b6670;
  --adbf-borda: #dee2e6;
  --adbf-fundo: #f4f6f9;
  --adbf-superficie: #ffffff;
  --adbf-ok: #146c43;
  --adbf-ok-fundo: #e6f4ec;
  --adbf-aviso: #8a5a00;
  --adbf-aviso-fundo: #fff3d6;
  --adbf-perigo: #a61e2c;
  --adbf-perigo-fundo: #fde8ea;
  --adbf-neutro-fundo: #eef1f5;
  --adbf-raio: .6rem;
  --adbf-sombra: 0 1px 3px rgba(16, 24, 40, .08), 0 4px 14px rgba(16, 24, 40, .05);
}

body {
  background: var(--adbf-fundo);
  color: var(--adbf-texto);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.adbf-oculto { display: none !important; }
.adbf-so-leitor {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.adbf-container { width: 100%; max-width: 1280px; margin: 0 auto; padding-left: 1rem; padding-right: 1rem; }

/* ── Topo ── */
.adbf-topo {
  background: linear-gradient(135deg, var(--adbf-marinho) 0%, var(--adbf-azul) 100%);
  color: #fff; padding: 1.1rem 0 1.15rem; box-shadow: var(--adbf-sombra);
}
.adbf-topo__linha { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.adbf-pilulas { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .45rem; }
.adbf-pilula {
  display: inline-flex; align-items: center; gap: .3rem; border-radius: 50px; font-size: .72rem; font-weight: 700;
  padding: .22rem .65rem; white-space: nowrap;
}
.adbf-pilula--dengue { background: rgba(220, 53, 69, .22); border: 1px solid rgba(255, 140, 150, .45); color: #ffc2c8; }
.adbf-pilula--local { background: rgba(25, 135, 84, .18); border: 1px solid rgba(117, 201, 154, .4); color: #8fdcb2; }
.adbf-titulo { font-size: clamp(1.15rem, 3.4vw, 1.6rem); font-weight: 700; margin: 0; }
.adbf-subtitulo { font-size: .85rem; color: rgba(255, 255, 255, .72); margin: .2rem 0 0; }
.adbf-voltar { color: rgba(255, 255, 255, .85); font-size: .82rem; text-decoration: none; padding: .3rem 0; }
.adbf-voltar:hover, .adbf-voltar:focus-visible { color: #fff; text-decoration: underline; }

.adbf-principal { padding-top: 1.25rem; padding-bottom: 2rem; }

/* ── Botões ── */
.adbf-botao {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border: 1px solid var(--adbf-borda);
  background: var(--adbf-superficie); color: var(--adbf-texto); border-radius: .5rem; padding: .4rem .8rem;
  font-size: .85rem; font-weight: 600; cursor: pointer; line-height: 1.2;
}
.adbf-botao:hover:not(:disabled) { border-color: #b9c1ca; background: #f8fafc; }
.adbf-botao:focus-visible, .adbf-abrir:focus-visible, .adbf-ordenar:focus-visible, .adbf-cartao:focus-visible,
.adbf-barra:focus-visible { outline: 3px solid rgba(13, 110, 253, .45); outline-offset: 2px; }
.adbf-botao:disabled { opacity: .45; cursor: not-allowed; }
.adbf-botao--primario { background: var(--adbf-destaque); border-color: var(--adbf-destaque); color: #fff; padding: .65rem 1.2rem; font-size: .95rem; }
.adbf-botao--primario:hover:not(:disabled) { background: var(--adbf-destaque-esc); border-color: var(--adbf-destaque-esc); }
.adbf-botao--sutil { background: transparent; border-color: transparent; color: var(--adbf-suave); }
.adbf-botao--sutil:hover:not(:disabled) { background: var(--adbf-neutro-fundo); border-color: transparent; }

/* ── Avisos e progresso ── */
.adbf-aviso { border-radius: var(--adbf-raio); padding: .75rem 1rem; margin-bottom: 1rem; font-size: .9rem; border: 1px solid; }
.adbf-aviso--erro { background: var(--adbf-perigo-fundo); border-color: #f1b5bb; color: var(--adbf-perigo); }
.adbf-aviso--info { background: #e7f1ff; border-color: #b6d4fe; color: #084298; }
.adbf-progresso { background: var(--adbf-superficie); border: 1px solid var(--adbf-borda); border-radius: var(--adbf-raio); padding: .9rem 1rem; margin-bottom: 1rem; }
.adbf-progresso progress { width: 100%; height: .6rem; margin-top: .5rem; }

/* ── Estado inicial ── */
.adbf-zona {
  background: var(--adbf-superficie); border: 2px dashed #b9c6d6; border-radius: 1rem; padding: 2.4rem 1.25rem;
  text-align: center; box-shadow: var(--adbf-sombra);
}
.adbf-zona--sobre { border-color: var(--adbf-destaque); background: #f1f7ff; }
.adbf-zona__icone { font-size: 2.8rem; color: var(--adbf-destaque); display: block; margin-bottom: .4rem; }
.adbf-zona__titulo { font-size: 1.25rem; font-weight: 700; margin: 0 0 .4rem; }
.adbf-zona__texto { max-width: 38rem; margin: 0 auto 1.1rem; color: var(--adbf-suave); }
.adbf-garantias { list-style: none; padding: 0; margin: 1.4rem auto 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.4rem; font-size: .82rem; color: var(--adbf-suave); }
.adbf-garantias i { color: var(--adbf-ok); }

/* ── Arquivo aberto ── */
.adbf-arquivo {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem;
  background: var(--adbf-superficie); border: 1px solid var(--adbf-borda); border-radius: var(--adbf-raio);
  padding: .7rem 1rem; margin-bottom: 1rem;
}
.adbf-arquivo__id { display: flex; align-items: center; gap: .7rem; min-width: 0; }
.adbf-arquivo__id > i { font-size: 1.6rem; color: var(--adbf-ok); }
.adbf-arquivo__nome { display: block; overflow-wrap: anywhere; }
.adbf-arquivo__info { display: block; font-size: .8rem; color: var(--adbf-suave); }
.adbf-arquivo__acoes { display: flex; flex-wrap: wrap; gap: .4rem; }

.adbf-painel {
  background: var(--adbf-superficie); border: 1px solid var(--adbf-borda); border-radius: var(--adbf-raio);
  padding: .85rem 1rem; margin-bottom: .8rem; box-shadow: var(--adbf-sombra);
}

/* ── Cartões de resumo ── */
.adbf-cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.6rem, 1fr)); gap: .5rem; }
.adbf-cartao {
  display: flex; flex-direction: column; gap: .1rem; text-align: left; background: var(--adbf-neutro-fundo);
  border: 2px solid transparent; border-radius: .6rem; padding: .5rem .65rem; cursor: pointer; color: var(--adbf-texto);
}
.adbf-cartao:hover { border-color: #c3ccd6; }
.adbf-cartao--ativo { border-color: var(--adbf-destaque); background: #eaf2ff; }
.adbf-cartao__valor { font-size: 1.35rem; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.adbf-cartao__rotulo { font-size: .8rem; font-weight: 700; }
.adbf-cartao__sub { font-size: .72rem; color: var(--adbf-suave); }
.adbf-cartao--perigo .adbf-cartao__valor { color: var(--adbf-perigo); }
.adbf-cartao--aviso .adbf-cartao__valor { color: var(--adbf-aviso); }
.adbf-cartao--ok .adbf-cartao__valor { color: var(--adbf-ok); }

/* ── Gráfico por semana ── */
.adbf-grafico-caixa { margin-top: .8rem; border-top: 1px solid var(--adbf-borda); padding-top: .6rem; }
.adbf-grafico-titulo { font-size: .85rem; font-weight: 700; margin: 0 0 .4rem; cursor: pointer; }
.adbf-grafico-titulo span { font-weight: 400; color: var(--adbf-suave); }
.adbf-grafico__svg { width: 100%; height: 5.5rem; display: block; }
.adbf-barra { fill: #6ea8fe; cursor: pointer; }
.adbf-barra:hover { fill: var(--adbf-destaque); }
.adbf-barra--ativa { fill: var(--adbf-perigo); }
.adbf-grafico__eixo { display: flex; justify-content: space-between; font-size: .72rem; color: var(--adbf-suave); margin-top: .25rem; gap: .5rem; }
.adbf-grafico__vazio { margin: 0; font-size: .85rem; color: var(--adbf-suave); }

/* ── Filtros ── */
.adbf-filtros__titulo { font-size: .9rem; font-weight: 700; cursor: pointer; margin: 0 0 .1rem; }
.adbf-filtros[open] > .adbf-filtros__titulo { margin-bottom: .7rem; }
.adbf-filtros__ativos { margin-left: .4rem; background: var(--adbf-destaque); color: #fff; border-radius: 50px; padding: .05rem .55rem; font-size: .72rem; }
.adbf-filtros__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.4rem, 1fr)); gap: .6rem .8rem; }
.adbf-campo label { display: block; font-size: .72rem; font-weight: 700; color: var(--adbf-suave); margin-bottom: .2rem; text-transform: uppercase; letter-spacing: .03em; }
.adbf-campo--busca { grid-column: span 2; }
.adbf-filtros__rodape { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem 1rem; margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--adbf-borda); }
.adbf-troca { display: flex; align-items: flex-start; gap: .5rem; font-size: .82rem; color: var(--adbf-suave); cursor: pointer; max-width: 36rem; }
.adbf-troca input { margin-top: .15rem; flex: 0 0 auto; }
.adbf-filtros__botoes { display: flex; flex-wrap: wrap; gap: .4rem; }

/* ── Tabela ── */
.adbf-tabela-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; }
.adbf-contagem { margin: 0; font-size: .88rem; font-weight: 600; }
.adbf-paginacao { display: flex; align-items: center; gap: .3rem; }
.adbf-paginacao__info { font-size: .82rem; color: var(--adbf-suave); min-width: 6.5rem; text-align: center; }
.adbf-rolagem { overflow-x: auto; }
.adbf-tabela { width: 100%; border-collapse: collapse; font-size: .85rem; }
.adbf-tabela th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; color: var(--adbf-suave); border-bottom: 2px solid var(--adbf-borda); padding: .35rem .5rem; white-space: nowrap; }
.adbf-ordenar { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-transform: inherit; letter-spacing: inherit; cursor: pointer; }
.adbf-ordenar:hover { color: var(--adbf-texto); }
.adbf-tabela td { padding: .5rem; border-bottom: 1px solid #edf0f3; vertical-align: top; }
.adbf-linha:hover td { background: #f7faff; }
.adbf-abrir { background: none; border: 0; padding: 0; font-weight: 700; color: var(--adbf-destaque-esc); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.adbf-nome { display: block; font-weight: 600; overflow-wrap: anywhere; }
.adbf-sub { display: block; font-size: .75rem; color: var(--adbf-suave); }
.adbf-nenhuma { text-align: center; color: var(--adbf-suave); padding: 1.5rem .5rem !important; }
.adbf-nota { font-size: .76rem; color: var(--adbf-suave); margin: .8rem 0 0; }

.adbf-situacao { display: inline-block; border-radius: 50px; padding: .12rem .6rem; font-size: .75rem; font-weight: 700; background: var(--adbf-neutro-fundo); color: var(--adbf-texto); }
.adbf-situacao--confirmada { background: var(--adbf-perigo-fundo); color: var(--adbf-perigo); }
.adbf-situacao--investigacao { background: var(--adbf-aviso-fundo); color: var(--adbf-aviso); }
.adbf-situacao--descartada { background: var(--adbf-ok-fundo); color: var(--adbf-ok); }
.adbf-mini { display: inline-block; margin-left: .3rem; border-radius: .3rem; padding: 0 .35rem; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.adbf-mini--aviso { background: var(--adbf-aviso-fundo); color: var(--adbf-aviso); }
.adbf-mini--perigo { background: var(--adbf-perigo-fundo); color: var(--adbf-perigo); }
.adbf-atencao { display: inline-block; border-radius: .4rem; padding: .1rem .5rem; font-size: .75rem; font-weight: 700; cursor: help; }
.adbf-atencao--alto { background: var(--adbf-perigo-fundo); color: var(--adbf-perigo); }
.adbf-atencao--medio { background: var(--adbf-aviso-fundo); color: var(--adbf-aviso); }
.adbf-atencao--baixo { background: var(--adbf-neutro-fundo); color: var(--adbf-suave); }
.adbf-ok { color: #a3acb5; }

/* ── Ficha (detalhe) ── */
.adbf-detalhe {
  border: 0; padding: 0; margin: 0 0 0 auto; height: 100vh; max-height: 100vh; width: min(34rem, 100vw);
  max-width: 100vw; background: var(--adbf-superficie); color: var(--adbf-texto); box-shadow: -8px 0 30px rgba(10, 22, 40, .25);
}
.adbf-detalhe[open] { display: flex; flex-direction: column; }
.adbf-detalhe::backdrop { background: rgba(10, 22, 40, .45); }
.adbf-det__cabeca { display: flex; justify-content: space-between; align-items: flex-start; gap: .5rem; padding: 1rem 1.1rem .8rem; border-bottom: 1px solid var(--adbf-borda); background: #f8fafc; }
.adbf-det__titulo { font-size: 1.1rem; font-weight: 800; margin: 0; }
.adbf-det__sub { margin: .15rem 0 0; font-size: .85rem; color: var(--adbf-suave); overflow-wrap: anywhere; }
.adbf-det__corpo { flex: 1 1 auto; overflow-y: auto; padding: 1rem 1.1rem 2rem; }
.adbf-det__topo { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .9rem; }
.adbf-det__evolucao { font-size: .85rem; font-weight: 600; }
.adbf-det__secao { margin-bottom: 1.1rem; }
.adbf-det__secao h3 { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--adbf-suave); border-bottom: 1px solid var(--adbf-borda); padding-bottom: .25rem; margin: 0 0 .5rem; }
.adbf-det__lista { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem .9rem; }
.adbf-det__lista dt { font-size: .72rem; color: var(--adbf-suave); font-weight: 600; }
.adbf-det__lista dd { margin: 0; font-size: .88rem; font-weight: 600; overflow-wrap: anywhere; }
.adbf-det__rotulo { font-size: .75rem; font-weight: 700; color: var(--adbf-suave); margin: .4rem 0 .2rem; }
.adbf-oculto-dado { font-weight: 400; font-style: italic; color: var(--adbf-suave); }
.adbf-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.adbf-chip { border-radius: 50px; padding: .12rem .6rem; font-size: .78rem; font-weight: 600; background: var(--adbf-neutro-fundo); }
.adbf-chip--aviso { background: var(--adbf-aviso-fundo); color: var(--adbf-aviso); }
.adbf-chip--perigo { background: var(--adbf-perigo-fundo); color: var(--adbf-perigo); }
.adbf-avisos { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; }
.adbf-aviso-item { border-radius: .45rem; padding: .45rem .6rem; font-size: .85rem; border-left: 4px solid; }
.adbf-aviso-item--alto { background: var(--adbf-perigo-fundo); border-color: var(--adbf-perigo); }
.adbf-aviso-item--medio { background: var(--adbf-aviso-fundo); border-color: #d99a00; }
.adbf-aviso-item--baixo { background: var(--adbf-neutro-fundo); border-color: #9aa5b1; }
.adbf-nivel { font-size: .68rem; font-weight: 800; text-transform: uppercase; margin-right: .3rem; }
.adbf-det__exames { width: 100%; font-size: .84rem; border-collapse: collapse; }
.adbf-det__exames th { text-align: left; font-size: .72rem; color: var(--adbf-suave); padding: .2rem .3rem; border-bottom: 1px solid var(--adbf-borda); }
.adbf-det__exames td { padding: .3rem; border-bottom: 1px solid #edf0f3; }
.adbf-det__outros summary { cursor: pointer; font-size: .85rem; font-weight: 700; margin-bottom: .6rem; }

/* ── Rodapé ── */
.adbf-rodape { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem 1rem; margin-top: 1.5rem; font-size: .78rem; color: var(--adbf-suave); text-align: center; }
.adbf-rodape i { color: var(--adbf-ok); }

/* ── Celular: a tabela vira lista de cartões ── */
@media (max-width: 820px) {
  .adbf-campo--busca { grid-column: 1 / -1; }
  .adbf-tabela thead { display: none; }
  .adbf-tabela, .adbf-tabela tbody, .adbf-tabela tr, .adbf-tabela td { display: block; width: 100%; }
  .adbf-linha { border: 1px solid var(--adbf-borda); border-radius: .6rem; margin-bottom: .6rem; padding: .35rem .6rem; background: var(--adbf-superficie); }
  .adbf-tabela td { border: 0; padding: .2rem 0; display: flex; justify-content: space-between; gap: .75rem; text-align: right; }
  .adbf-cel { flex: 1 1 auto; min-width: 0; }
  .adbf-tabela td::before { content: attr(data-rotulo); flex: 0 0 5.5rem; text-align: left; font-size: .7rem; text-transform: uppercase; letter-spacing: .03em; color: var(--adbf-suave); font-weight: 700; padding-top: .1rem; }
  .adbf-linha:hover td { background: transparent; }
  .adbf-nenhuma { display: block; }
  .adbf-nenhuma::before { content: none; }
  .adbf-det__lista { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
