/* ═══════════════════════════════════════════════════════════
   Sorriso Aberto — Sistema de Gestão
   Identidade: verde musgo + laranja + creme (mesma da marca)
   Cores de dado (validadas p/ acessibilidade):
   receita #1F8A5B · despesa #D96C1E · superfície #FCFCFB
   ═══════════════════════════════════════════════════════════ */

:root {
  --verde-900: #22382E;
  --verde-800: #2E4A3B;
  --verde-700: #3B5D4A;
  --verde-100: #E4EEE8;
  --laranja: #D96C1E;
  --laranja-escuro: #B8560F;
  --laranja-claro: #FBEADB;
  --creme: #F7F4EE;
  --superficie: #FCFCFB;
  --tinta: #26312B;
  --tinta-2: #5B6660;
  --tinta-3: #8C948F;
  --borda: #E3E0D8;
  --receita: #1F8A5B;
  --despesa: #D96C1E;
  --erro: #B3261E;
  --sombra: 0 1px 3px rgba(34,56,46,.08), 0 4px 16px rgba(34,56,46,.06);
  --raio: 12px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body { height: 100%; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  background: var(--creme);
  color: var(--tinta);
  font-size: 15px;
  line-height: 1.5;
}

.oculto { display: none !important; }
.sem-scroll { overflow: hidden; }

/* ══════════ LOGIN ══════════ */

.tela-login {
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(160deg, var(--verde-900), var(--verde-700));
  padding: 20px;
}
.login-card {
  background: var(--superficie);
  border-radius: 20px;
  padding: 40px 36px;
  width: 100%; max-width: 400px;
  box-shadow: 0 20px 60px rgba(0,0,0,.3);
  text-align: center;
}
.login-logo { font-size: 52px; margin-bottom: 6px; }
.login-card h1 { font-size: 26px; color: var(--verde-800); letter-spacing: -.5px; }
.login-sub { color: var(--tinta-2); margin-bottom: 26px; }
.login-card h2 { font-size: 18px; margin-bottom: 6px; color: var(--verde-800); }
.login-card form { text-align: left; }
.login-card label { display: block; margin-bottom: 14px; font-weight: 600; font-size: 13px; color: var(--tinta-2); }
.login-card input, .login-card select {
  display: block; width: 100%; margin-top: 5px;
  padding: 11px 13px; font-size: 16px;
  border: 1.5px solid var(--borda); border-radius: 10px;
  background: #fff; color: var(--tinta);
}
.login-card input:focus, .login-card select:focus { outline: 2px solid var(--laranja); border-color: transparent; }

/* ══════════ LAYOUT ══════════ */

.app { display: flex; min-height: 100vh; }

.sidebar {
  width: 248px; flex-shrink: 0;
  background: var(--verde-900);
  color: #fff;
  display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh;
}
.sidebar-topo {
  display: flex; align-items: center; gap: 10px;
  padding: 20px 18px 16px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.sidebar-logo { font-size: 30px; }
.sidebar-nome { font-weight: 700; font-size: 16px; letter-spacing: -.3px; }
.sidebar-sub { font-size: 12px; opacity: .65; }

.menu { flex: 1; padding: 12px 10px; overflow-y: auto; }
.menu-item {
  display: flex; align-items: center; gap: 8px;
  width: 100%; padding: 10px 12px; margin-bottom: 2px;
  background: none; border: none; border-radius: 9px;
  color: rgba(255,255,255,.82); font-size: 14px; font-weight: 500;
  cursor: pointer; text-align: left;
  transition: background .15s;
}
.menu-item:hover { background: rgba(255,255,255,.09); }
.menu-item.ativo { background: var(--laranja); color: #fff; font-weight: 700; }
.menu-item.futuro { opacity: .55; }
.menu-divisor {
  font-size: 10.5px; text-transform: uppercase; letter-spacing: 1px;
  color: rgba(255,255,255,.4);
  padding: 14px 12px 4px;
}
.badge {
  background: var(--laranja); color: #fff;
  font-size: 11px; font-weight: 700;
  border-radius: 99px; padding: 1px 7px; margin-left: auto;
}
.menu-item.ativo .badge { background: #fff; color: var(--laranja-escuro); }

.sidebar-rodape {
  padding: 14px 18px;
  border-top: 1px solid rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.usuario-chip { display: flex; flex-direction: column; min-width: 0; }
#chip-nome { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chip-papel { font-size: 11px; opacity: .6; }
.btn-link { background: none; border: none; color: rgba(255,255,255,.7); cursor: pointer; font-size: 13px; text-decoration: underline; }
.btn-link:hover { color: #fff; }

/* variante para uso sobre fundo CLARO (creme/superfície/modal) — .btn-link puro
   fica quase invisível fora da sidebar verde-escura */
.btn-link-escuro {
  background: none; border: none; color: var(--verde-800);
  cursor: pointer; font-size: 13px; font-weight: 600;
  text-decoration: none; font-family: inherit;
}
.btn-link-escuro:hover { text-decoration: underline; }
.btn-link-escuro:focus-visible { outline: 2px solid var(--laranja); outline-offset: 2px; border-radius: 3px; }

.conteudo { flex: 1; padding: 28px 32px 60px; max-width: 1240px; min-width: 0; }

/* ══════════ CABEÇALHOS / CARTÕES ══════════ */

.view-cabecalho { margin-bottom: 20px; }
.view-cabecalho h1 { font-size: 24px; color: var(--verde-800); letter-spacing: -.4px; }
.view-cabecalho .sub { color: var(--tinta-2); font-size: 14px; }
.linha-entre { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; flex-wrap: wrap; }

/* saudação da "casa" do operador (tela Pendências) */
.saudacao-bloco { margin: 18px 0 26px; }
.saudacao-bloco .saudacao-titulo {
  font-size: 32px;
  font-weight: 650;
  color: var(--verde-900);
  letter-spacing: -.6px;
}
.saudacao-bloco .sub { font-size: 15px; margin-top: 4px; }
.saudacao-bloco .sub strong { color: var(--laranja-escuro); }

.cartao {
  background: var(--superficie);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  box-shadow: var(--sombra);
  padding: 20px 22px;
  margin-bottom: 18px;
}
.cartao h2 { font-size: 15px; color: var(--verde-800); margin-bottom: 12px; }
.cartao-cabecalho { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.cartao-cabecalho h2 { margin-bottom: 0; }
.cartao.sem-padding { padding: 0; overflow: hidden; }
.cartao.sem-padding .tabela { margin: 0; }
.rolagem-x { overflow-x: auto; }
.grade-2-cartoes { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
.grade-2-cartoes .cartao { margin-bottom: 0; }

.vazio { color: var(--tinta-3); font-style: italic; padding: 8px 0; }

/* ══════════ TILES ══════════ */

.tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.tile {
  background: var(--superficie);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  box-shadow: var(--sombra);
  padding: 16px 18px;
}
.tile-rotulo { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; color: var(--tinta-3); margin-bottom: 4px; }
.tile-valor { font-size: 24px; font-weight: 800; letter-spacing: -.5px; color: var(--tinta); font-variant-numeric: tabular-nums; }

.cor-receita { color: var(--receita); }
.cor-despesa { color: var(--despesa); }

/* ══════════ GRÁFICO DE DIAS ══════════ */

.legenda { display: flex; gap: 16px; font-size: 12.5px; color: var(--tinta-2); }
.legenda .ponto { display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin-right: 5px; }

.grafico-dias {
  display: flex; align-items: flex-end; gap: 3px;
  height: 180px; padding-top: 8px;
  overflow-x: auto;
}
.gd-col { flex: 1; min-width: 18px; display: flex; flex-direction: column; height: 100%; cursor: default; border-radius: 6px; }
.gd-col:hover, .gd-col:focus { background: var(--verde-100); outline: none; }
.gd-barras { flex: 1; display: flex; align-items: flex-end; justify-content: center; gap: 2px; }
.gd-barra { width: 7px; border-radius: 4px 4px 0 0; min-height: 0; }
.gd-r { background: var(--receita); }
.gd-d { background: var(--despesa); }
.gd-dia { text-align: center; font-size: 10px; color: var(--tinta-3); padding-top: 4px; }

/* ══════════ RANKING ══════════ */

.ranking { display: flex; flex-direction: column; gap: 10px; }
.rank-topo { display: flex; justify-content: space-between; font-size: 13.5px; margin-bottom: 3px; }
.rank-topo strong { font-variant-numeric: tabular-nums; }
.rank-trilha { height: 8px; background: var(--verde-100); border-radius: 99px; overflow: hidden; }
.rank-barra { height: 100%; border-radius: 99px; }
.rank-barra.cor-receita { background: var(--receita); }
.rank-barra.cor-despesa { background: var(--despesa); }

/* ══════════ TABELAS ══════════ */

.tabela { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tabela th {
  text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--tinta-3); font-weight: 700;
  padding: 10px 12px; border-bottom: 1px solid var(--borda);
}
.tabela td { padding: 9px 12px; border-bottom: 1px solid var(--creme); vertical-align: top; }
.tabela tr:last-child td { border-bottom: none; }
.td-num { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.td-quem { color: var(--tinta-3); font-size: 12px; white-space: nowrap; }
.td-detalhe { color: var(--tinta-2); }
.td-acoes { white-space: nowrap; }
.tabela-mini td { padding: 5px 10px; font-size: 12.5px; }
tr.estornado td { opacity: .5; text-decoration: line-through; }
tr.estornado td.td-detalhe, tr.estornado td:last-child { text-decoration: none; }

/* visão planilha */
.grade-planilha th, .grade-planilha td { padding: 4px 6px; font-size: 11.5px; white-space: nowrap; }
.gd-cat { position: sticky; left: 0; background: var(--superficie); text-align: left; max-width: 200px; overflow: hidden; text-overflow: ellipsis; }
.gd-celula { text-align: right; font-variant-numeric: tabular-nums; }
.gd-total { font-weight: 800; }
.gd-rodape th, .gd-rodape td { border-top: 2px solid var(--borda); }

/* ══════════ FORMULÁRIOS ══════════ */

label { display: block; font-weight: 600; font-size: 13px; color: var(--tinta-2); margin-bottom: 12px; }
input, select, textarea {
  display: block; width: 100%; margin-top: 5px;
  padding: 10px 12px; font-size: 15px;
  border: 1.5px solid var(--borda); border-radius: 10px;
  background: #fff; color: var(--tinta);
  font-family: inherit;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--laranja); border-color: transparent; }
textarea { resize: vertical; }
input[type="month"], input[type="date"] { width: auto; display: inline-block; }
.input-mes { margin-top: 0; }
.opcional { font-weight: 400; color: var(--tinta-3); font-size: 12px; }

.form-lanc { max-width: 720px; }
.grade-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.input-valor { font-size: 20px; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.check-linha { display: flex; align-items: center; gap: 8px; font-weight: 500; cursor: pointer; }
.check-linha input { width: 18px; height: 18px; margin: 0; }
.form-acoes { margin-top: 18px; }
.form-inline { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin-top: 12px; }
.form-inline input, .form-inline select { width: auto; margin-top: 0; }
.lista-simples { list-style: none; }
.lista-simples li { padding: 6px 0; border-bottom: 1px solid var(--creme); }
.linha-config-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.linha-config-item .td-acoes { white-space: nowrap; }

.seletor-tipo { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 18px; }
.tipo-btn {
  padding: 13px; font-size: 15px; font-weight: 700;
  border: 2px solid var(--borda); border-radius: 12px;
  background: #fff; color: var(--tinta-2); cursor: pointer;
  transition: all .15s;
}
.tipo-btn.tipo-receita.ativo { border-color: var(--receita); background: #EAF5EF; color: var(--receita); }
.tipo-btn.tipo-despesa.ativo { border-color: var(--despesa); background: var(--laranja-claro); color: var(--laranja-escuro); }

/* ══════════ BOTÕES ══════════ */

.btn {
  display: inline-block;
  padding: 10px 20px; font-size: 14.5px; font-weight: 700;
  border: none; border-radius: 10px; cursor: pointer;
  font-family: inherit;
  transition: filter .15s, transform .05s;
}
.btn:active { transform: scale(.98); }
.btn-primario { background: var(--laranja); color: #fff; }
.btn-primario:hover { filter: brightness(1.07); }
.btn-fantasma { background: #fff; color: var(--verde-800); border: 1.5px solid var(--borda); }
.btn-fantasma:hover { background: var(--verde-100); }
.btn-perigo { background: var(--erro); color: #fff; }
.btn-largo { width: 100%; margin-top: 6px; }
.btn-grande { padding: 13px 26px; font-size: 15.5px; }
.btn-mini {
  background: #fff; border: 1px solid var(--borda); border-radius: 7px;
  padding: 4px 9px; font-size: 12px; cursor: pointer; font-family: inherit;
}
.btn-mini:hover { background: var(--verde-100); }
.btn-arquivo { position: relative; overflow: hidden; display: inline-flex; align-items: center; }
.btn-arquivo input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }

/* ══════════ FILTROS / ABAS ══════════ */

.filtros { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding: 14px 16px; }
.filtros input, .filtros select { width: auto; margin-top: 0; }
.filtros input[type="search"] { flex: 1; min-width: 180px; }
.abas-visao { display: flex; border: 1.5px solid var(--borda); border-radius: 10px; overflow: hidden; margin-left: auto; }
.aba { padding: 8px 14px; background: #fff; border: none; font-size: 13px; font-weight: 600; color: var(--tinta-2); cursor: pointer; font-family: inherit; }
.aba.ativa { background: var(--verde-800); color: #fff; }

/* ══════════ MODAL / TOAST / AVISOS ══════════ */

.modal-fundo {
  position: fixed; inset: 0; z-index: 50;
  background: rgba(34,56,46,.55);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
.modal-caixa {
  background: var(--superficie); border-radius: 16px;
  padding: 26px 28px; width: 100%; max-width: 480px;
  max-height: 88vh; overflow-y: auto;
  box-shadow: 0 24px 80px rgba(0,0,0,.35);
}
/* acima do quiosque de anamnese (z-index 500) — a confirmação "descartar?"
   precisa aparecer por cima da tela cheia, senão abre escondida atrás dela */
.modal-fundo.camada-confirma { z-index: 560; }
.modal-caixa h2 { font-size: 18px; color: var(--verde-800); margin-bottom: 12px; }
.modal-corpo { margin-bottom: 6px; }
.modal-acoes { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }

.confirma-valor { font-size: 34px; font-weight: 800; letter-spacing: -1px; text-align: center; margin: 8px 0 12px; font-variant-numeric: tabular-nums; }
.confirma-valor.receita { color: var(--receita); }
.confirma-valor.despesa { color: var(--despesa); }
.confirma-frase { text-align: center; margin-bottom: 10px; }
.confirma-extra { text-align: center; color: var(--tinta-2); font-size: 13.5px; margin-bottom: 6px; }
.confirma-extra.atencao { color: var(--laranja-escuro); font-weight: 600; }

.aviso-caixa {
  background: var(--laranja-claro); border: 1.5px solid var(--laranja);
  border-radius: 10px; padding: 11px 14px;
  font-size: 13.5px; font-weight: 600; color: #9C4A0C;
  margin-top: 10px;
}
.aviso-fechado { background: var(--verde-100); border-color: var(--verde-700); }
.fechamento-acao { text-align: center; }
.fechamento-acao p { margin-bottom: 12px; }

.toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
  z-index: 570;
  background: var(--verde-900); color: #fff;
  padding: 12px 22px; border-radius: 12px;
  font-weight: 600; font-size: 14px;
  box-shadow: 0 8px 30px rgba(0,0,0,.25);
  animation: subir .25s ease;
}
.toast.erro { background: var(--erro); }
@keyframes subir { from { opacity: 0; transform: translateX(-50%) translateY(12px); } }

.erro { color: var(--erro); font-weight: 600; font-size: 13.5px; margin-top: 10px; }
.hint { color: var(--tinta-2); font-size: 13px; margin-bottom: 12px; }

/* ══════════ ANÁLISES ══════════ */

.comparativo { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
.comp-col {
  border: 1.5px solid var(--borda); border-radius: 12px;
  padding: 14px 16px; background: #fff;
}
.comp-col.comp-atual { border-color: var(--verde-700); background: var(--verde-100); }
.comp-titulo { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--tinta-3); margin-bottom: 8px; }
.comp-atual .comp-titulo { color: var(--verde-800); }
.comp-linha { display: flex; justify-content: space-between; font-size: 13.5px; padding: 3px 0; }
.comp-linha strong { font-variant-numeric: tabular-nums; }
.comp-saldo { border-top: 1px solid var(--borda); margin-top: 6px; padding-top: 7px; font-weight: 700; }

.chip-delta {
  display: inline-block; font-size: 12px; font-weight: 800;
  border-radius: 99px; padding: 2px 9px; margin-left: 4px;
}
.chip-delta.bom { background: #EAF5EF; color: var(--receita); }
.chip-delta.ruim { background: #FBE9E7; color: var(--erro); }
.chip-delta.neutro { background: var(--creme); color: var(--tinta-3); }

.meta-trilha { height: 14px; background: var(--verde-100); border-radius: 99px; overflow: hidden; margin: 6px 0 8px; }
.meta-barra { height: 100%; background: var(--laranja); border-radius: 99px; transition: width .4s ease; }
.meta-barra.meta-ok { background: var(--receita); }
.meta-rodape { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--tinta-2); font-variant-numeric: tabular-nums; }
.meta-frase { margin-top: 12px; font-size: 14.5px; }

.mini-barras { display: flex; flex-direction: column; gap: 2px; min-width: 80px; }
.mini-barra { height: 6px; border-radius: 3px; min-width: 0; }
tr.linha-vazia td { opacity: .45; }

@media (max-width: 900px) {
  .comparativo { grid-template-columns: 1fr; }
}

/* ══════════ PLACEHOLDER (módulos futuros) ══════════ */

.placeholder { text-align: center; padding: 80px 24px; max-width: 520px; margin: 0 auto; }
.placeholder-emoji { font-size: 56px; margin-bottom: 12px; }
.placeholder h1 { font-size: 24px; color: var(--verde-800); margin-bottom: 10px; }
.placeholder p { color: var(--tinta-2); margin-bottom: 18px; }
.pill-fase {
  display: inline-block;
  background: var(--laranja-claro); color: var(--laranja-escuro);
  font-weight: 700; font-size: 13px;
  padding: 6px 16px; border-radius: 99px;
}

/* ══════════ RESPONSIVO ══════════ */

@media (max-width: 900px) {
  .app { flex-direction: column; }
  .sidebar { width: 100%; height: auto; position: static; }
  .menu { display: flex; flex-wrap: wrap; padding: 8px; }
  .menu-item { width: auto; }
  .menu-divisor { display: none; }
  .conteudo { padding: 18px 14px 50px; }
  .tiles { grid-template-columns: 1fr 1fr; }
  .grade-2-cartoes, .grade-2 { grid-template-columns: 1fr; }
  .abas-visao { margin-left: 0; }
}

/* ── insights: o que o sistema percebeu sozinho ── */
.insight {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 12px 14px; border-radius: 10px; margin-bottom: 10px;
  border: 1px solid transparent; line-height: 1.45;
}
.insight:last-of-type { margin-bottom: 4px; }
.insight p { margin: 0; font-size: 14px; }
.insight-icone { flex: 0 0 auto; font-size: 15px; line-height: 1.45; }
.insight.alerta  { background: #FDECEC; border-color: #F2C2C2; }
.insight.atencao { background: var(--laranja-claro); border-color: #EFCDA9; }

/* ── Pacientes ── */

.abas-pilula { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }
.pilula {
  padding: 9px 16px; border-radius: 999px;
  border: 1.5px solid var(--borda); background: #fff; color: #445347;
  font-weight: 700; font-size: 13.5px; cursor: pointer; font-family: inherit;
  display: inline-flex; align-items: center; gap: 6px;
  transition: background .15s, border-color .15s;
}
.pilula:hover { background: var(--verde-100); border-color: var(--verde-700); }
.pilula.ativa { background: var(--verde-800); border-color: var(--verde-800); color: #fff; }
.pilula:focus-visible { outline: 2px solid var(--laranja); outline-offset: 2px; }

/* segmentado secundário (ex.: níveis de pendência dentro de uma aba) —
   mesma família visual da .pilula, porém menor e claramente subordinado */
.subpilulas { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }
.subpilula {
  padding: 6px 13px; border-radius: 999px;
  border: 1.5px solid var(--borda); background: #fff; color: #445347;
  font-weight: 600; font-size: 12.5px; cursor: pointer; font-family: inherit;
  transition: background .15s, border-color .15s;
}
.subpilula:hover { background: var(--verde-100); border-color: var(--verde-700); }
.subpilula.ativa { background: var(--verde-800); border-color: var(--verde-800); color: #fff; }
.subpilula:focus-visible { outline: 2px solid var(--laranja); outline-offset: 2px; }

.badge-pend-pilula {
  background: var(--laranja-escuro); color: #fff;
  font-size: 11px; font-weight: 800; border-radius: 999px; padding: 1px 7px;
}
.pilula.ativa .badge-pend-pilula { background: #fff; color: var(--laranja-escuro); }

.badge-pend, .badge-revisar, .badge-dup, .badge-inativo {
  display: inline-block; font-size: 10.5px; font-weight: 700;
  border-radius: 999px; padding: 2px 8px; margin-left: 4px; vertical-align: middle;
  white-space: nowrap;
}
.badge-pend { background: var(--laranja-claro); color: #9C4A0C; }
.badge-revisar { background: #FDECEC; color: var(--erro); }
.badge-dup { background: #FFF3C4; color: #8A6D00; }
.badge-inativo { background: var(--borda); color: var(--tinta-2); }

.linha-clicavel { cursor: pointer; }
.linha-clicavel:hover td { background: var(--verde-100); }

.input-busca-grande { font-size: 17px; padding: 14px 16px; }

.hint-inline { color: var(--tinta-3); font-size: 12px; }

.paginacao { display: flex; align-items: center; justify-content: space-between; padding: 12px 4px; flex-wrap: wrap; gap: 10px; }
.pag-botoes { display: flex; gap: 8px; }

.ficha-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; margin: 14px 0; }
.ficha-grade dt { font-size: 11.5px; text-transform: uppercase; letter-spacing: .5px; color: var(--tinta-3); font-weight: 700; }
.ficha-grade dd { font-size: 14px; margin: 2px 0 0; }

@media (max-width: 600px) {
  .ficha-grade { grid-template-columns: 1fr; }
}

/* ══════════ DDI + AUTOCOMPLETE DE PACIENTE ══════════ */

.ddi-celular { display: flex; gap: 8px; }
.ddi-celular select { width: auto; flex: 0 0 auto; max-width: 46%; }
.ddi-celular input { flex: 1; min-width: 0; }

.autocomp { position: relative; }
.autocomp-lista {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 40;
  background: var(--superficie); border: 1.5px solid var(--borda);
  border-radius: 12px; margin-top: 4px; overflow: hidden;
  box-shadow: 0 14px 40px rgba(0,0,0,.18);
  max-height: 320px; overflow-y: auto;
}

.item-sel {
  display: block; width: 100%; text-align: left; cursor: pointer;
  background: none; border: none; border-bottom: 1px solid var(--borda);
  padding: 10px 14px; font-family: inherit;
}
.item-sel:last-child { border-bottom: none; }
.item-sel:hover, .item-sel:focus-visible { background: var(--verde-100); }
.item-sel strong { display: block; font-size: 14px; color: var(--tinta); }
.item-sel span { display: block; font-size: 12px; color: var(--tinta-2); margin-top: 1px; }
.item-sel-novo strong { color: var(--laranja-escuro); }

.flag-ok { color: #1F8A5B; font-weight: 700; }

/* ══════════ RESPONSÁVEL / FAMÍLIA ══════════ */

.resp-bloco {
  border: 1.5px dashed var(--borda); border-radius: 12px;
  padding: 12px 14px; margin-bottom: 14px; background: var(--creme);
}
.resp-cabecalho { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.resp-titulo { font-weight: 800; font-size: 14px; color: var(--verde-800); }
.resp-obrig { font-size: 11.5px; font-weight: 700; color: var(--laranja-escuro); background: var(--laranja-claro); padding: 1px 8px; border-radius: 999px; }
.resp-opc { font-size: 11.5px; color: var(--tinta-3); }
.resp-lista { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.resp-item { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--borda); border-radius: 9px; padding: 6px 8px 6px 10px; }
.resp-item-nome { flex: 1; font-weight: 600; font-size: 13.5px; color: var(--tinta); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resp-tag-novo { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: #1F8A5B; background: var(--verde-100); padding: 1px 6px; border-radius: 999px; }
.resp-grau { width: auto; margin: 0; padding: 5px 8px; border: 1.5px solid var(--borda); border-radius: 8px; font-family: inherit; font-size: 12.5px; background: #fff; }
.resp-remover { color: var(--laranja-escuro); }
.resp-alerta { color: var(--laranja-escuro); font-size: 12.5px; font-weight: 600; margin: 0 0 8px; }
.resp-busca { position: relative; }
.resp-busca-input { margin-top: 0; }

.fam-box { border: 1px solid var(--borda); border-radius: 12px; padding: 10px 14px; margin: 4px 0 12px; background: var(--verde-100); }
.fam-box > strong { display: block; font-size: 13px; color: var(--verde-800); margin-bottom: 6px; }
.fam-lista { list-style: none; display: flex; flex-direction: column; gap: 5px; }
.fam-lista li { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.fam-papel { font-size: 11px; text-transform: uppercase; letter-spacing: .4px; font-weight: 700; color: var(--tinta-3); min-width: 68px; }
.fam-nome { background: none; border: none; padding: 0; font-family: inherit; font-size: 13.5px; font-weight: 700; color: var(--laranja-escuro); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.fam-nome:hover { color: var(--laranja); }
.fam-selo { font-size: 11px; color: var(--tinta-3); }

/* ══════════ AGENDA ══════════ */

.ag-controles { display: flex; align-items: center; justify-content: space-between; gap: 12px 18px; flex-wrap: wrap; padding: 14px 18px; }
.ag-nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ag-nav input[type="date"] { width: auto; margin-top: 0; padding: 7px 10px; border: 1.5px solid var(--borda); border-radius: 8px; font-family: inherit; background: #fff; }
.ag-titulo-data { color: var(--verde-800); font-size: 15px; }
.ag-modos { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ag-pilulas { margin-bottom: 0; }
.ag-modos select { width: auto; max-width: 230px; margin-top: 0; padding: 7px 10px; border: 1.5px solid var(--borda); border-radius: 8px; font-family: inherit; background: #fff; }
.ag-check-cancelados { font-size: 12px; color: var(--tinta-2); white-space: nowrap; }
.badge-inline { display: inline-block; min-width: 18px; padding: 1px 6px; border-radius: 999px; background: var(--laranja); color: #fff; font-size: 11px; font-weight: 700; text-align: center; }

/* grade: régua de horas + uma coluna por profissional (ou por dia) */
.cartao.sem-padding.ag-scroll { overflow: auto; max-height: calc(100vh - 250px); min-height: 320px; }
.ag-dia { display: flex; min-width: 720px; padding-bottom: 22px; }
.ag-regua { flex: 0 0 52px; border-right: 1.5px solid var(--borda); }
.ag-regua-corpo, .ag-col-corpo { position: relative; height: calc(720 * var(--agmin)); margin-top: 10px; }
.ag-hora { position: absolute; right: 6px; transform: translateY(-7px); font-size: 11px; color: var(--tinta-3); font-variant-numeric: tabular-nums; }
.ag-coluna { flex: 1 1 0; min-width: 108px; border-right: 1px solid var(--borda); }
.ag-coluna:last-child { border-right: none; }
.ag-col-hoje { background: #FBF8F0; }
.ag-col-cab {
  position: sticky; top: 0; z-index: 5;
  padding: 9px 8px; font-weight: 700; font-size: 12.5px; color: var(--verde-800);
  background: var(--verde-100); border-bottom: 1.5px solid var(--borda);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ag-regua-cab { background: var(--verde-100); }
.ag-col-qtd { float: right; font-weight: 600; font-size: 11px; color: var(--tinta-2); background: #fff; border-radius: 999px; padding: 0 7px; }
.ag-col-corpo { cursor: copy; }
.ag-linha { position: absolute; left: 0; right: 0; border-top: 1px dashed #EAE6DC; pointer-events: none; }
.ag-linha.cheia { border-top: 1px solid var(--borda); }
.ag-agora { position: absolute; left: 0; right: 0; border-top: 2px solid var(--erro); z-index: 4; pointer-events: none; }
.ag-agora::before { content: ''; position: absolute; left: 0; top: -5px; width: 8px; height: 8px; border-radius: 50%; background: var(--erro); }

/* blocos de compromisso */
.ag-bloco {
  position: absolute; z-index: 3; overflow: hidden; cursor: pointer;
  border: none; border-left: 4px solid var(--verde-700); border-radius: 7px;
  background: var(--verde-100); color: var(--tinta);
  font-family: inherit; text-align: left; padding: 3px 6px;
  box-shadow: 0 1px 4px rgba(0,0,0,.10);
}
.ag-bloco:hover { filter: brightness(.96); z-index: 6; }
.ag-bloco-hora { display: block; font-size: 10.5px; font-weight: 700; color: var(--tinta-2); font-variant-numeric: tabular-nums; }
.ag-bloco-nome { display: block; font-size: 12px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-bloco-proc { display: block; font-size: 11px; color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-bloco-curto { padding: 1px 6px; }
.ag-bloco-curto .ag-bloco-hora { display: inline; margin-right: 5px; }
.ag-bloco-curto .ag-bloco-nome { display: inline; }

/* cores por situação */
.ag-bloco.st-agendado   { background: var(--verde-100); border-left-color: var(--verde-700); }
.ag-bloco.st-confirmado { background: #E3EDF7; border-left-color: #2B6CB0; }
.ag-bloco.st-chegou     { background: var(--laranja-claro); border-left-color: var(--laranja); }
.ag-bloco.st-atendido   { background: #EAF6EF; border-left-color: #1F8A5B; opacity: .82; }
.ag-bloco.st-faltou     { background: #FDECEC; border-left-color: var(--erro); }
.ag-bloco.st-cancelado  { background: #F1EFEA; border-left-color: var(--tinta-3); opacity: .6; }
.ag-bloco.st-cancelado .ag-bloco-nome { text-decoration: line-through; }

/* alerta de alergia no bloco: contorno vermelho + faixa da alergia */
.ag-bloco.ag-bloco-alerta { box-shadow: 0 0 0 2px var(--erro), 0 1px 4px rgba(0,0,0,.10); }
.ag-bloco-alergia { display: block; font-size: 10.5px; font-weight: 700; color: var(--erro); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-bloco-curto .ag-bloco-alergia { display: inline; }

/* alertas na ficha do agendamento (alergia / não-fotografar) */
.ag-det-alertas { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.ag-alerta { padding: 10px 12px; border-radius: 10px; font-size: 13.5px; line-height: 1.4; }
.ag-alerta-alergia { background: #FDECEC; border: 1.5px solid var(--erro); color: #8a1c1c; }
.ag-alerta-imagem { background: var(--laranja-claro); border: 1.5px solid var(--laranja); color: var(--laranja-escuro); }

.ag-legenda { margin-top: 10px; }
.ag-duracoes { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 12px; color: var(--tinta-2); margin: -6px 0 12px; }

/* ficha do agendamento */
.ag-det-nome { font-size: 17px; font-weight: 700; color: var(--verde-800); }
.ag-det-nome .atencao { font-size: 12.5px; color: var(--laranja-escuro); font-weight: 700; }
.ag-status-botoes { display: flex; gap: 8px; flex-wrap: wrap; margin: 14px 0 10px; }
.ag-det-acoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
.btn-perigo-suave { background: none; border: 1.5px solid var(--erro); color: var(--erro); border-radius: 10px; padding: 9px 14px; font-family: inherit; font-weight: 600; cursor: pointer; }
.btn-perigo-suave:hover { background: #FDECEC; }
#ag-cancelar-bloco { margin-top: 12px; padding: 12px; background: #FDECEC; border-radius: 10px; }
#ag-cancelar-bloco label { display: block; font-size: 13px; font-weight: 600; color: var(--tinta-2); margin-bottom: 8px; }
#ag-cancelar-bloco input[type="text"] { width: 100%; padding: 9px 10px; border: 1.5px solid var(--borda); border-radius: 8px; font-family: inherit; margin-top: 4px; }
/* o checkbox da culpa NÃO pode herdar o width:100% do campo de texto */
#ag-cancelar-bloco .check-linha { display: flex; align-items: flex-start; gap: 8px; margin: 10px 0 4px; }
#ag-cancelar-bloco .check-linha input { width: 18px; height: 18px; margin: 1px 0 0; flex: 0 0 auto; }
#ag-cancelar-bloco .check-linha .opcional { display: block; font-weight: 400; }
#ag-cancelar-bloco .erro { margin: 8px 0 0; }
#ag-cancelar-bloco .hint { margin: 8px 0; }
#ag-cancelar-bloco .btn { margin-top: 4px; }

/* bolinha da cor do profissional (cabeçalho de coluna e listas) */
.ag-cor-ponto { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; flex: 0 0 auto; }

/* fila de encaixe */
.ag-fila-lista { display: flex; flex-direction: column; gap: 8px; }
.ag-fila-item {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 12px; border: 1.5px solid var(--borda); border-radius: 10px; background: #fff;
}
.ag-fila-item.prioridade { border-color: var(--laranja); background: var(--laranja-claro); }
.ag-fila-item .hint { display: block; margin-top: 2px; }
.ag-fila-acoes { display: flex; gap: 6px; flex: 0 0 auto; }

@media (max-width: 760px) {
  .ag-coluna { min-width: 128px; }
  .ag-controles { flex-direction: column; align-items: stretch; }
}

/* trava de convênio */
.tag-limite { font-style: normal; font-size: 11px; font-weight: 700; color: var(--laranja-escuro); background: var(--laranja-claro); border-radius: 999px; padding: 1px 7px; margin-left: 6px; }
.flag-limite { color: var(--laranja-escuro); font-weight: 700; }

/* KPI de agenda na ficha do paciente */
.ficha-agenda-kpi { margin-top: 12px; padding: 12px 14px; background: var(--verde-100); border-radius: 10px; font-size: 13.5px; }
.ficha-agenda-eventos { margin: 8px 0 0 2px; padding: 0; list-style: none; font-size: 12.5px; color: var(--tinta-2); }
.ficha-agenda-eventos li { margin-top: 3px; }

/* culpa da remarcação (radio obrigatório ao mudar dia/horário) */
.ag-culpa { margin: 10px 0 4px; padding: 10px 12px; border: 1px solid var(--borda); border-radius: 10px; }
.ag-culpa-titulo { margin: 0 0 6px; font-size: 13px; font-weight: 700; }
.ag-culpa .check-linha { margin: 4px 0; }
.ag-culpa .opcional { display: block; margin-left: 26px; font-size: 12px; }
.ag-culpa-erro { border-color: var(--erro); box-shadow: 0 0 0 2px rgba(178, 58, 44, .15); }

/* ══════════ EQUIPE ══════════ */
.equipe-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.equipe-cartao { text-align: left; cursor: pointer; border: 1px solid var(--borda); font: inherit; }
.equipe-cartao:hover { border-color: var(--laranja); }
.equipe-cartao:focus-visible { outline: 2px solid var(--laranja); outline-offset: 2px; }
.equipe-nome { font-size: 15.5px; font-weight: 700; margin-bottom: 4px; }
.equipe-detalhe { font-size: 12.5px; color: var(--tinta-2); margin-top: 2px; overflow-wrap: anywhere; }
.equipe-inativo { opacity: .65; }
.equipe-inativos { margin-top: 16px; }
.equipe-inativos summary { cursor: pointer; font-size: 13px; color: var(--tinta-2); margin-bottom: 10px; }

/* correção de histórico (admin) */
.hist-anulado { opacity: .55; }
.hist-anulado strong { text-decoration: line-through; }

/* barra de seleção em massa do histórico */
.hist-barra { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; padding: 8px 10px; background: var(--verde-100); border-radius: 8px; }
.hist-barra-acoes { display: flex; gap: 6px; flex-wrap: wrap; }
.hist-btn-apagar { color: var(--erro); border-color: var(--erro); }
.hist-check { align-items: flex-start; width: 100%; }
.hist-check input { margin-top: 3px; }
.hist-check .hint { display: block; margin-top: 2px; }
.td-sel { width: 34px; }
.td-sel .hist-check { width: auto; margin: 0; }

/* ══════════ VIEW "MINHA AGENDA" (agenda própria, só leitura) ══════════ */

.prof-grade {
  display: grid; gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); align-content: start;
}
.prof-dia { background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); padding: 14px; box-shadow: var(--sombra); }
.prof-dia h2 { font-size: 14px; color: var(--verde-800); margin-bottom: 10px; text-transform: uppercase; letter-spacing: .4px; }
.prof-dia-hoje { border-color: var(--laranja); outline: 1px solid var(--laranja); }
.prof-dia-hoje h2 { color: var(--laranja-escuro); }

.prof-item { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-left: 3px solid var(--verde-700); background: var(--verde-100); border-radius: 6px; margin-bottom: 8px; }
.prof-item-cancelado { opacity: .55; border-left-color: var(--tinta-3); background: #EFEDE7; }
.prof-item-cancelado .prof-quem strong { text-decoration: line-through; }
.prof-hora { font-weight: 700; font-size: 13px; color: var(--verde-900); }
.prof-quem strong { font-size: 14px; }
.prof-proc { display: block; font-size: 12.5px; color: var(--tinta-2); }
.prof-marcado { display: block; font-size: 12px; color: var(--tinta-2); margin-top: 1px; }
.prof-status { font-size: 12px; color: var(--tinta-2); }
.prof-vazio { font-size: 13px; color: var(--tinta-3); }

/* view "Minha agenda" (PIN) + vínculo na tabela de usuários */
.hint-vinculo { display: block; font-size: 12px; color: var(--tinta-3); }
.prof-nav-view { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.prof-faixa-view { font-size: 13px; color: var(--tinta-2); margin-left: 4px; }
.prof-grade-view { padding: 0; }
.prof-check-cancelados { margin-left: 10px; font-size: 13.5px; color: var(--tinta-2); }

/* ══════════ PRONTUÁRIO da consulta (ProntUI) ══════════ */
.pront-linhas { margin: 10px 0; }
.pront-linhas p { margin: 6px 0; }

/* ══════════ ANAMNESE ══════════ */

/* caixa de status na ficha do paciente */
.anam-box { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  margin: 12px 0 4px; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--borda); background: var(--superficie); }
.anam-box.anam-ok { border-left: 4px solid var(--receita); }
.anam-box.anam-refazer { border-left: 4px solid var(--laranja); background: var(--laranja-claro); }
.anam-box.anam-vazia { border-left: 4px solid var(--tinta-3); border-style: dashed; }
.anam-botoes { display: flex; gap: 8px; flex-wrap: wrap; }
.anam-botoes .btn { padding: 7px 12px; font-size: 13px; }
.anam-selo-ok { display: inline-block; font-size: 11px; font-weight: 700; color: var(--receita); }
.anam-selo-alerta { display: inline-block; font-size: 11px; font-weight: 700; color: var(--laranja-escuro);
  background: #fff; border: 1px solid var(--laranja); border-radius: 20px; padding: 1px 8px; }
.anam-selo-falta { display: inline-block; font-size: 11px; font-weight: 700; color: var(--tinta-2); }
.btn-mini-perigo { color: var(--erro); border-color: var(--erro); }

/* MODO QUIOSQUE (tela cheia — o paciente no tablet) */
.tela-anamnese { position: fixed; inset: 0; z-index: 500; overflow-y: auto;
  background: linear-gradient(160deg, var(--verde-900), var(--verde-700)); padding: 0; }
.an-quiosque { max-width: 720px; margin: 0 auto; min-height: 100%; background: var(--superficie); box-shadow: 0 0 60px rgba(0,0,0,.3); }
.an-topo { display: flex; align-items: center; gap: 14px; padding: 22px 26px; background: var(--verde-800); color: #fff; }
.an-topo-logo { font-size: 34px; }
.an-topo h1 { font-size: 22px; letter-spacing: -.3px; }
.an-topo-sub { font-size: 13.5px; opacity: .85; }
.an-conteudo { padding: 22px 26px 40px; }
.an-instrucao { color: var(--tinta-2); font-size: 14px; margin-bottom: 8px; }
.an-secao { margin-top: 26px; }
.an-secao > h2 { font-size: 14px; text-transform: uppercase; letter-spacing: .04em; color: var(--verde-800);
  border-bottom: 1.5px solid var(--borda); padding-bottom: 6px; margin-bottom: 14px; }
.an-grade-id { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; }
.an-grade-id label, .an-grade-2 { display: block; font-size: 12.5px; font-weight: 600; color: var(--tinta-2); }
.an-grade-id .an-col-2 { grid-column: 1 / -1; }
.an-grade-id input, .an-grade-id select, .an-detalhe, .an-resp-manual input,
#an-anular-motivo, .an-conteudo input[type="text"], .an-conteudo input[type="date"], .an-conteudo input[type="email"] {
  display: block; width: 100%; margin-top: 5px; padding: 10px 12px; font-size: 16px;
  border: 1.5px solid var(--borda); border-radius: 9px; background: #fff; color: var(--tinta); }
.an-grade-id input[readonly] { background: var(--creme); color: var(--tinta-2); }
.an-pergunta { margin-bottom: 16px; }
.an-q-label { display: block; font-weight: 600; font-size: 14.5px; color: var(--tinta); margin-bottom: 6px; }
.an-obrig { color: var(--erro); font-weight: 700; }
/* destaque de campo obrigatório faltando (após tentar enviar) */
.an-pergunta.an-faltando { background: #fdecec; border-radius: 8px; padding: 8px 10px; margin-left: -10px; margin-right: -10px; box-shadow: inset 0 0 0 1.5px var(--erro); }
.an-termo.an-faltando { background: #fdecec; border-radius: 8px; box-shadow: inset 0 0 0 1.5px var(--erro); }
.an-canvas.an-faltando { border-color: var(--erro); box-shadow: 0 0 0 2px rgba(179,38,30,.25); }
/* campo de identidade com dado inválido a corrigir (nome/CPF/nascimento…) */
.an-grade-id label.an-faltando input, .an-grade-id label.an-faltando select {
  border-color: var(--erro); box-shadow: 0 0 0 2px rgba(179,38,30,.22); }
/* aviso "confira seus dados" no topo da identificação */
.an-verifique { margin-bottom: 14px; }
.an-radios { display: flex; gap: 18px; flex-wrap: wrap; }
.an-radios label { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; font-size: 15px; cursor: pointer; }
.an-radios input { width: 18px; height: 18px; accent-color: var(--verde-700); }
.an-detalhe { margin-top: 8px; opacity: .6; }
.an-detalhe.an-detalhe-ativo { opacity: 1; border-color: var(--verde-700); }
.an-doencas { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.an-check { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; cursor: pointer;
  padding: 8px 10px; border: 1px solid var(--borda); border-radius: 8px; background: #fff; }
.an-check input { width: 18px; height: 18px; accent-color: var(--verde-700); }
.an-termo { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0; font-size: 13.5px;
  line-height: 1.55; color: var(--tinta); cursor: pointer; }
.an-termo input { width: 20px; height: 20px; margin-top: 1px; flex-shrink: 0; accent-color: var(--verde-700); }
.an-termos .an-obrigatorio { background: var(--verde-100); border: 1px solid var(--borda); border-radius: 9px; padding: 12px; }
.an-termo em { color: var(--laranja-escuro); font-weight: 700; font-style: normal; }
.an-assinante { font-size: 16px; margin-top: 4px; }
.an-assinatura-caixa { margin-top: 8px; }
.an-canvas { width: 100%; height: 200px; border: 2px dashed var(--verde-700); border-radius: 12px;
  background: #fff; touch-action: none; cursor: crosshair; display: block; }
.an-assinatura-rodape { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; flex-wrap: wrap; gap: 6px; }
.an-resp-manual { margin-top: 8px; }
.an-grade-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* ---- endereço (CEP + busca estado/cidade/rua) ---- */
.an-end-campo { border: 1px solid var(--borda); border-radius: 12px; padding: 12px 14px 14px; background: var(--creme); }
.an-end-titulo { display: block; font-size: 12.5px; font-weight: 700; color: var(--tinta-2); margin-bottom: 8px; }
.an-end-topo { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; }
.an-end-cep-lbl { flex: 0 0 auto; margin: 0 !important; }
.an-end-cep-row { display: flex; gap: 8px; align-items: center; }
.an-end-cep-row input { width: 150px !important; margin-top: 5px !important; }
.an-end-cep-row .btn-mini { white-space: nowrap; padding: 10px 14px; }
.an-end-toggle { margin-bottom: 4px; }
.an-end-msg { margin: 8px 0 0; font-size: 12.5px; }
.an-end-busca { margin-top: 12px; padding: 12px; border: 1px dashed var(--verde-700); border-radius: 10px; background: #fff; }
.an-end-busca-msg { margin: 8px 0 0; }
.an-grade-end { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; margin-top: 12px; }
.an-grade-end .an-col-2 { grid-column: 1 / -1; }
.an-end-uf-cell input { text-transform: uppercase; }
/* autocomplete (cidade / rua) */
.an-ac-wrap { position: relative; }
.an-ac { position: absolute; top: 100%; left: 0; right: 0; z-index: 30; margin-top: 2px;
  background: #fff; border: 1px solid var(--borda); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.14);
  max-height: 260px; overflow-y: auto; display: none; }
.an-ac.visivel { display: block; }
.an-ac-item { display: block; width: 100%; text-align: left; border: 0; background: none; cursor: pointer;
  padding: 11px 13px; font-size: 15px; color: var(--tinta); border-bottom: 1px solid var(--creme); font-family: inherit; }
.an-ac-item:last-child { border-bottom: 0; }
.an-ac-item:hover, .an-ac-item:focus { background: var(--verde-100); }
.an-ac-rico { display: flex; flex-direction: column; gap: 2px; }
.an-ac-t { font-weight: 600; }
.an-ac-s { font-size: 12px; color: var(--tinta-2); }
/* como conheceu a clínica */
.an-conheceu-extra { margin-top: -4px; }
.an-acoes { display: flex; justify-content: space-between; gap: 12px; margin-top: 30px; }
.an-acoes .btn-grande { min-width: 220px; }
#an-erro { margin-top: 18px; }
.an-obrigado { text-align: center; padding: 70px 30px; }
.an-obrigado-emoji { font-size: 64px; }
.an-obrigado h1 { color: var(--verde-800); margin: 12px 0; }
.an-obrigado p { color: var(--tinta-2); font-size: 16px; margin-bottom: 26px; }

/* DOCUMENTO assinado (visão só leitura no modal) */
.doc-scroll { max-height: 70vh; overflow-y: auto; }
.doc-anamnese { color: var(--tinta); font-size: 14px; }
.doc-cabecalho { display: flex; justify-content: space-between; align-items: center; }
.doc-cabecalho h1 { font-size: 20px; color: var(--verde-800); }
.doc-sub { color: var(--tinta-2); font-size: 13px; }
.doc-logo { font-size: 30px; }
.doc-secao { margin-top: 20px; }
.doc-secao > h2 { font-size: 12.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--verde-700);
  border-bottom: 1px solid var(--borda); padding-bottom: 4px; margin-bottom: 10px; }
.doc-grade-id { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 20px; }
.doc-campo dt { font-size: 11px; color: var(--tinta-3); }
.doc-campo dd { font-weight: 600; }
.doc-saude .doc-q { display: flex; justify-content: space-between; gap: 14px; padding: 5px 0; border-bottom: 1px dotted var(--borda); }
.doc-q-r { font-weight: 600; white-space: nowrap; }
.doc-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.doc-tag { background: var(--verde-100); border-radius: 20px; padding: 3px 12px; font-size: 13px; }
.doc-termo { font-size: 12.5px; line-height: 1.5; margin: 8px 0; color: var(--tinta-2); }
.doc-assinatura-img { max-width: 320px; width: 100%; border: 1px solid var(--borda); border-radius: 8px; background: #fff; }
.doc-assinante { font-weight: 700; margin-top: 6px; }
.doc-auditoria { margin-top: 22px; padding-top: 12px; border-top: 2px solid var(--verde-800); font-size: 12px; }
.doc-audit-linha { margin: 3px 0; }
.doc-hash { word-break: break-all; font-family: monospace; font-size: 10.5px; color: var(--tinta-3); }
.doc-anulada { background: #fbeaea; border: 1px solid #e0b4b4; color: #8a1c1c; padding: 10px 12px; border-radius: 8px; margin: 12px 0; }

@media (max-width: 560px) {
  .an-grade-id, .an-grade-2, .an-grade-end, .doc-grade-id { grid-template-columns: 1fr; }
  .an-acoes { flex-direction: column-reverse; }
  .an-acoes .btn { width: 100%; }
}
