/* HematoCase — design system inspirado no PickCells Hub (primária #007CBE) */
:root {
  --primaria: #007CBE; --primaria-escura: #00659c; --primaria-suave: #e6f3fa;
  --navy: #1d2939; --fundo: #f2f4f7; --cartao: #ffffff;
  --borda: #e4e7ec; --borda-forte: #d0d5dd;
  --texto: #1d2939; --texto-2: #667085; --texto-3: #98a2b3;
  --verde: #12b76a; --verde-suave: #e7f8f0;
  --ambar: #b45309; --ambar-suave: #fef3c7;
  --erro: #d92d20; --erro-suave: #fee4e2;
  --roxo: #6d28d9; --roxo-suave: #ede9fe;
  --sombra: 0 1px 3px rgba(16,24,40,.08), 0 1px 2px rgba(16,24,40,.04);
  --raio: 12px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--fundo); color: var(--texto);
  font: 14px/1.55 -apple-system, "Segoe UI", Inter, Roboto, sans-serif; }
h1, h2, h3 { color: var(--navy); }

/* ---------- botões e campos ---------- */
.btn { font: inherit; font-weight: 600; border-radius: 8px; padding: 9px 16px;
  cursor: pointer; border: 1px solid transparent; transition: .15s; }
.btn:disabled { opacity: .5; cursor: default; }
.btn-primario { background: var(--primaria); color: #fff; }
.btn-primario:hover:not(:disabled) { background: var(--primaria-escura); }
.btn-contorno { background: #fff; color: var(--primaria); border-color: var(--primaria); }
.btn-contorno:hover:not(:disabled) { background: var(--primaria-suave); }
.btn-fantasma { background: transparent; color: var(--texto-2); border-color: var(--borda-forte); }
.btn-fantasma:hover { color: var(--texto); background: var(--fundo); }
.btn-cheio { width: 100%; margin-top: 8px; }
.campo { display: block; margin-bottom: 12px; }
.campo span { display: block; font-size: 12.5px; font-weight: 600;
  color: var(--texto-2); margin-bottom: 5px; }
input, select { width: 100%; padding: 9px 12px; border: 1px solid var(--borda-forte);
  border-radius: 8px; font: inherit; background: #fff; color: var(--texto); }
input:focus, select:focus { outline: 2px solid var(--primaria-suave);
  border-color: var(--primaria); }
.campo-erro { color: var(--erro); font-size: 13px; margin: 4px 0 10px; }
.dica { font-size: 12.5px; color: var(--texto-3); margin: 10px 0 0; }

/* ---------- login ---------- */
.login-pagina { min-height: 100vh; display: flex; align-items: center;
  justify-content: center; padding: 24px; }
.login-cartao { background: var(--cartao); border-radius: 16px; padding: 36px 32px;
  width: 380px; box-shadow: 0 8px 40px rgba(16,24,40,.12); text-align: center; }
.login-logo { height: 34px; margin-bottom: 14px; }
.login-cartao h1 { margin: 0; font-size: 22px; }
.login-sub { color: var(--texto-2); margin: 4px 0 22px; }
.login-cartao .campo, .login-cartao .campo-erro { text-align: left; }
.login-ruo { font-size: 11.5px; color: var(--texto-3); margin: 18px 0 0; }

/* ---------- topo ---------- */
.topo { display: flex; justify-content: space-between; align-items: center;
  background: var(--cartao); border-bottom: 1px solid var(--borda);
  padding: 12px 24px; position: sticky; top: 0; z-index: 20; }
.topo-marca { display: flex; align-items: center; gap: 12px; }
.topo-marca img { height: 26px; display: block; }
.topo-produto { font-weight: 700; color: var(--navy); font-size: 16px;
  border-left: 1px solid var(--borda-forte); padding-left: 12px; }
.topo-direita { display: flex; align-items: center; gap: 12px; }
.topo-usuario { color: var(--texto-2); font-size: 13px; }
.ruo-chip { position: relative; background: var(--ambar-suave); color: var(--ambar);
  font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 999px;
  cursor: help; outline: none; }
.ruo-hint { position: absolute; top: calc(100% + 8px); right: 0; z-index: 80;
  width: 320px; background: var(--navy); color: #e9eef4; font-weight: 400;
  font-size: 12.5px; line-height: 1.5; text-align: left; padding: 12px 14px;
  border-radius: 10px; box-shadow: 0 12px 40px rgba(16,24,40,.35);
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity .15s, transform .15s; pointer-events: none; }
.ruo-hint strong { color: #fff; }
.ruo-hint::before { content: ""; position: absolute; bottom: 100%; right: 14px;
  border: 7px solid transparent; border-bottom-color: var(--navy); }
.ruo-chip:hover .ruo-hint, .ruo-chip:focus .ruo-hint {
  opacity: 1; visibility: visible; transform: translateY(0); }

/* ---------- layout ---------- */
.layout { display: grid; grid-template-columns: 310px 1fr; gap: 20px;
  padding: 20px 24px; max-width: 1560px; margin: 0 auto; }
/* item de grid precisa poder encolher — sem isso, conteúdo largo (carrossel)
   estoura a página para a direita */
.layout > main { min-width: 0; }
aside { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.painel { background: var(--cartao); border: 1px solid var(--borda);
  border-radius: var(--raio); padding: 16px; box-shadow: var(--sombra); }
.painel h2 { margin: 0 0 12px; font-size: 12px; text-transform: uppercase;
  letter-spacing: .07em; color: var(--texto-3); }

#lista-casos { list-style: none; margin: 0; padding: 0; }
#lista-casos li { padding: 10px 12px; border-radius: 9px; cursor: pointer;
  display: flex; justify-content: space-between; gap: 8px; align-items: center;
  border: 1px solid transparent; }
#lista-casos li:hover { background: var(--fundo); }
#lista-casos li.ativo { background: var(--primaria-suave);
  border-color: #b8dcf0; }
#lista-casos .caso-nome { font-weight: 600; font-size: 13.5px; }
#lista-casos small { color: var(--texto-3); font-weight: 400; }

.badge { font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 999px;
  background: var(--fundo); color: var(--texto-2); white-space: nowrap; }
.badge.rascunho { background: var(--fundo); color: var(--texto-2); }
.badge.processando { background: var(--ambar-suave); color: var(--ambar); }
.badge.revisao { background: var(--verde-suave); color: var(--verde); }
.badge.demo { background: var(--roxo-suave); color: var(--roxo); }
.badge.tipo { background: var(--primaria-suave); color: var(--primaria); }

/* ---------- conteúdo do caso ---------- */
main .cartao { background: var(--cartao); border: 1px solid var(--borda);
  border-radius: var(--raio); padding: 18px 20px; margin-bottom: 18px;
  box-shadow: var(--sombra); }
.estado-vazio { text-align: center; padding: 90px 20px; color: var(--texto-3); }
.estado-icone { font-size: 44px; margin-bottom: 8px; }
.estado-vazio h3 { margin: 0 0 4px; color: var(--texto-2); }
.estado-vazio p { margin: 0; }

.caso-cabecalho { display: flex; justify-content: space-between;
  align-items: flex-start; flex-wrap: wrap; gap: 12px; }
.caso-cabecalho h1 { margin: 0; font-size: 20px; display: flex; gap: 10px;
  align-items: center; flex-wrap: wrap; }
.linha-acao { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.linha-acao select { width: auto; min-width: 300px; }
.upload-chip { display: inline-flex; align-items: center; gap: 6px;
  cursor: pointer; color: var(--primaria); font-weight: 600; font-size: 13px;
  padding: 8px 12px; border: 1px dashed var(--primaria); border-radius: 8px; }
.upload-chip:hover { background: var(--primaria-suave); }

.progresso { height: 8px; background: var(--fundo); border-radius: 999px;
  overflow: hidden; margin-top: 14px; }
.progresso > div { height: 100%; background: var(--primaria); transition: width .4s; }

.secao-titulo { margin: 0 0 4px; font-size: 15px; }
.secao-sub { color: var(--texto-3); font-size: 12.5px; font-weight: 400; }

.thumb { position: relative; border: 1px solid var(--borda); border-radius: 10px;
  overflow: hidden; cursor: pointer; background: #0b141a; aspect-ratio: 3/4;
  flex: 0 0 172px; scroll-snap-align: start; }
.thumb:hover { border-color: var(--primaria); }
.thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.thumb .legenda { position: absolute; inset: auto 0 0 0; padding: 4px 8px;
  font-size: 11px; background: rgba(29,41,57,.85); color: #fff;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.thumb .cont { position: absolute; top: 8px; right: 8px; background: var(--primaria);
  color: #fff; font-size: 11px; font-weight: 700; padding: 2px 8px;
  border-radius: 999px; }

table.contagens { border-collapse: collapse; width: 100%; margin-top: 10px; }
table.contagens th, table.contagens td { text-align: left; padding: 8px 12px;
  border-bottom: 1px solid var(--borda); font-size: 13.5px; }
table.contagens th { color: var(--texto-2); font-size: 12px;
  text-transform: uppercase; letter-spacing: .04em; }
table.contagens td.num, table.contagens th.num { text-align: right;
  font-variant-numeric: tabular-nums; }
table.contagens tr.total td { font-weight: 700; border-top: 2px solid var(--borda-forte); }
td.fora-faixa { color: var(--ambar); font-weight: 700; }

/* ---------- contador diferencial guiado ---------- */
.contador-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
  align-items: start; margin-top: 10px; }
@media (max-width: 900px) { .contador-grid { grid-template-columns: 1fr; } }
.contador-celula { text-align: center; }
.cont-progresso-cel { font-size: 12.5px; color: var(--texto-3); margin-bottom: 8px; }
.cont-crop { width: 220px; height: 220px; object-fit: cover; border-radius: 12px;
  border: 1px solid var(--borda); background: #0b141a; }
.cont-sugestao { margin: 8px 0 12px; font-size: 13px; color: var(--texto-2); }
.cont-teclas { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.cont-teclas button { display: flex; align-items: center; gap: 8px; font: inherit;
  font-size: 12.5px; padding: 8px 10px; border: 1px solid var(--borda-forte);
  border-radius: 8px; background: #fff; cursor: pointer; text-align: left; }
.cont-teclas button:hover { background: var(--fundo); }
.cont-teclas button.sugerido { border-color: var(--primaria);
  background: var(--primaria-suave); color: var(--primaria); font-weight: 600; }
.cont-teclas .tecla { display: inline-flex; align-items: center;
  justify-content: center; width: 20px; height: 20px; border-radius: 6px;
  background: var(--navy); color: #fff; font-size: 11px; font-weight: 700;
  flex-shrink: 0; }
.cont-meta { margin-bottom: 10px; }
.cont-meta-num { font-size: 14px; margin-bottom: 5px; }
.cont-meta-num strong { font-size: 20px; color: var(--navy); }
.contador-fim { padding: 40px 12px; color: var(--verde); }
.contador-fim h3 { margin: 6px 0 2px; }

/* ---------- carrossel ---------- */
.carrossel-wrap { overflow: hidden; }
.carrossel-filtros { display: flex; gap: 14px; align-items: center;
  margin: 10px 0 4px; flex-wrap: wrap; font-size: 13px; color: var(--texto-2); }
.carrossel-filtros select { width: auto; padding: 6px 10px; }
.carrossel-zona { position: relative; padding: 0 8px; }
.carrossel { display: flex; gap: 12px; overflow-x: auto; padding: 8px 34px;
  scroll-behavior: smooth; scrollbar-width: none;
  scroll-snap-type: x proximity; }
.carrossel::-webkit-scrollbar { display: none; }
.carrossel-indicador { margin-left: auto; }
.crop-card { flex: 0 0 156px; border: 1px solid var(--borda); border-radius: 10px;
  overflow: hidden; background: #fff; box-shadow: var(--sombra);
  scroll-snap-align: start; }
.crop-card.rejeitado { opacity: .38; }
.crop-card img { width: 156px; height: 156px; object-fit: cover; display: block;
  cursor: zoom-in; background: #0b141a; }
.crop-card .rotulo { padding: 6px 8px 2px; font-size: 11.5px; font-weight: 700;
  border-top: 3px solid var(--borda); white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; color: var(--navy); }
.crop-card .score { padding: 0 8px; font-size: 11px; color: var(--texto-3); }
.crop-card .mini { display: flex; gap: 6px; padding: 6px 8px 8px; }
.crop-card .mini button { font-size: 12px; padding: 3px 0; flex: 1; margin: 0;
  border-radius: 6px; border: 1px solid var(--borda-forte); background: #fff;
  cursor: pointer; }
.crop-card .mini button:hover { background: var(--fundo); }
.carrossel-nav { position: absolute; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px; border-radius: 999px; background: #fff;
  color: var(--navy); border: 1px solid var(--borda-forte); z-index: 3;
  padding: 0; cursor: pointer; font-size: 20px; font-weight: 700;
  box-shadow: 0 4px 14px rgba(16,24,40,.18); transition: .15s; }
.carrossel-nav:hover:not(:disabled) { background: var(--primaria); color: #fff;
  border-color: var(--primaria); }
.carrossel-nav:disabled { opacity: .25; cursor: default; }
.carrossel-nav.prev { left: -6px; } .carrossel-nav.next { right: -6px; }

/* ---------- viewer ---------- */
dialog { border: none; border-radius: 14px; padding: 0; width: min(1280px, 96vw);
  max-height: 94vh; box-shadow: 0 24px 80px rgba(16,24,40,.35); }
dialog::backdrop { background: rgba(16,24,40,.55); }
.viewer-topo { display: flex; align-items: center; gap: 14px; padding: 12px 18px;
  border-bottom: 1px solid var(--borda); }
.viewer-topo strong { color: var(--navy); }
.filtros { display: flex; gap: 6px; flex-wrap: wrap; }
.filtros label { font-size: 12px; font-weight: 600; padding: 4px 11px;
  border-radius: 999px; cursor: pointer; user-select: none; }
.filtros label.off { opacity: .35; }
.viewer-corpo { display: grid; grid-template-columns: 1fr 310px;
  max-height: calc(94vh - 58px); }
.canvas-wrap { overflow: auto; background: #0b141a; display: flex;
  align-items: flex-start; justify-content: center; }
#viewer-canvas { max-width: 100%; height: auto; }
.achados { border-left: 1px solid var(--borda); padding: 14px; overflow: auto; }
.achados h3 { margin: 0 0 10px; font-size: 12px; text-transform: uppercase;
  letter-spacing: .06em; color: var(--texto-3); }
.achados ul { list-style: none; margin: 0; padding: 0; }
.achados li { padding: 8px 10px; border-radius: 9px; margin-bottom: 6px;
  border: 1px solid var(--borda); font-size: 12.5px; background: #fff; }
.achados li .score { color: var(--texto-3); }
.achados li.rejeitado { opacity: .4; text-decoration: line-through; }
.achados .mini { display: flex; gap: 6px; margin-top: 6px; }
.achados .mini button { font-size: 11.5px; padding: 3px 10px; border-radius: 6px;
  border: 1px solid var(--borda-forte); background: #fff; cursor: pointer; }
.achados .mini button:hover { background: var(--fundo); }

/* ---------- navegação: drawer, dropdown do usuário ---------- */
.btn-icone { padding: 8px 10px; }
.conteudo-cheio { padding: 20px 24px; max-width: 1320px; margin: 0 auto; }

.drawer { position: fixed; top: 0; left: 0; bottom: 0; width: 264px;
  background: var(--cartao); border-right: 1px solid var(--borda); z-index: 60;
  transform: translateX(-100%); transition: transform .2s ease;
  display: flex; flex-direction: column; padding: 70px 12px 14px; }
.drawer.aberto { transform: translateX(0); box-shadow: 12px 0 40px rgba(16,24,40,.15); }
.drawer-fundo { position: fixed; inset: 0; background: rgba(16,24,40,.35); z-index: 55; }
.drawer nav { display: flex; flex-direction: column; gap: 4px; }
.drawer hr { border: none; border-top: 1px solid var(--borda); margin: 8px 0; }
.drawer-item { display: flex; align-items: center; gap: 10px; font: inherit;
  font-weight: 600; color: var(--texto-2); background: transparent; border: none;
  padding: 11px 14px; border-radius: 9px; cursor: pointer; text-align: left; }
.drawer-item:hover { background: var(--primaria-suave); color: var(--primaria); }
.drawer-rodape { margin-top: auto; font-size: 11px; color: var(--texto-3);
  text-align: center; }

.menu-usuario { position: relative; }
.dropdown { position: absolute; right: 0; top: calc(100% + 6px);
  background: var(--cartao); border: 1px solid var(--borda); border-radius: 10px;
  box-shadow: 0 12px 40px rgba(16,24,40,.18); min-width: 170px; padding: 6px;
  z-index: 70; }
.dropdown button { display: flex; align-items: center; gap: 9px; width: 100%;
  font: inherit; font-weight: 600; color: var(--texto-2); background: transparent;
  border: none; padding: 9px 12px; border-radius: 8px; cursor: pointer;
  text-align: left; }
.dropdown button:hover { background: var(--fundo); color: var(--texto); }
.dropdown hr { border: none; border-top: 1px solid var(--borda); margin: 5px 0; }

/* ---------- caso: chat à esquerda ---------- */
.caso-grid { display: grid; grid-template-columns: 360px 1fr; gap: 18px;
  align-items: start; }
/* itens de grid precisam poder encolher — sem isso o carrossel estoura a
   página à direita (mesma regra do .layout>main; coberto pela QA frontend) */
.caso-grid > section, .caso-grid > aside { min-width: 0; }
.caso-chat { position: sticky; top: 76px; }
.caso-chat .chat-card { display: flex; flex-direction: column;
  max-height: calc(100vh - 100px); }
.caso-chat .chat-msgs { flex: 1; max-height: none; min-height: 220px; }
@media (max-width: 1100px) { .caso-grid { grid-template-columns: 1fr; }
  .caso-chat { position: static; } }

/* ---------- CRUD de casos (dashboard) ---------- */
.crud-topo { display: flex; justify-content: space-between; align-items: center;
  gap: 10px; flex-wrap: wrap; }
.crud-topo .btn { width: auto; }
.crud-filtros { display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
  margin: 12px 0 6px; }
.campo-busca { display: flex; align-items: center; gap: 8px; flex: 1;
  min-width: 200px; border: 1px solid var(--borda-forte); border-radius: 8px;
  padding: 0 10px; background: #fff; color: var(--texto-3); }
.campo-busca input { border: none; outline: none; padding: 8px 0; flex: 1; }
.campo-busca input:focus { outline: none; }
.chips-filtro { display: flex; gap: 6px; }
.chip-filtro { font: inherit; font-size: 12.5px; font-weight: 600;
  padding: 6px 13px; border-radius: 999px; border: 1px solid var(--borda-forte);
  background: #fff; color: var(--texto-2); cursor: pointer; }
.chip-filtro.on { background: var(--primaria); border-color: var(--primaria);
  color: #fff; }
.crud-filtros select { width: auto; }
.btn-abrir { width: auto; margin: 0; padding: 5px 12px; font-size: 12.5px; }
.dica-inline { color: var(--texto-3); font-weight: 400; margin-left: 6px; }
.dlg-estreito { width: min(420px, 94vw); }

/* ---------- stepper e dashboard ---------- */

.stepper { display: flex; list-style: none; margin: 14px 0 2px; padding: 0;
  gap: 4px; flex-wrap: wrap; }
.passo { flex: 1; min-width: 120px; display: flex; align-items: center; gap: 8px;
  padding: 9px 12px; border-radius: 9px; cursor: pointer; font-weight: 600;
  font-size: 13px; color: var(--texto-3); background: var(--fundo);
  border: 1px solid transparent; }
.passo:hover { border-color: var(--borda-forte); }
.passo-num { width: 22px; height: 22px; border-radius: 999px; display: flex;
  align-items: center; justify-content: center; background: var(--borda);
  color: var(--texto-2); font-size: 12px; flex-shrink: 0; }
.passo.ativo { background: var(--primaria-suave); color: var(--primaria);
  border-color: #b8dcf0; }
.passo.ativo .passo-num { background: var(--primaria); color: #fff; }
.passo.feito { color: var(--verde); }
.passo.feito .passo-num { background: var(--verde-suave); color: var(--verde); }
.passo-nav { display: flex; justify-content: space-between; align-items: center; }
.passo-nav .btn { width: auto; }
.caso-topo { position: sticky; top: 62px; z-index: 10; }

.hero-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 14px; margin-bottom: 18px; }
.hero { text-align: center; padding: 20px 12px; }
.hero-num { display: block; font-size: 34px; font-weight: 800; color: var(--navy);
  line-height: 1.1; }
.hero-rot { color: var(--texto-2); font-size: 12.5px; }
.hero-critico .hero-num { color: var(--erro); }
.dash-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 16px; }
@media (max-width: 1000px) { .dash-grid { grid-template-columns: 1fr; } }
.linha-caso { cursor: pointer; }
.linha-caso:hover td { background: var(--fundo); }
.barra-linha { display: grid; grid-template-columns: 150px 1fr 36px; gap: 10px;
  align-items: center; margin: 7px 0; font-size: 12.5px; }
.barra-rot { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.barra { height: 10px; background: var(--fundo); border-radius: 999px;
  overflow: hidden; }
.barra > div { height: 100%; border-radius: 999px; }
.barra-num { text-align: right; font-variant-numeric: tabular-nums;
  color: var(--texto-2); }
.acoes-user { display: flex; gap: 6px; }
.acoes-user .btn { width: auto; margin: 0; font-size: 12px; padding: 4px 10px; }

/* P2: home enxuta (KPI clicável, paginação, arquivar) + analítico/drift */
.hero-link { cursor: pointer; border: 1px solid var(--borda);
  background: var(--cartao); transition: border-color .15s, transform .05s; }
.hero-link:hover { border-color: var(--primaria); }
.hero-link:active { transform: translateY(1px); }
.hero-link .hero-rot .ic { vertical-align: -2px; margin-left: 2px; }
.chk-arquivados { font-size: 12.5px; color: var(--texto-2); display: inline-flex;
  gap: 6px; align-items: center; white-space: nowrap; }
.acoes-caso { display: flex; gap: 6px; align-items: center; justify-content: flex-end; }
.acoes-caso .btn { width: auto; margin: 0; }
.paginador { display: flex; gap: 14px; align-items: center; justify-content: center;
  margin-top: 12px; }
.paginador .btn { width: auto; margin: 0; }
.cartao-alerta { border-left: 4px solid var(--ambar); }
.drift-linha td { background: var(--ambar-suave); }

/* ---------- Analítico: gráficos SVG e KPIs ---------- */
.kpi-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px;
  margin-bottom: 16px; }
@media (max-width: 900px) { .kpi-grid { grid-template-columns: repeat(2, 1fr); } }
.kpi { text-align: center; padding: 16px 10px; position: relative; }
.kpi-ic { display: block; color: var(--primaria); margin-bottom: 4px; }
.kpi-ic .ic { width: 22px; height: 22px; }
.kpi.hero-critico .kpi-ic { color: var(--erro); }

.donut-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
  margin-bottom: 16px; }
.donut-grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .donut-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .donut-grid { grid-template-columns: 1fr; } }

/* bloco de drift dentro do 4º card da linha */
.drift-mod { display: flex; flex-direction: column; align-items: center;
  gap: 6px; }
.drift-mod + .drift-mod { margin-top: 10px; padding-top: 10px;
  border-top: 1px solid var(--borda); }
.drift-mod-nome { display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
  justify-content: center; }
.drift-mod-nome strong { font-size: 13px; }
.drift-mod-nums { font-size: 12px; color: var(--texto-2);
  font-variant-numeric: tabular-nums; text-align: center; }
.drift-mod-nums strong { color: var(--navy); }
.painel-donut { display: flex; flex-direction: column; align-items: center;
  text-align: center; }
.painel-donut .secao-mini { align-self: flex-start; margin-bottom: 6px; }
.donut { display: block; margin: 6px auto 4px; max-width: 100%; height: auto; }
.donut-num { font-weight: 800; font-variant-numeric: tabular-nums; }
.donut-sub { fill: var(--texto-3); text-transform: uppercase;
  letter-spacing: .04em; }

.legenda { display: flex; flex-wrap: wrap; gap: 6px 14px; justify-content: center;
  margin-top: 8px; }
.leg-item { font-size: 12px; color: var(--texto-2); display: inline-flex;
  align-items: center; gap: 5px; white-space: nowrap; }
.leg-item strong { color: var(--navy); font-variant-numeric: tabular-nums; }
.leg-cor { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }

/* drift: itens compactos (medidor pequeno + números ao lado) */
.drift-lista { display: grid; grid-template-columns: repeat(auto-fill,
  minmax(330px, 1fr)); gap: 12px; margin-top: 10px; }
.drift-item { display: flex; align-items: center; gap: 14px; padding: 12px 14px;
  border: 1px solid var(--borda); border-radius: var(--raio);
  background: var(--cartao); }
.drift-item.drift { border-color: #f5d08c; background: var(--ambar-suave); }
.drift-item .donut { margin: 0; flex-shrink: 0; }
.drift-meta { min-width: 0; flex: 1; }
.drift-nome { display: flex; align-items: center; gap: 8px; margin-bottom: 7px;
  flex-wrap: wrap; }
.drift-nome strong { font-size: 13.5px; }
.ok-badge { background: var(--verde-suave); color: var(--verde); }
.drift-nums { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12px;
  color: var(--texto-2); }
.drift-nums > span { display: flex; flex-direction: column; line-height: 1.2; }
.drift-nums strong { font-size: 14px; color: var(--navy);
  font-variant-numeric: tabular-nums; }
.drift-nums small { color: var(--texto-3); font-size: 10.5px; }
.delta-neg { color: var(--erro) !important; }
.delta-ok { color: var(--verde) !important; }

.barra-emp { display: block; border-radius: 5px; overflow: hidden;
  background: var(--fundo); }
.tbl-concord .col-comp { width: 42%; min-width: 120px; }
.tbl-concord td.col-comp { padding-right: 16px; }
.pill { display: inline-block; padding: 2px 9px; border-radius: 999px;
  font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums;
  background: var(--fundo); color: var(--texto-2); }
.pill-ok { background: var(--verde-suave); color: var(--verde); }
.pill-medio { background: var(--ambar-suave); color: var(--ambar); }
.pill-baixo { background: var(--erro-suave); color: var(--erro); }
.barra-num small { display: block; font-size: 10px; color: var(--texto-3);
  font-weight: 400; }

/* ---------- Home redesenhada ---------- */
.home-topo { display: flex; justify-content: space-between; align-items: flex-end;
  gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.home-titulo { margin: 0; font-size: 22px; letter-spacing: -.01em; }
.home-sub { margin: 3px 0 0; color: var(--texto-2); font-size: 13.5px; }
.btn-grande { width: auto; padding: 11px 20px; font-size: 14px; }

.kpi-home { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 920px) { .kpi-home { grid-template-columns: repeat(2, 1fr); } }
.kpi-card { display: flex; align-items: center; justify-content: center;
  gap: 14px; text-align: left; padding: 15px 18px; }
.kpi-chip { width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center; }
.kpi-chip .ic { width: 22px; height: 22px; }
.chip-azul { background: var(--primaria-suave); color: var(--primaria); }
.chip-roxo { background: var(--roxo-suave); color: var(--roxo); }
.chip-verde { background: var(--verde-suave); color: var(--verde); }
.chip-erro { background: var(--erro-suave); color: var(--erro); }
.chip-cinza { background: var(--fundo); color: var(--texto-3); }
.kpi-txt { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.kpi-num { font-size: 26px; font-weight: 800; color: var(--navy);
  font-variant-numeric: tabular-nums; }
.kpi-rot { font-size: 12.5px; color: var(--texto-2); }
.kpi-link { cursor: pointer; position: relative; font: inherit;
  border: 1px solid var(--borda); transition: border-color .15s, box-shadow .15s; }
.kpi-link:hover { border-color: var(--primaria); box-shadow: var(--sombra); }
.kpi-seta { position: absolute; top: 12px; right: 12px; color: var(--texto-3); }
.kpi-link:hover .kpi-seta { color: var(--primaria); }
.kpi-alerta { border-color: #f4b0aa; }

/* toolbar da lista */
.cartao-lista .crud-topo { gap: 16px; align-items: center; }
.cartao-lista .campo-busca { max-width: 320px; margin-left: auto; }
.crud-filtros { justify-content: space-between; }
.crud-filtros-dir { display: flex; gap: 12px; align-items: center;
  flex-wrap: wrap; }

/* linhas da lista de casos */
.tbl-casos { margin-top: 6px; }
.tbl-casos th { padding-top: 4px; padding-bottom: 8px; }
.tbl-casos td { padding: 12px; vertical-align: middle; white-space: nowrap; }
/* larguras proporcionais: a lista fica equilibrada sem vãos no meio */
.tbl-casos { table-layout: fixed; }
.tbl-casos th:nth-child(1), .tbl-casos td:nth-child(1) { width: 30%; }
.tbl-casos th:nth-child(2), .tbl-casos td:nth-child(2) { width: 16%; }
.tbl-casos th:nth-child(3), .tbl-casos td:nth-child(3) { width: 14%; }
.tbl-casos th:nth-child(4), .tbl-casos td:nth-child(4) { width: 18%; }
.tbl-casos th:nth-child(5), .tbl-casos td:nth-child(5) { width: 22%; }
.tbl-casos .caso-info { overflow: hidden; }
.tbl-casos .caso-nome-linha strong,
.tbl-casos .caso-info small { overflow: hidden; text-overflow: ellipsis; }
.tbl-casos tr.linha-caso:hover td { background: var(--primaria-suave); }
.tbl-casos tr.linha-caso td:first-child { border-top-left-radius: 10px;
  border-bottom-left-radius: 10px; }
.tbl-casos tr.linha-caso td:last-child { border-top-right-radius: 10px;
  border-bottom-right-radius: 10px; }
.tbl-casos tr.arquivada { opacity: .62; }
.col-caso { display: flex; align-items: center; gap: 12px; }
.tipo-avatar { width: 40px; height: 40px; border-radius: 11px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center; }
.tipo-avatar .ic { width: 20px; height: 20px; }
.av-mielograma { background: var(--roxo-suave); color: var(--roxo); }
.av-sangue { background: var(--erro-suave); color: var(--erro); }
.caso-info { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.caso-nome-linha { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.caso-nome-linha strong { font-size: 14px; }
.tag { font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .03em; padding: 1px 7px; border-radius: 999px; }
.tag-demo { background: var(--roxo-suave); color: var(--roxo); }
.tag-arq { background: var(--fundo); color: var(--texto-3); }
.img-cont { display: inline-flex; align-items: center; gap: 5px;
  color: var(--texto-2); font-variant-numeric: tabular-nums; }
.img-cont .ic { width: 15px; height: 15px; color: var(--texto-3); }
.badge { display: inline-flex; align-items: center; gap: 6px; }
.badge-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor;
  flex-shrink: 0; }
.badge.rascunho .badge-dot { background: var(--texto-3); }
.estado-vazio-inline { text-align: center; padding: 40px 20px; }
.estado-vazio-inline .estado-icone { color: var(--texto-3); display: block;
  margin-bottom: 6px; }
.estado-vazio-inline .estado-icone .ic { width: 30px; height: 30px; }

/* ---------- galeria de amostras de teste ---------- */
.aviso-amostras { margin-bottom: 16px; }
.galeria { display: grid; grid-template-columns: repeat(auto-fill,
  minmax(180px, 1fr)); gap: 12px; margin-top: 10px; }
.amostra-card { position: relative; border: 1px solid var(--borda);
  border-radius: 10px; overflow: hidden; cursor: pointer; background: var(--cartao);
  transition: border-color .15s, box-shadow .15s; }
.amostra-card:hover { border-color: var(--primaria); }
.amostra-card:has(.sel-amostra:checked) { border-color: var(--primaria);
  box-shadow: 0 0 0 2px var(--primaria-suave); }
.amostra-card .sel-amostra { position: absolute; top: 8px; left: 8px; width: 18px;
  height: 18px; z-index: 2; cursor: pointer; accent-color: var(--primaria); }
.amostra-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block;
  background: #0b141a; }
.amostra-info { display: flex; justify-content: space-between; align-items: center;
  gap: 6px; padding: 7px 10px; }
.amostra-info strong { font-size: 12px; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap; }
.amostra-info small { color: var(--texto-3); flex-shrink: 0; }
.amostra-dl { position: absolute; top: 6px; right: 6px; z-index: 2; width: auto;
  margin: 0; background: rgba(255, 255, 255, .92); }

.lista-sobre { margin: 6px 0 0; padding-left: 18px; }
.lista-sobre li { margin: 4px 0; font-size: 13.5px; }
.matrizes-grid { display: grid; grid-template-columns: repeat(auto-fill,
  minmax(240px, 1fr)); gap: 14px; margin-top: 8px; }
.matriz-card { border: 1px solid var(--borda); border-radius: var(--raio);
  padding: 12px; background: var(--cartao); }
.matriz-topo { display: flex; align-items: center; justify-content: space-between;
  gap: 8px; margin-bottom: 8px; }
.heatmap { display: block; margin: 0 auto; }
.matriz-leitura { grid-column: span 2; background: var(--fundo); }
.matriz-leitura strong { font-size: 14px; color: var(--navy); }
.matriz-leitura p { font-size: 12.5px; margin: 8px 0 0; color: var(--texto-2);
  line-height: 1.55; }
.tinta-verde { color: var(--verde); font-weight: 700; }
.tinta-vermelha { color: var(--erro); font-weight: 700; }

.token-val { display: inline-block; font-family: ui-monospace, Menlo, monospace;
  font-size: 12px; background: var(--cartao); border: 1px solid var(--borda);
  border-radius: 6px; padding: 3px 8px; margin: 0 6px; word-break: break-all;
  user-select: all; }
#token-novo .btn { width: auto; margin: 0; padding: 4px 10px; }

/* ---------- iconografia ---------- */
.ic { vertical-align: -3px; flex-shrink: 0; }
.btn .ic, .upload-chip .ic { margin-right: 4px; }
.carrossel-nav { display: flex; align-items: center; justify-content: center; }
.secao-mini { font-weight: 700; color: var(--navy); font-size: 13.5px;
  display: inline-flex; gap: 7px; align-items: center; }
.estado-icone { color: var(--texto-3); }
.caso-nome .ic, h1 .ic { color: var(--roxo); }
h1 .ic { width: 20px; height: 20px; }
.crop-card .mini .ic { vertical-align: -2px; }

/* ---------- painel, alertas, assistente, chat, cbc ---------- */
.chips-painel { display: flex; gap: 10px; flex-wrap: wrap; margin: 10px 0; }
.chip { background: var(--fundo); border: 1px solid var(--borda);
  border-radius: 10px; padding: 8px 14px; font-size: 13px; }
.chip strong { font-size: 15px; color: var(--navy); }
.chip em { display: block; font-style: normal; font-size: 11px;
  color: var(--texto-3); }
.chip-atencao { background: var(--ambar-suave); border-color: #f5d08c; }
.chip-atencao strong { color: var(--ambar); }
.chip-critico { background: var(--erro-suave); border-color: #f4b0aa; }
.chip-critico strong { color: var(--erro); }

.flag { display: flex; gap: 8px; align-items: flex-start; border-radius: 9px;
  padding: 9px 12px; font-size: 13px; margin: 6px 0; }
.flag .ic { margin-top: 2px; }
.flag-critico { background: var(--erro-suave); color: var(--erro); }
.flag-atencao { background: var(--ambar-suave); color: var(--ambar); }
.flag-aviso { background: var(--fundo); color: var(--texto-2); }

.cartao-alertas { border-left: 4px solid var(--erro); }
.alerta { display: flex; gap: 10px; align-items: center; padding: 8px 4px; }
.alerta .ic { flex-shrink: 0; }
.alerta.critico { color: var(--erro); }
.alerta.atencao { color: var(--ambar); }
.alerta-msg { flex: 1; font-size: 13.5px; }
.alerta button { width: auto; margin: 0; font-size: 12px; }

.btn-sino { position: relative; }
.sino-badge { position: absolute; top: -6px; right: -6px; background: var(--erro);
  color: #fff; font-size: 10.5px; font-weight: 700; border-radius: 999px;
  min-width: 17px; height: 17px; display: flex; align-items: center;
  justify-content: center; padding: 0 4px; }
.dlg-painel { width: min(680px, 94vw); }
.dlg-corpo { padding: 16px 18px; max-height: 70vh; overflow: auto; }
.lista-alertas { list-style: none; margin: 0; padding: 0; }

.interp { border-top: 1px solid var(--borda); margin-top: 14px; padding-top: 12px; }
.interp h3 { margin: 0 0 10px; font-size: 14px; }
.interp textarea { width: 100%; min-height: 56px; padding: 9px 12px;
  border: 1px solid var(--borda-forte); border-radius: 8px; font: inherit;
  resize: vertical; }
.check-mini { font-size: 12px; color: var(--texto-2); display: inline-flex;
  gap: 5px; align-items: center; }
.lista-insights li { margin-bottom: 8px; }
.lista-insights .dica { display: block; margin: 1px 0 0; }

.chat-msgs { max-height: 320px; overflow-y: auto; display: flex;
  flex-direction: column; gap: 8px; padding: 10px 4px; }
.bolha { max-width: 78%; padding: 9px 13px; border-radius: 14px;
  font-size: 13.5px; white-space: pre-wrap; }
.bolha.usuario { align-self: flex-end; background: var(--primaria); color: #fff;
  border-bottom-right-radius: 4px; }
.bolha.assistente { align-self: flex-start; background: var(--fundo);
  border: 1px solid var(--borda); border-bottom-left-radius: 4px; }
.bolha.fora { background: var(--ambar-suave); border-color: #f5d08c;
  color: var(--ambar); }
.chat-form { display: flex; gap: 8px; margin-top: 8px; }
.chat-form input { flex: 1; }
.chat-form button { width: auto; }

.cbc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px; margin: 10px 0 4px; }

/* ---------- selo do juiz LLM ---------- */
.juiz { border-radius: 9px; padding: 9px 12px; margin: 8px 0 12px;
  font-size: 12.5px; border: 1px solid var(--borda); }
.juiz-ok { background: var(--verde-suave); border-color: #bbe8d0; }
.juiz-reprova { background: var(--ambar-suave); border-color: #f5d08c; }
.juiz-selo { font-weight: 700; color: var(--navy); }
.juiz-ok .juiz-selo { color: #067647; }
.juiz-reprova .juiz-selo { color: var(--ambar); }
.juiz-violacoes { margin: 6px 0 0; padding-left: 18px; }
.juiz-violacoes li { margin-bottom: 3px; }

/* ---------- toasts ---------- */
.toasts { position: fixed; top: 16px; right: 16px; z-index: 100; display: flex;
  flex-direction: column; gap: 8px; max-width: 360px; }
.toast { background: var(--navy); color: #fff; border-radius: 10px;
  padding: 11px 16px; font-size: 13.5px; box-shadow: 0 10px 30px rgba(16,24,40,.3);
  animation: toast-in .25s ease; }
.toast.sucesso { background: #067647; }
.toast.erro { background: var(--erro); }
@keyframes toast-in { from { transform: translateY(-8px); opacity: 0; } }

@media (max-width: 900px) {
  .layout { grid-template-columns: 1fr; }
  .viewer-corpo { grid-template-columns: 1fr; }
  .achados { border-left: none; border-top: 1px solid var(--borda); }
}
.ic-txt { color: var(--texto-3); font-weight: 400; font-variant-numeric: tabular-nums; }

/* ==================== home / landing pública ==================== */
#view-landing { overflow-x: hidden; background: #fff; color: var(--texto); }
a.btn { text-decoration: none; }
.btn-grande { padding: 14px 28px; font-size: 16px; border-radius: 10px; }
.btn-contorno { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.8); }
.btn-contorno:hover:not(:disabled) { background: rgba(255,255,255,.14); }
.lp-wrap { width: 100%; max-width: 1120px; margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 56px); }
.lp-eyebrow { display: inline-block; text-transform: uppercase; letter-spacing: .09em;
  font-size: 12.5px; font-weight: 700; color: var(--primaria); }
.lp-secao h2 { font-size: clamp(23px, 3.4vw, 33px); line-height: 1.15;
  color: var(--navy); margin: 8px 0 0; }
.lp-secao { padding: clamp(48px, 8vw, 92px) 0; }

/* barra de topo */
.lp-nav { position: sticky; top: 0; z-index: 20; display: flex; align-items: center;
  justify-content: space-between; gap: 12px; padding: 12px clamp(20px, 5vw, 56px);
  background: rgba(255,255,255,.92); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--borda); }
.lp-marca { display: flex; align-items: center; gap: 10px; }
.lp-marca img { height: 26px; }
.lp-marca span { font-weight: 700; color: var(--navy); font-size: 18px; }

/* hero com imagem de fundo */
.lp-hero { position: relative; display: flex; align-items: center; justify-content: center;
  text-align: center; min-height: clamp(440px, 72vh, 640px);
  padding: clamp(48px, 9vw, 104px) clamp(20px, 5vw, 56px);
  color: #fff;
  background:
    linear-gradient(180deg, rgba(11,26,44,.52) 0%, rgba(11,26,44,.66) 100%),
    url(img/hero-bg.jpg) center/cover no-repeat;
  background-color: #0b1a2c; }
.lp-hero-inner { max-width: 820px; text-shadow: 0 1px 14px rgba(0,0,0,.38); }
.lp-chip { display: inline-block; background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.28); color: #eaf6ff; font-weight: 600;
  font-size: 12.5px; padding: 6px 14px; border-radius: 999px; }
.lp-hero h1 { margin: 20px auto 0; font-size: clamp(30px, 5.4vw, 50px);
  line-height: 1.08; letter-spacing: -.01em; max-width: 18ch; color: #fff; }
.lp-lead { margin: 18px auto 0; max-width: 60ch; color: #d7e6f2;
  font-size: clamp(15px, 2vw, 18px); line-height: 1.55; }
.lp-cta { margin-top: 28px; display: flex; align-items: center; gap: 14px;
  justify-content: center; flex-wrap: wrap; }

/* seção "A IA na jornada" */
.lp-ia-grid { display: grid; grid-template-columns: 1.02fr 1.1fr; gap: clamp(28px, 5vw, 56px);
  align-items: center; }
.lp-ia-texto { min-width: 0; }
.lp-ia-texto p { color: var(--texto-2); font-size: 16px; line-height: 1.6; margin: 14px 0 0; }
.lp-bullets { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 10px; }
.lp-bullets li { position: relative; padding-left: 30px; color: var(--texto);
  font-size: 15px; line-height: 1.45; }
.lp-bullets li::before { content: "✓"; position: absolute; left: 0; top: -1px;
  width: 20px; height: 20px; border-radius: 50%; background: var(--verde-suave);
  color: var(--verde); font-size: 12px; font-weight: 800;
  display: grid; place-items: center; }
.lp-ia-fig { margin: 0; min-width: 0; }
.lp-ia-fig img { width: 100%; height: auto; border-radius: 16px;
  border: 1px solid var(--borda); box-shadow: 0 12px 34px rgba(16,24,40,.14); display: block; }
.lp-ia-fig figcaption { margin-top: 10px; color: var(--texto-3); font-size: 12.5px;
  text-align: center; }

/* seção dos 3 passos (fundo tonalizado) */
.lp-passos-sec { background: var(--fundo); border-top: 1px solid var(--borda);
  border-bottom: 1px solid var(--borda); }
.lp-secao-cab { text-align: center; max-width: 720px; margin: 0 auto; }
.lp-sub { color: var(--texto-2); margin: 12px auto 0; max-width: 60ch; line-height: 1.55; }
.lp-cards { list-style: none; padding: 0; margin: clamp(30px, 5vw, 48px) 0 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; text-align: left; }
.lp-card { position: relative; background: var(--cartao); border: 1px solid var(--borda);
  border-radius: 16px; padding: 30px 24px 24px; box-shadow: var(--sombra); min-width: 0; }
.lp-num { position: absolute; top: -15px; left: 24px; width: 32px; height: 32px;
  border-radius: 50%; background: var(--primaria); color: #fff; font-weight: 700;
  display: grid; place-items: center; font-size: 15px; box-shadow: var(--sombra); }
.lp-ico { display: inline-grid; place-items: center; width: 48px; height: 48px;
  border-radius: 12px; background: var(--primaria-suave); color: var(--primaria-escura);
  margin-bottom: 14px; }
.lp-ico svg { width: 27px; height: 27px; }
.lp-card h3 { margin: 0 0 6px; font-size: 18px; color: var(--navy); }
.lp-card p { margin: 0; color: var(--texto-2); font-size: 14.5px; line-height: 1.5; }

/* seção de download (fundo escuro) + QR */
.lp-baixar-sec { background: var(--navy); }
.lp-baixar-grid { display: grid; grid-template-columns: 1.3fr .7fr;
  gap: clamp(28px, 5vw, 56px); align-items: center; }
.lp-baixar-texto { min-width: 0; }
.lp-baixar-sec h2 { color: #fff; }
.lp-baixar-sec .lp-eyebrow { color: #7cc6ec; }
.lp-baixar-sec .lp-sub { color: #cdd8e6; }
.lp-baixar-sec code { background: rgba(255,255,255,.12); color: #eaf6ff;
  padding: 1px 6px; border-radius: 6px; font-size: .92em; }
.lp-baixar-nota { color: #93a3b8; font-size: 13px; margin: 14px 0 0;
  max-width: 52ch; line-height: 1.5; }
.lp-baixar-texto .lp-cta { justify-content: flex-start; }
.lp-qr { margin: 0; justify-self: center; text-align: center; }
.lp-qr img { width: 168px; height: 168px; background: #fff; padding: 12px;
  border-radius: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.3); display: block; }
.lp-qr figcaption { margin-top: 12px; color: #cdd8e6; font-size: 13px; max-width: 20ch; }
.lp-nowrap { white-space: nowrap; }

/* contato + rodapé */
.lp-rodape { background: #fff; }
.lp-contato { text-align: center; padding: clamp(48px, 8vw, 88px) 0 clamp(28px, 5vw, 44px); }
.lp-contato p { color: var(--texto-2); margin: 12px 0 22px; }
.lp-rodape-fim { display: flex; align-items: center; justify-content: center; gap: 14px;
  flex-wrap: wrap; text-align: center; border-top: 1px solid var(--borda);
  padding: 22px clamp(20px, 5vw, 56px); color: var(--texto-3); font-size: 12.5px; }
.lp-rodape-fim img { height: 20px; opacity: .8; }
.lp-rodape-fim p { margin: 0; max-width: 70ch; }
.lp-fomento { text-align: center; padding: 0 clamp(20px, 5vw, 56px) 14px; }
.lp-fomento p { margin: 0 auto; max-width: 64ch; color: var(--texto-2);
  font-size: 13px; line-height: 1.5; }
.lp-fomento a { color: var(--primaria); font-weight: 600; }

/* login: voltar à home */
.login-voltar { display: block; margin: 14px auto 0; background: none; border: none;
  cursor: pointer; font-size: 13px; padding: 4px; color: var(--primaria); font-weight: 600; }

/* responsivo */
@media (max-width: 860px) {
  .lp-ia-grid { grid-template-columns: 1fr; }
  .lp-ia-fig { order: -1; }
  .lp-baixar-grid { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .lp-baixar-texto .lp-cta { justify-content: center; }
  .lp-baixar-nota { margin-left: auto; margin-right: auto; }
}
@media (max-width: 720px) { .lp-cards { grid-template-columns: 1fr; gap: 26px; } }
