/* Ervo — tokens no modelo do lucian-uxui-prompt (MIT, Seokwoooo), com a paleta verde do sistema */
:root {
  color-scheme: light;
  --bg: #f4f7f4;
  --cartao: #ffffff;
  --cartao-2: #f7faf8;        /* blocos internos / cabeçalhos de tabela */
  --hover: #edf4ef;
  --texto: #1f2a24;
  --suave: #5e6e65;
  --borda: #dfe7e1;
  --borda-suave: #ebf0ec;
  --primaria: #237046;
  --primaria-escura: #1b5a38;  /* acento em texto */
  --primaria-suave: rgba(35, 112, 70, .1);
  --sobre-primaria: #ffffff;
  --perigo: #b3261e;
  --ok: #1e6b41;
  --st-ideal: #2f8f5b;
  --st-baixo: #c98500;
  --st-alto: #c0392b;
  --st-neutro: #8a9a90;
  --ideal-bg: #e3f2e8; --ideal-tx: #1e6b41;
  --baixo-bg: #fff1d1; --baixo-tx: var(--aviso-tx);
  --alto-bg: #fbe1dd;  --alto-tx: #9e2b1f;
  --aviso-bg: #fff7e3; --aviso-borda: #f3dfae; --aviso-tx: #6e4700;
  --perigo-bg: #fdecea; --perigo-borda: #f3c2bb;
  --calc-bg: #ececfb; --calc-tx: #4343b8;
  --destaque-bg: #f3e8fc; --destaque-tx: #6a24a8;
  --estrela: #e0a526;
  --foco: rgba(35, 112, 70, .35);
  --toast-bg: #1f2a24; --toast-tx: #ffffff;
  --vidro: rgba(255, 255, 255, .93);
  --vidro-bg: rgba(244, 247, 244, .9);
  --lateral: #17452e; --lateral-tx: #e6f1ea; --lateral-suave: #a9c7b4;
  --lateral-hover: rgba(255, 255, 255, .08); --lateral-ativo: rgba(255, 255, 255, .15);
  --sombra: 0 1px 2px rgba(16, 40, 26, .05), 0 1px 3px rgba(16, 40, 26, .04);
  --sombra-forte: 0 12px 36px rgba(16, 40, 26, .18);
  --ease: cubic-bezier(.2, .8, .2, 1);
  --raio: 10px;
  --largura-menu: 236px;
  font-family: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;
  color: var(--texto);
  background: var(--bg);
}
:root[data-tema="escuro"] {
  color-scheme: dark;
  --bg: #0c110e;
  --cartao: #141b17;
  --cartao-2: #1a231e;
  --hover: #22302a;
  --texto: #e8f0ea;
  --suave: #a3b3a9;
  --borda: #2a3830;
  --borda-suave: #222e27;
  --primaria: #6cc796;
  --primaria-escura: #8fdcb2;
  --primaria-suave: rgba(108, 199, 150, .14);
  --sobre-primaria: #0c110e;
  --perigo: #f28b7d;
  --ok: #8fdcb2;
  --st-ideal: #5fbf88;
  --st-baixo: #e0a526;
  --st-alto: #e8705f;
  --st-neutro: #7d8c83;
  --ideal-bg: rgba(95, 191, 136, .16); --ideal-tx: #9fe3bd;
  --baixo-bg: rgba(224, 165, 38, .16); --baixo-tx: #f5cd76;
  --alto-bg: rgba(232, 112, 95, .16);  --alto-tx: #f6a497;
  --aviso-bg: rgba(224, 165, 38, .1); --aviso-borda: rgba(224, 165, 38, .32); --aviso-tx: #f5cd76;
  --perigo-bg: rgba(232, 112, 95, .12); --perigo-borda: rgba(232, 112, 95, .35);
  --calc-bg: rgba(140, 140, 255, .16); --calc-tx: #b9b9ff;
  --destaque-bg: rgba(190, 130, 255, .16); --destaque-tx: #d7b4ff;
  --foco: rgba(108, 199, 150, .45);
  --toast-bg: #e8f0ea; --toast-tx: #0c110e;
  --vidro: rgba(20, 27, 23, .92);
  --vidro-bg: rgba(12, 17, 14, .86);
  --lateral: #0f1a14; --lateral-tx: #dde9e1; --lateral-suave: #8fa598;
  --sombra: 0 1px 2px rgba(0, 0, 0, .3);
  --sombra-forte: 0 14px 40px rgba(0, 0, 0, .55);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--bg); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--primaria); outline-offset: 2px; }
.ic { flex: none; display: block; }
.ic-texto { display: inline-block; vertical-align: -3px; margin-right: 6px; }
button .ic-texto:only-child, .icone-btn .ic-texto { margin: 0; vertical-align: middle; }
kbd { font: inherit; font-size: .72rem; font-weight: 600; color: var(--suave); background: var(--cartao-2); border: 1px solid var(--borda); border-bottom-width: 2px; border-radius: 6px; padding: 1px 6px; }
.pular { position: absolute; left: 12px; top: -60px; z-index: 50; background: var(--primaria); color: var(--sobre-primaria); padding: 10px 14px; border-radius: 8px; }
.pular:focus { top: 12px; }

/* ---------- Layout ---------- */
.layout { display: grid; grid-template-columns: var(--largura-menu) minmax(0, 1fr); min-height: 100vh; transition: grid-template-columns .24s var(--ease); }
.lateral {
  position: sticky; top: 0; height: 100vh; z-index: 12; display: flex; flex-direction: column; gap: 22px;
  background: var(--lateral); color: var(--lateral-tx); padding: 18px 12px;
}
.lateral :focus-visible { outline-color: #bfe8cf; }

/* menu recolhido (o trilho é desenhado por menu-lateral.css); dica dos botões da barra ao passar o mouse */
.menu-recolhido { --largura-menu: 72px; }
[data-dica] { position: relative; }
.topo-btn[data-dica]::after {
  content: attr(data-dica); position: absolute; left: calc(100% + 12px); top: 50%; transform: translate(-4px, -50%);
  background: var(--toast-bg); color: var(--toast-tx); font-size: .82rem; font-weight: 600; padding: 5px 10px; border-radius: 7px;
  white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity .15s var(--ease), transform .15s var(--ease); z-index: 30;
}
.topo-btn[data-dica]::after { left: 50%; top: calc(100% + 8px); transform: translate(-50%, -4px); }
.topo-btn[data-dica]:hover::after, .topo-btn[data-dica]:focus-visible::after { opacity: 1; transform: translate(0, -50%); }
.topo-btn[data-dica]:hover::after, .topo-btn[data-dica]:focus-visible::after { transform: translate(-50%, 0); }

.conteudo { min-width: 0; }
.barra-topo {
  position: sticky; top: 0; z-index: 8; display: flex; align-items: center; gap: 12px;
  padding: 12px 28px; background: var(--vidro-bg); backdrop-filter: blur(10px); border-bottom: 1px solid var(--borda-suave);
}
.data-topo { color: var(--suave); font-size: .9rem; white-space: nowrap; }
.topo-btn {
  position: relative; width: 42px; height: 42px; flex: none; display: grid; place-items: center; border-radius: 12px; cursor: pointer;
  background: transparent; color: var(--suave); border: 1px solid transparent; transition: background .15s var(--ease), color .15s var(--ease);
}
.topo-btn:hover { background: var(--hover); color: var(--texto); }
.contador {
  position: absolute; top: 5px; right: 4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; display: grid; place-items: center;
  background: var(--st-alto); color: #fff; font-size: .7rem; font-weight: 700; border: 2px solid var(--cartao); animation: pulsar .3s var(--ease);
}
@keyframes pulsar { from { transform: scale(.4); } }
.so-celular { display: none; }

/* avisos (074 notification-bell) */
.avisos-wrap { position: relative; }
.popover-avisos {
  position: absolute; right: 0; top: calc(100% + 8px); width: min(360px, calc(100vw - 24px)); z-index: 20;
  background: var(--cartao); border: 1px solid var(--borda); border-radius: 14px; box-shadow: var(--sombra-forte); padding: 8px;
  transform-origin: top right; animation: abrir-pop .18s var(--ease);
}
@keyframes abrir-pop { from { opacity: 0; transform: translateY(-4px) scale(.98); } }
.avisos-titulo { margin: 4px 8px 6px; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.avisos-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.avisos-lista a { display: flex; gap: 12px; align-items: flex-start; padding: 10px; border-radius: 10px; text-decoration: none; }
.avisos-lista a:hover { background: var(--hover); }
.avisos-lista a > span:last-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.avisos-lista small { color: var(--suave); font-size: .82rem; }
.aviso-ic { width: 34px; height: 34px; flex: none; border-radius: 10px; display: grid; place-items: center; background: var(--cartao-2); color: var(--suave); }
.avisos-lista a.atencao .aviso-ic { background: var(--aviso-bg); color: var(--aviso-tx); }

/* paleta de comandos */
.paleta { position: fixed; inset: 0; z-index: 40; display: flex; justify-content: center; align-items: flex-start; padding: 12vh 16px 16px; }
.paleta-fundo { position: absolute; inset: 0; background: rgba(10, 20, 15, .42); animation: aparecer .18s var(--ease); }
.paleta-caixa {
  position: relative; width: min(620px, 100%); max-height: 70vh; display: flex; flex-direction: column; overflow: hidden;
  background: var(--cartao); border: 1px solid var(--borda); border-radius: 16px; box-shadow: var(--sombra-forte);
  animation: abrir-paleta .2s var(--ease);
}
@keyframes abrir-paleta { from { opacity: 0; transform: scale(.98) translateY(-6px); } }
@keyframes aparecer { from { opacity: 0; } }
.paleta-busca { display: flex; align-items: center; gap: 10px; padding: 4px 14px; border-bottom: 1px solid var(--borda-suave); color: var(--suave); }
.paleta-busca input { border: 0; background: transparent; font-size: 1.05rem; padding: 14px 0; color: var(--texto); }
.paleta-busca input:focus { outline: none; box-shadow: none !important; }
.paleta-lista { list-style: none; margin: 0; padding: 6px; overflow-y: auto; }
.paleta-lista li { display: flex; align-items: center; gap: 12px; padding: 9px 10px; border-radius: 10px; cursor: pointer; }
.paleta-lista li.sel { background: var(--primaria-suave); }
.paleta-ic { width: 32px; height: 32px; flex: none; border-radius: 9px; display: grid; place-items: center; background: var(--cartao-2); color: var(--suave); }
.paleta-lista li.sel .paleta-ic { color: var(--primaria-escura); background: var(--cartao); }
.paleta-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.paleta-texto b { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.paleta-texto small { color: var(--suave); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.paleta-grupo { font-size: .72rem; font-weight: 600; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
.paleta-vazio { color: var(--suave); justify-content: center; cursor: default !important; padding: 22px !important; }
.paleta-rodape { margin: 0; padding: 8px 14px; border-top: 1px solid var(--borda-suave); font-size: .78rem; color: var(--suave); display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }

/* celular: navegação inferior e menu em folha */
.nav-inferior { display: none; }
.fundo-menu { position: fixed; inset: 0; z-index: 11; background: rgba(10, 20, 15, .42); animation: aparecer .2s var(--ease); }

main { max-width: 1240px; margin: 0 auto; padding: 26px 28px 48px; outline: none; }
main.trocou > * { animation: surgir .26s var(--ease) both; }
main.trocou > *:nth-child(2) { animation-delay: .03s; }
main.trocou > *:nth-child(3) { animation-delay: .06s; }
main.trocou > *:nth-child(n+4) { animation-delay: .09s; }
@keyframes surgir { from { opacity: 0; transform: translateY(6px); } }

/* ---------- Base ---------- */
.cabecalho { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
h1 { margin: 4px 0; font-size: 1.7rem; }
h2 { font-size: .95rem; margin: 0 0 14px; color: var(--primaria-escura); text-transform: uppercase; letter-spacing: .05em; }
.sub { margin: 0; color: var(--suave); }
.voltar { color: var(--suave); text-decoration: none; font-size: .9rem; cursor: pointer; }
.voltar:hover { color: var(--primaria-escura); }

.cartao { background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); padding: 20px; box-shadow: 0 1px 3px rgba(16,40,26,.05); }

.btn {
  display: inline-block; padding: 9px 16px; border-radius: 10px; border: 1px solid var(--borda);
  background: var(--cartao-2); color: var(--texto); font: inherit; font-weight: 500; cursor: pointer; text-decoration: none;
}
.btn:hover { background: var(--hover); }
.btn.primario { background: var(--primaria); border-color: var(--primaria); color: var(--sobre-primaria); }
.btn.primario:hover { filter: brightness(1.12); }
.btn.perigo { color: var(--perigo); border-color: var(--perigo-borda); background: transparent; }
.btn.perigo:hover { background: var(--perigo-bg); }
.acoes { display: flex; gap: 8px; }
.acoes.fim { justify-content: flex-end; margin-top: 20px; }

.filtros { display: flex; gap: 10px; margin-bottom: 14px; }
.filtros input { flex: 1; }

input, select, textarea {
  font: inherit; padding: 9px 11px; border: 1px solid var(--borda); border-radius: 10px;
  background: var(--cartao-2); color: var(--texto); width: 100%;
}
input::placeholder, textarea::placeholder { color: var(--st-neutro); }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--foco); border-color: var(--primaria); }
.filtros select { width: auto; }
textarea { resize: vertical; }

.tabela-wrap { padding: 0; overflow-x: auto; }
.tabela { width: 100%; border-collapse: collapse; }
.tabela th { text-align: left; font-size: .76rem; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); padding: 12px 16px; border-bottom: 1px solid var(--borda); }
.tabela td { padding: 12px 16px; border-bottom: 1px solid var(--borda-suave); }
.tabela tbody tr { cursor: pointer; }
.tabela tbody tr:hover { background: var(--hover); }
.tabela tbody tr:last-child td { border-bottom: 0; }
.tabela .nome { font-weight: 600; }
.tabela .detalhe { color: var(--suave); font-size: .85rem; }
.vazio { text-align: center; color: var(--suave); padding: 32px; margin: 0; }
.selo { font-size: .75rem; padding: 2px 8px; border-radius: 99px; background: var(--cartao-2); color: var(--suave); }

.grade { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
dl { margin: 0; display: grid; grid-template-columns: 170px 1fr; gap: 10px 12px; }
dt { color: var(--suave); font-size: .9rem; }
dd { margin: 0; white-space: pre-wrap; }
.rodape-ficha { color: var(--suave); font-size: .85rem; margin-top: 14px; }

.formulario h2:not(:first-child) { margin-top: 26px; }
.campos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 16px; }
.campos label { display: flex; flex-direction: column; gap: 5px; font-size: .9rem; color: var(--suave); }
.campos .largo { grid-column: 1 / -1; }
.campos .check { flex-direction: row; align-items: center; gap: 8px; color: var(--texto); }
.campos .check input { width: auto; }
.erro { color: var(--perigo); background: var(--perigo-bg); border: 1px solid var(--perigo-borda); padding: 10px 12px; border-radius: 10px; margin: 18px 0 0; }

.toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); z-index: 30;
  background: var(--toast-bg); color: var(--toast-tx); border: 0; padding: 10px 18px; border-radius: 10px; box-shadow: var(--sombra-forte);
}

/* ---------- Início ---------- */
.boas-vindas { margin-bottom: 22px; }
.boas-vindas h1 { font-size: 1.9rem; }
.kpis-inicio { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
.kpi-inicio { box-shadow: 0 1px 3px rgba(16,40,26,.05); background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); padding: 18px; display: flex; flex-direction: column; gap: 6px; }
.kpi-icone { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; font-size: 1.2rem; margin-bottom: 6px; }
.kpi-valor { font-size: 2rem; line-height: 1.1; }
.grade-inicio { display: grid; grid-template-columns: 1fr 340px; gap: 20px; align-items: start; }
.coluna-principal, .coluna-lateral { display: grid; gap: 20px; }
.cartao-inicio { padding: 0; overflow: hidden; }
.cartao-titulo { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; border-bottom: 1px solid var(--borda-suave); }
.cartao-titulo h3 { margin: 0; font-size: 1.05rem; display: flex; gap: 10px; align-items: center; }
.ver-todos { color: var(--primaria-escura); text-decoration: none; font-size: .88rem; }
.ver-todos:hover { text-decoration: underline; }
.lista-inicio { display: flex; flex-direction: column; }
.item-inicio { display: grid; grid-template-columns: 40px 1fr auto auto; align-items: center; gap: 14px; padding: 12px 18px; text-decoration: none; border-bottom: 1px solid var(--borda-suave); }
.item-inicio:last-child { border-bottom: 0; }
.item-inicio:hover { background: var(--hover); }
.item-texto, .item-numeros { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.item-texto b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.item-texto small, .item-numeros small, .item-data { color: var(--suave); font-size: .82rem; }
.item-numeros { text-align: right; }
.avatar { width: 40px; height: 40px; border-radius: 99px; display: grid; place-items: center; font-weight: 700; font-size: .85rem; color: #fff; }
.vazio-mini { color: var(--suave); margin: 0; padding: 18px; font-size: .92rem; }
.legenda-alerta { padding: 14px 18px 0; }
.lista-alertas { display: flex; flex-direction: column; padding: 8px 8px 12px; }
.lista-alertas > .sub { padding: 4px 10px; }
.alerta { display: flex; align-items: center; gap: 12px; padding: 9px 10px; border-radius: 10px; text-decoration: none; }
.alerta:hover { background: var(--hover); }
.alerta > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.alerta small { color: var(--suave); font-size: .8rem; }
.ponto-alerta { width: 9px; height: 9px; border-radius: 99px; flex: none; }
.dia-aniversario { width: 36px; height: 36px; flex: none; border-radius: 10px; display: grid; place-items: center; background: var(--destaque-bg); color: var(--destaque-tx); font-weight: 700; }

/* ---------- Abas ---------- */
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--borda); margin-bottom: 18px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.abas a {
  padding: 10px 11px; font-size: .92rem; text-decoration: none; color: var(--suave); font-weight: 500; white-space: nowrap;
  border-bottom: 3px solid transparent; margin-bottom: -1px; border-radius: 8px 8px 0 0;
}
.abas a:hover { color: var(--texto); background: var(--hover); }
.abas a.ativa { color: var(--primaria-escura); border-bottom-color: var(--primaria); }

/* ---------- Exames: resumo ---------- */
.mini { font-size: .85rem; }
.vazio-exames { text-align: center; padding: 48px 20px; }
.vazio-exames h3 { margin: 8px 0; }
.vazio-exames p { color: var(--suave); max-width: 460px; margin: 0 auto 18px; }
.vazio-icone { font-size: 2.6rem; }

.resumo-exames { display: grid; gap: 14px; margin-bottom: 16px; }
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.kpi {
  background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio);
  padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; border-top: 4px solid var(--primaria);
}
.kpi.baixo { border-top-color: var(--st-baixo); }
.kpi.alto { border-top-color: var(--st-alto); }
.kpi-rotulo { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); }
.kpi-sub { font-size: .8rem; color: var(--suave); }
.kpi-grande { font-size: 1.6rem; }
.kpi.baixo .kpi-grande { color: var(--st-baixo); }
.kpi.alto .kpi-grande { color: var(--st-alto); }
.anel-wrap { display: flex; align-items: center; gap: 10px; }
.anel { width: 48px; height: 48px; color: var(--texto); }

.atencao h2 { margin-bottom: 4px; }
.atencao .sub { margin-bottom: 12px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-atencao {
  display: inline-flex; gap: 8px; align-items: center; font: inherit; font-size: .88rem; cursor: pointer;
  border: 1px solid; border-radius: 99px; padding: 5px 12px; background: transparent;
}
.chip-atencao.baixo { border-color: var(--aviso-borda); background: var(--aviso-bg); color: var(--baixo-tx); }
.chip-atencao.alto { border-color: var(--perigo-borda); background: var(--perigo-bg); color: var(--alto-tx); }
.chip-atencao:hover { filter: brightness(1.15); }

.barra-exames { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.chip-exame { display: inline-flex; align-items: stretch; border: 1px solid var(--borda); border-radius: 10px; background: var(--cartao); overflow: hidden; }
.chip-exame button { font: inherit; font-size: .85rem; border: 0; background: none; padding: 5px 10px; cursor: pointer; display: flex; flex-direction: column; align-items: flex-start; color: var(--suave); }
.chip-exame small { font-size: .72rem; }
.chip-exame.ativo { border-color: var(--primaria); background: var(--primaria-suave); }
.chip-exame.ativo button { color: var(--primaria-escura); font-weight: 600; }
.editar-exame { display: flex; align-items: center; padding: 0 9px; border-left: 1px solid var(--borda); text-decoration: none; color: var(--suave); }
.editar-exame:hover { background: var(--hover); color: var(--primaria-escura); }
.alternar { margin-left: auto; font-size: .88rem; color: var(--suave); display: flex; align-items: center; gap: 6px; cursor: pointer; }
.alternar input { width: auto; }

/* ---------- Exames: grupos ---------- */
.grupos-exames { display: grid; grid-template-columns: repeat(auto-fill, minmax(460px, 1fr)); gap: 16px; align-items: start; }
.grupo-exame { padding: 0; overflow: hidden; }
.grupo-exame header { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px 10px; }
.grupo-exame h3 { margin: 0; font-size: 1rem; display: flex; gap: 8px; align-items: center; }
.icone-grupo { font-size: 1.15rem; }
.contagem { display: flex; gap: 5px; }
.ponto { min-width: 24px; height: 24px; border-radius: 99px; font-size: .78rem; font-weight: 700; color: #fff; display: grid; place-items: center; padding: 0 7px; }
.ponto.ideal { background: var(--st-ideal); }
.ponto.baixo { background: var(--st-baixo); }
.ponto.alto { background: var(--st-alto); }
.nota-grupo { margin: 0 16px 10px; font-size: .82rem; color: var(--aviso-tx); background: var(--aviso-bg); border: 1px solid var(--aviso-borda); border-radius: 8px; padding: 8px 10px; white-space: pre-wrap; }

.tabela-exame { width: 100%; border-collapse: collapse; font-size: .9rem; }
.tabela-exame th { font-size: .72rem; text-transform: uppercase; color: var(--suave); text-align: left; padding: 7px 12px; background: var(--cartao-2); border-top: 1px solid var(--borda); border-bottom: 1px solid var(--borda); white-space: nowrap; }
.tabela-exame td { padding: 7px 12px; border-bottom: 1px solid var(--borda-suave); }
.tabela-exame tbody tr { cursor: pointer; }
.tabela-exame tbody tr:hover { background: var(--hover); }
.tabela-exame tbody tr:last-child td { border-bottom: 0; }
.tabela-exame .valor { text-align: center; }
.tabela-exame .ideal { color: var(--suave); font-size: .82rem; white-space: nowrap; }
.marcador { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.marcador .un { color: var(--suave); font-size: .72rem; }
.info { color: var(--primaria-escura); font-size: .8rem; }
.selo-calc { font-size: .7rem; font-style: italic; font-weight: 700; color: var(--calc-tx); background: var(--calc-bg); border-radius: 4px; padding: 0 5px; }

.pilula { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 99px; font-weight: 600; font-size: .86rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pilula.ideal { background: var(--ideal-bg); color: var(--ideal-tx); }
.pilula.baixo { background: var(--baixo-bg); color: var(--baixo-tx); }
.pilula.alto { background: var(--alto-bg); color: var(--alto-tx); }
.pilula.neutro { background: var(--cartao-2); color: var(--texto); }
.tendencia { font-size: .62rem; opacity: .75; }
.sem-valor { color: var(--borda); }

/* ---------- Gaveta de detalhe ---------- */
.gaveta { position: fixed; inset: 0; z-index: 20; }
.gaveta[hidden] { display: none; }
.gaveta-fundo { position: absolute; inset: 0; background: rgba(10,20,15,.42); }
.gaveta-painel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(560px, 100%); background: var(--cartao);
  border-left: 1px solid var(--borda); padding: 24px; overflow-y: auto; box-shadow: -12px 0 40px rgba(16,40,26,.15); animation: entrar .18s ease-out;
}
@keyframes entrar { from { transform: translateX(30px); opacity: 0; } }
.gaveta-fechar { position: absolute; top: 14px; right: 14px; border: 0; background: var(--cartao-2); color: var(--texto); border-radius: 99px; width: 34px; height: 34px; cursor: pointer; font-size: 1rem; }
.gaveta-fechar:hover { background: var(--hover); }
.titulo-detalhe { font-size: 1.4rem; text-transform: none; letter-spacing: 0; color: var(--texto); margin: 2px 0 14px; }
.detalhe-topo { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; background: var(--cartao-2); border-radius: var(--raio); padding: 12px 14px; }
.detalhe-topo div { display: flex; flex-direction: column; gap: 3px; }
.cor-ideal { color: var(--ok); } .cor-baixo { color: var(--st-baixo); } .cor-alto { color: var(--perigo); }
.formula { font-size: .88rem; color: var(--calc-tx); margin: 12px 0 0; }
.grafico-wrap h4, .nota-detalhe h4 { margin: 20px 0 8px; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); }
.grafico { width: 100%; height: auto; color: var(--texto); }
.legenda { font-size: .78rem; color: var(--suave); margin: 2px 0 0; display: flex; align-items: center; gap: 6px; }
.legenda-faixa { width: 14px; height: 10px; background: var(--ok); opacity: .3; display: inline-block; border-radius: 2px; }
.nota-detalhe p { white-space: pre-wrap; margin: 0; line-height: 1.55; background: var(--cartao-2); border-left: 3px solid var(--primaria); padding: 12px 14px; border-radius: 0 10px 10px 0; }
.tabela-historico { width: 100%; border-collapse: collapse; margin-top: 18px; font-size: .9rem; }
.tabela-historico th { text-align: left; font-size: .72rem; text-transform: uppercase; color: var(--suave); padding: 6px 8px; border-bottom: 1px solid var(--borda); }
.tabela-historico td { padding: 6px 8px; border-bottom: 1px solid var(--borda-suave); }

/* ---------- Formulário de exame ---------- */
.form-exame { display: grid; gap: 14px; padding-bottom: 80px; }
.dados-exame .campos { grid-template-columns: 200px 1fr; }
.legenda-status { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .85rem; color: var(--suave); align-items: center; }
.legenda-status > span { display: inline-flex; align-items: center; gap: 4px; }
.busca-marcador { position: sticky; top: 84px; z-index: 5; box-shadow: 0 4px 16px rgba(16,40,26,.08); background: var(--cartao); }
.grupo-form { padding: 0; }
.grupo-form summary { padding: 14px 16px; cursor: pointer; display: flex; align-items: center; gap: 8px; list-style: none; }
.grupo-form summary::before { content: '▸'; color: var(--suave); transition: transform .15s; }
.grupo-form[open] summary::before { transform: rotate(90deg); }
.grupo-form summary::-webkit-details-marker { display: none; }
.contagem-preenchidos { margin-left: auto; font-size: .78rem; color: var(--ideal-tx); background: var(--ideal-bg); border-radius: 99px; padding: 2px 10px; }
.contagem-preenchidos:empty { display: none; }
.linhas-campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 0 24px; padding: 0 16px 14px; }
.linha-campo { display: grid; grid-template-columns: 1fr 130px 90px; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px dashed var(--borda-suave); }
.linha-campo[hidden] { display: none; }
.linha-campo label { display: flex; flex-direction: column; font-size: .9rem; }
.linha-campo label small { color: var(--suave); font-size: .72rem; }
.linha-campo.calc label small { color: var(--calc-tx); }
.entrada { position: relative; }
.entrada input { padding: 6px 30px 6px 9px; text-align: right; font-variant-numeric: tabular-nums; }
.entrada input.invalido { border-color: var(--perigo); background: var(--perigo-bg); }
.status-campo { width: 20px; height: 20px; border-radius: 99px; display: inline-grid; place-items: center; font-size: .72rem; font-weight: 700; color: #fff; }
.entrada .status-campo { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); }
.status-campo:empty { display: none; }
.status-campo.ideal { background: var(--st-ideal); }
.status-campo.baixo { background: var(--st-baixo); }
.status-campo.alto { background: var(--st-alto); }
.entrada .status-campo:not(.ideal):not(.baixo):not(.alto) { background: var(--st-neutro); }
.saida-calc { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; padding-right: 8px; color: var(--suave); }
.saida-calc.ideal { color: var(--ok); } .saida-calc.baixo { color: var(--st-baixo); } .saida-calc.alto { color: var(--perigo); }
.ideal-dica { font-size: .78rem; color: var(--suave); }
.barra-salvar {
  position: fixed; left: var(--largura-menu); right: 0; bottom: 0; z-index: 10; display: flex; gap: 8px;
  padding: 12px 28px; background: var(--vidro); backdrop-filter: blur(8px); border-top: 1px solid var(--borda);
}
.espaco { flex: 1; }

/* ---------- Antropometria ---------- */
[data-painel-antropometria] { display: grid; gap: 16px; }
.selo-classe { display: inline-block; align-self: flex-start; color: #fff; font-size: .78rem; font-weight: 600; padding: 3px 10px; border-radius: 99px; white-space: nowrap; }
.variacao { font-weight: 600; font-size: .9rem; white-space: nowrap; }
.variacao.subiu { color: var(--perigo); }
.variacao.desceu { color: var(--ok); }
.variacao.igual { color: var(--suave); font-weight: 400; }
.kpi .variacao { font-size: 1.15rem; }
.kpi-sub .variacao { font-size: .8rem; }

.regua-wrap h2 { margin-bottom: 34px; }
.regua { position: relative; height: 30px; border-radius: 8px; overflow: visible; }
.segmento { position: absolute; top: 0; bottom: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.segmento:first-child { border-radius: 8px 0 0 8px; }
.segmento:last-of-type { border-radius: 0 8px 8px 0; }
.segmento span { color: #fff; font-size: .72rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 4px; }
.ponteiro { position: absolute; top: -8px; bottom: -8px; width: 4px; margin-left: -2px; background: var(--texto); border-radius: 2px; box-shadow: 0 0 0 2px var(--cartao); }
.ponteiro b { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); margin-bottom: 4px; background: var(--texto); color: var(--bg); font-size: .8rem; padding: 2px 8px; border-radius: 6px; white-space: nowrap; }
.marcos { position: relative; height: 22px; margin-top: 10px; }
.marco { position: absolute; transform: translateX(-50%); font-size: .75rem; color: var(--suave); }

.graficos-antropo { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.graficos-antropo .grafico-wrap h4 { margin-top: 0; }
.tabela-antropo td { vertical-align: middle; }
.tabela-antropo tbody tr { cursor: default; }
.acoes-linha { white-space: nowrap; text-align: right; }
.icone-btn { border: 1px solid var(--borda); background: var(--cartao-2); color: var(--texto); border-radius: 8px; width: 32px; height: 32px; cursor: pointer; font-size: .9rem; }
.icone-btn:hover { background: var(--hover); }
.icone-btn.perigo:hover { background: var(--perigo-bg); }
.form-avaliacao .campos { margin-top: 6px; }
.previa-imc { margin: 18px 0 6px; background: var(--cartao-2); border-radius: var(--raio); padding: 14px 16px; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.previa-item { display: flex; flex-direction: column; gap: 3px; }
.previa-item strong { font-size: 1.3rem; }
.secao-medidas { border: 1px solid var(--borda); border-radius: var(--raio); margin-top: 12px; }
.secao-medidas summary { padding: 12px 14px; cursor: pointer; font-weight: 600; }
.secao-medidas > :not(summary) { padding: 0 14px 14px; }
.grade-medidas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 12px; }
.grade-medidas label { display: flex; flex-direction: column; gap: 4px; font-size: .82rem; color: var(--suave); }
.grade-medidas input { padding: 7px 9px; text-align: right; }
.grade-medidas label.exigida { color: var(--ideal-tx); font-weight: 600; }
.grade-medidas label.exigida input { border-color: var(--st-ideal); background: var(--ideal-bg); }
.campo-protocolo { display: flex; flex-direction: column; gap: 5px; font-size: .9rem; color: var(--suave); margin-bottom: 6px; }
.aviso-protocolo { margin: 0 0 12px; }
.aviso-protocolo:empty { display: none; }
.campo-obs { display: flex; flex-direction: column; gap: 5px; font-size: .9rem; color: var(--suave); margin-top: 14px; }

.duas-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.composicao-topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.composicao-topo .kpi-grande { font-size: 2.2rem; }
.composicao-lado { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.barra-composicao { display: flex; height: 34px; border-radius: 8px; overflow: hidden; margin: 16px 0 10px; }
.barra-composicao > div { display: flex; align-items: center; justify-content: center; min-width: 0; }
.barra-composicao span { color: #fff; font-size: .78rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 8px; }
.parte-gorda { background: #e8743b; }
.parte-magra { background: var(--primaria); }
.lista-riscos { display: grid; gap: 10px; margin-bottom: 10px; }
.risco { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; background: var(--cartao-2); border-radius: 10px; }
.risco .detalhe { color: var(--suave); font-size: .8rem; }
.risco-valor { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.risco-valor strong { font-size: 1.15rem; }
.linha-soma td { font-weight: 700; background: var(--cartao-2); }

/* ---------- Comuns das abas novas ---------- */
main:has(.barra-salvar) { padding-bottom: 96px; }
.status-salvo { color: var(--ok); font-size: .88rem; align-self: center; }
.status-salvo.pendente { color: var(--st-baixo); }
.status-salvo.erro { color: var(--perigo); }
.trilho { height: 8px; border-radius: 99px; background: var(--cartao-2); border: 1px solid var(--borda-suave); overflow: hidden; }
.trilho .preenchido { height: 100%; border-radius: 99px; background: var(--primaria); transition: width .25s; }
.sem-margem { margin: 10px 0 0; }
code { background: var(--cartao-2); border: 1px solid var(--borda); border-radius: 6px; padding: 1px 6px; font-size: .85em; }

/* ---------- Anamnese ---------- */
.destaques-anamnese { display: grid; gap: 10px; margin-bottom: 16px; background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); padding: 16px 18px; }
.grupo-destaque { display: grid; gap: 6px; }
.chip-info { background: var(--hover); color: var(--primaria-escura); border-radius: 99px; padding: 4px 12px; font-size: .85rem; }
.anamnese { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }

.campos-anamnese { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.campo-anamnese { display: flex; flex-direction: column; gap: 5px; font-size: .9rem; color: var(--suave); min-width: 0; }
.campo-anamnese.largo { grid-column: 1 / -1; }
.secao-anamnese .campos-anamnese:has(textarea:only-child) { grid-template-columns: 1fr; }
.grupo-checks { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-check { display: inline-flex; align-items: center; cursor: pointer; }
.chip-check input { position: absolute; opacity: 0; pointer-events: none; }
.chip-check span { border: 1px solid var(--borda); border-radius: 99px; padding: 6px 13px; font-size: .86rem; color: var(--texto); background: var(--cartao); transition: all .12s; }
.chip-check span::before { content: '+ '; color: var(--suave); }
.chip-check input:checked + span { background: var(--primaria); border-color: var(--primaria); color: var(--sobre-primaria); }
.chip-check input:checked + span::before { content: '✓ '; color: var(--sobre-primaria); }
.chip-check input:focus-visible + span { outline: 2px solid var(--foco); }
.recordatorio { display: grid; gap: 8px; margin-bottom: 10px; }
.linha-recordatorio { display: grid; grid-template-columns: 110px 170px 1fr 34px; gap: 8px; align-items: start; }
.qfa { display: grid; gap: 6px; }
.linha-qfa { display: grid; grid-template-columns: 240px 1fr; gap: 12px; align-items: center; padding: 4px 0; border-bottom: 1px dashed var(--borda-suave); color: var(--texto); }
.opcoes-qfa { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.opcoes-qfa button { font: inherit; font-size: .76rem; padding: 6px 2px; border: 1px solid var(--borda); background: var(--cartao); border-radius: 8px; cursor: pointer; color: var(--suave); }
.opcoes-qfa button:hover { border-color: var(--primaria); }
.opcoes-qfa button.ativo { color: #fff; border-color: transparent; font-weight: 600; }
.opcoes-qfa button.ativo[data-nivel="0"] { background: var(--st-neutro); }
.opcoes-qfa button.ativo[data-nivel="1"] { background: #8cc7a4; }
.opcoes-qfa button.ativo[data-nivel="2"] { background: #6db48a; }
.opcoes-qfa button.ativo[data-nivel="3"] { background: #4ea072; }
.opcoes-qfa button.ativo[data-nivel="4"] { background: #2f8f5b; }
.opcoes-qfa button.ativo[data-nivel="5"] { background: #237046; }
.opcoes-qfa button.ativo[data-nivel="6"] { background: #17502f; }

/* ---------- Gasto energético ---------- */
.grade-energia { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.coluna-energia { display: grid; gap: 16px; }
.dados-base { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 10px; }
.dados-base span { display: flex; flex-direction: column; background: var(--cartao-2); border-radius: 10px; padding: 8px 10px; }
.dados-base small { color: var(--suave); font-size: .76rem; }
.lista-formulas { display: grid; gap: 8px; margin-bottom: 8px; }
.opcao-formula { display: grid; grid-template-columns: 20px 1fr auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--borda); border-radius: 10px; cursor: pointer; }
.opcao-formula:hover { border-color: var(--primaria); }
.opcao-formula.ativa { border-color: var(--primaria); background: var(--hover); box-shadow: 0 0 0 1px var(--primaria); }
.opcao-formula.indisponivel { opacity: .55; cursor: not-allowed; }
.opcao-formula input { width: auto; }
.formula-nome { display: flex; flex-direction: column; }
.formula-nome small { color: var(--suave); font-size: .78rem; }
.formula-valor { font-variant-numeric: tabular-nums; }
.fluxo-energia { display: flex; align-items: stretch; gap: 8px; flex-wrap: wrap; }
.passo-energia { flex: 1; min-width: 130px; display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 12px; background: var(--cartao-2); }
.passo-energia strong { font-size: 1.7rem; line-height: 1.1; }
.passo-energia small { color: var(--suave); font-size: .78rem; }
.passo-energia.destaque { background: var(--primaria); color: var(--sobre-primaria); }
.passo-energia.destaque .kpi-rotulo, .passo-energia.destaque small, .passo-energia.destaque .kpi-sub { color: rgba(255,255,255,.82); }
.seta-fluxo { align-self: center; color: var(--suave); font-weight: 700; white-space: nowrap; }
.barra-macros { display: flex; height: 30px; border-radius: 8px; overflow: hidden; margin: 14px 0 12px; }
.barra-macros div { display: flex; align-items: center; justify-content: center; color: #fff; font-size: .78rem; font-weight: 600; white-space: nowrap; overflow: hidden; min-width: 0; }
.tabela-macros { width: 100%; border-collapse: collapse; font-size: .9rem; }
.tabela-macros th { text-align: left; font-size: .72rem; text-transform: uppercase; color: var(--suave); padding: 6px 8px; border-bottom: 1px solid var(--borda); }
.tabela-macros td { padding: 8px; border-bottom: 1px solid var(--borda-suave); font-variant-numeric: tabular-nums; }
.tabela-macros td.sub { font-size: .78rem; }
.bolinha-macro { display: inline-block; width: 10px; height: 10px; border-radius: 99px; margin-right: 8px; }

/* ---------- Plano alimentar ---------- */
.faixa-prescricao { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 18px; margin-bottom: 16px; background: var(--hover); border-color: var(--borda); }
.faixa-prescricao.sem { background: var(--aviso-bg); border-color: var(--aviso-borda); }
.faixa-prescricao a { color: var(--primaria-escura); font-weight: 600; }
.lista-planos { display: grid; gap: 14px; }
.plano-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.plano-topo h3 { margin: 0 0 4px; display: flex; align-items: center; gap: 10px; }
.selo-atual { font-size: .72rem; background: var(--ideal-bg); color: var(--ideal-tx); border-radius: 99px; padding: 2px 9px; }
.numeros-plano { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 14px; }
.numero-plano { display: flex; flex-direction: column; padding: 8px 12px; border-left: 4px solid var(--cor); background: var(--cartao-2); border-radius: 8px; }
.numero-plano small, .numero-plano span { color: var(--suave); font-size: .78rem; }

.cabecalho-plano { flex: 1; min-width: 260px; }
.titulo-plano { font-size: 1.5rem; font-weight: 700; border: 1px solid transparent; background: transparent; padding: 4px 8px; margin-left: -8px; }
.titulo-plano:hover { border-color: var(--borda); }
.data-plano { display: flex; align-items: center; gap: 8px; color: var(--suave); font-size: .9rem; }
.data-plano input { width: auto; }
.painel-metas-plano { position: sticky; top: 70px; z-index: 6; margin-bottom: 16px; padding: 14px 18px; display: grid; gap: 10px; }
.metas-plano { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.meta-macro { display: grid; gap: 5px; }
.meta-macro-topo { display: flex; justify-content: space-between; gap: 8px; font-size: .86rem; }
.meta-macro-topo span { color: var(--suave); }
.meta-macro .preenchido { background: var(--cor); }
.meta-macro small { font-size: .76rem; color: var(--suave); }
.meta-macro.ok small { color: var(--ok); font-weight: 600; }
.meta-macro.perto small { color: var(--st-baixo); font-weight: 600; }
.meta-macro.longe small { color: var(--perigo); font-weight: 600; }
.micros-plano { display: flex; gap: 18px; flex-wrap: wrap; font-size: .84rem; color: var(--suave); border-top: 1px solid var(--borda-suave); padding-top: 8px; }
.micros-plano b { color: var(--texto); }

.refeicoes { display: grid; gap: 14px; margin-bottom: 16px; }
.cartao-refeicao { padding: 0; }
.topo-refeicao { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--borda-suave); background: var(--cartao-2); border-radius: var(--raio) var(--raio) 0 0; flex-wrap: wrap; }
.hora-refeicao { width: 108px; }
.nome-refeicao { flex: 1; min-width: 160px; font-weight: 700; font-size: 1.02rem; background: transparent; border-color: transparent; }
.nome-refeicao:hover { border-color: var(--borda); background: var(--cartao); }
.totais-refeicao { color: var(--suave); font-size: .85rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.acoes-refeicao { display: flex; gap: 4px; }
.icone-btn:disabled { opacity: .35; cursor: default; }
.itens-refeicao { padding: 6px 14px 0; }
.cabecalho-itens, .linha-item { display: grid; grid-template-columns: minmax(180px, 1fr) 76px 150px 56px 48px 48px 48px 72px; gap: 8px; align-items: center; }
.cabecalho-itens { font-size: .7rem; text-transform: uppercase; color: var(--suave); padding: 4px 0; }
.linha-item { padding: 7px 0; border-bottom: 1px dashed var(--borda-suave); }
.nome-item { display: flex; flex-direction: column; min-width: 0; }
.nome-item b { font-weight: 600; font-size: .9rem; }
.linha-nome { display: flex; align-items: center; gap: 4px; }
.linha-item .nome-exibicao { font-weight: 600; font-size: .9rem; padding: 4px 6px; margin-left: -6px; border-color: transparent; background: transparent; }
.linha-item .nome-exibicao:hover { border-color: var(--borda); }
.linha-item .nome-exibicao:focus { background: var(--cartao); }
.restaurar-nome { font: inherit; border: 0; background: none; color: var(--primaria-escura); cursor: pointer; padding: 0 4px; font-size: 1rem; }
.nome-item small { color: var(--suave); font-size: .74rem; }
.linha-item input { padding: 6px 8px; }
.qtd-item, .num-manual { text-align: right; }
.num-item { text-align: right; font-variant-numeric: tabular-nums; font-size: .88rem; }
.acoes-item { display: flex; gap: 4px; justify-content: flex-end; }
.linha-subs { grid-column: 1 / -1; display: flex; gap: 8px; align-items: center; color: var(--primaria-escura); }
.subs-item { font-size: .86rem; }
.vazio-refeicao { padding: 8px 0; }
.busca-alimento { position: relative; padding: 10px 14px; }
.resultados-busca { position: absolute; left: 14px; right: 14px; top: calc(100% - 6px); z-index: 7; background: var(--cartao); border: 1px solid var(--borda); border-radius: 10px; box-shadow: 0 12px 30px rgba(16,40,26,.15); max-height: 340px; overflow-y: auto; }
.resultado { font: inherit; display: flex; justify-content: space-between; gap: 12px; width: 100%; text-align: left; border: 0; border-bottom: 1px solid var(--borda-suave); background: none; padding: 9px 12px; cursor: pointer; color: var(--texto); }
.resultado small { color: var(--suave); white-space: nowrap; }
.resultado.sel, .resultado:hover { background: var(--hover); }
.resultado.manual { color: var(--primaria-escura); }
.obs-refeicao { margin: 0 14px 14px; width: calc(100% - 28px); font-size: .86rem; background: var(--cartao-2); }
.adicionar-refeicao { justify-self: start; border-style: dashed; }

/* ---------- Evolução ---------- */
.estrelas { color: var(--borda); letter-spacing: 1px; font-size: 1rem; }
.estrelas .cheia { color: var(--estrela); }
.filtros-evolucao { display: flex; gap: 8px; flex-wrap: wrap; margin: 16px 0; }
.filtros-evolucao button { font: inherit; font-size: .86rem; border: 1px solid var(--borda); background: var(--cartao); border-radius: 99px; padding: 6px 14px; cursor: pointer; color: var(--texto); }
.filtros-evolucao button.ativo { background: var(--primaria); border-color: var(--primaria); color: var(--sobre-primaria); }
.filtros-evolucao button:disabled { opacity: .45; cursor: default; }
.linha-tempo { list-style: none; margin: 0; padding: 0 0 0 26px; position: relative; display: grid; gap: 14px; }
.linha-tempo::before { content: ''; position: absolute; left: 13px; top: 8px; bottom: 8px; width: 2px; background: var(--borda); }
.evento { position: relative; }
.marcador-evento { position: absolute; left: -32px; top: 12px; width: 38px; height: 38px; border-radius: 99px; display: grid; place-items: center; background: var(--cartao); border: 2px solid var(--cor); font-size: 1rem; }
.conteudo-evento { margin-left: 18px; padding: 14px 16px; border-left: 4px solid var(--cor); display: grid; gap: 10px; }
.conteudo-evento header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.conteudo-evento header div { display: flex; flex-direction: column; }
.conteudo-evento header small { color: var(--suave); font-size: .8rem; }
.bloco-atendimento p { margin: 2px 0 0; white-space: pre-wrap; line-height: 1.5; }
.numeros-evento { display: flex; gap: 18px; flex-wrap: wrap; font-size: .9rem; color: var(--suave); }
.numeros-evento b { color: var(--texto); }
.campo-adesao { display: flex; flex-direction: column; gap: 4px; font-size: .9rem; color: var(--suave); }
.seletor-adesao { display: flex; gap: 2px; }
.seletor-adesao button { font: inherit; font-size: 1.6rem; line-height: 1; border: 0; background: none; cursor: pointer; color: var(--borda); padding: 0 2px; }
.seletor-adesao button.cheia { color: var(--estrela); }
.rotulo-adesao { color: var(--texto); }

/* ---------- Metas ---------- */
.metas-vazio { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 18px; color: var(--suave); }
.metas-topo { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.metas-topo h2 { margin: 0; }
.metas-topo .btn { margin-left: auto; }
.metas-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.meta-item { display: grid; gap: 6px; }
.meta-item-topo { display: flex; justify-content: space-between; gap: 8px; font-size: .9rem; }
.meta-item-topo span { color: var(--suave); font-variant-numeric: tabular-nums; }
.meta-item small { color: var(--suave); font-size: .8rem; }
.meta-item.atingida .preenchido { background: var(--ok); }
.meta-item.atingida small { color: var(--ok); font-weight: 600; }

/* ---------- PDFs (folhas A4) ---------- */
.previa-pdf { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 22px; align-items: start; }
.opcoes-pdf { position: sticky; top: 84px; }
.grupo-opcoes-pdf { display: grid; gap: 2px; margin: 12px 0; }
.opcao-pdf { display: flex; gap: 8px; align-items: center; padding: 5px 0; font-size: .92rem; cursor: pointer; }
.opcao-pdf input { width: auto; }
.opcao-pdf.fixa { color: var(--suave); cursor: default; }
.campo-texto-pdf { display: flex; flex-direction: column; gap: 5px; margin-top: 10px; font-size: .9rem; color: var(--suave); }
.botao-imprimir { width: 100%; text-align: center; margin: 8px 0 6px; padding: 11px; }
.aviso-config { background: #fff8e8; border: 1px solid #f6e2b0; color: #7a4f00; border-radius: 10px; padding: 8px 10px; font-size: .86rem; }
.aviso-config a { color: #7a4f00; font-weight: 600; }
.area-folha { overflow-x: auto; padding-bottom: 20px; }

.folha-pdf {
  --marca: #a07a2c;
  --marca-clara: color-mix(in srgb, var(--marca) 9%, white);
  --marca-media: color-mix(in srgb, var(--marca) 35%, white);
  --marca-escura: color-mix(in srgb, var(--marca) 72%, black);
  width: 210mm; min-height: 297mm; padding: 14mm 14mm 16mm; margin: 0 auto; background: #fff; color: #23262b;
  font-size: 12.5px; line-height: 1.45; box-shadow: 0 4px 24px #0f172a1f; border: 1px solid var(--borda);
}
.folha-pdf.mini { width: 100%; min-height: 0; padding: 18px; box-shadow: none; }
.cabecalho-pdf { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding-bottom: 12px; border-bottom: 2px solid var(--marca); }
.marca-pdf { display: flex; align-items: center; gap: 16px; min-width: 0; }
.logo-pdf { height: 84px; width: auto; max-width: 230px; object-fit: contain; }
.cabecalho-pdf.compacto .logo-pdf { height: 52px; max-width: 150px; }
.profissional-pdf { display: grid; gap: 1px; }
.nome-consultorio-pdf { font-family: Georgia, 'Times New Roman', serif; font-size: 16px; color: var(--marca-escura); }
.crn-pdf { color: var(--marca-escura); font-weight: 700; }
.especializacao-pdf { color: #6b6f76; font-size: 11.5px; }
.contatos-pdf { text-align: right; font-size: 11px; color: #555a61; line-height: 1.7; }
.icone-contato { color: var(--marca); font-weight: 700; margin-right: 5px; }
.titulo-documento { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 14px 0 2px; }
.titulo-documento h1 { font-family: Georgia, 'Times New Roman', serif; font-size: 21px; font-weight: 400; color: var(--marca-escura); margin: 0; }
.titulo-documento span { color: #7a7f86; font-size: 11.5px; white-space: nowrap; }
.secao-pdf { margin-top: 16px; break-inside: avoid; }
.secao-pdf h3 { display: flex; align-items: center; gap: 7px; margin: 0 0 8px; padding-bottom: 4px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--marca-escura); border-bottom: 1px solid var(--marca-media); }
.icone-secao { font-size: 13px; }
.grade-pdf { display: grid; gap: 8px; }
.grade-pdf.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grade-pdf.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grade-pdf.g1 { grid-template-columns: 1fr; }
.caixa-pdf { background: var(--marca-clara); border-radius: 6px; padding: 7px 10px; min-width: 0; }
.caixa-pdf.s2 { grid-column: span 2; }
.caixa-pdf small { display: block; color: #7a7f86; font-size: 10.5px; }
.numero-pdf b { display: block; font-size: 15px; }
.variacao-pdf { font-size: 10.5px; color: var(--marca-escura); }
.grafico-pdf { margin-top: 10px; border: 1px solid #ececec; border-radius: 6px; padding: 4px 12px 8px; }
.grafico-pdf .grafico { max-height: 200px; }
.grafico-pdf h4 { margin: 6px 0 2px; font-size: 10.5px; color: #7a7f86; text-transform: none; letter-spacing: 0; }
.barra-comp-pdf { display: flex; height: 22px; border-radius: 4px; overflow: hidden; margin: 6px 0; }
.barra-comp-pdf div { display: flex; align-items: center; justify-content: center; color: #fff; font-size: 10.5px; font-weight: 600; white-space: nowrap; overflow: hidden; }
.barra-comp-pdf .gorda { background: #d4875a; }
.barra-comp-pdf .magra { background: var(--marca); }
.meta-pdf { margin-top: 6px; }
.meta-pdf > div:first-child { display: flex; justify-content: space-between; font-size: 11.5px; }
.trilho-pdf { height: 6px; background: #ebe7df; border-radius: 99px; overflow: hidden; margin-top: 2px; }
.trilho-pdf div { height: 100%; background: var(--marca); }
.tabela-pdf { width: 100%; border-collapse: collapse; font-size: 11.5px; }
.tabela-pdf th { text-align: left; color: #7a7f86; font-weight: 600; font-size: 10.5px; padding: 4px 6px; border-bottom: 1px solid var(--marca-media); }
.tabela-pdf td { padding: 5px 6px; border-bottom: 1px solid #eeeeee; vertical-align: top; }
.tabela-pdf tr { break-inside: avoid; }
.ok-pdf { color: #2b7a4b; margin: 0; }
.texto-pdf { white-space: pre-wrap; line-height: 1.55; background: var(--marca-clara); border-left: 3px solid var(--marca); padding: 10px 12px; }
.refeicao-pdf h3 { text-transform: none; letter-spacing: 0; font-size: 13.5px; }
.hora-pdf { color: var(--marca); font-variant-numeric: tabular-nums; }
.kcal-ref-pdf { margin-left: auto; font-weight: 400; color: #7a7f86; font-size: 11px; }
.subs-pdf { color: #6b6f76; }
.tabela-refeicao { table-layout: fixed; }
.grafico-composicao { max-height: 320px; }
.grafico-pdf .grafico-composicao { max-height: 230px; }

/* ---------- Modelos de plano ---------- */
.selo-modelo { display: inline-block; font-size: .78rem; background: var(--destaque-bg); color: var(--destaque-tx); border-radius: 99px; padding: 2px 10px; margin: 4px 0; }
.descricao-modelo { margin-top: 6px; font-size: .9rem; }
.tabela-refeicao .col-alimento { width: 42%; }
.tabela-refeicao .col-qtd { width: 23%; }
.obs-ref-pdf { font-size: 11px; color: #6b6f76; margin: 4px 0 0; font-style: italic; }
.meta-dia-pdf { margin-top: 10px; }
.meta-dia-pdf b { font-size: 14px; }
.rodape-pdf { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-top: 40px; break-inside: avoid; }
.nota-pdf { font-size: 10px; color: #8a8f96; max-width: 55%; }
.assinatura-pdf { text-align: center; width: 240px; }
.linha-assinatura { border-top: 1px solid #333; padding-top: 4px; }
.assinatura-pdf small { color: #6b6f76; }

/* ---------- Dados do consultório ---------- */
.grade-consultorio { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.subtitulo-config { margin-top: 22px; }
.logo-atual { border: 1px dashed var(--borda); border-radius: 10px; padding: 14px; display: grid; place-items: center; min-height: 110px; margin-bottom: 10px; background: #fff; }
.logo-atual img { max-height: 120px; max-width: 100%; }
.campo-cor { display: flex; align-items: center; gap: 12px; margin-top: 12px; font-size: .9rem; color: var(--suave); }
.campo-cor input { width: 64px; height: 36px; padding: 2px; }
.previa-cabecalho { border: 1px solid var(--borda); border-radius: 10px; overflow: hidden; }

/* ---------- Refinamentos do redesign (Ervo) ---------- */
h1 { letter-spacing: -.015em; }
.cartao, .kpi-inicio, .kpi { box-shadow: var(--sombra); }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 8px 16px;
  font-weight: 600; transition: background .15s var(--ease), border-color .15s var(--ease), transform .1s var(--ease), filter .15s var(--ease);
}
.btn:active { transform: scale(.98); }
.btn .ic-texto { margin: 0; }
.btn.primario:hover { filter: brightness(1.08); }
input, select, textarea { transition: border-color .15s var(--ease), box-shadow .15s var(--ease); }
input:focus, select:focus, textarea:focus { outline: none; box-shadow: 0 0 0 3px var(--foco); }
.icone-btn { display: inline-grid; place-items: center; transition: background .15s var(--ease); }
.tabela tbody tr, .tabela-exame tbody tr, .item-inicio, .alerta { transition: background .15s var(--ease); }
.kpi-icone .ic-texto, .vazio-icone .ic-texto { margin: 0; width: 1em; height: 1em; }
.vazio-icone { color: var(--primaria-escura); }
.cartao-titulo h3 .ic-texto, h2 .ic-texto, h3 .ic-texto { color: var(--primaria-escura); margin-right: 8px; }

/* abas da ficha com indicador deslizante (048) */
.abas { position: relative; scroll-snap-type: x proximity; }
.abas a { display: inline-flex; align-items: center; gap: 2px; border-bottom: 0; scroll-snap-align: start; transition: color .15s var(--ease), background .15s var(--ease); }
.abas a.ativa { color: var(--primaria-escura); }
.abas a .ic-texto { width: 17px; height: 17px; }
.aba-indicador {
  position: absolute; left: 0; bottom: 0; height: 3px; width: 0; border-radius: 3px 3px 0 0; background: var(--primaria);
  transition: transform .25s var(--ease), width .25s var(--ease); pointer-events: none;
}

/* gaveta: entra deslizando da direita e sai pelo mesmo caminho */
.gaveta-fundo { animation: aparecer .2s var(--ease); }
.gaveta-painel { animation: entrar .26s var(--ease); box-shadow: var(--sombra-forte); }
@keyframes entrar { from { transform: translateX(28px); opacity: 0; } }
.gaveta.saindo .gaveta-painel { animation: sair-direita .2s var(--ease) forwards; }
.gaveta.saindo .gaveta-fundo { animation: sumir .2s var(--ease) forwards; }
@keyframes sair-direita { to { transform: translateX(28px); opacity: 0; } }
@keyframes sumir { to { opacity: 0; } }
.gaveta-fechar { display: grid; place-items: center; transition: background .15s var(--ease); }

/* aviso (070 toast-stack): sobe ao aparecer, desce ao sair */
.toast { display: flex; align-items: center; gap: 8px; font-weight: 600; animation: subir-toast .24s var(--ease); }
.toast::before { content: ''; width: 8px; height: 8px; border-radius: 99px; background: var(--st-ideal); flex: none; }
@keyframes subir-toast { from { opacity: 0; transform: translate(-50%, 12px); } }
.toast.saindo { animation: descer-toast .18s var(--ease) forwards; }
@keyframes descer-toast { to { opacity: 0; transform: translate(-50%, 12px); } }

/* caixas recolhíveis (044): seta que gira; a altura é animada no shell.js */
details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }
.grupo-form summary::before, .secao-medidas summary::before, .secao-anamnese > summary::before {
  content: ''; width: 8px; height: 8px; flex: none; border-right: 2px solid var(--suave); border-bottom: 2px solid var(--suave);
  transform: rotate(-45deg); transition: transform .24s var(--ease); margin: 0 4px 0 2px;
}
.grupo-form[open] summary::before, .secao-medidas[open] summary::before, .secao-anamnese[open] > summary::before { transform: rotate(45deg); }
.secao-medidas summary { display: flex; align-items: center; gap: 8px; }
details[open] > :not(summary) { animation: surgir .26s var(--ease); }

/* anamnese em caixas recolhíveis */
.secao-anamnese { padding: 0; }
.secao-anamnese > summary {
  display: flex; align-items: center; gap: 10px; padding: 16px 18px; cursor: pointer; border-radius: var(--raio);
  transition: background .15s var(--ease);
}
.secao-anamnese > summary:hover { background: var(--hover); }
.secao-anamnese > summary h2 { margin: 0; flex: 1; }
.secao-anamnese > .campos-anamnese { padding: 4px 18px 18px; }
.secao-anamnese[open] > summary { border-bottom: 1px solid var(--borda-suave); border-radius: var(--raio) var(--raio) 0 0; margin-bottom: 12px; }
.secao-anamnese > summary h2 { display: flex; align-items: center; }
.chip-outro { font: inherit; font-size: .86rem; border: 1px dashed var(--suave); border-radius: 99px; padding: 6px 13px; background: transparent; color: var(--primaria-escura); font-weight: 600; cursor: pointer; transition: background .15s var(--ease); }
.chip-outro:hover { background: var(--hover); }
.chip-outro[aria-expanded="true"] { display: none; }
.campo-outro { width: 240px; max-width: 100%; padding: 6px 13px; border-radius: 99px; font-size: .86rem; animation: surgir .2s var(--ease); }
.contagem-secao { font-size: .78rem; font-weight: 600; color: var(--ideal-tx); background: var(--ideal-bg); border-radius: 99px; padding: 2px 10px; white-space: nowrap; }
.contagem-secao:empty { display: none; }

.barra-salvar { left: var(--largura-menu); transition: left .24s var(--ease); }

/* ---------- Segunda leva: componentes (lucian-uxui-prompt, MIT) ---------- */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.margem-topo { margin-top: 14px; }
.btn-mini { min-height: 34px; padding: 5px 12px; font-size: .88rem; }

/* 083 barra de carregamento no topo */
.barra-carregando { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 60; overflow: hidden; background: var(--primaria-suave); }
.barra-carregando::before { content: ''; position: absolute; top: 0; bottom: 0; width: 35%; background: var(--primaria); border-radius: 3px; animation: indeterminada 1.1s var(--ease) infinite; }
@keyframes indeterminada { from { left: -35%; } to { left: 100%; } }

/* 009 rótulo que rola no botão de salvar */
.btn .rotulo-rolante { display: inline-block; animation: rolar-rotulo .22s var(--ease); }
@keyframes rolar-rotulo { from { transform: translateY(70%); opacity: 0; } }
.btn.salvando { cursor: progress; opacity: .92; }
.btn.salvo { background: var(--st-ideal); border-color: var(--st-ideal); color: #fff; }

/* 037 menu "⋯ Mais ações" */
.menu-acoes-wrap { position: relative; display: inline-flex; }
.btn-mais { width: 40px; height: 40px; border-radius: 10px; }
.acoes-linha .btn-mais { width: 34px; height: 34px; background: transparent; border-color: transparent; color: var(--suave); }
.acoes-linha .btn-mais:hover, .btn-mais[aria-expanded="true"] { background: var(--hover); color: var(--texto); }
.menu-acoes {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 25; min-width: 210px; padding: 6px; display: grid; gap: 1px;
  background: var(--cartao); border: 1px solid var(--borda); border-radius: 12px; box-shadow: var(--sombra-forte);
  transform-origin: top right; animation: abrir-pop .16s var(--ease);
}
.menu-acoes.para-cima { top: auto; bottom: calc(100% + 6px); transform-origin: bottom right; }
/* posição calculada no componentes.js (fixa na tela, colada ao botão) */
.menu-acoes-wrap > .menu-acoes { position: fixed; right: auto; bottom: auto; z-index: 60; }
.menu-acoes > * {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 38px; padding: 0 10px; border: 0; border-radius: 8px;
  font: inherit; font-size: .92rem; font-weight: 500; text-align: left; color: var(--texto); background: none; cursor: pointer; text-decoration: none;
  animation: surgir .2s var(--ease) both; animation-delay: calc(var(--i, 0) * 30ms);
}
.menu-acoes > *:hover, .menu-acoes > *:focus-visible { background: var(--hover); outline: none; }
.menu-acoes > * .ic { color: var(--suave); }
.menu-acoes > .perigo { color: var(--perigo); margin-top: 4px; border-top: 1px solid var(--borda-suave); border-radius: 0 0 8px 8px; }
.menu-acoes > .perigo .ic { color: var(--perigo); }
.menu-acoes > .perigo:hover { background: var(--perigo-bg); }

/* ficha: selo de situação e campos com copiar/editar */
.selo-situacao { display: inline-block; margin-left: 10px; padding: 1px 10px; border-radius: 99px; font-size: .78rem; font-weight: 600; vertical-align: 1px; }
.selo-situacao.ativo { background: var(--ideal-bg); color: var(--ideal-tx); }
.selo-situacao.inativo { background: var(--cartao-2); color: var(--suave); border: 1px solid var(--borda); }
dd { display: flex; align-items: center; gap: 6px; min-height: 32px; flex-wrap: wrap; }
dd .valor-campo { white-space: pre-wrap; }
.btn-copiar, .btn-editar-campo { width: 30px; height: 30px; border-color: transparent; background: transparent; color: var(--suave); opacity: .75; }
.btn-copiar:hover, .btn-editar-campo:hover { background: var(--hover); color: var(--texto); opacity: 1; }
.btn-copiar.copiado { color: var(--ok); opacity: 1; }
.editavel .btn-editar-campo { opacity: 0; transition: opacity .15s var(--ease); }
.editavel:hover .btn-editar-campo, .btn-editar-campo:focus-visible { opacity: 1; }
@media (hover: none) { .editavel .btn-editar-campo { opacity: .75; } }
.campo-inline { max-width: 340px; padding: 6px 10px; }
.erro-inline { color: var(--perigo); width: 100%; }
.erro-inline:empty { display: none; }
.dica-inline { color: var(--suave); font-size: .76rem; }

/* lista: seleção em lote (178) e paginação (043) */
.col-selecao { width: 44px; padding-right: 0 !important; }
.col-selecao input, .tabela th.col-selecao input { width: 18px; height: 18px; accent-color: var(--primaria); cursor: pointer; }
.tabela tbody tr.selecionada { background: var(--primaria-suave); }
.doca-selecao {
  position: fixed; left: calc(var(--largura-menu) + (100% - var(--largura-menu)) / 2); bottom: 22px; transform: translateX(-50%); z-index: 15;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: center; max-width: calc(100vw - 24px);
  padding: 8px 8px 8px 16px; border-radius: 14px; background: var(--toast-bg); color: var(--toast-tx); box-shadow: var(--sombra-forte);
  animation: subir-doca .24s var(--ease);
}
@keyframes subir-doca { from { opacity: 0; transform: translate(-50%, 14px); } }
.doca-selecao b { margin-right: 6px; }
.doca-selecao .btn { min-height: 34px; padding: 4px 12px; background: transparent; color: inherit; border-color: color-mix(in srgb, currentColor 30%, transparent); }
.doca-selecao .btn:hover { background: color-mix(in srgb, currentColor 12%, transparent); }
.paginacao { display: flex; align-items: center; gap: 4px; margin-top: 12px; flex-wrap: wrap; }
.btn-pagina { min-width: 36px; height: 36px; border-radius: 9px; border: 1px solid transparent; background: none; font: inherit; font-weight: 600; color: var(--suave); cursor: pointer; }
.btn-pagina:hover { background: var(--hover); color: var(--texto); }
.btn-pagina.atual { background: var(--primaria); color: var(--sobre-primaria); }
.paginacao .icone-btn:disabled { opacity: .35; cursor: default; }

/* início: boas-vindas, faixa de backup (073), metas (099), avaliações por mês (095) */
.boas-vindas { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.faixa-aviso {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; padding: 10px 10px 10px 16px; border-radius: 12px;
  background: var(--aviso-bg); border: 1px solid var(--aviso-borda); color: var(--aviso-tx); animation: surgir .26s var(--ease);
}
.faixa-aviso > span { flex: 1; min-width: 200px; }
.faixa-aviso .icone-btn { background: transparent; border-color: transparent; color: inherit; }
.lista-metas-inicio { display: grid; padding: 6px 8px 10px; }
.meta-inicio { display: flex; align-items: center; gap: 14px; padding: 8px 10px; border-radius: 12px; text-decoration: none; transition: background .15s var(--ease); }
.meta-inicio:hover { background: var(--hover); }
.legenda-aneis { display: flex; flex-wrap: wrap; gap: 2px 10px; font-size: .8rem; color: var(--suave); }
.legenda-aneis i { display: inline-block; width: 8px; height: 8px; border-radius: 99px; margin-right: 4px; }
.aneis { flex: none; }
.anel-progresso { animation: encher-anel .9s var(--ease) both; }
@keyframes encher-anel { from { stroke-dashoffset: var(--c); } }
.barras-mes { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; align-items: end; padding: 18px 18px 14px; }
.barra-mes { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; height: 150px; border-radius: 8px; outline-offset: 2px; }
.coluna-barra { width: min(42px, 100%); height: var(--alt); min-height: 4px; flex: none; border-radius: 7px 7px 3px 3px; background: color-mix(in srgb, var(--primaria) 30%, transparent); transform-origin: bottom; animation: crescer-barra .5s var(--ease) both; animation-delay: calc(var(--i) * 50ms); transition: background .15s var(--ease); }
@keyframes crescer-barra { from { transform: scaleY(0); } }
.barra-mes.atual .coluna-barra, .barra-mes:hover .coluna-barra, .barra-mes:focus-visible .coluna-barra { background: var(--primaria); }
.valor-barra { font-size: .82rem; font-weight: 700; opacity: 0; transform: translateY(4px); transition: opacity .15s var(--ease), transform .15s var(--ease); }
.barra-mes.atual .valor-barra, .barra-mes:hover .valor-barra, .barra-mes:focus-visible .valor-barra { opacity: 1; transform: none; }
.barra-mes small { color: var(--suave); font-size: .78rem; text-transform: capitalize; }

/* antropometria: metas com anéis */
.metas-com-aneis { display: flex; align-items: center; gap: 24px; }
.metas-com-aneis .metas-grade { flex: 1; }
.meta-item .preenchido { background: var(--cor-meta, var(--primaria)); }
.ponto-meta { display: inline-block; width: 9px; height: 9px; border-radius: 99px; background: var(--cor-meta); margin-right: 7px; }

/* exames: distância da faixa ideal (175) — barras divergentes a partir do limite da faixa */
.distancia-faixa h2 { margin-bottom: 4px; }
.cabecalho-distancia, .linha-distancia { display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr) 58px; gap: 14px; align-items: center; }
.cabecalho-distancia { margin: 14px 0 2px; padding: 0 8px; }
.escala-distancia { position: relative; height: 18px; }
.escala-distancia small { position: absolute; top: 0; transform: translateX(-50%); font-size: .72rem; color: var(--suave); font-variant-numeric: tabular-nums; white-space: nowrap; }
.escala-distancia small.zero { color: var(--ideal-tx); font-weight: 700; }
.lista-distancia { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.titulo-grupo-distancia { padding: 12px 8px 4px; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.titulo-grupo-distancia.alto { color: var(--alto-tx); }
.titulo-grupo-distancia.baixo { color: var(--baixo-tx); }
.lista-distancia > li:first-child.titulo-grupo-distancia { padding-top: 4px; }
.linha-distancia {
  width: 100%; min-height: 46px; padding: 6px 8px; border: 0; border-radius: 10px; background: none;
  font: inherit; color: var(--texto); text-align: left; cursor: pointer; transition: background .15s var(--ease);
}
.linha-distancia:hover { background: var(--hover); }
.linha-distancia:hover .barra-distancia { filter: brightness(1.08); }
.nome-distancia { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.nome-distancia b { font-weight: 600; font-size: .92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nome-distancia small { color: var(--suave); font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.area-distancia { position: relative; height: 26px; }
.grade-distancia i { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--borda-suave); }
.grade-distancia i.zero { width: 2px; margin-left: -1px; background: var(--st-ideal); opacity: .7; }
.barra-distancia {
  position: absolute; top: 5px; height: 16px; min-width: 3px; border-radius: 0 6px 6px 0;
  transform-origin: left center; animation: crescer-horizontal .45s var(--ease) both; animation-delay: calc(var(--i, 0) * 25ms);
}
.barra-distancia.alto { background: var(--st-alto); }
.barra-distancia.baixo { background: var(--st-baixo); border-radius: 6px 0 0 6px; transform-origin: right center; }
@keyframes crescer-horizontal { from { transform: scaleX(0); } }
.pct-distancia { text-align: right; font-variant-numeric: tabular-nums; font-size: .95rem; }
.pct-distancia.alto { color: var(--alto-tx); }
.pct-distancia.baixo { color: var(--baixo-tx); }
.legenda-distancia { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 12px 8px 0; font-size: .78rem; color: var(--suave); }
.legenda-distancia span { display: inline-flex; align-items: center; gap: 6px; }
.legenda-distancia i { display: inline-block; width: 12px; height: 10px; border-radius: 3px; }
.legenda-distancia i.alto { background: var(--st-alto); }
.legenda-distancia i.baixo { background: var(--st-baixo); }
.legenda-distancia i.zero { width: 2px; height: 14px; border-radius: 0; background: var(--st-ideal); }

/* switches com efeito de aperto (013): "Paciente ativo" e seções do PDF */
.campos .check input[type="checkbox"], .opcao-pdf input[type="checkbox"] {
  appearance: none; -webkit-appearance: none; flex: none; width: 40px; height: 24px; margin: 0; padding: 0; border-radius: 99px; cursor: pointer;
  background: var(--borda); border: 0; position: relative; transition: background .2s var(--ease);
}
.campos .check input[type="checkbox"]::after, .opcao-pdf input[type="checkbox"]::after {
  content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 99px; background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .22s var(--ease), width .12s var(--ease);
}
.campos .check input[type="checkbox"]:checked, .opcao-pdf input[type="checkbox"]:checked { background: var(--primaria); }
.campos .check input[type="checkbox"]:checked::after, .opcao-pdf input[type="checkbox"]:checked::after { transform: translateX(16px); }
.campos .check input[type="checkbox"]:active::after, .opcao-pdf input[type="checkbox"]:active::after { width: 23px; }
.campos .check input[type="checkbox"]:checked:active::after, .opcao-pdf input[type="checkbox"]:checked:active::after { transform: translateX(11px); }
.opcao-pdf input[type="checkbox"]:disabled { opacity: .55; cursor: default; }
.opcao-pdf { gap: 10px; }

/* segmentado (047): período do relatório */
.segmentado { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 2px; padding: 3px; margin: 6px 0 2px; background: var(--cartao-2); border: 1px solid var(--borda); border-radius: 11px; }
.segmentado button { min-height: 34px; border: 0; border-radius: 8px; background: none; font: inherit; font-size: .84rem; font-weight: 600; color: var(--suave); cursor: pointer; transition: background .15s var(--ease), color .15s var(--ease); }
.segmentado button[aria-checked="true"] { background: var(--cartao); color: var(--texto); box-shadow: var(--sombra); }

/* PDF: assinatura aprovada (180) e rodapé */
.aprovado-pdf { display: block; color: var(--marca-escura) !important; font-weight: 600; margin-bottom: 26px; }
.gerado-por { display: block; margin-top: 6px; color: #9aa09a; }

/* avisos: lidos/novos */
.avisos-topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.link-lidas { border: 0; background: none; font: inherit; font-size: .8rem; font-weight: 600; color: var(--primaria-escura); cursor: pointer; padding: 6px 8px; border-radius: 8px; }
.link-lidas:hover { background: var(--hover); }
.avisos-lista li { animation: surgir .22s var(--ease) both; animation-delay: calc(var(--i, 0) * 40ms); }
.avisos-lista a.novo b::after { content: ''; display: inline-block; width: 7px; height: 7px; margin-left: 6px; border-radius: 99px; background: var(--st-alto); vertical-align: 2px; }

/* tour de primeiro uso (197) */
.tour { position: fixed; inset: 0; z-index: 55; }
.tour-destaque {
  position: fixed; border-radius: 12px; box-shadow: 0 0 0 9999px rgba(10, 20, 15, .55), 0 0 0 3px var(--primaria);
  transition: left .3s var(--ease), top .3s var(--ease), width .3s var(--ease), height .3s var(--ease); pointer-events: none;
}
.tour-caixa { position: fixed; padding: 18px; border-radius: 14px; background: var(--cartao); color: var(--texto); box-shadow: var(--sombra-forte); border: 1px solid var(--borda); transition: left .3s var(--ease), top .3s var(--ease); outline: none; }
.tour-caixa.passo > * { animation: surgir .24s var(--ease) both; }
.tour-caixa h3 { margin: 4px 0 6px; font-size: 1.1rem; }
.tour-caixa p { margin: 0 0 14px; color: var(--suave); line-height: 1.5; }
.tour-contador { font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--primaria-escura); }
.tour-acoes { display: flex; gap: 8px; align-items: center; }
.btn-pular { background: none; border-color: transparent; color: var(--suave); padding-left: 6px; padding-right: 6px; }
.tour-caixa { max-height: calc(100vh - 24px); overflow-y: auto; }
.tour-topo { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.tour-capitulo { font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--primaria-escura); }
.tour-topo .tour-contador { color: var(--suave); text-transform: none; letter-spacing: 0; font-weight: 600; }
.tour-barra { height: 4px; border-radius: 99px; background: var(--borda); margin: 8px 0 10px; overflow: hidden; }
.tour-barra > span { display: block; height: 100%; width: 0; background: var(--primaria); border-radius: inherit; transition: width .3s var(--ease); }
.tour-caixa.carregando p { opacity: .6; }

@media (max-width: 767px) {
  .doca-selecao { left: 50%; bottom: 76px; }
  .cabecalho-distancia { grid-template-columns: 1fr; }
  .cabecalho-distancia > span:not(.escala-distancia) { display: none; }
  .linha-distancia { grid-template-columns: minmax(0, 1fr) 54px; gap: 4px 10px; }
  .linha-distancia .area-distancia { grid-column: 1 / -1; grid-row: 2; }
  .metas-com-aneis { flex-direction: column; align-items: stretch; }
  .metas-com-aneis .aneis { align-self: center; }
}

/* início: ações rápidas como ícones ao lado de "Conhecer o sistema" */
.acoes-inicio { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.acao-icone {
  position: relative; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; text-decoration: none;
  background: var(--cartao); border: 1px solid var(--borda); color: var(--primaria-escura); box-shadow: var(--sombra);
  transition: background .15s var(--ease), transform .12s var(--ease), border-color .15s var(--ease);
}
.acao-icone:hover { background: var(--primaria-suave); border-color: var(--primaria); transform: translateY(-1px); }
.acao-icone::after {
  content: attr(data-dica); position: absolute; left: 50%; top: calc(100% + 8px); transform: translate(-50%, -4px); z-index: 30;
  background: var(--toast-bg); color: var(--toast-tx); font-size: .8rem; font-weight: 600; padding: 5px 10px; border-radius: 7px;
  white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity .15s var(--ease), transform .15s var(--ease);
}
.acao-icone:hover::after, .acao-icone:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
.acoes-inicio .btn { margin-left: 4px; }
/* ficha: troca de aba sem recarregar — ações fixas no cabeçalho e painel que entra suave */
.acoes-ficha { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.acoes-ficha > .acoes:empty { display: none; }
[data-painel-cadastro], [data-painel-anamnese], [data-painel-antropometria], [data-painel-exames],
[data-painel-energia], [data-painel-plano], [data-painel-evolucao] { transition: opacity .18s var(--ease); }
.trocando { opacity: .45; pointer-events: none; }
.painel-entrando { animation: painel-entrar .24s var(--ease); }
@keyframes painel-entrar { from { opacity: 0; transform: translateY(6px); } }
/* modelos de plano: "Meus planos" × "Planos pré-feitos" */
.barra-modelos { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.barra-modelos input { flex: 1; min-width: 220px; }
.abas-modelos { margin: 0; flex: none; }
.abas-modelos button { display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; min-height: 38px; }
.abas-modelos button[aria-selected="true"] { background: var(--cartao); color: var(--texto); box-shadow: var(--sombra); }
.contagem-modelos { font-size: .74rem; font-weight: 700; min-width: 22px; padding: 1px 7px; border-radius: 99px; background: var(--primaria-suave); color: var(--primaria-escura); text-align: center; }
.titulo-secao-modelos { display: flex; align-items: center; gap: 8px; margin: 22px 0 10px; }
.titulo-secao-modelos:first-of-type { margin-top: 4px; }
.selo-modelo-pronto { margin-left: 10px; vertical-align: 2px; font-size: .72rem; font-weight: 600; padding: 2px 9px; border-radius: 99px; background: var(--destaque-bg); color: var(--destaque-tx); }
/* novo plano alimentar: escolha do modelo */
.faixa-meta-plano { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; padding: 16px 20px; margin-bottom: 16px; }
.meta-plano-numero { display: flex; flex-direction: column; gap: 2px; min-width: 170px; }
.meta-plano-numero strong { font-size: 1.5rem; color: var(--primaria-escura); font-variant-numeric: tabular-nums; }
.ajuste-meta { flex: 1; min-width: 260px; align-items: flex-start; padding: 0; }
.ajuste-meta > span { display: flex; flex-direction: column; gap: 2px; }
.ajuste-meta small { color: var(--suave); }
.chips-etiquetas { display: flex; flex-wrap: wrap; gap: 6px; margin: -4px 0 18px; }
.chip-filtro { font: inherit; font-size: .84rem; font-weight: 600; padding: 6px 12px; border-radius: 99px; border: 1px solid var(--borda); background: var(--cartao); color: var(--suave); cursor: pointer; transition: background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease); }
.chip-filtro:hover { border-color: var(--primaria); color: var(--texto); }
.chip-filtro.ativo { background: var(--primaria); border-color: var(--primaria); color: var(--sobre-primaria); }
.secao-novo-plano + .secao-novo-plano { margin-top: 8px; }
.ordem-modelos { font-size: .78rem; font-weight: 400; color: var(--suave); text-transform: none; letter-spacing: 0; }
.grade-modelos-novo { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; margin-bottom: 18px; }
.cartao-modelo-novo {
  font: inherit; color: var(--texto); text-align: left; cursor: pointer; display: flex; flex-direction: column; gap: 8px; padding: 16px;
  transition: border-color .15s var(--ease), transform .15s var(--ease), box-shadow .15s var(--ease); animation: surgir .24s var(--ease) both;
}
.cartao-modelo-novo:hover { border-color: var(--primaria); transform: translateY(-2px); box-shadow: var(--sombra-forte); }
.cartao-modelo-novo.recomendado { border-color: color-mix(in srgb, var(--primaria) 45%, var(--borda)); background: linear-gradient(var(--primaria-suave), var(--primaria-suave)), var(--cartao); }
.cartao-modelo-novo.em-branco { border-style: dashed; justify-content: center; align-items: flex-start; color: var(--primaria-escura); min-height: 150px; }
.cartao-modelo-novo.em-branco small { color: var(--suave); }
.topo-cartao-modelo { display: flex; justify-content: space-between; gap: 6px; align-items: flex-start; }
.etiquetas-modelo { display: flex; flex-wrap: wrap; gap: 4px; }
.etiqueta { font-size: .7rem; font-weight: 700; padding: 2px 8px; border-radius: 99px; background: var(--cartao-2); color: var(--suave); border: 1px solid var(--borda-suave); white-space: nowrap; }
.etiqueta.meu { background: var(--destaque-bg); color: var(--destaque-tx); border-color: transparent; }
.titulo-cartao-modelo { font-size: 1.02rem; line-height: 1.3; }
.motivo-recomendado { display: flex; gap: 5px; align-items: flex-start; color: var(--ideal-tx); font-weight: 600; font-size: .8rem; }
.motivo-recomendado .ic { margin-top: 1px; }
.linha-kcal-modelo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: auto; }
.linha-kcal-modelo strong { font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.selo-meta { font-size: .74rem; font-weight: 700; padding: 2px 8px; border-radius: 99px; }
.selo-meta.perto, .selo-meta.ajustado { background: var(--ideal-bg); color: var(--ideal-tx); }
.selo-meta.medio { background: var(--baixo-bg); color: var(--baixo-tx); }
.selo-meta.longe { background: var(--alto-bg); color: var(--alto-tx); }
.barra-macros-modelo { display: flex; height: 6px; border-radius: 99px; overflow: hidden; background: var(--cartao-2); }
.barra-macros-modelo i { display: block; height: 100%; }
.barra-macros-modelo i.p { background: #2f80ed; }
.barra-macros-modelo i.c { background: #27a160; }
.barra-macros-modelo i.g { background: #f2994a; }
.cartao-modelo-novo .macros-modelo { color: var(--suave); font-size: .78rem; }
/* prévia do modelo na gaveta */
.previa-modelo .detalhe-topo { margin: 12px 0 8px; }
.refeicoes-previa { display: grid; gap: 10px; margin-top: 14px; }
.refeicao-previa { border: 1px solid var(--borda); border-radius: 12px; padding: 10px 14px; }
.refeicao-previa h4 { margin: 0 0 6px; display: flex; gap: 8px; align-items: baseline; font-size: .95rem; }
.hora-previa { font-size: .78rem; font-weight: 700; color: var(--primaria-escura); font-variant-numeric: tabular-nums; }
.refeicao-previa ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.refeicao-previa li { display: flex; justify-content: space-between; gap: 12px; font-size: .9rem; padding: 3px 0; border-bottom: 1px dashed var(--borda-suave); }
.refeicao-previa li:last-child { border-bottom: 0; }
.refeicao-previa li small { color: var(--suave); text-align: right; }
.acoes-previa { position: sticky; bottom: -24px; background: var(--cartao); padding: 12px 0 4px; margin-top: 16px; border-top: 1px solid var(--borda-suave); }
/* ---------- Agenda ---------- */
.barra-agenda { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.navegacao-semana { display: flex; align-items: center; gap: 6px; }
.resumo-semana { display: flex; gap: 14px; flex-wrap: wrap; font-size: .9rem; color: var(--suave); }
.resumo-semana b { color: var(--texto); }
.resumo-semana .ideal b { color: var(--ideal-tx); }
.resumo-semana .alto b { color: var(--alto-tx); }
.dia-semana { font-size: .74rem; font-weight: 700; text-transform: uppercase; color: var(--suave); }
.consultas-dia { display: grid; gap: 6px; }
.consulta-agenda {
  display: grid; gap: 2px; text-align: left; padding: 7px 8px 8px; border-radius: 9px; cursor: pointer; font: inherit; color: var(--texto);
  background: var(--cartao-2); border: 1px solid var(--borda-suave); border-left: 0; position: relative; overflow: hidden;
  transition: transform .12s var(--ease), box-shadow .15s var(--ease); animation: surgir .22s var(--ease) both;
}
.consulta-agenda::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--st-neutro); }
.consulta-agenda.ideal::before { background: var(--st-ideal); }
.consulta-agenda.realizada::before { background: var(--primaria-escura); }
.consulta-agenda.alto::before { background: var(--st-alto); }
.consulta-agenda.cancelada { opacity: .55; }
.consulta-agenda.cancelada b { text-decoration: line-through; }
.consulta-agenda:hover { transform: translateY(-1px); box-shadow: var(--sombra); }
.consulta-agenda b { font-size: .86rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; }
.consulta-agenda small { font-size: .72rem; color: var(--suave); }
.hora-consulta { font-size: .78rem; font-weight: 700; color: var(--primaria-escura); font-variant-numeric: tabular-nums; }
.selo-status { display: inline-block; justify-self: start; font-size: .7rem; font-weight: 700; padding: 1px 8px; border-radius: 99px; background: var(--cartao-2); color: var(--suave); white-space: nowrap; }
.selo-status.ideal { background: var(--ideal-bg); color: var(--ideal-tx); }
.selo-status.baixo { background: var(--baixo-bg); color: var(--baixo-tx); }
.selo-status.alto { background: var(--alto-bg); color: var(--alto-tx); }
.selo-status.realizada { background: var(--primaria-suave); color: var(--primaria-escura); }
.selo-status.cancelada { text-decoration: line-through; }
.acoes-consulta { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.campo-status { display: flex; flex-direction: column; gap: 5px; font-size: .9rem; color: var(--suave); }
.campo-status .segmentado { margin: 0; }
.status-consulta { grid-auto-columns: auto; }
.status-consulta button { padding: 0 8px; font-size: .8rem; }
.rotulo-campo { font-size: .9rem; color: var(--suave); }
/* próximas consultas no Início */
.item-consulta { grid-template-columns: 56px 1fr auto auto; }
.dia-consulta { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 52px; height: 46px; border-radius: 10px; background: var(--cartao-2); text-transform: capitalize; }
.dia-consulta b { font-size: .82rem; }
.dia-consulta small { font-size: .78rem; color: var(--suave); font-variant-numeric: tabular-nums; }
.dia-consulta.hoje { background: var(--primaria-suave); color: var(--primaria-escura); }
.botao-texto { border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; padding: 0; }
.vazio-com-acao { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }

/* ---------- Financeiro ---------- */
.mes-financeiro { min-width: 150px; text-align: center; }
.mes-financeiro::first-letter { text-transform: uppercase; }
.tabela-cartao { padding: 18px 0 6px; margin-top: 16px; }
.tabela-cartao h2 { padding: 0 18px; }
.valor-moeda { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.tabela-financeiro tbody tr { cursor: default; }
.link-paciente { font-weight: 600; text-decoration: none; }
.link-paciente:hover { color: var(--primaria-escura); text-decoration: underline; }
.barra-formas { display: flex; height: 14px; border-radius: 99px; overflow: hidden; gap: 2px; }
.barra-formas span, .legenda-formas i { background: hsl(calc(150 + var(--i) * 47) 45% 42%); }
.barra-formas span { animation: crescer-horizontal .5s var(--ease) both; transform-origin: left; }
.legenda-formas { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; font-size: .84rem; color: var(--suave); }
.legenda-formas span { display: inline-flex; align-items: center; gap: 6px; }
.legenda-formas i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; }
.faixa-aviso + .tabela-cartao, .kpis + .faixa-aviso { margin-top: 16px; }
.valor-recibo { margin: 18px 0 12px; display: inline-flex; flex-direction: column; padding: 10px 18px; border-radius: 8px; background: var(--marca-clara); border: 1px solid var(--marca-media); }
.valor-recibo small { color: #7a7f86; font-size: 11px; }
.valor-recibo b { font-size: 20px; color: var(--marca-escura); }
.texto-recibo { font-size: 14px; line-height: 1.8; margin: 12px 0; }

/* ---------- Documentos (aba da ficha) ---------- */
[data-painel-documentos] .grade-documentos { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 16px; align-items: start; }
.topo-bloco { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.topo-bloco h2 { margin: 0; }
.lista-documentos { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.lista-documentos li { display: flex; align-items: center; gap: 8px; }
.item-documento { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; padding: 8px 10px; border-radius: 10px; text-decoration: none; border: 0; background: none; font: inherit; color: var(--texto); text-align: left; cursor: pointer; transition: background .15s var(--ease); }
.item-documento:hover { background: var(--hover); }
.item-documento small { color: var(--suave); font-size: .8rem; }
.lista-documentos .icone-btn { flex: none; width: 34px; height: 34px; text-decoration: none; }
/* prescrição */
.itens-prescricao { display: grid; gap: 10px; }
.item-prescricao { display: grid; grid-template-columns: 28px minmax(0, 1fr) 36px; gap: 10px; align-items: start; padding: 12px; border: 1px solid var(--borda); border-radius: 12px; animation: surgir .2s var(--ease); }
.numero-item { width: 28px; height: 28px; border-radius: 99px; display: grid; place-items: center; background: var(--primaria-suave); color: var(--primaria-escura); font-weight: 700; font-size: .85rem; }
.campos-item { display: grid; grid-template-columns: 2fr 1fr 2fr 1fr; gap: 8px; }
.campos-item .nome-suplemento { font-weight: 600; }
.campos-item .obs-item { grid-column: 1 / -1; font-size: .88rem; }
.lista-prescricao-pdf { padding-left: 20px; display: grid; gap: 10px; font-size: 13px; }
.lista-prescricao-pdf li div { margin-top: 2px; }
.lista-prescricao-pdf small { display: block; color: #6b6f76; }
.paciente-doc { margin: 12px 0; }
/* pedido de exames */
.grupos-pedido { display: grid; gap: 10px; margin-top: 12px; }
.checks-pedido { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 2px 16px; padding: 0 16px 14px; }
.check-exame { display: flex; align-items: center; gap: 8px; padding: 6px 4px; border-radius: 8px; cursor: pointer; font-size: .92rem; }
.check-exame:hover { background: var(--hover); }
.check-exame input { width: 18px; height: 18px; accent-color: var(--primaria); flex: none; }
.colunas-pedido-pdf { columns: 2; column-gap: 24px; font-size: 12.5px; }
.grupo-pedido-pdf { break-inside: avoid; margin-bottom: 10px; }
.grupo-pedido-pdf b { color: var(--marca-escura); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.grupo-pedido-pdf ul { margin: 4px 0 0; padding-left: 18px; }

/* ---------- Orientações ---------- */
.lista-orientacoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); gap: 14px; align-items: start; }
.cartao-orientacao header { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; margin-bottom: 8px; }
.cartao-orientacao h3 { margin: 6px 0 0; font-size: 1.05rem; }
.texto-orientacao { margin: 0; white-space: pre-wrap; line-height: 1.55; font-size: .92rem; color: var(--suave); display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.escolha-orientacoes { display: grid; gap: 4px; margin: 12px 0; max-height: 58vh; overflow-y: auto; }
.opcao-orientacao { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border-radius: 10px; cursor: pointer; }
.opcao-orientacao:hover { background: var(--hover); }
.opcao-orientacao input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--primaria); flex: none; }
.opcao-orientacao span { display: flex; flex-direction: column; min-width: 0; }
.opcao-orientacao small { color: var(--suave); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Lista de compras ---------- */
.acoes-lista-compras { display: grid; gap: 8px; margin: 14px 0 8px; }
.colunas-compras { columns: 2; column-gap: 26px; margin-top: 14px; }
.secao-compras { break-inside: avoid; margin-bottom: 14px; }
.secao-compras h3 { margin: 0 0 6px; padding-bottom: 3px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--marca-escura); border-bottom: 1px solid var(--marca-media); }
.secao-compras ul { list-style: none; margin: 0; padding: 0; }
.secao-compras li { display: grid; grid-template-columns: 14px 1fr auto; gap: 8px; align-items: start; padding: 4px 0; border-bottom: 1px dotted #ddd; font-size: 12.5px; break-inside: avoid; }
.caixinha { width: 11px; height: 11px; margin-top: 3px; border: 1.5px solid #9aa; border-radius: 3px; }
.nome-compra { display: flex; flex-direction: column; }
.nome-compra small { color: #7a7f86; font-size: 10.5px; }
.qtd-compra { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }

@media (max-width: 1100px) {
  .campos-item { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .item-consulta { grid-template-columns: 52px 1fr auto; }
  .item-consulta .selo-status { display: none; }
  .campos-item { grid-template-columns: 1fr; }
  .colunas-pedido-pdf, .colunas-compras { columns: 1; }
}
/* ---------- Recordatório calculado ---------- */
.linha-recordatorio { grid-template-columns: 110px 170px 1fr 34px; }
.calculo-recordatorio { grid-column: 1 / -1; display: grid; gap: 6px; padding: 8px 10px 10px; margin-top: -2px; border-radius: 10px; background: var(--cartao-2); }
.itens-recordatorio { display: grid; gap: 4px; }
.itens-recordatorio:empty { display: none; }
.item-recordatorio { display: grid; grid-template-columns: 1fr 96px 30px; gap: 8px; align-items: center; font-size: .88rem; animation: surgir .18s var(--ease); }
.qtd-rec { display: flex; align-items: center; gap: 4px; }
.qtd-rec input { padding: 5px 8px; text-align: right; }
.qtd-rec small { color: var(--suave); }
.item-recordatorio .icone-btn { width: 28px; height: 28px; }
.busca-taco { padding: 0; }
.busca-taco input { padding: 7px 10px; font-size: .88rem; background: var(--cartao); }
.busca-taco .resultados-busca { left: 0; right: 0; top: calc(100% + 4px); }
.kcal-linha { font-size: .8rem; font-weight: 700; color: var(--primaria-escura); justify-self: end; }
.kcal-linha:empty { display: none; }
.totais-recordatorio { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 12px; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--borda); background: var(--cartao); animation: surgir .2s var(--ease); }
.totais-recordatorio > div:first-child { display: flex; flex-direction: column; }
.totais-recordatorio strong { font-size: 1.35rem; }
.macros-rec { display: flex; gap: 6px 14px; flex-wrap: wrap; font-size: .86rem; color: var(--suave); flex: 1; }
.comparacao-meta { display: flex; flex-direction: column; padding: 6px 12px; border-radius: 10px; }
.comparacao-meta.perto { background: var(--ideal-bg); color: var(--ideal-tx); }
.comparacao-meta.longe { background: var(--baixo-bg); color: var(--baixo-tx); }
.comparacao-meta strong { font-size: 1.05rem; }

/* ---------- Bioimpedância ---------- */
.grade-bia { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin-bottom: 8px; }
.item-bia { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 10px; background: var(--cartao-2); }
.item-bia strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; }

/* ---------- Fotos de evolução ---------- */
.corpo-fotos { display: grid; gap: 14px; }
.dia-fotos { display: grid; gap: 6px; }
.miniaturas { display: flex; gap: 10px; flex-wrap: wrap; }
.miniatura { position: relative; width: 112px; height: 150px; padding: 0; border: 1px solid var(--borda); border-radius: 10px; overflow: hidden; cursor: zoom-in; background: var(--cartao-2); transition: transform .15s var(--ease), box-shadow .15s var(--ease); }
.miniatura:hover { transform: translateY(-2px); box-shadow: var(--sombra-forte); }
.miniatura img { width: 100%; height: 100%; object-fit: cover; display: block; }
.miniatura span { position: absolute; left: 6px; bottom: 6px; font-size: .7rem; font-weight: 700; padding: 1px 7px; border-radius: 99px; background: rgba(0,0,0,.55); color: #fff; }
.foto-grande { width: 100%; max-height: 70vh; object-fit: contain; border-radius: 12px; background: var(--cartao-2); margin: 8px 0; }
.grade-envio { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 14px 0; }
.previa-envio { display: grid; gap: 6px; }
.previa-envio img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 10px; border: 1px solid var(--borda); }
.comparador { position: relative; margin: 12px 0 6px; border-radius: 12px; overflow: hidden; background: var(--cartao-2); --corte: 50%; }
.comparador > img, .camada-depois img { display: block; width: 100%; max-height: 65vh; object-fit: contain; }
.camada-depois { position: absolute; inset: 0; clip-path: inset(0 0 0 var(--corte)); }
.linha-corte { position: absolute; top: 0; bottom: 0; left: var(--corte); width: 2px; margin-left: -1px; background: #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.25); pointer-events: none; }
.faixa-comparador { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
.faixa-comparador:focus-visible + .rotulo-antes, .comparador:focus-within { outline: 2px solid var(--primaria); outline-offset: 2px; }
.rotulo-antes, .rotulo-depois { position: absolute; top: 10px; font-size: .74rem; font-weight: 700; padding: 2px 9px; border-radius: 99px; background: rgba(0,0,0,.55); color: #fff; pointer-events: none; }
.rotulo-antes { left: 10px; } .rotulo-depois { right: 10px; }

/* ---------- Curvas de crescimento ---------- */
.kpis-curvas { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin-bottom: 8px; }
.kpi-curva { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: 12px; background: var(--cartao-2); }
.kpi-curva strong { font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.z-curva { font-size: .82rem; color: var(--suave); font-variant-numeric: tabular-nums; }
.cartao-curvas .graficos-antropo { margin-top: 8px; }

@media (max-width: 720px) {
  .linha-recordatorio { grid-template-columns: 1fr 1fr 34px; }
  .item-recordatorio { grid-template-columns: 1fr 86px 28px; }
}
/* ---------- Financeiro completo ---------- */
.kpis-financeiro .kpi.receita { border-top-color: var(--st-ideal); }
.kpis-financeiro .kpi.despesa { border-top-color: #e8743b; }
.kpis-financeiro .kpi.positivo { border-top-color: var(--primaria-escura); }
.kpis-financeiro .kpi.positivo .kpi-grande { color: var(--ideal-tx); }
.kpis-financeiro .kpi.negativo { border-top-color: var(--st-alto); }
.kpis-financeiro .kpi.negativo .kpi-grande { color: var(--alto-tx); }
.kpis-financeiro .kpi.baixo .kpi-grande { color: var(--baixo-tx); }
.valor-moeda.receita { color: var(--ideal-tx); }
.valor-moeda.despesa { color: var(--alto-tx); }
.kpis-financeiro + .faixa-aviso, .faixa-aviso + .faixa-aviso { margin-top: 14px; }
.legenda-financeiro { display: flex; gap: 14px; flex-wrap: wrap; font-size: .8rem; color: var(--suave); }
.legenda-financeiro span { display: inline-flex; align-items: center; gap: 6px; }
.legenda-financeiro i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; }
.legenda-financeiro i.receita { background: var(--st-ideal); }
.legenda-financeiro i.despesa { background: #e8743b; }
.legenda-financeiro i.resultado { height: 3px; border-radius: 2px; background: var(--texto); }
.grafico-financeiro { max-height: 300px; }
.barra-serie { transform-box: fill-box; transform-origin: bottom; animation: crescer-barra .5s var(--ease) both; animation-delay: calc(var(--i) * 30ms); }
.lista-categorias { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.topo-categoria { display: flex; justify-content: space-between; gap: 10px; font-size: .9rem; margin-bottom: 4px; }
.topo-categoria span { display: inline-flex; align-items: center; gap: 8px; }
.topo-categoria i { width: 10px; height: 10px; border-radius: 3px; background: var(--cor); }
.topo-categoria b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.lista-categorias .preenchido { background: var(--cor); }
.categoria-despesa { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; }
.categoria-despesa::before { content: ''; width: 8px; height: 8px; border-radius: 99px; background: var(--cor); flex: none; }
.etiqueta.fixa { margin-left: 8px; background: var(--primaria-suave); color: var(--primaria-escura); border-color: transparent; }
.lista-fixas { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 2px; }
.lista-fixas li { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 8px 6px; border-bottom: 1px solid var(--borda-suave); }
.lista-fixas li:last-child { border-bottom: 0; }
.lista-fixas li > div { display: flex; flex-direction: column; min-width: 0; }
.lista-fixas small { color: var(--suave); font-size: .8rem; }
.lista-fixas li.encerrada { opacity: .55; }
.contador-aba { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--st-alto); color: #fff; font-size: .7rem; font-weight: 700; display: inline-grid; place-items: center; }
.campos-check span small { color: var(--suave); font-weight: 400; }
@media (max-width: 767px) {
  .barra-agenda .abas-modelos { width: 100%; }
  .lista-fixas li { grid-template-columns: 1fr auto; }
  .lista-fixas li .menu-acoes-wrap { grid-column: 2; grid-row: 1 / span 2; }
}
/* ---------- Configurações ---------- */
.sem-whatsapp [data-whatsapp], .sem-sino .avisos-wrap { display: none !important; }
.grade-config { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 16px; align-items: start; }
.grupo-config .topo-bloco { align-items: flex-start; }
/* WhatsApp: cartões de alturas bem diferentes (o da conexão tem o QR code). Em grade, cada linha
   fica da altura do maior e sobra um buraco embaixo do menor; em colunas, cada cartão encosta no de cima. */
.grade-config.grade-wa { display: block; columns: 2 440px; column-gap: 16px; }
.grade-wa > * { break-inside: avoid; margin: 0 0 16px; }
.grade-wa + .margem-topo { margin-top: 0; }
.grupo-config h2 { display: flex; align-items: center; }
.lista-config { display: grid; }
.linha-config { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 4px; border-bottom: 1px solid var(--borda-suave); cursor: pointer; border-radius: 8px; transition: background .15s var(--ease); }
.linha-config:last-child { border-bottom: 0; }
.linha-config:hover { background: var(--hover); }
.texto-config { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.texto-config small { color: var(--suave); font-size: .82rem; }
.chave-config input[type="checkbox"] {
  appearance: none; -webkit-appearance: none; flex: none; width: 44px; height: 26px; margin: 0; border-radius: 99px; cursor: pointer;
  background: var(--borda); position: relative; transition: background .2s var(--ease);
}
.chave-config input[type="checkbox"]::after {
  content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 99px; background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .22s var(--ease), width .12s var(--ease);
}
.chave-config input[type="checkbox"]:checked { background: var(--primaria); }
.chave-config input[type="checkbox"]:checked::after { transform: translateX(18px); }
.chave-config input[type="checkbox"]:active::after { width: 25px; }
.chave-config input[type="checkbox"]:checked:active::after { transform: translateX(13px); }
.chave-config input[type="checkbox"]:focus-visible { outline: 2px solid var(--primaria); outline-offset: 2px; }
.linha-config .segmentado { margin: 0; flex: none; }
/* ---------- Agenda em calendário ---------- */
.titulo-agenda::first-letter { text-transform: uppercase; }
.vistas-agenda { margin: 0; }
.vistas-agenda button { min-width: 64px; }
.layout-cal-mes { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start; }
.cartao-cal { padding: 0; overflow: hidden; }
.cal-mes { display: grid; }
.cal-cabeca, .cal-linha { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal-cabeca span { padding: 10px 8px 8px; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); border-bottom: 1px solid var(--borda); }
.cal-dia {
  display: flex; flex-direction: column; gap: 3px; min-height: 108px; padding: 6px; cursor: pointer; min-width: 0;
  border-right: 1px solid var(--borda-suave); border-bottom: 1px solid var(--borda-suave); transition: background .15s var(--ease);
}
.cal-linha .cal-dia:last-child { border-right: 0; }
.cal-linha:last-child .cal-dia { border-bottom: 0; }
.cal-dia:hover { background: var(--hover); }
.cal-dia.fim-semana { background: color-mix(in srgb, var(--cartao-2) 55%, transparent); }
.cal-dia.fim-semana:hover { background: var(--hover); }
.cal-dia.fora { background: var(--cartao-2); }
.cal-dia.fora .cal-numero, .cal-dia.fora .cal-evento { opacity: .5; }
.cal-dia.selecionado { background: var(--primaria-suave); box-shadow: inset 0 0 0 2px var(--primaria); }
.cal-numero {
  align-self: flex-start; width: 28px; height: 28px; border-radius: 99px; border: 0; background: none; cursor: pointer;
  font: inherit; font-size: .88rem; font-weight: 700; color: var(--texto); font-variant-numeric: tabular-nums; display: grid; place-items: center;
}
.cal-dia.passado:not(.hoje) .cal-numero { color: var(--suave); font-weight: 600; }
.cal-dia.hoje .cal-numero { background: var(--primaria); color: #fff; }
.cal-eventos { display: grid; gap: 3px; min-width: 0; }
.cal-evento {
  display: flex; gap: 5px; align-items: center; min-width: 0; padding: 2px 6px 2px 8px; border-radius: 6px; cursor: pointer;
  font: inherit; font-size: .76rem; line-height: 1.35; text-align: left; color: var(--texto);
  background: var(--cartao); border: 1px solid var(--borda-suave); position: relative; overflow: hidden;
  transition: transform .12s var(--ease), box-shadow .15s var(--ease);
}
.cal-evento::before, .cal-bloco::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--st-neutro); }
.cal-evento.ideal::before, .cal-bloco.ideal::before { background: var(--st-ideal); }
.cal-evento.realizada::before, .cal-bloco.realizada::before { background: var(--primaria-escura); }
.cal-evento.alto::before, .cal-bloco.alto::before { background: var(--st-alto); }
.cal-evento.cancelada, .cal-bloco.cancelada { opacity: .5; text-decoration: line-through; }
.cal-evento:hover { transform: translateY(-1px); box-shadow: var(--sombra); }
.hora-evento { font-weight: 700; color: var(--primaria-escura); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.nome-evento { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-mais { border: 0; background: none; padding: 0 6px; font: inherit; font-size: .74rem; font-weight: 700; color: var(--suave); text-align: left; cursor: pointer; }
.cal-mais:hover { color: var(--primaria-escura); text-decoration: underline; }
.painel-dia-agenda { position: sticky; top: 84px; display: flex; flex-direction: column; gap: 12px; }
.painel-dia-agenda header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.painel-dia-agenda h2 { margin: 2px 0 0; font-size: 1.15rem; text-transform: none; letter-spacing: 0; color: var(--texto); }
.painel-dia-agenda .consultas-dia { display: grid; gap: 8px; }
.vazio-dia { margin: 0; padding: 18px 8px; text-align: center; color: var(--suave); font-size: .9rem; border: 1px dashed var(--borda); border-radius: 10px; }
.agendar-no-dia { justify-content: center; }

/* semana e dia por horário */
.rolagem-cal { overflow-x: auto; }
.cal-horarios { display: grid; min-width: calc(56px + var(--dias) * 92px); }
.cal-horarios.um-dia { min-width: 0; }
.cal-topo, .cal-corpo { display: grid; grid-template-columns: 56px repeat(var(--dias), minmax(0, 1fr)); }
.cal-topo { position: sticky; top: 0; z-index: 2; background: var(--cartao); border-bottom: 1px solid var(--borda); }
.cal-cabeca-dia {
  display: flex; align-items: baseline; justify-content: center; gap: 6px; padding: 10px 4px; border: 0; border-left: 1px solid var(--borda-suave);
  background: none; font: inherit; color: var(--texto); cursor: pointer; transition: background .15s var(--ease);
}
.cal-cabeca-dia:hover { background: var(--hover); }
.cal-cabeca-dia strong { font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.cal-cabeca-dia.hoje strong { color: #fff; background: var(--primaria); border-radius: 99px; min-width: 30px; height: 30px; display: inline-grid; place-items: center; font-size: 1rem; }
.cal-guia { position: relative; }
.cal-guia span { position: absolute; right: 8px; transform: translateY(-50%); font-size: .72rem; color: var(--suave); font-variant-numeric: tabular-nums; }
.cal-guia span:first-child { transform: none; top: 4px !important; }
.cal-coluna {
  position: relative; border-left: 1px solid var(--borda-suave); cursor: copy;
  background-image: linear-gradient(var(--borda-suave) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--borda-suave) 50%, transparent) 1px, transparent 1px);
  background-size: 100% 60px, 100% 30px;
}
.cal-coluna:hover { background-color: color-mix(in srgb, var(--hover) 45%, transparent); }
.cal-coluna.fim-semana { background-color: color-mix(in srgb, var(--cartao-2) 55%, transparent); }
.cal-coluna.hoje { background-color: color-mix(in srgb, var(--primaria-suave) 40%, transparent); }
.cal-bloco {
  position: absolute; display: flex; flex-direction: column; gap: 1px; padding: 4px 6px 4px 9px; overflow: hidden; cursor: pointer;
  border-radius: 8px; border: 1px solid var(--borda); background: var(--cartao); color: var(--texto); font: inherit; text-align: left;
  box-shadow: 0 1px 2px rgb(0 0 0 / .06); transition: box-shadow .15s var(--ease), transform .12s var(--ease); animation: surgir .22s var(--ease) both;
}
.cal-bloco:hover { z-index: 1; box-shadow: var(--sombra); transform: translateY(-1px); }
.cal-bloco .hora-evento { font-size: .72rem; }
.cal-bloco b { font-size: .84rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-bloco small { font-size: .72rem; color: var(--suave); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-bloco.curto { flex-direction: row; align-items: center; gap: 6px; padding-top: 1px; padding-bottom: 1px; }
.cal-bloco.curto small { display: none; }
.linha-agora { position: absolute; left: 0; right: 0; height: 2px; background: var(--st-alto); pointer-events: none; z-index: 1; }
.linha-agora::before { content: ''; position: absolute; left: -5px; top: -4px; width: 10px; height: 10px; border-radius: 99px; background: var(--st-alto); }

@media (max-width: 1100px) {
  .layout-cal-mes { grid-template-columns: 1fr; }
  .painel-dia-agenda { position: static; }
}
@media (max-width: 767px) {
  .barra-agenda .vistas-agenda { order: 3; width: 100%; }
  .cal-dia { min-height: 54px; padding: 4px 2px; align-items: center; }
  .cal-numero { align-self: center; width: 26px; height: 26px; font-size: .82rem; }
  /* no celular cada consulta vira um pontinho colorido */
  .cal-eventos { display: flex; flex-wrap: wrap; justify-content: center; gap: 3px; }
  .cal-evento { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 99px; background: var(--st-neutro); pointer-events: none; }
  .cal-evento > *, .cal-evento::before, .cal-mais { display: none; }
  .cal-evento.ideal { background: var(--st-ideal); }
  .cal-evento.realizada { background: var(--primaria-escura); }
  .cal-evento.alto { background: var(--st-alto); }
  .cal-cabeca span { padding: 8px 2px; text-align: center; font-size: .68rem; }
  .cal-cabeca-dia { flex-direction: column; align-items: center; gap: 2px; }
}

/* ---------- WhatsApp automático ---------- */
.alerta-wa { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 16px; }
.alerta-wa svg { flex-shrink: 0; margin-top: 2px; color: var(--baixo-tx); }
.estado-wa { display: grid; gap: 12px; justify-items: start; margin-top: 12px; }
.qr-wa { margin: 0; display: grid; gap: 8px; justify-items: center; padding: 14px; border-radius: 12px; background: #fff; border: 1px solid var(--borda); }
.qr-wa img { width: 240px; height: 240px; image-rendering: pixelated; }
.qr-wa figcaption { max-width: 260px; font-size: .8rem; color: #4b5560; text-align: center; }
.registro-wa { margin-top: 14px; font-size: .85rem; }
.registro-wa summary { cursor: pointer; color: var(--suave); }
.registro-wa pre { max-height: 220px; overflow: auto; margin: 8px 0 0; padding: 10px; border-radius: 8px; background: var(--cartao-2); font-size: .72rem; white-space: pre-wrap; word-break: break-word; }
.variaveis-wa { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.variaveis-wa small { color: var(--suave); }
.variaveis-wa .chip { padding: 3px 10px; border-radius: 99px; border: 1px solid var(--borda); background: var(--cartao-2); font: inherit; font-size: .8rem; cursor: pointer; color: var(--texto); }
.variaveis-wa .chip:hover { background: var(--hover); }
.previa-wa { margin: 6px 0 0; padding: 10px 12px; border-radius: 4px 12px 12px 12px; background: var(--primaria-suave); white-space: pre-wrap; font-size: .9rem; max-width: 460px; }
.lista-wa { list-style: none; margin: 8px 0 0; padding: 0; display: grid; }
.lista-wa li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 10px 4px; border-bottom: 1px solid var(--borda-suave); }
.lista-wa li:last-child { border-bottom: 0; }
.lista-wa li.destaque { background: var(--perigo-bg); border-radius: 8px; padding-inline: 8px; }
.lista-wa li > div:first-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lista-wa small { color: var(--suave); font-size: .78rem; }
.texto-wa { font-size: .85rem; color: var(--suave); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.caixa-autoriza { flex-direction: row !important; align-items: center; gap: 10px; }
.caixa-autoriza input { width: auto; }
.caixa-autoriza small { color: var(--suave); }
@media (max-width: 767px) {
  .lista-wa li { grid-template-columns: minmax(0, 1fr) auto; }
  .lista-wa li > :nth-child(3) { grid-column: 1 / -1; justify-self: start; }
}

/* ---------- Contas: entrar, menu do usuário, equipe ---------- */
.pagina-entrar { min-height: 100vh; background: var(--bg); }
main.entrar { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); max-width: none; margin: 0; padding: 0; }
.entrar-marca {
  position: relative; display: flex; flex-direction: column; justify-content: flex-start; gap: 22px; padding: clamp(40px, 8vh, 72px) clamp(24px, 6vw, 88px) 64px;
  /* foto da salada: o texto fica em cima, sobre o fundo escuro desfocado; a salada aparece embaixo */
  background:
    linear-gradient(180deg, rgba(10, 30, 19, .88) 0%, rgba(10, 30, 19, .62) 32%, rgba(10, 30, 19, 0) 58%, rgba(10, 30, 19, .25) 100%),
    url("img/login-salada.jpg") center bottom / cover no-repeat, #164a2f;
  color: #fff;
}
.entrar-marca > .entrar-logo { text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }
.entrar-frase, .entrar-lista { text-shadow: 0 1px 8px rgba(0, 0, 0, .35); }
.entrar-credito { position: absolute; right: 16px; bottom: 12px; margin: 0; font-size: .72rem; opacity: .8; text-shadow: 0 1px 4px rgba(0, 0, 0, .6); }
.entrar-cartao > .entrar-logo.so-celular { display: none; }
.entrar-logo { display: flex; align-items: center; gap: 10px; font-size: 1.5rem; font-weight: 800; letter-spacing: -.01em; }
.entrar-marca .entrar-logo { font-size: 2.6rem; }
.entrar-frase { margin: 0; max-width: 540px; font-size: 1.5rem; line-height: 1.45; opacity: .97; }
.entrar-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; font-size: 1.2rem; }
.entrar-lista li { display: flex; gap: 12px; align-items: center; opacity: .95; }
.entrar-lista li svg { width: 22px; height: 22px; flex: none; }
.entrar-marca .entrar-logo svg { width: 34px; height: 34px; }
.entrar-cartao { display: flex; flex-direction: column; justify-content: center; gap: 18px; padding: 48px clamp(20px, 6vw, 80px); max-width: 560px; width: 100%; justify-self: center; }
.entrar-cartao > .entrar-logo { color: var(--primaria-escura); }
.pagina-entrar .entrar-cartao { font-size: 1.06rem; }
.entrar-abas { align-self: stretch; }
.entrar-form { display: grid; gap: 14px; animation: surgir .25s var(--ease) both; }
.entrar-form h1 { margin: 0 0 4px; font-size: 1.9rem; }
.entrar-form label { display: grid; gap: 7px; font-size: 1.02rem; color: var(--suave); }
.entrar-form label.check { display: flex; gap: 10px; align-items: flex-start; color: var(--texto); }
.entrar-form label.check input { width: auto; margin-top: 3px; }
.entrar-form input { font: inherit; font-size: 1.05rem; min-height: 46px; }
.btn.largo { width: 100%; justify-content: center; min-height: 48px; font-size: 1.08rem; }
.campo-senha { position: relative; display: block; }
.campo-senha input { width: 100%; padding-right: 44px; }
.campo-senha .ver-senha { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); }
@media (max-width: 860px) {
  main.entrar { grid-template-columns: 1fr; padding: 0; }
  /* no celular a foto vira uma faixa no topo, só com a marca */
  .entrar-marca { min-height: 200px; padding: 22px 20px; justify-content: flex-start; background-position: center, center 88%; }
  .entrar-marca > .entrar-logo { font-size: 2rem; }
  .entrar-frase, .entrar-lista { display: none; }
  .entrar-cartao { padding-top: 24px; justify-content: flex-start; }
}


.usuario-wrap { position: relative; }
.btn-usuario { padding: 0; }
.avatar-usuario {
  display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 99px; flex-shrink: 0;
  background: var(--primaria-suave); color: var(--primaria-escura); font-weight: 800; font-size: .8rem; letter-spacing: .02em;
}
.avatar-usuario.grande { width: 44px; height: 44px; font-size: 1rem; }
.popover-usuario {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 60; width: 280px; padding: 8px; border-radius: 14px;
  background: var(--cartao); border: 1px solid var(--borda); box-shadow: var(--sombra-forte); display: grid; gap: 2px;
  animation: surgir .18s var(--ease) both;
}
.popover-usuario[hidden] { display: none; }
.cabeca-usuario { display: flex; gap: 12px; align-items: center; padding: 8px 8px 12px; border-bottom: 1px solid var(--borda-suave); margin-bottom: 4px; }
.cabeca-usuario > div { display: grid; gap: 2px; min-width: 0; }
.cabeca-usuario small { color: var(--suave); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conta-atual { display: flex; gap: 8px; align-items: center; margin: 0; padding: 6px 10px; font-size: .85rem; color: var(--suave); }
.popover-usuario a, .popover-usuario > button {
  display: flex; gap: 10px; align-items: center; padding: 9px 10px; border-radius: 8px; border: 0; background: none;
  font: inherit; color: var(--texto); text-decoration: none; cursor: pointer; text-align: left;
}
.popover-usuario a:hover, .popover-usuario > button:hover, .popover-usuario a:focus-visible, .popover-usuario > button:focus-visible { background: var(--hover); }
.selo-papel { justify-self: start; display: inline-block; padding: 1px 9px; border-radius: 99px; font-size: .72rem; font-weight: 700; background: var(--cartao-2); color: var(--suave); white-space: nowrap; }
.selo-papel.dono { background: var(--primaria-suave); color: var(--primaria-escura); }
.selo-papel.nutricionista { background: var(--ideal-bg); color: var(--ideal-tx); }
.selo-papel.secretaria { background: var(--baixo-bg); color: var(--baixo-tx); }

.lista-equipe { list-style: none; margin: 0; padding: 0; display: grid; }
.lista-equipe li { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto auto auto; gap: 12px; align-items: center; padding: 12px 4px; border-bottom: 1px solid var(--borda-suave); }
.lista-equipe li:last-child { border-bottom: 0; }
.lista-equipe li > div { display: grid; gap: 2px; min-width: 0; }
.lista-equipe small { color: var(--suave); font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lista-equipe li.suspenso { opacity: .6; }
.tabela-funcoes { width: 100%; border-collapse: collapse; font-size: .9rem; }
.tabela-funcoes th, .tabela-funcoes td { padding: 9px 8px; border-bottom: 1px solid var(--borda-suave); text-align: center; }
.tabela-funcoes th:first-child, .tabela-funcoes td:first-child { text-align: left; }
.tabela-funcoes td.sim { color: var(--ideal-tx); font-weight: 800; }
.tabela-funcoes td.nao { color: var(--suave); }
.senha-gerada { display: grid; gap: 12px; }
.caixa-senha { display: grid; grid-template-columns: auto 1fr; gap: 8px 14px; align-items: center; padding: 14px; border-radius: 12px; background: var(--cartao-2); border: 1px dashed var(--borda); }
.caixa-senha span { color: var(--suave); font-size: .85rem; }
.caixa-senha code { font-size: 1.15rem; font-weight: 800; letter-spacing: .06em; color: var(--primaria-escura); user-select: all; }
.margem-baixo { margin-bottom: 16px; }

.pagina-texto { background: var(--bg); }
.texto-legal { max-width: 760px; margin: 0 auto; padding: 32px 20px 64px; line-height: 1.6; }
.texto-legal h1 { font-size: 1.6rem; }
.texto-legal h2 { font-size: 1.1rem; margin-top: 28px; }
@media (max-width: 767px) {
  .lista-equipe li { grid-template-columns: 36px minmax(0, 1fr) auto; }
  .lista-equipe li > .selo-papel, .lista-equipe li > .selo-status { grid-column: 2; justify-self: start; }
  .lista-equipe li > :last-child { grid-column: 3; grid-row: 1; }
  .tabela-funcoes { font-size: .8rem; }
}

/* ---------- Painel de administração ---------- */
.pagina-admin { min-height: 100vh; background: var(--bg); }
.adm-login { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; max-width: none; }
.adm-login .entrar-cartao { max-width: 420px; padding: 32px; border-radius: 18px; background: var(--cartao); border: 1px solid var(--borda); box-shadow: var(--sombra-forte); }
.adm-login .entrar-logo { color: var(--primaria-escura); margin-bottom: 4px; }
.adm-topo {
  position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 10px; padding: 10px 24px;
  background: #143d27; color: #fff; border-bottom: 1px solid rgb(255 255 255 / .08);
}
.adm-topo .btn { background: rgb(255 255 255 / .08); color: #fff; border-color: rgb(255 255 255 / .18); }
.adm-topo .btn:hover { background: rgb(255 255 255 / .16); }
.adm-marca { display: flex; align-items: center; gap: 8px; color: #fff; text-decoration: none; }
.adm-marca span { padding: 1px 8px; border-radius: 99px; background: #e8b04b; color: #3a2700; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.adm-quem { font-size: .88rem; opacity: .85; }
.adm-nav { display: flex; gap: 4px; padding: 8px 24px; overflow-x: auto; background: var(--cartao); border-bottom: 1px solid var(--borda); position: sticky; top: 52px; z-index: 19; }
.adm-nav a { display: flex; gap: 7px; align-items: center; padding: 8px 12px; border-radius: 9px; color: var(--suave); text-decoration: none; font-size: .9rem; font-weight: 600; white-space: nowrap; }
.adm-nav a:hover { background: var(--hover); color: var(--texto); }
.adm-nav a.ativo { background: var(--primaria-suave); color: var(--primaria-escura); }
.adm-conteudo { max-width: 1280px; margin: 0 auto; padding: 24px 24px 64px; outline: none; }
.adm-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.adm-kpi { display: grid; gap: 4px; border-top: 3px solid var(--borda); }
.adm-kpi strong { font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.adm-kpi small { color: var(--suave); }
.adm-kpi.ideal { border-top-color: var(--st-ideal); }
.adm-kpi.baixo { border-top-color: var(--st-baixo); }
.adm-kpi.alto { border-top-color: var(--st-alto); }
.adm-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; margin-top: 16px; align-items: start; }
.adm-barras { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 8px; height: 220px; align-items: end; margin-top: 8px; }
.adm-barra { display: grid; grid-template-rows: auto 1fr auto; gap: 4px; height: 100%; text-align: center; }
.adm-barra .trilho { display: flex; align-items: flex-end; border-radius: 6px; background: var(--cartao-2); overflow: hidden; }
.adm-barra .trilho div { width: 100%; background: var(--primaria); border-radius: 6px 6px 0 0; min-height: 0; transition: height .4s var(--ease); }
.adm-barra .valor { font-size: .66rem; color: var(--suave); white-space: nowrap; overflow: hidden; }
.adm-barra .mes { font-size: .72rem; color: var(--suave); text-transform: capitalize; }
.adm-lista { list-style: none; margin: 8px 0 0; padding: 0; display: grid; }
.adm-lista li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 10px 2px; border-bottom: 1px solid var(--borda-suave); }
.adm-lista li:last-child { border-bottom: 0; }
.adm-lista li > a, .adm-lista li > div:first-child { display: grid; gap: 2px; min-width: 0; color: inherit; text-decoration: none; }
.adm-lista li > a:hover b { text-decoration: underline; }
.adm-lista small { color: var(--suave); font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-lista li.apagado { opacity: .55; }
.adm-prazo { font-size: .82rem; color: var(--suave); white-space: nowrap; }
.adm-barra-filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 8px; }
.adm-busca { flex: 1 1 260px; min-width: 0; }
.adm-filtros { flex-wrap: wrap; }
.adm-filtros button { padding: 0 10px; font-size: .82rem; }
.adm-tabela-wrap { padding: 0; overflow-x: auto; }
.adm-tabela { width: 100%; border-collapse: collapse; font-size: .88rem; }
.adm-tabela th { position: sticky; top: 0; text-align: left; padding: 10px 12px; font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); background: var(--cartao); border-bottom: 1px solid var(--borda); white-space: nowrap; }
.adm-tabela td { padding: 10px 12px; border-bottom: 1px solid var(--borda-suave); vertical-align: middle; }
.adm-tabela td small { display: block; color: var(--suave); font-size: .78rem; }
.adm-tabela .num { text-align: right; font-variant-numeric: tabular-nums; }
.adm-tabela.clicavel tbody tr { cursor: pointer; }
.adm-tabela tbody tr:hover { background: var(--hover); }
.adm-tabela tr.alerta td { color: var(--alto-tx); }
.vazio-tabela { text-align: center; color: var(--suave); padding: 28px !important; }
.adm-linha { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px dashed var(--borda-suave); font-size: .9rem; }
.adm-linha > span { color: var(--suave); }
.adm-linha select, .adm-linha input { max-width: 100%; }
.adm-chaves { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.adm-log { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; max-height: 320px; overflow: auto; }
.adm-log li { display: grid; gap: 2px; font-size: .86rem; }
.adm-log small { color: var(--suave); }
.adm-perigo { border-color: var(--perigo-borda, var(--st-alto)); }
.adm-inline { display: flex; gap: 8px; align-items: center; font-size: .88rem; color: var(--suave); }
.adm-total { margin-left: auto; color: var(--suave); }
.adm-total b { color: var(--texto); font-size: 1.1rem; }
.adm-codigo { font-weight: 800; letter-spacing: .04em; color: var(--primaria-escura); }
.adm-planos { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.adm-plano header { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.adm-plano.inativo { opacity: .6; }
.adm-preco { margin: 6px 0 2px; color: var(--suave); }
.adm-preco b { font-size: 1.5rem; color: var(--texto); }
.adm-modal-fundo { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 16px; background: rgb(8 20 14 / .55); animation: surgir .15s var(--ease) both; }
.adm-modal { width: min(560px, 100%); max-height: calc(100vh - 32px); overflow: auto; padding: 20px 22px; border-radius: 16px; background: var(--cartao); border: 1px solid var(--borda); box-shadow: var(--sombra-forte); }
.adm-modal header { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.adm-modal h2 { margin: 0; font-size: 1.1rem; }
.adm-form { display: grid; gap: 12px; }
.adm-avisos { position: fixed; right: 16px; bottom: 16px; z-index: 200; display: grid; gap: 8px; }
.adm-aviso { padding: 10px 16px; border-radius: 10px; background: var(--toast-bg); color: var(--toast-tx); box-shadow: var(--sombra-forte); animation: surgir .2s var(--ease) both; max-width: 360px; }
@media (max-width: 767px) {
  .adm-topo, .adm-nav { padding-left: 16px; padding-right: 16px; }
  .adm-quem { display: none; }
  .adm-conteudo { padding: 16px 16px 64px; }
  .adm-barras { gap: 3px; }
  .adm-barra .valor { display: none; }
  .adm-linha { grid-template-columns: 1fr; gap: 4px; }
  .adm-lista li { grid-template-columns: minmax(0, 1fr) auto; }
  .adm-lista li > :nth-child(3) { grid-column: 1 / -1; }
}

/* faixa da assinatura no sistema das nutricionistas */
.faixa-assinatura { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; padding: 10px 14px; margin-bottom: 16px; border-radius: 12px; background: var(--aviso-bg); border: 1px solid var(--aviso-borda); color: var(--baixo-tx); font-size: .9rem; }
.faixa-assinatura.alto { background: var(--perigo-bg); border-color: var(--perigo-borda); color: var(--alto-tx); }
.faixa-assinatura.ideal { background: var(--ideal-bg); border-color: transparent; color: var(--ideal-tx); }
.faixa-assinatura .espaco { flex: 1; }
.faixa-assinatura a { color: inherit; font-weight: 700; }

.cupom-cadastro { border: 1px dashed var(--borda); border-radius: 10px; padding: 8px 12px; }
.cupom-cadastro summary { cursor: pointer; color: var(--suave); font-size: .9rem; }
.cupom-cadastro[open] { display: grid; gap: 8px; }
.cupom-cadastro .cupom-ok { color: var(--ideal-tx); font-weight: 700; }
#faixa-assinatura { max-width: 1240px; margin: 0 auto; padding: 16px 28px 0; }
#faixa-assinatura:empty { display: none; }
#faixa-assinatura .faixa-assinatura { margin-bottom: 0; }
@media (max-width: 767px) { #faixa-assinatura { padding: 12px 14px 0; } }
/* recuperação de senha */
.aviso-sucesso { margin: 0; padding: 12px 14px; border-radius: 10px; background: var(--ideal-bg); color: var(--ideal-tx); font-size: .92rem; line-height: 1.45; }

/* ---------- Subnavegação (Modelos; Configurações) ---------- */
.subnav { display: flex; gap: 4px; max-width: 1240px; margin: 18px auto -8px; padding: 0 28px; overflow-x: auto; scrollbar-width: none; }
.subnav-item {
  display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 99px; white-space: nowrap;
  font-size: .9rem; font-weight: 600; color: var(--suave); text-decoration: none; border: 1px solid transparent;
  transition: background .15s var(--ease), color .15s var(--ease);
}
.subnav-item:hover { background: var(--hover); color: var(--texto); }
.subnav-item.ativo { background: var(--primaria-suave); color: var(--primaria-escura); border-color: color-mix(in srgb, var(--primaria) 30%, transparent); }
@media (max-width: 767px) { .subnav { padding: 0 14px; margin-top: 12px; } }

/* ---------- Acesso do paciente ao portal (gaveta da ficha) ---------- */
.status-portal { display: grid; gap: 8px; margin: 12px 0 4px; }
.linha-status-portal { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.linha-status-portal small { color: var(--suave); }
.titulo-secao-portal { margin: 18px 0 6px; font-size: .95rem; }
.resultado-convite { margin-top: 12px; padding: 12px; border: 1px dashed var(--borda); border-radius: 12px; display: grid; gap: 8px; }
.resultado-convite p { margin: 0; }
.link-convite { display: block; padding: 8px 10px; border-radius: 8px; background: var(--cartao-2); font-size: .82rem; word-break: break-all; user-select: all; }

/* ---------- Endereço próprio do consultório (subdomínio) ---------- */
.endereco-dominio { display: flex; align-items: stretch; border: 1px solid var(--borda); border-radius: 10px; overflow: hidden; background: var(--cartao); }
.endereco-dominio input { flex: 1; min-width: 0; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; text-align: right; padding-right: 2px; }
.endereco-dominio span { display: flex; align-items: center; padding: 0 12px 0 2px; color: var(--suave); font-size: .92rem; white-space: nowrap; background: var(--cartao-2); }
.endereco-ok { color: var(--ideal-tx) !important; }
.endereco-ruim { color: var(--alto-tx) !important; }
.logo-consultorio-entrar { width: 36px; height: 36px; object-fit: contain; border-radius: 10px; background: #fff; }
.link-portal-entrar { text-align: center; margin-top: 4px; }
.endereco-inexistente { display: grid; gap: 14px; justify-items: start; }
.cartao-endereco .link-endereco { font-size: 1.05rem; font-weight: 700; word-break: break-all; }
.cartao-endereco .linha-endereco { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* ---------- Página / tela 404 ---------- */
.nao-encontrado, .pagina-404-conteudo { display: grid; justify-items: center; text-align: center; gap: 12px; max-width: 560px; margin: 32px auto; padding: 32px 24px; }
.nao-encontrado h1, .pagina-404-conteudo h1 { margin: 0; font-size: 1.5rem; }
.nao-encontrado .sub, .pagina-404-conteudo .sub { margin: 0; max-width: 440px; }
.nao-encontrado .acoes, .pagina-404-conteudo .acoes { justify-content: center; flex-wrap: wrap; margin-top: 6px; }
.ilustracao-404 { width: min(240px, 70vw); height: auto; animation: surgir .4s var(--ease) both; }
.ilustracao-404 .prato-404 { fill: var(--cartao-2); stroke: var(--borda); stroke-width: 3; }
.ilustracao-404 .prato-404.interno { fill: var(--cartao); stroke-dasharray: 4 6; }
.ilustracao-404 .sombra-404 { fill: var(--texto); opacity: .06; }
.ilustracao-404 .numero-404 { fill: var(--primaria); font-size: 30px; font-weight: 800; font-family: inherit; letter-spacing: 1px; }
.ilustracao-404 .talher-404 { fill: none; stroke: var(--suave); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.endereco-404 { max-width: 100%; padding: 4px 10px; border-radius: 8px; background: var(--cartao-2); color: var(--suave); font-size: .82rem; word-break: break-all; }
.endereco-404:empty { display: none; }
.pagina-404 { min-height: 100vh; display: grid; place-items: center; background: var(--bg); color: var(--texto); padding: 16px; }
.pagina-404-conteudo { margin: 0; background: var(--cartao); border: 1px solid var(--borda); border-radius: 20px; }

/* ---------- Atendimento clínico: consulta, receitas, metas por refeição, comparativo, ditado ---------- */
.mini-campo { display: inline-flex; align-items: center; gap: 6px; }
.mini-campo input { width: 5.5em; }
.mini-campo span { color: var(--suave); font-size: .85rem; }

/* prontuário da consulta */
.grade-consulta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.coluna-consulta { display: grid; gap: 16px; min-width: 0; }
.secao-consulta { margin: 0; }
.secao-consulta h2 { font-size: 1.02rem; margin: 0; }
.secao-consulta .topo-bloco { margin-bottom: 10px; }
.secao-consulta textarea, .secao-consulta select { width: 100%; }
.medidas-consulta { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.campo-medida { display: grid; gap: 4px; font-size: .86rem; color: var(--suave); }
.campo-medida input { width: 100%; min-width: 0; }
.campo-medida .mini-campo { display: flex; }
.dif-medida { min-height: 1.2em; }
.registrar-avaliacao { margin-top: 12px; }
.registrar-avaliacao:empty { display: none; }
.info-plano-consulta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 10px; }
.lista-refeicoes-pdf { margin: 6px 0 0; padding-left: 18px; }
.lista-refeicoes-pdf li { margin: 3px 0; }
.dif-pdf { display: block; font-size: .78rem; color: var(--suave); }

/* ditado por voz */
.campo-com-ditado { position: relative; }
.campo-com-ditado textarea { padding-right: 54px; }
.btn-ditado { position: absolute; top: 6px; right: 16px; width: 32px; height: 32px; display: grid; place-items: center; padding: 0; border-radius: 50%; border: 1px solid var(--borda); background: var(--cartao); color: var(--primaria-escura); cursor: pointer; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
.btn-ditado:hover { border-color: var(--primaria); }
.btn-ditado.gravando { background: var(--st-alto); border-color: var(--st-alto); color: #fff; animation: pulso-ditado 1.2s ease-in-out infinite; }
@keyframes pulso-ditado { 50% { box-shadow: 0 0 0 6px rgba(192, 57, 43, .18); } }
.aviso-privacidade { margin: 12px 0 0; padding: 10px 12px; border-radius: var(--raio); background: var(--primaria-suave); font-size: .86rem; line-height: 1.45; }

/* receitas */
.lista-receitas { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin-top: 14px; }
.cartao-receita { display: grid; gap: 6px; color: inherit; text-decoration: none; margin: 0; transition: border-color .15s var(--ease), transform .15s var(--ease); }
.cartao-receita:hover { border-color: var(--primaria); transform: translateY(-1px); }
.cartao-receita h3 { margin: 0; font-size: 1.02rem; }
.cartao-receita .etiqueta { justify-self: start; }
.macros-receita { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 6px; }
.macros-receita small { flex-basis: 100%; color: var(--suave); }
.totais-receita { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.caixa-total { display: grid; gap: 2px; padding: 12px; border: 1px solid var(--borda); border-radius: var(--raio); }
.caixa-total small { color: var(--suave); text-transform: uppercase; letter-spacing: .04em; font-size: .72rem; }
.caixa-total b { font-size: 1.25rem; }
.caixa-total span { font-size: .86rem; color: var(--suave); }
.ingredientes-receita { display: grid; gap: 8px; margin-bottom: 12px; }
.linha-ingrediente { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(90px, 140px) 70px auto; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--borda); }
.linha-ingrediente .nome-item { display: grid; gap: 2px; min-width: 0; }
.linha-ingrediente .nome-item small { color: var(--suave); }
.manuais-ingrediente { display: flex; gap: 6px; }
.manuais-ingrediente input { width: 4.5em; }
.lista-escolha-receita { display: grid; gap: 8px; margin-top: 12px; }
.item-escolha-receita { display: grid; gap: 2px; text-align: left; font: inherit; padding: 10px 12px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--cartao); color: inherit; cursor: pointer; }
.item-escolha-receita:hover:not(:disabled) { border-color: var(--primaria); }
.item-escolha-receita:disabled { opacity: .55; cursor: default; }
.item-escolha-receita small { color: var(--suave); }

/* plano: receita na refeição e metas por refeição */
.linha-busca-refeicao { display: flex; gap: 8px; align-items: flex-start; }
.linha-busca-refeicao .busca-alimento { flex: 1; min-width: 0; }
.totais-refeicao.ok { color: var(--ok); }
.totais-refeicao.longe { color: var(--st-alto); }
.acoes-metas-plano { display: flex; justify-content: flex-end; margin-top: 10px; }
.tabela-rolagem { overflow-x: auto; }
.tabela-distribuir { width: 100%; border-collapse: collapse; font-size: .9rem; }
.tabela-distribuir th { text-align: left; font-size: .76rem; color: var(--suave); font-weight: 600; padding: 6px; }
.tabela-distribuir td { padding: 8px 6px; border-top: 1px solid var(--borda); white-space: nowrap; }
.tabela-distribuir td:first-child { white-space: normal; }
.pct-refeicao { width: 4em; }
.soma-pct { font-weight: 700; margin: 10px 0; }

/* exames: comparativo e tendências */
.comparativo-exames h2 { margin-top: 0; }
.alertas-tendencia { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.link-tendencia { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; width: 100%; text-align: left; font: inherit; color: inherit; background: none; border: 1px solid var(--borda); border-radius: var(--raio); padding: 8px 12px; cursor: pointer; }
.link-tendencia:hover { border-color: var(--primaria); }
.link-tendencia small { color: var(--suave); }
.tendencia-piora .link-tendencia { border-left: 4px solid var(--st-alto); }
.tendencia-piora .icone-tendencia { color: var(--st-alto); }
.tendencia-melhora .link-tendencia { border-left: 4px solid var(--ok); }
.tendencia-melhora .icone-tendencia { color: var(--ok); }
.grafico-comparativo { margin-top: 8px; }
.chips-marcadores { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; max-height: 128px; overflow-y: auto; }
.chips-marcadores .chip-filtro.ativo { background: var(--cor-chip, var(--primaria)); border-color: var(--cor-chip, var(--primaria)); color: #fff; }
.legenda-comparativo { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .86rem; }
.legenda-comparativo span { display: inline-flex; align-items: center; gap: 6px; }
.legenda-comparativo i { width: 12px; height: 12px; border-radius: 50%; background: var(--cor); }
.legenda-comparativo small { color: var(--suave); }

@media (max-width: 860px) {
  .grade-consulta { grid-template-columns: 1fr; }
  .linha-ingrediente { grid-template-columns: minmax(0, 1fr) auto; }
  .linha-ingrediente .nome-item { grid-column: 1 / -1; }
  .linha-busca-refeicao { flex-wrap: wrap; }
}

/* ---------- Lote: cardápio por dia, micronutrientes, questionários, públicos especiais, etiquetas, modelo de anamnese ---------- */
/* cardápio por dia */
.barra-dias { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 4px 0 14px; }
.abas-dias { display: flex; flex-wrap: wrap; gap: 6px; }
.aba-dia { font: inherit; font-size: .88rem; font-weight: 600; padding: 7px 14px; border-radius: 99px; border: 1px solid var(--borda); background: var(--cartao); color: var(--suave); cursor: pointer; }
.aba-dia:hover { border-color: var(--primaria); color: var(--texto); }
.aba-dia.ativa { background: var(--primaria); border-color: var(--primaria); color: var(--sobre-primaria); }
.media-semana { flex-basis: 100%; }
.dia-pdf { font-size: 1.1rem; margin: 18px 0 6px; padding-bottom: 4px; border-bottom: 2px solid var(--marca, var(--primaria)); }
@media print { .dia-pdf.nova-pagina { break-before: page; } }

/* micronutrientes */
.painel-micros { flex-basis: 100%; margin-top: 6px; }
.painel-micros summary { cursor: pointer; font-weight: 600; }
.lista-micros { display: grid; gap: 8px; margin: 10px 0 6px; }
.linha-micro { display: grid; grid-template-columns: 110px minmax(80px, 1fr) minmax(120px, auto) 130px; gap: 10px; align-items: center; font-size: .88rem; }
.linha-micro .trilho .preenchido { background: var(--suave); }
.linha-micro.ok .trilho .preenchido { background: var(--ok); }
.linha-micro.perto .trilho .preenchido { background: var(--st-baixo); }
.linha-micro.longe .trilho .preenchido { background: var(--st-alto); }
.linha-micro.longe .pct-micro { color: var(--st-alto); }
.valor-micro { font-variant-numeric: tabular-nums; text-align: right; }
.pct-micro { color: var(--suave); }

/* questionários */
.lista-questionarios { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 6px; }
.lista-questionarios .nivel-alerta .link-tendencia { border-left: 4px solid var(--st-alto); }
.lista-questionarios .nivel-alerta .icone-tendencia { color: var(--st-alto); }
.lista-questionarios .nivel-atencao .link-tendencia { border-left: 4px solid var(--st-baixo); }
.lista-questionarios .nivel-ok .link-tendencia { border-left: 4px solid var(--ok); }
.lista-questionarios .nivel-ok .icone-tendencia { color: var(--ok); }
.pergunta-questao { margin: 14px 0; }
.pergunta-questao > p { margin: 0 0 6px; font-weight: 600; }
.opcoes-questao { display: grid; gap: 4px; }
.opcoes-questao.simnao { display: flex; gap: 16px; }
.opcao-questao { display: flex; align-items: center; gap: 8px; font-size: .92rem; cursor: pointer; }
.escala-questao { display: flex; flex-wrap: wrap; gap: 4px; }
.nota-escala { font: inherit; width: 36px; height: 36px; border-radius: 8px; border: 1px solid var(--borda); background: var(--cartao); color: var(--texto); cursor: pointer; font-weight: 600; }
.nota-escala.ativa { background: var(--primaria); border-color: var(--primaria); color: var(--sobre-primaria); }
.resultado-questionario { margin: 14px 0 8px; padding: 12px; border-radius: var(--raio); background: var(--primaria-suave); }
.resultado-questionario p { margin: 4px 0 0; }
.resultado-questionario.nivel-alerta { background: rgba(192, 57, 43, .1); }
.resultado-questionario.nivel-atencao { background: rgba(201, 133, 0, .12); }
.cartao-questionarios { margin: 0 0 16px; }

/* públicos especiais */
.cartoes-publicos { display: grid; gap: 16px; margin-bottom: 16px; }
.cartao-gestacao.fechado { padding-top: 10px; padding-bottom: 10px; }
.cartao-gestacao.fechado .topo-bloco { margin: 0; }
.kpis-gestacao { margin: 10px 0; }
.cartao-atleta summary { cursor: pointer; list-style: none; }
.cartao-atleta summary h2 { display: inline; }
.cartao-gestacao-energia p { margin: 6px 0; }

/* etiquetas */
.etiquetas-ficha { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.chip-etiqueta { display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; font-weight: 600; padding: 3px 9px; border-radius: 99px; background: var(--primaria-suave); color: var(--primaria-escura); }
.chip-etiqueta button { border: 0; background: none; color: inherit; cursor: pointer; font-size: .95rem; line-height: 1; padding: 0 0 0 2px; }
.etiquetas-linha { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.campo-etiqueta { width: 180px; font-size: .86rem; padding: 4px 8px; }
.form-massa > small.sub { display: block; text-align: right; }
.form-massa > .kpi-rotulo { display: block; margin-top: 10px; }
.previa-mensagem { white-space: pre-wrap; padding: 12px; border-radius: var(--raio); background: var(--cartao-2); border: 1px solid var(--borda); font-size: .92rem; margin: 6px 0 10px; }

/* receitas abertas/fechadas */
.dono-receita { color: var(--suave); }
.compartilhar-receita { margin-bottom: 12px; padding: 0 0 12px; border-bottom: 1px solid var(--borda); }

/* modelo de anamnese */
.grade-modelo-anamnese { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.secao-modelo { border-top: 1px solid var(--borda); padding: 10px 0; }
.secao-modelo summary { cursor: pointer; display: flex; justify-content: space-between; gap: 10px; }
.secao-propria { margin: 12px 0 0; }
.titulo-secao-propria { font-weight: 700; flex: 1; min-width: 0; }
.perguntas-proprias { display: grid; gap: 8px; margin: 10px 0; }
.linha-pergunta { display: grid; grid-template-columns: minmax(0, 1fr) 160px auto; gap: 8px; align-items: center; }
.linha-pergunta input[hidden] { display: none; }
.linha-pergunta input:not([hidden]):nth-child(3) { grid-column: 1 / -2; }

@media (max-width: 860px) {
  .grade-modelo-anamnese { grid-template-columns: 1fr; }
  .linha-micro { grid-template-columns: 90px minmax(60px, 1fr); }
  .linha-micro .valor-micro, .linha-micro .pct-micro { grid-column: span 1; text-align: left; }
  .linha-pergunta { grid-template-columns: 1fr auto; }
  .linha-pergunta select { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .btn-ditado.gravando { animation: none; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

@page { size: A4; margin: 12mm; }
@media print {
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html, body, .layout, .conteudo, main { background: #fff !important; }
  .lateral, .barra-topo, .opcoes-pdf, #toast, .gaveta, .nav-inferior, .paleta, .pular, .fundo-menu { display: none !important; }
  .layout { display: block; }
  main { padding: 0 !important; max-width: none; margin: 0; }
  main.trocou > * { animation: none; }
  .previa-pdf { display: block; }
  .area-folha { overflow: visible; padding: 0; }
  .folha-pdf { width: auto; min-height: 0; padding: 0; margin: 0; box-shadow: none; border: 0; }
}

/* ---------- Responsivo ---------- */
@media (max-width: 1199px) and (min-width: 768px) {
  /* tela média: o menu fica só com ícones */
  :root { --largura-menu: 72px; }
}

@media (max-width: 1100px) {
  .previa-pdf, .grade-consultorio { grid-template-columns: 1fr; }
  .opcoes-pdf { position: static; }
  .anamnese, .grade-energia { grid-template-columns: 1fr; }
  .linha-qfa { grid-template-columns: 1fr; gap: 4px; }
  .cabecalho-itens { display: none; }
  .linha-item { grid-template-columns: 1fr 76px 1fr; }
  .linha-item .num-item, .linha-item .num-manual { font-size: .8rem; }
  .metas-plano, .numeros-plano { grid-template-columns: repeat(2, 1fr); }
  .grade-inicio { grid-template-columns: 1fr; }
  .kpis-inicio { grid-template-columns: repeat(2, 1fr); }
  .data-topo { display: none; }
}

@media (max-width: 900px) {
  .graficos-antropo, .duas-colunas { grid-template-columns: 1fr; }
  .grade-medidas { grid-template-columns: repeat(2, 1fr); }
  .kpis { grid-template-columns: repeat(2, 1fr); }
  .grupos-exames { grid-template-columns: 1fr; }
  .barra-topo { padding: 10px 16px; }
  main { padding: 20px 16px 48px; }
  .busca-marcador { top: 70px; }
}

@media (max-width: 767px) {
  /* celular: menu vira folha lateral + navegação inferior (041) */
  :root, .menu-recolhido { --largura-menu: 0px; }
  .layout { grid-template-columns: 1fr; }
  .lateral {
    position: fixed; left: 0; top: 0; bottom: 0; width: min(280px, 84vw); height: auto; transform: translateX(-102%);
    transition: transform .26s var(--ease); box-shadow: var(--sombra-forte);
  }
  .menu-aberto .lateral { transform: none; }
  .so-celular { display: grid; }
  .topo-btn[data-dica]::after { display: none; }
  .nav-inferior {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 10; display: grid; grid-template-columns: repeat(4, 1fr);
    background: var(--vidro); backdrop-filter: blur(10px); border-top: 1px solid var(--borda); padding: 4px 6px calc(4px + env(safe-area-inset-bottom));
  }
  .nav-inferior a, .nav-inferior button {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 56px; border-radius: 12px;
    font: inherit; font-size: .74rem; font-weight: 600; color: var(--suave); text-decoration: none; background: none; border: 0; cursor: pointer;
  }
  .nav-inferior a.ativo { color: var(--primaria-escura); }
  .nav-inferior a.ativo .ic { transform: translateY(-1px); }
  main { padding: 16px 14px 100px; }
  .barra-salvar { left: 0; bottom: 64px; padding: 10px 14px; }
  .toast { bottom: 84px; }
  .popover-avisos { position: fixed; right: 12px; left: 12px; top: 64px; width: auto; }
}

@media (max-width: 720px) {
  .dados-exame .campos { grid-template-columns: 1fr; }
  .linha-campo { grid-template-columns: 1fr 110px; }
  .linha-campo .ideal-dica { grid-column: 1 / -1; margin-top: -6px; }
  .alternar { margin-left: 0; }
  .grade, .campos { grid-template-columns: 1fr; }
  dl { grid-template-columns: 1fr; gap: 2px; }
  dd { margin-bottom: 8px; }
  .col-opcional { display: none; }
  .kpis-inicio { grid-template-columns: 1fr 1fr; gap: 10px; }
  .kpi-valor { font-size: 1.6rem; }
  .item-inicio { grid-template-columns: 40px 1fr auto; }
  .campos-anamnese, .dados-base { grid-template-columns: 1fr 1fr; }
  .linha-recordatorio { grid-template-columns: 1fr 1fr 34px; }
  .linha-recordatorio textarea { grid-column: 1 / -1; grid-row: 2; }
  .opcoes-qfa { grid-template-columns: repeat(4, 1fr); }
  .painel-metas-plano { position: static; }
  .item-inicio .selo-classe { display: none; }
  .gaveta-painel { width: 100%; padding: 20px 16px; }
  .icone-btn { min-width: 40px; min-height: 40px; }
}

@media (max-width: 480px) {
  .kpis, .kpis-inicio { grid-template-columns: 1fr; }
  .campos-anamnese, .dados-base, .grade-medidas { grid-template-columns: 1fr; }
  .cabecalho .acoes { flex-wrap: wrap; }
}

/* ---------- Página do consultório (plano Ultra) — pagina-editor.js ---------- */
.selo-construcao { display: inline-block; vertical-align: middle; margin-left: 6px; font-size: .72rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: #6b4e00; background: #fde68a; border: 1px solid #f5cf4f; border-radius: 99px; padding: 3px 10px; }
.aviso-construcao { margin: 0 0 16px; padding: 10px 14px; border-radius: 10px; background: #fff8dc; border: 1px dashed #e9c84a; color: #5c4400; font-size: .9rem; }
:root[data-tema="escuro"] .aviso-construcao { background: #3a3110; border-color: #8a7323; color: #f3e3a6; }
.pagina-ultra { max-width: 640px; display: grid; gap: 10px; }
.pagina-ultra h2 { margin: 0; }
.selo-ultra { justify-self: start; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--primaria-escura); background: var(--primaria-suave); border-radius: 99px; padding: 3px 10px; }
.lista-ultra { margin: 4px 0; padding-left: 20px; display: grid; gap: 4px; }
.preco-ultra { margin: 4px 0 0; font-size: 1.05rem; }
.preco-ultra b { font-size: 1.5rem; }
.endereco-pagina { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-bottom: 16px; }
.endereco-pagina > div:first-child { display: grid; gap: 2px; min-width: 0; flex: 1 1 260px; }
.endereco-pagina .acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.link-endereco { font-weight: 700; font-size: 1.05rem; word-break: break-all; }
.selo-pagina { font-size: .8rem; font-weight: 700; border-radius: 99px; padding: 4px 12px; }
.selo-pagina.no-ar { background: var(--primaria-suave); color: var(--primaria-escura); }
.selo-pagina.rascunho { background: var(--cartao-2); color: var(--suave); border: 1px solid var(--borda); }
.lista-servicos { display: grid; gap: 10px; margin-bottom: 10px; }
.servico-editor { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 10px; align-items: end; }
.servico-editor label { display: flex; flex-direction: column; gap: 5px; font-size: .9rem; color: var(--suave); }
.barra-salvar-pagina { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 767px) {
  .servico-editor { grid-template-columns: minmax(0, 1fr) auto; padding-bottom: 10px; border-bottom: 1px solid var(--borda-suave); }
  .servico-editor label:nth-child(2) { grid-column: 1; grid-row: 2; }
}
/* painel admin: recursos do plano */
.adm-recursos { border: 1px solid var(--borda); border-radius: 10px; padding: 10px 14px; display: grid; gap: 6px; }
.adm-recursos legend { font-size: .9rem; color: var(--suave); padding: 0 4px; }
.adm-check { display: flex; align-items: center; gap: 8px; }
.adm-check input { width: auto; }
