/* Rumo Nutri · demonstração. Só o que o painel.css (cópia do PRO) não tem:
   faixa de demonstração, tema escuro, peças das telas novas e as telas do app. */

/* ── Faixa fixa ───────────────────────────────────────────────────────────── */
.faixa-demo { position: sticky; top: 0; z-index: 7; background: var(--terracota); color: #fff; text-align: center;
  font: 600 12.5px 'Plus Jakarta Sans', sans-serif; letter-spacing: .02em; padding: 7px 12px; }
/* A faixa de demonstração só existe na demo: no painel de verdade o topo cola no alto (sem fresta por onde a página vazava). */
:root:has(.faixa-demo) .topo { top: 31px; }
.limpo .faixa-demo, .limpo .chip.demo, .limpo footer a[href="#"], .limpo .topo .tema { display: none; }
.limpo .topo { top: 0; }
.topo .marca .pro { white-space: nowrap; }
.topo .pro span.nutri { color: var(--refeicao); }
.conta td:first-child { padding-right: 12px; }
.topo .quem a.tema { cursor: pointer; }

/* ── Aviso de demonstração (toast) ────────────────────────────────────────── */
.toast { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 60; max-width: min(92vw, 520px);
  background: var(--texto); color: var(--creme); padding: 12px 16px; border-radius: 12px; font-size: 14px; line-height: 1.4;
  box-shadow: var(--sombra-forte); animation: toast-sobe .18s ease-out; }
@keyframes toast-sobe { from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* ── Peças das telas do Nutri ─────────────────────────────────────────────── */
.passos { display: flex; gap: 8px; margin: 4px 0 18px; flex-wrap: wrap; }
.passos span { font: 600 13px 'Plus Jakarta Sans'; padding: 7px 14px; border-radius: 999px; background: var(--superficie); color: var(--texto-2); }
.passos span.feito { background: var(--verde-claro); color: var(--verde-escuro); }
.passos span.agora { background: var(--verde-escuro); color: #fff; }
.passos button { font: 600 13px 'Plus Jakarta Sans'; padding: 7px 14px; border-radius: 999px; border: none; background: var(--verde-claro); color: var(--verde-escuro); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.passos button:hover { background: var(--verde); color: #fff; }
.inicio-linha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: -8px 0 16px; font-size: 14px; color: var(--texto-2); }
.inicio-linha .mut { flex-basis: 100%; font-size: 12.5px; }
:root[data-tema="escuro"] .passos button { color: #BFE3CF; }
:root[data-tema="escuro"] .passos button:hover { color: #10140F; }
.sem { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; margin-top: 6px; }
.sem > div { text-align: center; font-size: 12px; color: var(--texto-3); }
.sem > div small { color: var(--texto-3); font-size: 10px; }
.sem-rotulo { font-size: 11px; color: var(--texto-3); margin-top: 10px; font-family: 'Plus Jakarta Sans'; letter-spacing: .04em; }
.periodo { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.periodo button { font: 600 12.5px 'Plus Jakarta Sans'; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--borda); background: var(--card); color: var(--texto-2); cursor: pointer; }
.periodo button.ativa { background: var(--verde-escuro); color: #fff; border-color: transparent; }
.periodo button:disabled { opacity: .45; cursor: default; }
.acomp-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
.acomp-cab h2 { margin: 0; }
/* Painéis do acompanhamento: fundo na cor do pilar, nunca branco no branco */
.viz-painel { border-radius: 14px; padding: 14px 16px; }
.viz-painel.verde { background: var(--verde-claro); }
.viz-painel.saude { background: var(--saude-claro); }
.viz-painel.agua { background: var(--agua-claro); }
.viz-painel .viz-titulo { color: var(--texto-2); }
.viz-painel.verde .viz-titulo { color: var(--verde-escuro); }
.viz-painel.saude .viz-titulo { color: var(--saude); }
.viz-painel.agua .viz-titulo { color: var(--agua); }
.viz-painel .sem i { background: rgba(255,255,255,.55); }
.viz-painel .sem i.o { background: var(--verde); } .viz-painel .sem i.n { background: var(--terracota); opacity: .55; } .viz-painel .sem i.f { background: var(--refeicao); opacity: .7; }
.viz-painel .sem-rotulo { color: var(--verde-escuro); }
.viz-painel .legenda { color: var(--texto-2); }
.viz-painel .viz-tabela th { color: var(--texto-2); }
.viz-painel .viz-tabela td { border-top-color: rgba(255,255,255,.6); }
.viz-painel.saude .viz-tabela td b { color: var(--saude); font-family: 'Plus Jakarta Sans'; }
.peso-svg { width: 100%; height: 84px; display: block; margin: 4px 0 8px; overflow: visible; }
.peso-svg .area { fill: var(--saude); opacity: .14; }
.peso-svg .linha { fill: none; stroke: var(--saude); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.peso-svg circle { fill: var(--card); stroke: var(--saude); stroke-width: 1.6; vector-effect: non-scaling-stroke; }
.peso-svg circle.ult { fill: var(--saude); }
.peso-svg .viz-num { fill: var(--saude); font-weight: 700; }
.agua-barras { display: flex; align-items: flex-end; gap: 3px; height: 54px; margin-top: 8px; padding: 0 2px; border-bottom: 1px solid rgba(255,255,255,.7); }
.viz-painel.agua .agua-barras i { background: rgba(255,255,255,.7); border-color: var(--agua); }
.viz-painel.agua .agua-barras i.ok { background: var(--agua); }
/* Diário como cartões */
.diario-cards { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 10px; }
.diario-cards li { background: var(--creme); border: 1px solid var(--borda); border-left: 4px solid var(--verde); border-radius: 12px; padding: 10px 12px 11px; }
.diario-cards li.fora { border-left-color: var(--refeicao); background: var(--refeicao-claro); }
.dc-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; }
.dc-data { font-family: 'Plus Jakarta Sans'; font-weight: 700; color: var(--texto); }
.dc-hora { background: var(--verde-escuro); color: #fff; border-radius: 6px; padding: 1px 7px; font-size: 11.5px; font-weight: 700; }
.diario-cards li.fora .dc-hora { background: var(--refeicao); }
.dc-ref { color: var(--texto-2); }
.dc-texto { margin: 6px 0 8px; font-size: 14px; line-height: 1.4; }
.mchips { display: flex; gap: 5px; flex-wrap: wrap; }
.mchips span { font-size: 11.5px; font-weight: 700; border-radius: 999px; padding: 2px 8px; font-variant-numeric: tabular-nums; font-family: 'Plus Jakarta Sans'; }
.mchips .kcal { background: var(--texto); color: var(--creme); }
.mchips .p { background: var(--saude-claro); color: var(--saude); }
.mchips .c { background: var(--refeicao-claro); color: var(--refeicao); }
.mchips .g { background: var(--terracota-claro); color: var(--terracota); }
.mchips .est { background: transparent; color: var(--texto-3); font-weight: 500; }
.diario-cards li.fora .mchips .c { background: rgba(255,255,255,.7); }
:root[data-tema="escuro"] .diario-cards li { background: var(--superficie); }
:root[data-tema="escuro"] .diario-cards li.fora { background: var(--refeicao-claro); }
:root[data-tema="escuro"] .mchips .kcal { background: var(--texto); color: var(--creme); }
:root[data-tema="escuro"] .viz-painel.saude .viz-titulo { color: var(--saude); }
:root[data-tema="escuro"] .viz-painel.verde .viz-titulo { color: #BFE3CF; }
:root[data-tema="escuro"] .viz-painel .sem-rotulo { color: #BFE3CF; }
:root[data-tema="escuro"] .viz-painel .sem i { background: rgba(255,255,255,.12); }
.agua-barras i { flex: 1; min-width: 4px; background: var(--agua-claro); border: 1px solid var(--agua); border-bottom: none; border-radius: 3px 3px 0 0; min-height: 2px; }
.agua-barras i.ok { background: var(--agua); }
.viz-tile small { display: block; font-size: 11.5px; margin-top: 4px; font-weight: 600; }
.viz-tile small.ok { color: var(--verde-escuro); } .viz-tile small.mais { color: var(--terracota); }
.viz-tile.verde { background: var(--verde-claro); } .viz-tile.verde b { color: var(--verde-escuro); }
.viz-tile.saude { background: var(--saude-claro); } .viz-tile.saude b { color: var(--saude); }
.viz-grade > .viz-painel { align-self: start; }
/* Números da avaliação física: clicáveis, o escolhido ganha contorno */
button.viz-tile { border: 2px solid transparent; text-align: left; font: inherit; color: inherit; cursor: pointer; width: 100%; transition: transform .12s ease, border-color .12s ease; }
button.viz-tile:hover { transform: translateY(-2px); }
button.viz-tile.sel { border-color: currentColor; box-shadow: var(--sombra); }
button.viz-tile.verde.sel { border-color: var(--verde-escuro); } button.viz-tile.saude.sel { border-color: var(--saude); }
button.viz-tile.refeicao.sel { border-color: var(--refeicao); } button.viz-tile.agua.sel { border-color: var(--agua); }
button.viz-tile:focus-visible { outline: 2px solid var(--verde); outline-offset: 2px; }
.serie-chips { display: flex; gap: 6px; flex-wrap: wrap; margin: 2px 0 18px; }
.serie-chips button { font: 600 12px 'Plus Jakarta Sans'; padding: 4px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,.8); background: rgba(255,255,255,.6); color: var(--texto-2); cursor: pointer; }
.serie-chips button.ativa { background: var(--texto); color: var(--creme); border-color: transparent; }
.serie-lista { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 6px; font-size: 12.5px; color: var(--texto-2); }
.serie-lista b { font-family: 'Plus Jakarta Sans'; color: var(--texto); }
.serie-lista i { font-style: normal; font-weight: 700; font-size: 11.5px; }
.serie-lista i { color: var(--texto-2); background: rgba(255,255,255,.6); border-radius: 6px; padding: 0 5px; } /* variação neutra: subir ou descer não é bom nem ruim por si */
.peso-svg.verde .area { fill: var(--verde); } .peso-svg.verde .linha, .peso-svg.verde circle { stroke: var(--verde-escuro); } .peso-svg.verde circle.ult { fill: var(--verde-escuro); } .peso-svg.verde .viz-num { fill: var(--verde-escuro); }
.peso-svg.agua .area { fill: var(--agua); } .peso-svg.agua .linha, .peso-svg.agua circle { stroke: var(--agua); } .peso-svg.agua circle.ult { fill: var(--agua); } .peso-svg.agua .viz-num { fill: var(--agua); }
.viz-painel.verde .viz-titulo { color: var(--verde-escuro); }
.med-tab tr.linha-med { cursor: pointer; } .med-tab tr.linha-med:hover td { background: var(--creme); }
.med-tab tr.linha-med.sel td { background: var(--verde-claro); font-weight: 600; }
:root[data-tema="escuro"] .serie-chips button { background: rgba(255,255,255,.08); border-color: var(--borda); }
:root[data-tema="escuro"] .serie-chips button.ativa { background: #EADFCB; color: #1B1F1A; border-color: transparent; }
:root[data-tema="escuro"] .serie-lista i { background: rgba(255,255,255,.08); }
:root[data-tema="escuro"] .peso-svg.verde .linha, :root[data-tema="escuro"] .peso-svg.verde circle { stroke: #BFE3CF; }
.viz-painel.refeicao { background: var(--refeicao-claro); } .viz-painel.refeicao .viz-titulo { color: var(--refeicao); }
.peso-svg.refeicao .area { fill: var(--refeicao); } .peso-svg.refeicao .linha, .peso-svg.refeicao circle { stroke: var(--refeicao); } .peso-svg.refeicao circle.ult { fill: var(--refeicao); } .peso-svg.refeicao .viz-num { fill: var(--refeicao); }
.med-tab th, .med-tab td { white-space: nowrap; text-align: right; } .med-tab th:first-child, .med-tab td:first-child { text-align: left; }
.abas-pac .aba-selo { background: var(--terracota); color: #fff; border-radius: 999px; padding: 0 7px; font-size: 11px; margin-left: 4px; }
:root[data-tema="escuro"] .viz-tile.verde b { color: #BFE3CF; }
.viz-tile.refeicao { background: var(--refeicao-claro); } .viz-tile.refeicao b { color: var(--refeicao); }
.viz-tile.agua { background: var(--agua-claro); } .viz-tile.agua b { color: var(--agua); }
.viz-painel .kv-linha { border-top-color: rgba(255,255,255,.6); }
.viz-tabela td.ok { color: var(--verde-escuro); font-weight: 600; }
.viz-tabela td.mais { color: var(--terracota); font-weight: 600; }
:root[data-tema="escuro"] .viz-tabela td.ok { color: #BFE3CF; }
:root[data-tema="escuro"] .periodo button.ativa { background: var(--verde); color: #10140F; }
.sem i { display: block; height: 10px; border-radius: 4px; margin: 3px 0; background: var(--borda); }
.sem i.o { background: var(--verde); }
.sem i.n { background: var(--terracota-claro); }
.sem i.f { background: var(--refeicao-claro); }
.legenda { display: flex; gap: 14px; font-size: 12px; color: var(--texto-3); margin-top: 8px; flex-wrap: wrap; }
.legenda i { display: inline-block; width: 12px; height: 10px; border-radius: 3px; vertical-align: middle; margin-right: 4px; }
.diario { list-style: none; }
.diario li { padding: 10px 0; border-top: 1px solid var(--borda); font-size: 14px; }
.diario li:first-child { border-top: none; }
.diario b { font-family: 'Plus Jakarta Sans'; }
.diario .macros { color: var(--texto-3); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.ref { border: 1px solid var(--borda); border-radius: 14px; padding: 14px 16px; margin-top: 12px; background: var(--card); }
.ref h3 { font-size: 15px; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ref h3 small { color: var(--texto-3); font-weight: 500; font-family: 'Inter'; font-size: 12.5px; }
.ref ul { list-style: none; margin-top: 8px; }
.ref li { display: flex; gap: 10px; padding: 7px 0; border-top: 1px dashed var(--borda); font-size: 14px; flex-wrap: wrap; }
.ref li .q { color: var(--texto-2); min-width: 90px; }
.ref li .sub { color: var(--texto-3); font-size: 12.5px; flex-basis: 100%; }
.ref [contenteditable="true"] { outline: 1px dashed var(--verde); border-radius: 4px; padding: 0 4px; background: var(--verde-claro); }
.metas { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; }
.metas div { background: var(--creme); border: 1px solid var(--borda); border-radius: 12px; padding: 10px 12px; }
.metas input { font: 800 20px 'Plus Jakarta Sans'; color: var(--texto); background: transparent; border: none; padding: 0; width: 100%; border-radius: 0; }
.metas input:focus { outline: none; border-bottom: 2px solid var(--verde); }
.metas span { font-size: 12px; color: var(--texto-3); }
.marca-pdf { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--refeicao); margin-left: 10px; vertical-align: middle; }
.duas { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.duas > div { min-width: 0; }
.card table.c-dist { display: table; white-space: normal; overflow: visible; }
@media (max-width: 900px) { .duas { grid-template-columns: minmax(0, 1fr); } .duas > div:last-child { order: -1; } }
.recibo { display: inline-flex; align-items: center; gap: 6px; background: var(--verde-claro); color: var(--verde-escuro); border-radius: 999px; padding: 3px 12px; font-size: 12.5px; font-weight: 600; }
.recibo.espera { background: var(--superficie); color: var(--texto-2); }
.dropzone { border: 2px dashed var(--verde); border-radius: 16px; padding: 28px 20px; text-align: center; background: var(--verde-claro); color: var(--verde-escuro); }
.dropzone b { display: block; font-family: 'Plus Jakarta Sans'; font-size: 17px; margin-bottom: 4px; }
.dropzone input[type="file"] { max-width: 320px; margin: 14px auto 0; }
.lendo { margin-top: 16px; }
.lendo .barra-lendo { height: 8px; border-radius: 6px; background: var(--borda); overflow: hidden; margin-top: 10px; }
.lendo .barra-lendo i { display: block; height: 100%; width: 0; background: var(--verde); animation: lendo 1.6s ease-in-out forwards; }
@keyframes lendo { to { width: 100%; } }
.conta { width: 100%; border-collapse: collapse; margin: 10px 0; font-size: 14px; }
.conta td { padding: 7px 0; border-top: 1px solid var(--borda); }
.conta td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.conta tr.total td { font-weight: 800; font-family: 'Plus Jakarta Sans'; border-top: 2px solid var(--texto); }
.nota-etica { border-left: 3px solid var(--refeicao); background: var(--refeicao-claro); padding: 10px 14px; border-radius: 0 10px 10px 0; font-size: 13.5px; margin-top: 14px; }
.grid-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.card.destaque { border: 1.5px solid var(--verde); }
.compart { list-style: none; }
.compart li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--borda); font-size: 14px; }
.compart li:first-child { border-top: none; }
.compart li b { font-family: 'Plus Jakarta Sans'; color: var(--verde-escuro); white-space: nowrap; }
.kv-linha { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--borda); font-size: 14px; }
.kv-linha:first-of-type { border-top: none; }
.kv-linha b { font-family: 'Plus Jakarta Sans'; text-align: right; }
.plano-card { border: 1.5px solid var(--borda); border-radius: 16px; padding: 18px; background: var(--card); }
.plano-card.melhor { border-color: var(--verde); position: relative; }
.plano-card .preco { font: 800 28px 'Plus Jakarta Sans'; color: var(--texto); margin: 6px 0 2px; }
.plano-card .preco small { font: 500 13px 'Inter'; color: var(--texto-3); }
.plano-card ul { margin: 10px 0 14px 18px; font-size: 14px; color: var(--texto-2); }
.plano-card li { margin: 4px 0; }
.sem-plano { text-align: center; padding: 28px 16px; }
.sem-plano h2 { margin-bottom: 6px; }
.dica-dia { background: var(--superficie); border-radius: 10px; padding: 8px 12px; font-size: 13px; color: var(--texto-2); margin-top: 10px; }
.abas .tag-nova { font-size: 10px; background: var(--terracota); color: #fff; border-radius: 999px; padding: 1px 7px; margin-left: 6px; vertical-align: middle; }

/* ── Editor do plano ──────────────────────────────────────────────────────── */
.ed-ref { padding: 12px 14px; }
.ed-cab { display: grid; grid-template-columns: 1fr 92px 84px auto; gap: 8px; align-items: center; }
.ed-cab input { padding: 9px 11px; font-weight: 600; }
.ed-cab input.curto { font-weight: 500; font-size: 14px; }
.ed-itens { margin-top: 8px; }
.ed-item { display: grid; grid-template-columns: 1.4fr 1.8fr 1.6fr auto; gap: 8px; align-items: center; padding: 6px 0; border-top: 1px dashed var(--borda); }
.ed-item input { padding: 8px 10px; font-size: 14px; }
/* Busca na TACO (tarefa D, etapa 2): lista abaixo do campo "Alimento" e a linha do alimento ligado. */
.ed-nome { position: relative; min-width: 0; }
.ed-nome > input { width: 100%; }
.ed-sug { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: 4px; list-style: none; background: var(--card); border: 1px solid var(--borda); border-radius: 12px; box-shadow: 0 12px 32px rgba(30, 28, 25, .16); max-height: 320px; overflow-y: auto; min-width: min(380px, 86vw); }
.ed-sug li { display: flex; flex-direction: column; gap: 1px; padding: 8px 10px; border-radius: 8px; cursor: pointer; font-size: 14px; line-height: 1.35; }
.ed-sug li small { color: var(--texto-2); font-size: 12px; }
.ed-sug li[aria-selected="true"], .ed-sug li:hover { background: var(--creme); }
.ed-sug .ed-sug-vazio { cursor: default; color: var(--texto-2); font-size: 13px; }
.ed-sug .ed-sug-vazio:hover { background: none; }
.ed-taco { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin-top: -2px; font-size: 12.5px; color: var(--texto-2); }
.ed-taco-ref { color: var(--verde-escuro); font-weight: 600; overflow-wrap: anywhere; }
.ed-gramas { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 12.5px; font-weight: 400; color: var(--texto-2); text-transform: none; letter-spacing: 0; }
.ed-gramas[hidden] { display: none; }
.ed-item .ed-gramas input { width: 76px; padding: 4px 8px; font-size: 13px; }
.aviso-calc { color: var(--terracota); }
.tot-dia small.aviso-calc { display: block; margin-top: 2px; color: var(--terracota); }
.tot-dia b em.inc { font: 600 12px 'Inter', system-ui, sans-serif; font-style: normal; color: var(--terracota); vertical-align: middle; }
/* Meta x prescrito (tarefa D, etapa 3): neutro, sem cor de certo ou errado. */
.mp-card h2 { margin-bottom: 2px; }
.mp-card .sub { margin: 0 0 10px; font-size: 13px; }
.mp-tabela { overflow-x: auto; }
.mp-tabela table { width: 100%; border-collapse: collapse; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.mp-tabela th, .mp-tabela td { padding: 7px 6px; text-align: right; border-top: 1px solid var(--borda); vertical-align: top; white-space: nowrap; background: none; border-radius: 0; }
.mp-tabela thead th { border-top: 0; font: 600 11px 'Plus Jakarta Sans', system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-3); }
.mp-tabela tbody th { text-align: left; font: 600 13.5px 'Inter', system-ui, sans-serif; letter-spacing: 0; text-transform: none; color: var(--texto); white-space: normal; padding-left: 0; }
.mp-tabela thead th:first-child { padding-left: 0; }
.mp-tabela tbody th small { display: block; font-weight: 400; font-size: 11.5px; color: var(--texto-2); }
.mp-tabela td small { display: block; color: var(--texto-2); font-size: 11.5px; }
/* "≥" (dado faltando) em cinza, sem cor de juízo (jurídica, 05/11): o vermelho fica só pro alerta de UL e CDRR. */
.mp-tabela tr.mp-inc td:nth-child(3), .mp-tabela tr.mp-inc td:nth-child(4) { color: var(--texto-2); }
.mp-nota { font-size: 12px; margin: 8px 0 0; line-height: 1.45; }
/* Celular: a % da diferença desce pra linha de baixo, pra caber sem rolar de lado. */
@media (max-width: 480px) { .mp-tabela table { font-size: 12.5px; } .mp-tabela th, .mp-tabela td { padding: 6px 4px; } .mp-tabela td small { display: block; } }
/* Micronutrientes x DRIs (tarefa D, etapa 4). Neutro; só UL e CDRR ganham alerta. */
.micro-card > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.micro-card > summary::-webkit-details-marker { display: none; }
.micro-card > summary h2 { margin: 0; }
.micro-card > summary::after { content: '▾'; margin-left: auto; color: var(--texto-3); transition: transform .15s; }
.micro-card:not([open]) > summary::after { transform: rotate(-90deg); }
.micro-card > summary:focus-visible { outline: 2px solid var(--verde); outline-offset: 4px; border-radius: 6px; }
.micro-card .sub { margin: 10px 0 8px; font-size: 13px; }
.mi-tabela td { position: relative; }
.mi-barra { display: block; position: relative; height: 4px; margin-top: 5px; border-radius: 2px; background: var(--borda); min-width: 60px; }
.mi-barra i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 2px; background: var(--texto-3); }
.mi-barra b { position: absolute; top: -2px; width: 1px; height: 8px; background: var(--texto-2); }
.mi-lim { white-space: normal !important; font-size: 12px; min-width: 120px; }
.mi-alerta { display: inline-block; font-weight: 600; color: var(--terracota); }
.mi-alerta-txt { margin: 0 0 10px; padding: 8px 12px; border-radius: 10px; font-size: 13px; color: var(--terracota); background: var(--terracota-claro); }
/* A regra de "incompleto" do meta x prescrito pinta a 3ª coluna; aqui o incompleto é o prescrito e a adequação. */
.mi-tabela tr.mp-inc td:nth-child(3) { color: inherit; }
.mi-tabela tr.mp-inc td.mi-presc, .mi-tabela tr.mp-inc td.mi-adeq { color: var(--texto-2); }
/* Celular: cada nutriente vira um bloco (nome em cima, os quatro valores com rótulo), sem rolar de lado. */
@media (max-width: 480px) {
  .mi-tabela table, .mi-tabela tbody { display: block; }
  .mi-tabela thead { display: none; }
  .mi-tabela tr { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 12px; padding: 8px 0; border-top: 1px solid var(--borda); }
  .mi-tabela th, .mi-tabela td { border-top: 0; padding: 0; text-align: left; white-space: normal; }
  .mi-tabela tbody th { grid-column: 1 / -1; padding-bottom: 2px; }
  .mi-tabela td::before { content: attr(data-l); display: block; font: 600 10px 'Plus Jakarta Sans', system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-3); }
  .mi-lim { min-width: 0; }
}
/* "Trocar por" (tarefa D, etapa 5). */
.tr-lista { list-style: none; margin: 12px 0 0; padding: 0; max-height: 52vh; overflow-y: auto; }
.tr-lista li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; padding: 10px 0; border-top: 1px solid var(--borda); }
.tr-nome { min-width: 0; flex: 1 1 260px; font-size: 14px; }
.tr-nome b { font-variant-numeric: tabular-nums; }
.tr-nome small { display: block; color: var(--texto-2); font-size: 12px; font-variant-numeric: tabular-nums; }
.tr-acoes { display: flex; gap: 6px; flex-wrap: wrap; }
/* Meus alimentos (rótulo), tarefa D: marca própria, nunca a cor da TACO. */
.ed-tag-rotulo { display: inline-block; margin-left: 6px; padding: 0 7px; border-radius: 999px; font: 600 10.5px 'Plus Jakarta Sans', system-ui, sans-serif; letter-spacing: .04em; text-transform: uppercase; vertical-align: 1px; color: var(--nt-ambar-txt, #8A5A1C); background: var(--refeicao-claro); }
.ed-taco-ref.ed-rotulo { color: var(--nt-ambar-txt, #8A5A1C); }
.ed-sug .ed-sug-novo { color: var(--verde-escuro); font-weight: 600; border-top: 1px dashed var(--borda); border-radius: 0 0 8px 8px; }
.ma-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 8px 12px; }
.ma-grade.ma-id { grid-template-columns: 2fr 1fr; margin-top: 10px; }
.ma-grade label small { font-weight: 400; color: var(--texto-3); }
.ma-titulo { margin: 14px 0 4px; font: 700 11px 'Plus Jakarta Sans', system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--texto-3); }
.ma-mais { margin-top: 10px; }
.ma-mais > summary { cursor: pointer; font-size: 13px; color: var(--texto-2); margin-bottom: 8px; }
.ma-lista { list-style: none; margin: 10px 0 0; padding: 0; }
.ma-lista li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; padding: 10px 0; border-top: 1px solid var(--borda); }
.ma-lista li > div:first-child { min-width: 0; flex: 1 1 240px; }
.ma-lista small { display: block; color: var(--texto-2); font-size: 12px; font-variant-numeric: tabular-nums; }
.ma-acoes { display: flex; gap: 10px; align-items: center; }
:root[data-tema="escuro"] .ed-tag-rotulo, :root[data-tema="escuro"] .ed-taco-ref.ed-rotulo { color: #E3B46E; }
@media (max-width: 480px) { .ma-grade.ma-id { grid-template-columns: 1fr; } }
/* Rotina do celular (fase G): neutro, sem meta nem cor de juízo. */
.rot-card .sub { margin: 4px 0 12px; font-size: 13px; }
.rot-tabela { overflow-x: auto; }
.rot-tabela table { width: 100%; border-collapse: collapse; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.rot-tabela th, .rot-tabela td { padding: 8px 8px 8px 0; text-align: left; border-top: 1px solid var(--borda); vertical-align: top; background: none; border-radius: 0; text-transform: none; letter-spacing: 0; font-size: 13.5px; color: var(--texto); }
.rot-tabela thead th { border-top: 0; font: 600 11px 'Plus Jakarta Sans', system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-3); }
.rot-tabela tbody th { font-weight: 600; white-space: nowrap; }
.rot-tabela td small { color: var(--texto-2); font-size: 12px; }
.rot-tabela td, .rot-tabela td small { white-space: normal; overflow-wrap: anywhere; }
.rot-barra { display: block; height: 4px; margin-top: 5px; max-width: 160px; border-radius: 2px; background: var(--borda); }
.rot-barra i { display: block; height: 100%; border-radius: 2px; background: var(--texto-3); }
@media (max-width: 560px) {
  .rot-tabela table, .rot-tabela tbody { display: block; } .rot-tabela thead { display: none; }
  .rot-tabela tr { display: grid; gap: 4px; padding: 10px 0; border-top: 1px solid var(--borda); }
  .rot-tabela th, .rot-tabela td { border-top: 0; padding: 0; }
  .rot-tabela td::before { content: attr(data-l); display: block; font: 600 10px 'Plus Jakarta Sans', system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-3); }
}
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cit-taco { font-size: 12px; line-height: 1.5; color: var(--texto-3); margin: 16px 0 0; padding-top: 12px; border-top: 1px solid var(--borda); }
.cit-taco b { color: var(--texto-2); font-weight: 600; }
.pdf-cit-taco { font-size: 9.5px; line-height: 1.45; color: #6B6660; margin: 14px 0 0; border-top: 1px solid #E3DED5; padding-top: 8px; }
:root[data-tema="escuro"] .ed-taco-ref { color: #BFE3CF; }
:root[data-tema="escuro"] .ed-sug { box-shadow: 0 12px 32px rgba(0, 0, 0, .45); }
.lnk-tirar { background: none; border: none; color: var(--texto-3); font: 500 12.5px 'Inter'; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; padding: 4px 2px; white-space: nowrap; }
.lnk-tirar:hover { color: var(--terracota); }
.ed-dia-cab { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; margin: 4px 0 10px; }
.ed-dia-cab input { padding: 8px 11px; }
.assist { border: 1.5px solid var(--refeicao); }
.assist-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.assist-cab h2 { margin: 4px 0 0; }
.assist-chips { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 4px; }
.assist-chips .aceite { margin-top: 10px; font-size: 14px; }
.assist-h { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--refeicao); margin: 18px 0 6px; font-family: 'Plus Jakarta Sans'; }
.grid-campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.grid-campos > div { min-width: 0; }
.grid-campos select, .grid-campos input { width: 100%; min-width: 0; }
.grid-campos label { margin-top: 6px; }
.assist, .assist * { min-width: 0; }
.c-linha > span { min-width: 0; }
.c-radios { display: grid; gap: 6px; }
.c-radio { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 9px 12px; border: 1px solid var(--borda); border-radius: 10px; font-size: 14px; cursor: pointer; }
.c-radio:has(input:checked) { border-color: var(--verde); background: var(--verde-claro); }
.c-radio input { width: 16px; height: 16px; accent-color: var(--verde); margin: 0; }
.c-radio small { color: var(--texto-3); }
.c-radio b { font-family: 'Plus Jakarta Sans'; font-variant-numeric: tabular-nums; white-space: nowrap; }
.c-linhas { display: grid; gap: 2px; margin-top: 6px; }
.c-linha { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 0; border-top: 1px solid var(--borda); font-size: 14px; flex-wrap: wrap; }
.c-linha > span { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.c-linha small { color: var(--texto-3); font-size: 12px; }
.c-linha b { font-family: 'Plus Jakarta Sans'; font-variant-numeric: tabular-nums; white-space: nowrap; }
.c-linha b.c-destaque { font-size: 20px; color: var(--verde-escuro); }
.c-mini { width: 76px !important; padding: 6px 8px !important; font-size: 14px; text-align: center; }
select.c-mini { width: auto !important; }
.c-aviso { color: var(--terracota); margin-top: 4px; }
.c-linha.c-manual { border-top: none; padding-top: 0; color: var(--texto-2); }
.c-linha.c-manual small { color: var(--refeicao); font-weight: 600; }
.c-radio b input.c-mini { width: 92px !important; display: inline-block; margin-right: 4px; }
.sem > div { white-space: nowrap; }
.c-dist { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 6px; }
.c-dist td { padding: 6px 4px; border-top: 1px solid var(--borda); }
.c-dist td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.c-dist tr.total td { font-weight: 700; font-family: 'Plus Jakarta Sans'; }
.c-dist td.fora { color: var(--terracota); }
.ed-calc { margin: 6px 0 0; font-size: 13px; color: var(--texto-2); line-height: 1.5; }
.ed-calc b { font-family: 'Plus Jakarta Sans'; color: var(--texto); }
.tot-dia { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 6px 0 14px; }
.tot-dia:empty { display: none; }
.tot-dia > div { background: var(--creme); border: 1px solid var(--borda); border-radius: 12px; padding: 10px 12px; }
.tot-dia span { display: block; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-3); font-family: 'Plus Jakarta Sans'; }
.tot-dia b { display: block; font: 800 18px 'Plus Jakarta Sans'; margin: 2px 0; font-variant-numeric: tabular-nums; }
.tot-dia small { color: var(--texto-2); font-size: 12px; }
.tot-dia .dif.ok b { color: var(--verde-escuro); }
.tot-dia .dif.fora b { color: var(--terracota); }
:root[data-tema="escuro"] .tot-dia .dif.ok b { color: #BFE3CF; }
:root[data-tema="escuro"] .c-linha b.c-destaque { color: #BFE3CF; }
@media (max-width: 760px) { .tot-dia { grid-template-columns: 1fr; } .c-radio { grid-template-columns: auto 1fr; } .c-radio b { grid-column: 2; } }
.col-enviar { position: sticky; top: 92px; }
@media (max-width: 900px) { .col-enviar { position: static; } .duas > div:last-child { order: 0; } }
@media (max-width: 760px) {
  .ed-cab { grid-template-columns: 1fr 1fr; }
  .ed-cab input:first-child { grid-column: 1 / -1; }
  .ed-item { grid-template-columns: 1fr auto; }
  .ed-item .ed-nome { grid-column: 1 / -1; order: -1; }               /* alimento primeiro, linha inteira */
  .ed-item .ed-qtd { grid-column: 1 / -1; grid-template-columns: 1fr 1.5fr; }
  .ed-item input:nth-child(3) { grid-column: 1; }                    /* troca */
  .ed-item .lnk-tirar { grid-column: 2; justify-self: end; }
  .sem > div { white-space: nowrap; font-size: 11px; }
  .c-radio b input.c-mini { width: 84px !important; }
  .ed-dia-cab { grid-template-columns: 1fr; gap: 6px; }
  .assist-cab { flex-direction: column; }
}

/* ── Logomarca no Perfil ──────────────────────────────────────────────────── */
.logo-linha { display: flex; gap: 14px; align-items: flex-start; }
.logo-prev { width: 96px; height: 96px; object-fit: contain; border: 1px solid var(--borda); border-radius: 12px; background: #fff; padding: 6px; flex: none; }
.logo-prev.vazia { display: grid; place-items: center; color: var(--texto-3); font-size: 12px; background: var(--creme); }
.logo-linha input[type="file"] { max-width: 320px; }

/* ── PDF do plano (prévia na tela + impressão) ────────────────────────────── */
/* O PDF usa as cores do manual (verde, terracota, tons dos pilares) em tons fixos, porque imprime
   igual no claro e no escuro. print-color-adjust garante que os fundos saiam no papel. */
.pdf-pagina { max-width: 860px; margin: 0 auto; padding: 16px; }
.pdf-barra { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.pdf { background: #fff; color: #2D2B28; border-radius: 8px; box-shadow: var(--sombra-forte); padding: 0 0 26px; font-size: 13.5px; line-height: 1.5; overflow: hidden; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.pdf > *:not(.pdf-cab) { margin-left: 36px; margin-right: 36px; }
.pdf h2 { font-size: 15px; color: #3E5C4C; margin: 18px 0 8px; letter-spacing: .02em; }
.pdf-cab { margin: 0; }
.pdf-faixa { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 18px; padding: 22px 36px; color: #fff;
  background: linear-gradient(120deg, #3E5C4C 0%, #5E8470 62%, #7FA58F 100%); position: relative; overflow: hidden; }
.pdf-faixa::after { content: ''; position: absolute; right: -50px; top: -70px; width: 220px; height: 220px; border-radius: 50%; background: rgba(255,255,255,.08); }
.pdf-faixa::before { content: ''; position: absolute; right: 120px; bottom: -110px; width: 200px; height: 200px; border-radius: 50%; background: rgba(184,95,71,.25); }
.pdf-titulo { position: relative; z-index: 1; }
.pdf-titulo small { display: block; font: 700 10.5px 'Plus Jakarta Sans'; letter-spacing: .14em; text-transform: uppercase; color: #F5D9CF; }
.pdf-titulo h1 { font-size: 22px; margin: 2px 0 0; color: #fff; letter-spacing: -.01em; text-wrap: balance; }
.pdf-logo-caixa { background: #fff; border-radius: 12px; padding: 8px 12px; position: relative; z-index: 1; justify-self: end; }
@media screen and (max-width: 760px) { .pdf-logo-caixa { justify-self: start; } }
.pdf-logo-nutri { max-height: 48px; max-width: 170px; object-fit: contain; display: block; }
.pdf-quem { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 14px 36px; background: #FAF8F5; border-bottom: 3px solid #B85F47; }
.pdf-quem small { display: block; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #B85F47; font-family: 'Plus Jakarta Sans'; font-weight: 700; }
.pdf-quem b { display: block; font: 700 15px 'Plus Jakarta Sans'; margin: 2px 0; }
.pdf-quem span { display: block; color: #5E5B57; font-size: 12.5px; }
.pdf-metas { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 8px; margin-top: 18px; margin-bottom: 6px; }
.pdf-meta { border-radius: 12px; padding: 9px 11px; position: relative; overflow: hidden; }
.pdf-meta::after { content: ''; position: absolute; right: -12px; bottom: -16px; width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.4); }
.pdf-meta b { display: block; font: 800 19px 'Plus Jakarta Sans'; }
.pdf-meta span { font-size: 11px; color: #5E5B57; }
.pdf-meta.verde { background: #D4EAE0; } .pdf-meta.verde b { color: #3E5C4C; }
.pdf-meta.saude { background: #F2E6EE; } .pdf-meta.saude b { color: #8E5E7B; }
.pdf-meta.refeicao { background: #FCEFE0; } .pdf-meta.refeicao b { color: #B57A2B; }
.pdf-meta.terra { background: #F5D9CF; } .pdf-meta.terra b { color: #B85F47; }
.pdf-meta.agua { background: #E3EFF7; } .pdf-meta.agua b { color: #3A7BAB; }
.pdf-dia-titulo { display: flex; align-items: center; gap: 10px; margin-top: 22px !important; }
.pdf-dia-titulo span { background: #3E5C4C; color: #fff; border-radius: 999px; padding: 4px 14px; font-size: 13px; }
.pdf-dia-titulo::after { content: ''; flex: 1; height: 2px; background: #D4EAE0; }
.pdf-ref { break-inside: avoid; border: 1px solid #EDE8E2; border-left: 4px solid #5E8470; border-radius: 10px; padding: 0 14px 10px; margin-top: 10px; }
.pdf-ref-cab { display: flex; justify-content: space-between; gap: 10px; font-family: 'Plus Jakarta Sans'; background: #FAF8F5; margin: 0 -14px 4px; padding: 8px 14px; border-radius: 0 8px 0 0; }
.pdf-ref-cab b { font-size: 14.5px; color: #3E5C4C; display: flex; align-items: center; gap: 10px; }
.pdf-hora { font-style: normal; font-size: 11.5px; font-weight: 700; color: #fff; background: #B57A2B; border-radius: 6px; padding: 2px 7px; letter-spacing: .02em; }
.pdf-ref-cab span { color: #B85F47; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.pdf-ref table { width: 100%; border-collapse: collapse; margin-top: 2px; }
.pdf-ref td { padding: 4px 0; border-top: 1px dashed #EDE8E2; vertical-align: top; }
.pdf-ref td.q { width: 132px; color: #B57A2B; font-weight: 600; white-space: nowrap; padding-right: 14px; }
.pdf-ref td small { display: block; color: #6F6B66; font-size: 12px; }
.pdf-tot { font-size: 12px; color: #3E5C4C; margin: 8px 0 0; background: #D4EAE0; border-radius: 8px; padding: 6px 10px; }
.pdf-texto { background: #FAF8F5; border-radius: 10px; padding: 10px 14px 12px; margin-top: 12px; }
.pdf-texto h2 { margin: 0 0 6px; }
.pdf-texto p { white-space: normal; margin: 0; }
.pdf-recado { background: #FCEFE0; } .pdf-recado h2 { color: #B57A2B; }
.pdf-rodape { margin-top: 26px; border-top: 2px solid #D4EAE0; padding-top: 14px; }
.pdf-assina { display: inline-block; margin: 10px 0 14px; border-top: 1px solid #2D2B28; padding-top: 4px; min-width: 260px; position: relative; }
.pdf-assina img { display: block; max-height: 64px; max-width: 240px; object-fit: contain; margin: 0 0 -6px 10px; position: relative; top: -58px; margin-bottom: -58px; }
.pdf-assina.assinado { margin-top: 70px; }
.pdf-assina span { display: block; font: 600 13px 'Plus Jakarta Sans'; }
.pdf-assina small { color: #6F6B66; font-size: 11px; }
.pdf-rodape p { font-size: 11px; color: #6F6B66; margin: 0; }
/* Documento dela (regra da frente jurídica): sem a logomarca do Rumo, só esta linha discreta. */
.pdf-rodape p.pdf-gerado { font-size: 9.5px; color: #8E8A84; margin-top: 6px; display: flex; align-items: center; justify-content: center; gap: 6px; }
/* Logomarca do Rumo Nutri no rodapé dos documentos dela (regra da jurídica, 06/11, a pedido do Luís): colorida, só no
   rodapé, sem slogan; com a logomarca dela no topo, 60% da altura dela, até 10 mm; sem logomarca, 6 mm.
   A altura final é medida na página (ajustarMarcasRodape, painel.js); esta é a de partida (6 mm). */
.marca-rodape { height: 6mm; max-height: 10mm; width: auto; vertical-align: middle; flex: none; }
.rodape-rumo { display: inline-flex; align-items: center; gap: 6px; }
.pdf-convite-marca { height: 26px; width: auto; display: block; margin-bottom: 22px; }
.pdf-barra .pdf-opcao { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; font-weight: 600; cursor: pointer; flex: 0 1 auto; }
.pdf-barra .pdf-opcao input { width: auto; margin: 0; flex: none; }
/* Página à parte com o convite pro app (opcional a cada emissão; nunca pra menor de 18). */
.pdf-convite { margin-top: 24px; break-before: page; page-break-before: always; }
.pdf-convite[hidden] { display: none !important; }
.pdf-convite-corpo { padding: 36px; font-size: 14px; line-height: 1.55; color: #2D2B28; }
.pdf-convite-corpo p { margin: 0 0 12px; }
.pdf-convite-para { font: 700 16px 'Plus Jakarta Sans'; }
.pdf-convite-codigo { display: block; margin: 8px 0 4px; font: 800 26px 'Plus Jakarta Sans'; letter-spacing: .12em; white-space: nowrap; }
.pdf-convite-quem { color: #6F6B66; font-size: 12.5px; margin-top: 20px !important; }
.logo-prev.assinatura-prev { width: 160px; height: 72px; }
:root[data-tema="escuro"] .pdf { box-shadow: none; }
/* Só na TELA estreita (celular): na impressão, a área útil do A4 (~720 px) cairia aqui e a faixa viraria uma coluna,
   com a caixa da logomarca esticada na largura toda (print do Luís, 06/11). */
@media screen and (max-width: 760px) { .pdf > *:not(.pdf-cab) { margin-left: 14px; margin-right: 14px; } .pdf-faixa { grid-template-columns: 1fr; padding: 16px; gap: 10px; } .pdf-quem { grid-template-columns: 1fr; padding: 12px 14px; } .pdf-ref-cab { flex-wrap: wrap; } }
@media print {
  @page { size: A4; margin: 12mm; }
  body, :root[data-tema="escuro"] body { background: #fff !important; }
  .faixa-demo, .no-print, .toast { display: none !important; }
  .pdf-pagina { max-width: none; padding: 0; }
  .pdf { box-shadow: none; border-radius: 0; }
  .pdf > *:not(.pdf-cab) { margin-left: 0; margin-right: 0; }
  .pdf-faixa, .pdf-quem { padding-left: 18px; padding-right: 18px; }
  .pdf-dia { break-inside: auto; }
}
/* Campos de texto livres no editor */
.secao-livre { margin-top: 14px; padding-top: 10px; border-top: 1px dashed var(--borda); }
.secao-cab { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; margin-bottom: 6px; }
.secao-cab input { font-weight: 600; }
.ed-qtd { display: grid; grid-template-columns: 1fr 1.25fr; gap: 4px; }
.ed-qtd input, .ed-qtd select { padding: 8px 8px; font-size: 14px; min-width: 0; }

/* ── "Como o paciente vê": telas do app (classes f-* pra não brigar com o painel) ─ */
.fones { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 22px; align-items: start; margin-top: 16px; }
.fone-wrap { max-width: 360px; margin: 0 auto; width: 100%; }
.fone-wrap .legenda-fone { text-align: center; color: var(--texto-2); font-size: 13.5px; margin-top: 10px; line-height: 1.45; }
.fone { --fp: #5E8470; --fpl: #D4EAE0; --fonp: #fff; --fbg: #FAF8F5; --fcard: #fff; --fsurf: #F0E6D3; --ftx: #2D2B28; --ftx2: #5E5B57; --ftx3: #6F6B66; --fbd: #EDE8E2; --fac: #B85F47; --fref: #B57A2B; --frefl: #FCEFE0;
  background: var(--fbg); color: var(--ftx); border-radius: 34px; border: 8px solid #2D2B28; padding: 40px 14px 20px; position: relative; font-family: 'Inter', sans-serif; font-size: 14px; line-height: 1.45; box-shadow: var(--sombra-forte); }
.fone::before { content: ''; position: absolute; top: 12px; left: 50%; transform: translateX(-50%); width: 96px; height: 18px; border-radius: 999px; background: #2D2B28; }
.fone h1 { font: 800 21px 'Plus Jakarta Sans'; color: var(--ftx); margin: 0 0 6px; letter-spacing: -.02em; }
.fone h2 { font: 700 15.5px 'Plus Jakarta Sans'; color: var(--ftx); margin: 0 0 8px; }
.f-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.f-cab span { width: 32px; height: 32px; border-radius: 50%; background: var(--fcard); border: 1px solid var(--fbd); display: grid; place-items: center; font-weight: 700; font-size: 14px; }
.f-cab b { font: 700 16px 'Plus Jakarta Sans'; }
.f-sub { color: var(--ftx2); font-size: 13px; margin: 0 0 12px; }
.f-mut { color: var(--ftx3); font-size: 12px; }
.f-card { background: var(--fcard); border: 1px solid var(--fbd); border-radius: 16px; padding: 14px; margin-bottom: 12px; }
.f-chip { display: inline-block; background: var(--frefl); color: var(--fref); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 4px 9px; border-radius: 999px; }
.f-btn { display: block; width: 100%; text-align: center; background: var(--fp); color: var(--fonp); border: none; border-radius: 13px; padding: 13px; font: 700 14px 'Plus Jakarta Sans'; margin-top: 10px; }
.f-btn.sec { background: transparent; color: var(--fp); border: 1.5px solid var(--fp); }
.f-btn.link { background: transparent; color: var(--ftx2); font-weight: 600; padding: 8px; }
.f-lista { list-style: none; padding: 0; margin: 0; }
.f-lista li { padding: 8px 0; border-top: 1px solid var(--fbd); font-size: 13px; display: flex; gap: 9px; align-items: flex-start; }
.f-lista li:first-child { border-top: none; padding-top: 0; }
.f-lista li i { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--fp); margin-top: 7px; }
.f-check { display: flex; gap: 9px; align-items: flex-start; font-size: 13px; margin-top: 10px; }
.f-check span.box { flex: none; width: 18px; height: 18px; border-radius: 6px; border: 2px solid var(--fp); margin-top: 1px; }
.f-nunca { background: var(--fsurf); border-radius: 12px; padding: 10px 12px; font-size: 12.5px; }
.f-linha { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--fbd); font-size: 13px; }
.f-linha:first-of-type { border-top: none; }
.f-sw { flex: none; width: 42px; height: 26px; border-radius: 999px; background: var(--fp); position: relative; }
.f-sw::after { content: ''; position: absolute; top: 3px; right: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; }
.f-ref { border: 1px solid var(--fbd); border-radius: 13px; padding: 11px 12px; margin-top: 10px; }
.f-ref h3 { margin: 0; font: 700 14px 'Plus Jakarta Sans'; display: flex; justify-content: space-between; gap: 8px; }
.f-ref h3 small { color: var(--ftx3); font: 500 12px 'Inter'; }
.f-ref ul { list-style: none; padding: 0; margin: 6px 0 0; font-size: 13px; }
.f-ref li { padding: 4px 0; border-top: 1px dashed var(--fbd); display: flex; gap: 8px; }
.f-ref li span { color: var(--ftx2); min-width: 80px; }
.f-barra { height: 9px; border-radius: 6px; background: var(--fbd); overflow: hidden; margin: 8px 0 4px; }
.f-barra i { display: block; height: 100%; width: 54%; background: var(--fp); }
.f-macros { display: flex; justify-content: space-between; font-size: 12px; color: var(--ftx3); }
.f-perfil { display: flex; gap: 10px; align-items: center; }
.f-perfil .ini { width: 44px; height: 44px; border-radius: 50%; background: var(--frefl); color: var(--fref); display: grid; place-items: center; font: 800 18px 'Plus Jakarta Sans'; }
.f-aviso { background: var(--fpl); border-radius: 13px; padding: 12px; font-size: 13px; }

/* ── Tema escuro (o painel do PRO não tem; aqui é por variável + os poucos tons fixos) ─ */
:root[data-tema="escuro"] {
  --verde: #7FA58F; --verde-claro: #1F3329; --verde-escuro: #3E5C4C;
  --terracota: #D08A72; --terracota-claro: #3A2622;
  --creme: #161513; --card: #211F1C; --superficie: #2A2622;
  --texto: #F0EDE7; --texto-2: #C9C3BA; --texto-3: #A39D94; --borda: #322E29;
  --agua: #7FB3DA; --agua-claro: #1B2B38; --refeicao: #D9A45A; --refeicao-claro: #3A2E1C; --saude: #C49AB4; --saude-claro: #33232D;
  --sombra: 0 1px 2px rgba(0,0,0,.3), 0 10px 30px -12px rgba(0,0,0,.5);
  --sombra-forte: 0 2px 6px rgba(0,0,0,.35), 0 18px 40px -16px rgba(0,0,0,.6);
}
:root[data-tema="escuro"] body { background: var(--creme); background-image:
  radial-gradient(900px 520px at -10% -10%, rgba(31,51,41,.9), transparent 60%),
  radial-gradient(700px 460px at 110% 0%, rgba(58,38,34,.6), transparent 60%); }
:root[data-tema="escuro"] .topo { background: rgba(22,21,19,.97); border-bottom-color: var(--borda); }
:root[data-tema="escuro"] .topo .quem a { background: var(--card); color: var(--texto-2); border-color: var(--borda); }
:root[data-tema="escuro"] .abas { background: rgba(33,31,28,.85); }
:root[data-tema="escuro"] .abas button { color: var(--texto-2); }
:root[data-tema="escuro"] .abas button:hover { background: var(--verde-claro); color: var(--texto); }
:root[data-tema="escuro"] .abas button.ativa { background: var(--verde); color: #10140F; }
:root[data-tema="escuro"] .card { border-color: var(--borda); }
:root[data-tema="escuro"] .hero { background: linear-gradient(120deg, #2A4036 0%, #3E5C4C 62%, #4E7060 100%); }
:root[data-tema="escuro"] .badge.bom { background: var(--verde-claro); color: #BFE3CF; }
:root[data-tema="escuro"] .badge.ruim { background: var(--terracota-claro); color: #F2B8A6; }
:root[data-tema="escuro"] .badge.neutro { background: var(--superficie); color: var(--texto-2); }
:root[data-tema="escuro"] .recibo { color: #BFE3CF; }
:root[data-tema="escuro"] .ok-msg { color: #BFE3CF; }
:root[data-tema="escuro"] .erro-msg { color: #F2B8A6; }
:root[data-tema="escuro"] .btn.sec { background: var(--card); color: #BFE3CF; border-color: var(--verde); }
:root[data-tema="escuro"] .btn.perigo { background: transparent; color: #F2B8A6; }
:root[data-tema="escuro"] .btn.sec:hover { background: var(--verde-claro); }
:root[data-tema="escuro"] .btn { background: linear-gradient(135deg, #6A9480, #5E8470 55%, #3E5C4C); }
:root[data-tema="escuro"] .voltar { color: #BFE3CF; }
:root[data-tema="escuro"] .viz-tile b { color: #BFE3CF; }
:root[data-tema="escuro"] .viz-tile:nth-child(2) b { color: var(--agua); }
:root[data-tema="escuro"] .viz-tile:nth-child(3) b { color: var(--refeicao); }
:root[data-tema="escuro"] .viz-tile:nth-child(4) b { color: var(--saude); }
:root[data-tema="escuro"] .avatar-mini, :root[data-tema="escuro"] .avatar-ini { color: #BFE3CF; }
:root[data-tema="escuro"] .passos span.feito { color: #BFE3CF; }
:root[data-tema="escuro"] .compart li b { color: #BFE3CF; }
:root[data-tema="escuro"] .dropzone { color: #BFE3CF; }
:root[data-tema="escuro"] .chip { color: #10140F; }
:root[data-tema="escuro"] .chip.demo { color: #fff; }
:root[data-tema="escuro"] .codigo-grande { color: #BFE3CF; }
:root[data-tema="escuro"] tr.link:hover td { background: #26302A; }
:root[data-tema="escuro"] .toast { background: #F0EDE7; color: #161513; }
:root[data-tema="escuro"] .conta tr.total td { border-top-color: var(--texto-2); }
:root[data-tema="escuro"] .ref [contenteditable="true"] { background: var(--verde-claro); }
:root[data-tema="escuro"] .fone { --fp: #9BC4AC; --fpl: #1F3329; --fonp: #1A2419; --fbg: #161513; --fcard: #211F1C; --fsurf: #2A2622; --ftx: #F0EDE7; --ftx2: #A39D94; --ftx3: #989088; --fbd: #322E29; --fac: #E8967D; --fref: #D9A45A; --frefl: #3A2E1C; border-color: #0B0B0A; }
:root[data-tema="escuro"] .fone::before { background: #0B0B0A; }

@media (max-width: 760px) {
  .faixa-demo { font-size: 11.5px; padding: 6px 10px; }
  :root:has(.faixa-demo) .topo { top: 28px; }
  .topo .marca .chip { display: none; }   /* a faixa já diz "Demonstração" */
  .topo .marca img { height: 26px; }
  .topo .quem { gap: 8px; }
  .topo .quem a { padding: 5px 10px; font-size: 12.5px; white-space: nowrap; }
  .duas .acoes .btn { width: 100%; }
  .fone { border-width: 6px; padding: 34px 12px 16px; border-radius: 28px; }
  .metas { grid-template-columns: repeat(3, 1fr); }
  .metas input { font-size: 18px; }
}
@media (max-width: 380px) {
  .metas { grid-template-columns: repeat(2, 1fr); }
  .sem > div { font-size: 11px; }
}

/* ── Abas do paciente + botão do relatório ────────────────────────────────── */
.abas-pac-linha { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
/* ── Resumo físico (altura, peso, IMC calculado, gordura, cintura) ─────────── */
.resumo-fisico { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; padding: 14px; }
.rf-item { background: var(--creme); border: 1px solid var(--borda); border-radius: 12px; padding: 10px 12px; }
.rf-item span { display: block; font: 700 10.5px 'Plus Jakarta Sans'; letter-spacing: .08em; text-transform: uppercase; color: var(--texto-3); }
.rf-item b { display: block; font: 800 20px 'Plus Jakarta Sans'; margin: 2px 0; font-variant-numeric: tabular-nums; }
.rf-item small { font-size: 11.5px; color: var(--texto-2); line-height: 1.3; display: block; }
.rf-imc.verde { background: var(--verde-claro); border-color: transparent; } .rf-imc.verde b { color: var(--verde-escuro); }
.rf-imc.refeicao { background: var(--refeicao-claro); border-color: transparent; } .rf-imc.refeicao b { color: var(--refeicao); }
.rf-imc.terra { background: var(--terracota-claro); border-color: transparent; } .rf-imc.terra b { color: var(--terracota); }
.rf-imc.agua { background: var(--agua-claro); border-color: transparent; } .rf-imc.agua b { color: var(--agua); }
:root[data-tema="escuro"] .rf-imc.verde b { color: #BFE3CF; }
@media (max-width: 900px) { .resumo-fisico { grid-template-columns: repeat(2, 1fr); } .rf-imc { grid-column: 1 / -1; } }

/* ── Relatório de evolução: linguagem do relatório semanal (shared/pdf/relatorio.ts) ── */
.so-print { display: none; }
.modo-relatorio body { background: #EDEAE4; background-image: none; }
.modo-relatorio .faixa-demo { display: none; }
.re-pagina { padding: 18px 12px 40px; }
.re-barra { max-width: 736px; margin: 0 auto 16px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.re { --verde: #5E8470; --verde-esc: #41604F; --carvao: #23211C; --sec: #57544E; --suave: #8A857D; --borda: #E6E1D8; --terra: #B85F47;
  display: flex; flex-direction: column; align-items: center; gap: 26px; color: var(--carvao); font-family: Inter, system-ui, sans-serif; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.re .folha { width: 700px; height: 1028px; overflow: hidden; background: #FAF8F5; display: flex; flex-direction: column; gap: 13px; box-shadow: 0 2px 18px rgba(0,0,0,.12); outline: 18px solid #FAF8F5; }
.re h1, .re h2, .re h3 { font-family: "Plus Jakarta Sans", Inter, sans-serif; margin: 0; }
.re header { display: flex; align-items: center; justify-content: space-between; background: #41604F; color: #FAF8F5; border-radius: 12px; padding: 13px 16px; flex-shrink: 0; gap: 12px; }
.re .marca { display: flex; align-items: center; gap: 10px; }
.re .logo { width: 34px; height: 34px; display: block; background: #FAF8F5; border-radius: 50%; padding: 2px; }
.re .marca-nome { font-family: "Plus Jakarta Sans", sans-serif; font-size: 18px; font-weight: 800; letter-spacing: -.02em; line-height: 1; }
.re .lockup { display: block; height: 24px; width: auto; margin-bottom: 4px; }
.re header h1 { font-size: 13px; font-weight: 700; color: rgba(250,248,245,.82); margin-top: 5px; letter-spacing: .01em; }
.re .periodo { display: flex; align-items: center; gap: 12px; text-align: right; }
.re .periodo .quem { font-family: "Plus Jakarta Sans", sans-serif; font-size: 16px; font-weight: 700; }
.re .periodo .datas { font-size: 12px; color: rgba(250,248,245,.78); margin-top: 2px; }
.re .logo-nutri { max-height: 38px; max-width: 120px; object-fit: contain; background: #FAF8F5; border-radius: 8px; padding: 4px 8px; }
.re .colunas { display: grid; grid-template-columns: 0.96fr 1.04fr; gap: 18px; flex: 1; min-height: 0; }
.re .col { display: flex; flex-direction: column; gap: 15px; min-width: 0; }
.re section { display: flex; flex-direction: column; gap: 7px; }
.re h2 { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--verde-esc); display: flex; align-items: center; gap: 7px; }
.re h2::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(94,132,112,.35), rgba(94,132,112,0)); }
.re .bloco { background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 11px 12px; }
.re ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.re .tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.re .tile { background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 10px 11px; }
.re .tile.destaque { background: #D9E9E0; border-color: #BFD8C9; }
.re .tile-num { font-family: "Plus Jakarta Sans", sans-serif; font-size: 25px; font-weight: 800; color: var(--verde-esc); line-height: 1.1; font-variant-numeric: tabular-nums; }
.re .tile-un { font-size: 12.5px; font-weight: 600; color: var(--sec); margin-left: 3px; }
.re .tile-rot { font-size: 11.5px; color: var(--sec); margin-top: 3px; }
.re .tile-nota { font-size: 10.5px; color: var(--suave); margin-top: 4px; }
.re .compara li { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: baseline; font-size: 12px; padding-bottom: 7px; border-bottom: 1px solid var(--borda); }
.re .compara li:last-child { border-bottom: 0; padding-bottom: 0; }
.re .compara li.cp-cab { font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--suave); padding-bottom: 3px; }
.re .compara li.cp-cab span { text-align: right; min-width: 58px; }
.re .cp-agora { font-weight: 700; color: var(--verde-esc); font-variant-numeric: tabular-nums; text-align: right; min-width: 58px; }
.re .cp-antes { font-size: 11px; color: var(--suave); font-variant-numeric: tabular-nums; min-width: 58px; text-align: right; }
.re .treinos li, .re .proxima li { display: grid; grid-template-columns: 52px 1fr; gap: 1px 9px; padding-bottom: 7px; border-bottom: 1px solid var(--borda); }
.re .treinos li:last-child, .re .proxima li:last-child { border-bottom: 0; padding-bottom: 0; }
.re .tr-dia { font-size: 11.5px; color: var(--suave); padding-top: 1px; }
.re .tr-nome, .re .px-nome { font-size: 12.5px; font-weight: 600; }
.re .px-nome small { font-weight: 400; color: var(--sec); }
.re .px-itens { display: block; font-size: 10.5px; color: var(--suave); font-weight: 400; line-height: 1.35; margin-top: 1px; }
.re .tr-meta { grid-column: 2; font-size: 11.5px; color: var(--sec); }
.re .peso, .re .imc { display: flex; justify-content: space-between; gap: 8px; padding-bottom: 9px; margin-bottom: 6px; border-bottom: 1px solid var(--borda); }
.re .peso > div, .re .imc > div { display: flex; flex-direction: column; gap: 1px; }
.re .cn { font-family: "Plus Jakarta Sans", sans-serif; font-size: 20px; font-weight: 800; color: var(--verde-esc); font-variant-numeric: tabular-nums; }
.re .cn small { font-size: 12px; font-weight: 600; color: var(--sec); }
.re .cr { font-size: 10.5px; color: var(--sec); }
.re .re-linha { width: 100%; height: auto; display: block; }
.re .re-linha .lb { font-size: 8.5px; fill: #8A857D; font-family: Inter, sans-serif; }
.re .re-linha .lv { font-size: 10px; font-weight: 700; fill: #41604F; font-family: Inter, sans-serif; }
.re .medidas li { display: grid; grid-template-columns: 1fr auto; gap: 0 10px; font-size: 12px; padding-bottom: 3px; }
.re .md-val { font-weight: 600; font-variant-numeric: tabular-nums; }
.re .md-nota { grid-column: 1 / 3; font-size: 10.5px; color: var(--suave); margin-top: -2px; }
.re .re-barras { position: relative; display: flex; gap: 7px; align-items: flex-end; padding-top: 6px; }
.re .re-bcol { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; }
.re .re-bbox { width: 100%; display: flex; align-items: flex-end; justify-content: center; }
.re .re-bar { width: 62%; border-radius: 4px 4px 0 0; }
.re .re-brot { font-size: 10px; color: var(--suave); }
.re .re-bval { font-size: 10.5px; font-weight: 600; color: var(--sec); font-variant-numeric: tabular-nums; }
.re .re-meta { position: absolute; left: 0; right: 0; border-top: 1px dashed var(--terra); opacity: .7; }
.re .re-meta span { position: absolute; left: 0; top: -12px; font-size: 9px; color: var(--terra); background: #fff; padding-right: 4px; }
.re .re-comp { display: flex; gap: 10px; align-items: flex-end; padding-top: 4px; }
.re .re-ccol { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; max-width: 88px; }
.re .re-cpct { font-size: 11px; font-weight: 700; color: var(--terra); }
.re .re-cbox { width: 100%; display: flex; align-items: flex-end; justify-content: center; }
.re .re-cstack { width: 70%; display: flex; flex-direction: column; border-radius: 5px 5px 0 0; overflow: hidden; gap: 2px; }
.re .re-cstack i { display: flex; align-items: center; justify-content: center; min-height: 14px; }
.re .re-cstack em { font-style: normal; font-size: 9.5px; font-weight: 700; color: #fff; }
.re .re-leg { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; font-size: 9.5px; color: var(--sec); }
.re .re-leg span { display: flex; align-items: center; gap: 4px; }
.re .re-leg i { width: 8px; height: 8px; border-radius: 2px; display: block; }
.re .bloco-nota { background: #F1F6F3; border-radius: 8px; padding: 8px 10px; font-size: 11px; color: var(--sec); line-height: 1.45; }
.re .bloco-nota b { color: var(--verde-esc); }
.re .nota-rodape { font-size: 10.5px; color: var(--suave); line-height: 1.45; margin: 4px 0 0; }
.re .nota-rodape b { color: var(--sec); }
.re .constancia li { display: grid; grid-template-columns: auto 1fr; gap: 1px 10px; padding-bottom: 7px; border-bottom: 1px solid var(--borda); }
.re .constancia li:last-child { border-bottom: 0; padding-bottom: 0; }
.re .cs-num { font-family: "Plus Jakarta Sans", sans-serif; font-size: 17px; font-weight: 800; color: var(--verde-esc); grid-row: span 2; align-self: center; font-variant-numeric: tabular-nums; }
.re .cs-rot { font-size: 12px; } .re .cs-nota { font-size: 10.5px; color: var(--suave); }
.re .re-plano-nome { font-family: "Plus Jakarta Sans", sans-serif; font-size: 14px; font-weight: 700; color: var(--carvao); margin-bottom: 9px; }
.re .re-plano-nome small { display: block; font-family: Inter, sans-serif; font-size: 10.5px; font-weight: 400; color: var(--suave); margin-top: 1px; }
.re .macs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; padding-bottom: 10px; }
.re .mac { display: flex; flex-direction: column; gap: 1px; }
.re .mac-num { font-family: "Plus Jakarta Sans", sans-serif; font-size: 17px; font-weight: 800; color: var(--verde-esc); line-height: 1.15; font-variant-numeric: tabular-nums; }
.re .mac-rot { font-size: 10.5px; color: var(--sec); }
.re .macbar { display: flex; height: 9px; border-radius: 5px; overflow: hidden; gap: 2px; }
.re .macbar span { display: block; }
.re .maclg { display: flex; gap: 9px; margin-top: 6px; font-size: 9.5px; color: var(--sec); flex-wrap: wrap; }
.re .maclg span { display: flex; align-items: center; gap: 4px; }
.re .maclg i { width: 8px; height: 8px; border-radius: 2px; display: block; }
.re .coach { background: #fff; border: 1px solid var(--borda); border-top: 3px solid var(--verde); border-radius: 10px; padding: 11px 12px; font-size: 12px; line-height: 1.5; color: var(--sec); }
.re .coach p { margin: 0 0 6px; } .re .coach p:last-child { margin-bottom: 0; }
.re .coach textarea { width: 100%; min-height: 240px; border: 1px dashed #BFD8C9; border-radius: 8px; padding: 8px; font: 12px/1.5 Inter, sans-serif; color: var(--carvao); background: #F7FAF8; resize: vertical; }
.re .re-assina { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; }
.re .re-assina img { max-height: 60px; max-width: 220px; object-fit: contain; margin-bottom: -4px; }
.re .re-assina-linha { width: 220px; height: 44px; border-bottom: 1px solid var(--carvao); margin-bottom: 4px; }
.re .re-assina b { font-family: "Plus Jakarta Sans", sans-serif; font-size: 13px; border-top: 1px solid var(--carvao); padding-top: 4px; min-width: 220px; }
.re .re-assina span { font-size: 11px; color: var(--sec); }
.re .vazio { background: transparent; border-style: dashed; border-color: #D6D0C5; display: flex; flex-direction: column; gap: 3px; }
.re .vz-tit { font-size: 12px; font-weight: 600; color: var(--sec); }
.re .vz-txt { font-size: 10.5px; color: var(--suave); line-height: 1.45; }
.re footer { border-top: 1px solid var(--borda); padding-top: 8px; display: flex; justify-content: space-between; gap: 12px; font-size: 10px; color: var(--suave); flex-shrink: 0; margin-top: auto; }
.re footer span:last-child { white-space: nowrap; }
@media screen and (max-width: 760px) { .re-pagina { padding: 10px 0 30px; } .re .folha { width: 100%; height: auto; outline: 0; padding: 12px; } .re .colunas { grid-template-columns: 1fr; } .re header { flex-wrap: wrap; } .re .periodo { text-align: left; } }
@media print {
  .modo-relatorio body { background: #FAF8F5 !important; }
  .re-pagina { padding: 0; } .re { gap: 0; display: block; }
  .re .folha { width: auto; height: 1028px; box-shadow: none; outline: 0; page-break-after: always; break-after: page; }
  .re .folha:last-child { page-break-after: auto; break-after: auto; }
  .so-print { display: block; }
}
/* Troca de gráfico sem salto: o gráfico novo entra com uma transição curta */
@keyframes grafEntra { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
#bio .viz-painel, #medidas .viz-painel { animation: grafEntra .25s ease-out; }
@media (prefers-reduced-motion: reduce) { #bio .viz-painel, #medidas .viz-painel { animation: none; } }
.rel-dests { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.rel-sec h2 { break-after: avoid; page-break-after: avoid; }
.rel-dest span { padding-right: 70px; }
@media print { .rel-sec.rel-medidas { break-before: page; } }
.re footer { text-align: left; padding: 8px 0 0; }
.re footer::before { display: none; }
.re .re-dia { font: 700 10px "Plus Jakarta Sans", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #8A857D; margin-top: 8px; }
.re .re-prox { display: flex; flex-direction: column; gap: 3px; }
.re .re-prox input { width: auto; max-width: 200px; padding: 6px 8px; font-size: 13px; background: #F7FAF8; border: 1px dashed #BFD8C9; color: #23211C; }
.re .re-prox span { font-family: "Plus Jakarta Sans", sans-serif; font-size: 15px; font-weight: 800; color: #41604F; }
.re .re-prox small { font-size: 10.5px; color: #8A857D; }

/* Lançamento grátis (assinatura) */
.lanc-card { background: linear-gradient(135deg, var(--verde-claro, #e6efe9), var(--card)); border: 1.5px solid var(--verde); }
.lanc-preco { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 10px 0 4px; }
.lanc-preco .lanc-de { width: 100%; font: 600 15px 'Plus Jakarta Sans'; color: var(--texto-3); }
.lanc-preco s, .conta s { text-decoration-thickness: 2px; text-decoration-color: #c4553f; }
.lanc-preco b { font: 800 40px 'Plus Jakarta Sans'; color: var(--verde-escuro, var(--verde)); line-height: 1; }
.lanc-preco .lanc-sub { font: 600 14px 'Inter'; color: var(--texto-2); }
.lanc-lista { list-style: none; margin: 12px 0 0; padding: 0; }
.lanc-lista li { position: relative; padding-left: 18px; margin: 8px 0; font-size: 14px; color: var(--texto-2); line-height: 1.45; }
.lanc-lista li::before { content: ''; position: absolute; left: 0; top: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--verde); }
.lanc-lista b { color: var(--texto); }
:root[data-tema="escuro"] .lanc-preco b { color: #BFE3CF; }

/* Modelos de cardápio (tela de escolha) */
.mod-grupo { margin-top: 12px; display: grid; gap: 8px; }
.mod-rot { font: 700 11px 'Plus Jakarta Sans'; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-3); }
.mod-item { display: grid; gap: 2px; width: 100%; text-align: left; background: var(--verde-claro); border: 1.5px solid transparent; border-radius: 12px; padding: 10px 12px; cursor: pointer; font: inherit; color: var(--texto); transition: border-color .15s, transform .15s; }
.mod-item:hover, .mod-item:focus-visible { border-color: var(--verde); transform: translateY(-1px); }
.mod-item b { font: 700 14px 'Plus Jakarta Sans'; color: var(--verde-escuro); }
.mod-item span { font-size: 12.5px; color: var(--texto-2); }
.mod-item-linha { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
:root[data-tema="escuro"] .mod-item b { color: #BFE3CF; }
/* Suplementação (editor) */
.sup-linha { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .7fr) minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 8px; align-items: end; padding: 10px 0; border-top: 1px dashed var(--borda); }
.sup-linha:first-child { border-top: none; }
.sup-linha label { margin: 0 0 4px; font-size: 12px; }
.sup-rm { padding-bottom: 10px; }
@media (max-width: 760px) {
  .sup-linha { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .sup-linha .sup-nome, .sup-linha .sup-obs { grid-column: 1 / -1; }
  .sup-rm { justify-self: start; padding-bottom: 0; }
}
/* Suplementação no PDF e no app */
.pdf-sup { background: #E8F1EC; } .pdf-sup h2 { color: #3E5C4C; }
.pdf-sup table { width: 100%; border-collapse: collapse; }
.pdf-sup td { padding: 5px 0; border-top: 1px dashed rgba(62,92,76,.25); vertical-align: top; font-size: 12.5px; }
.pdf-sup tr:first-child td { border-top: none; }
.pdf-sup td.q { width: 90px; font-weight: 700; color: #3E5C4C; white-space: nowrap; padding-right: 10px; }
.pdf-sup small { display: block; color: #5C635B; font-size: 11px; }
.f-sup { margin: 6px 0 8px; padding: 8px 10px; background: var(--fpl); border-radius: 10px; display: grid; gap: 2px; font-size: 12px; color: var(--ftx2); }
.f-sup b { font-size: 12px; color: var(--ftx); }

/* Fotos de perfil (paciente e nutricionista) */
img.avatar-mini.foto, img.avatar-ini.foto { object-fit: cover; padding: 0; }
img.avatar-mini.logo, img.avatar-ini.logo, .f-perfil img.ini.logo, .f-convite-quem img.ini.logo { object-fit: contain; background: #fff; padding: 4px; }
.aluno-hero img.avatar-ini { width: 52px; height: 52px; border-radius: 50%; border: 2px solid rgba(255,255,255,.55); flex: none; }
.f-perfil img.ini, .f-convite-quem img.ini { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: none; display: block; }
.f-convite-quem { display: flex; gap: 10px; align-items: center; margin: 4px 0 10px; }
.f-convite-quem .ini { width: 44px; height: 44px; border-radius: 50%; background: var(--frefl); color: var(--fref); display: grid; place-items: center; font: 800 18px 'Plus Jakarta Sans'; flex: none; }
.f-convite-quem > span { display: grid; font-size: 13px; color: var(--ftx); }
.logo-prev.foto-prev { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; }
div.logo-prev.foto-prev { display: grid; place-items: center; font-size: 11px; }
img.logo-prev.foto-prev { padding: 0; }

/* ─── Painel de verdade: entrar e cadastro ─────────────────────────────── */
.entrar-wrap { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px 16px; }
.entrar-card { width: 100%; max-width: 460px; }
.entrar-marca { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.entrar-marca .pro { font: 800 20px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; }
.entrar-marca .pro .nutri { color: var(--refeicao, #B57A2B); }
.entrar-tit { font-size: 22px; margin: 4px 0 6px; }
.entrar-rodape { margin-top: 14px; text-align: center; }
.entrar-card label { display: block; margin-top: 12px; }
.entrar-card input:not([type="checkbox"]), .entrar-card select { width: 100%; }
.entrar-card .aceite { display: flex; gap: 10px; align-items: flex-start; }
.cd-crn { display: grid; grid-template-columns: 1fr 1.4fr; gap: 12px; }
.g-btn { margin: 14px 0 4px; min-height: 44px; display: flex; justify-content: center; }
.ou { display: flex; align-items: center; gap: 10px; color: var(--texto-2, #5E5B57); font-size: 13px; margin: 10px 0 2px; }
.ou::before, .ou::after { content: ''; flex: 1; height: 1px; background: var(--borda, #EDE8E2); }
.erro-msg { color: #C0392B; font-size: 14px; margin: 10px 0 0; }
:root[data-tema="escuro"] .erro-msg { color: #EF9A9A; }
.lendo.erro-msg { background: transparent; }
.entrar-card a { color: var(--verde-escuro, #3E5C4C); font-weight: 600; }
:root[data-tema="escuro"] .entrar-card a { color: #9BC4AC; }

/* Aviso da leitura do PDF (Res. CFN 856/2026, art. 37): âmbar de texto #8A5A1C, AA no claro e no escuro */
.aviso-leitura { display: flex; flex-direction: column; gap: 4px; border-left: 4px solid #B57A2B; background: #FBF3E6; color: #4A3A22; }
.aviso-leitura b { color: #8A5A1C; font-family: 'Plus Jakarta Sans'; }
:root[data-tema="escuro"] .aviso-leitura { background: #2E261B; color: #EADFCB; }
:root[data-tema="escuro"] .aviso-leitura b { color: #D9A45A; }

/* ─── Entrada de nutri.rumolife.com (landing com o login na frente) ─────────────────
   Base: classes lp-* do painel.css (as mesmas da entrada do Rumo PRO), repintadas com a cara do
   Rumo Nutri (Luís, 02/11/2026: "Rumo Nutri não é verde, é mais bege"): creme, âmbar suave e âmbar
   (docs/marca/manual-marca-rumo-nutri.md §3). O verde fica onde o manual manda: bússola e botões de
   ação. "Nutri" em âmbar só em texto grande; texto pequeno colorido em âmbar de texto #8A5A1C. */
.lp-nutri { --nt-ambar: #B57A2B; --nt-ambar-txt: #8A5A1C; --nt-suave: #FCEFE0; --nt-sup: #F0E6D3; --nt-borda: #EEDDC4; --nt-carvao: #2D2B28; --nt-sec: #5E5B57; }
:root[data-tema="escuro"] .lp-nutri { --nt-ambar: #D9A45A; --nt-ambar-txt: #D9A45A; --nt-suave: #3A2E1C; --nt-sup: #2A2622; --nt-borda: #4A3B27; --nt-carvao: #F0EDE7; --nt-sec: #C9C3BA; }
.lp-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 2px 2px; }
.lp-topo img { height: 28px; width: auto; display: block; }
.lp-topo .lp-logo-escuro { display: none; }
:root[data-tema="escuro"] .lp-topo .lp-logo-claro { display: none; }
:root[data-tema="escuro"] .lp-topo .lp-logo-escuro { display: block; }
.lp-topo-link { font: 600 14px 'Plus Jakarta Sans', sans-serif; color: var(--nt-ambar-txt); text-decoration: none; padding: 8px 12px; border-radius: 8px; border: 1px solid var(--nt-borda); background: var(--card); }
.lp-nutri .lp-tag { color: var(--nt-ambar-txt); background: var(--nt-suave); border: 1px solid var(--nt-borda); }

/* Topo */
.lp-nutri .lp-hero { margin: 0; border-radius: 24px; color: var(--nt-carvao); background: var(--nt-suave); border: 1px solid var(--nt-borda); box-shadow: 0 2px 6px rgba(45,43,40,.05), 0 22px 44px -22px rgba(138,90,28,.30); overflow: hidden; }
.lp-nutri .lp-hero::before { background: rgba(255,255,255,.45); }
.lp-nutri .lp-hero::after { background: rgba(181,122,43,.10); }
:root[data-tema="escuro"] .lp-nutri .lp-hero::before { background: rgba(255,255,255,.03); }
.lp-nutri .lp-hero .lp-tag { color: var(--nt-ambar-txt); background: var(--card); border-color: var(--nt-borda); }
.lp-nutri .lp-hero-txt h1 { color: var(--nt-carvao); }
.lp-nutri .lp-hero-txt h1 .nutri { color: var(--nt-ambar); }
.lp-nutri .lp-frase { color: var(--nt-carvao); }
.lp-nutri .lp-frase b { color: var(--nt-ambar-txt); }
.lp-nutri .lp-frase-2 { color: var(--nt-sec); }
.lp-nutri .lp-selo { color: var(--nt-sec); }
.lp-nutri .lp-hero-foto img { border-color: rgba(181,122,43,.25); box-shadow: 0 24px 48px -20px rgba(138,90,28,.35); }
.lp-nutri .login-abas { width: 100%; }
.lp-nutri .login-form .card { padding-top: 14px; box-shadow: 0 2px 6px rgba(45,43,40,.06), 0 26px 50px -22px rgba(138,90,28,.40); }
.lp-nutri .login-form .g-btn { margin: 2px 0 0; }
.lp-nutri .login-form .ou { margin: 10px 0 0; }
.lp-btn-conta { width: 100%; margin-top: 14px; padding: 12px 18px; }
.lp-conta-nota { margin-top: 12px; font-size: 12.5px; line-height: 1.45; }

/* Topo com a foto do consultório: a foto entra limpa (sem filtro nem degradê). */
.lp-nutri .lp-hero.com-foto { padding: 0; gap: 0; grid-template-columns: 1fr; }
.lp-nutri .lp-hero.com-foto::before, .lp-nutri .lp-hero.com-foto::after { display: none; }
.lp-capa { margin: 0; position: relative; height: 232px; overflow: hidden; background: var(--nt-sup); }
.lp-capa img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 72% 30%; }
.lp-nutri .lp-hero.com-foto .lp-hero-txt { padding: 16px 16px 2px; }
.lp-nutri .lp-hero.com-foto .login-form { padding: 10px 16px 18px; }
@media (min-width: 761px) and (max-width: 1024px) {
  .lp-capa { height: 380px; }
  .lp-capa img { object-position: 60% 28%; }
  .lp-nutri .lp-hero.com-foto .lp-hero-txt { padding: 26px 32px 6px; }
  .lp-nutri .lp-hero.com-foto .login-form { padding: 12px 32px 32px; max-width: 520px; }
}
@media (min-width: 1025px) {
  /* Faixa larga da foto no alto; texto embaixo à esquerda; o cartão de login sobe sobre a parte de
     baixo da faixa, à direita (mesa e poltrona), longe dos rostos (que ficam no terço de cima). */
  .lp-nutri .lp-hero.com-foto { grid-template-columns: 1fr 420px; grid-template-rows: 400px auto; align-items: stretch; }
  .lp-capa { grid-column: 1 / -1; grid-row: 1; height: auto; }
  .lp-capa img { object-position: 50% 26%; }
  .lp-nutri .lp-hero.com-foto .lp-hero-txt { grid-column: 1; grid-row: 2; padding: 30px 40px 36px; align-self: center; }
  .lp-nutri .lp-hero.com-foto .lp-hero-txt h1 { margin-top: 10px; }
  /* O cartão começa a 280 px do topo da faixa (abaixo do queixo da paciente; Luís, 02/11). */
  .lp-nutri .lp-hero.com-foto .login-form { grid-column: 2; grid-row: 1 / 3; align-self: start; margin: 280px 32px 32px 0; padding: 0; position: relative; z-index: 2; }
}

/* Seções */
.lp-nutri .lp-passos3 { background: var(--nt-suave); border: 1px solid var(--nt-borda); }
.lp-nutri .lp-passos3 > div { color: var(--nt-carvao); }
.lp-nutri .lp-passos3 strong { color: var(--nt-ambar-txt); }
.lp-nutri .lp-passos3 b, .lp-nutri .lp-passos b { background: #8A5A1C; color: #fff; }
:root[data-tema="escuro"] .lp-nutri .lp-passos3 b, :root[data-tema="escuro"] .lp-nutri .lp-passos b { background: #D9A45A; color: #2A1D0C; }
.lp-nutri .lp-num { background: var(--nt-suave); color: var(--nt-ambar-txt); }
.lp-nutri .lp-bloco-txt h2 { color: var(--nt-carvao); }
.lp-nutri .lp-preco { background: var(--creme); }
.lp-nutri .lp-preco.destaque { border: 2px solid var(--nt-ambar); background: linear-gradient(180deg, var(--nt-suave), var(--card) 65%); }
.lp-nutri .lp-preco b { color: var(--nt-carvao); }
.lp-nutri .lp-passos li { background: var(--nt-suave); }
.lp-nutri .lp-faq summary::after { color: var(--nt-ambar-txt); }
.lp-nutri .lp-faq summary:focus-visible { outline-color: var(--nt-ambar-txt); }
.lp-nutri .lnk-suporte { color: var(--nt-ambar-txt); }
.lp-nutri .lp-final { background: linear-gradient(140deg, var(--nt-suave) 0%, #F6E8D2 60%, var(--nt-sup) 100%); color: var(--nt-carvao); border: 1px solid var(--nt-borda); box-shadow: 0 2px 6px rgba(45,43,40,.05), 0 22px 44px -22px rgba(138,90,28,.30); }
:root[data-tema="escuro"] .lp-nutri .lp-final { background: linear-gradient(140deg, #3A2E1C 0%, #2A2622 100%); }
.lp-nutri .lp-final h2 { color: var(--nt-carvao); }
.lp-nutri .lp-final p { color: var(--nt-sec); }
.lp-nutri .lp-final .btn, :root[data-tema="escuro"] .lp-nutri .lp-final .btn { background: var(--verde); color: #fff; }
:root[data-tema="escuro"] .lp-nutri .lp-final .btn { color: #10140F; }
.lp-nutri .lp-final-suporte, .lp-nutri .lp-final .lp-final-suporte { color: var(--nt-sec); }
.lp-nutri .lp-final-suporte a { color: var(--nt-ambar-txt); }
.lp-nutri .lp-final-foto img { aspect-ratio: 3 / 4; object-position: center top; border-radius: 16px; box-shadow: 0 24px 48px -20px rgba(138,90,28,.35); }
.lp-rodape { text-align: center; font-size: 13px; color: var(--texto-3); padding: 6px 8px 2px; line-height: 1.8; }
.lp-rodape a { color: var(--texto-2); }

/* Celular: o login com Google e com e-mail cabe na primeira tela (sem rolar). */
@media (max-width: 760px) {
  .lp-nutri .lp-hero { margin: 0 -16px; border-radius: 0; border-left: 0; border-right: 0; padding: 18px 16px 18px; gap: 12px; }
  .lp-nutri .lp-hero-txt h1 { font-size: 28px; margin: 8px 0 6px; }
  .lp-nutri .lp-frase { font-size: 15.5px; }
  .lp-nutri .lp-frase-2 { display: none; }
  .lp-nutri .lp-hero.com-foto .lp-selo { display: none; }
  .lp-nutri .lp-selo { margin-top: 8px; font-size: 13px; }
  .lp-nutri .login-form label { margin-top: 8px; }
}
/* Fundo da página na entrada: tons quentes do Nutri (o do painel tem um brilho verde no canto). */
body:has(.lp-nutri) { background: var(--creme); background-image:
  radial-gradient(900px 520px at -10% -10%, rgba(252,239,224,.95), transparent 60%),
  radial-gradient(700px 460px at 110% 0%, rgba(240,230,211,.7), transparent 60%); }
:root[data-tema="escuro"] body:has(.lp-nutri) { background: var(--creme); background-image:
  radial-gradient(900px 520px at -10% -10%, rgba(58,46,28,.75), transparent 60%),
  radial-gradient(700px 460px at 110% 0%, rgba(42,38,34,.7), transparent 60%); }
/* Botões e aba ativa no claro: texto < 19 px em negrito pede o verde escuro (#3E5C4C, 6,98:1);
   o #5E8470 com texto branco dá 4,19:1. No escuro o botão já é verde claro com texto escuro (6,8:1). */
:root:not([data-tema="escuro"]) .lp-nutri .btn, :root:not([data-tema="escuro"]) .lp-nutri .login-abas button.ativa,
:root:not([data-tema="escuro"]) .lp-nutri .lp-final .btn { background: #3E5C4C; color: #fff; }
:root:not([data-tema="escuro"]) .lp-nutri .btn:hover { background: #34503F; filter: none; }
/* Preço: só "De graça", sem preço riscado (Luís, 04/11). Um cartão só. */
.lp-nutri .lp-precos-grid { grid-template-columns: minmax(0, 440px); }
.lp-preco-cheio { display: block; margin-top: 10px; font: 600 15px 'Plus Jakarta Sans', sans-serif; color: var(--nt-sec); text-decoration: line-through; text-decoration-thickness: 2px; text-decoration-color: rgba(184,95,71,.8); }
.lp-nutri .lp-preco-cheio + b { margin-top: 0; }
.lp-nutri .lp-selo s { text-decoration-thickness: 1.5px; text-decoration-color: rgba(184,95,71,.8); }
.lp-nutri .lp-selo b { color: var(--nt-ambar-txt); }
.lp-nutri .lp-preco .lp-tag { justify-self: start; }
.lp-nutri .lp-preco.destaque b { font-size: 38px; color: var(--nt-ambar); } /* texto grande: âmbar passa 3:1 */

/* Selos das lojas e botão do WhatsApp (02/11): o número de suporte não fica escrito na página. */
.lp-lojas { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
.lp-lojas span { flex-basis: 100%; font: 600 13.5px 'Plus Jakarta Sans', sans-serif; color: var(--nt-sec, var(--texto-2)); }
.lp-lojas a { display: block; border-radius: 8px; transition: transform .12s ease; }
.lp-lojas a:hover { transform: translateY(-1px); }
.lp-lojas a:focus-visible { outline: 2px solid var(--nt-ambar-txt, var(--verde-escuro)); outline-offset: 3px; }
.lp-lojas img { display: block; height: 40px; width: auto; }
.lp-final-suporte { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.lp-whats { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px; font: 700 14px 'Plus Jakarta Sans', sans-serif; text-decoration: none; background: var(--card); color: var(--nt-ambar-txt); border: 1px solid var(--nt-borda); }
.lp-nutri .lp-final .lp-final-suporte a.lp-whats { color: var(--nt-ambar-txt); text-decoration: none; }
.lp-whats:hover { border-color: var(--nt-ambar); }
.lp-whats:focus-visible { outline: 2px solid var(--nt-ambar-txt); outline-offset: 2px; }
.lp-whats .ico-wa { flex: none; }

/* ─── Evolução lado a lado, dobras cutâneas e classificação do % de gordura (frente de consultas, Fase 1) ─── */
.cl-gord { display: inline-block; font: 600 11px 'Inter', sans-serif; padding: 1px 7px; border-radius: 999px; white-space: nowrap; vertical-align: 1px; background: var(--superficie); color: var(--texto); }
.cl-gord.adequado { background: var(--verde-claro); }
.cl-gord.acima { background: var(--refeicao-claro); }
.cl-gord.muito_acima { background: var(--terracota-claro); }
.cl-gord.baixo { background: var(--agua-claro); }
.como-calcula { margin-top: 14px; border-top: 1px solid var(--borda); padding-top: 10px; font-size: 13px; color: var(--texto-2); }
.como-calcula summary { cursor: pointer; font: 600 13px 'Plus Jakarta Sans', sans-serif; color: var(--texto); }
.como-calcula ul { margin: 8px 0 6px 18px; display: grid; gap: 4px; }
.como-calcula p { margin-top: 6px; line-height: 1.5; }
.evo-gloss { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin-top: 10px; }
.evo-gloss dt { font-weight: 600; color: var(--texto); }
@media (max-width: 600px) { .evo-gloss { grid-template-columns: 1fr; } .evo-gloss dd { margin-bottom: 6px; } }

/* Modal das dobras */
.dobras-campos { margin-top: 6px; }
.dobras-campos .req { display: none; color: var(--terracota); }
.dobras-campos .obrig .req { display: inline; }
.dobras-campos .obrig input { border-color: var(--verde); background: var(--card); }
.dobras-campos > div:not(.obrig) label { color: var(--texto-3); }
.dobras-res { margin-top: 12px; background: var(--creme); border: 1px solid var(--borda); border-radius: 12px; padding: 10px 12px; min-height: 44px; }
.dobras-res-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px 12px; }
.dobras-res-grade span { display: block; font: 700 10.5px 'Plus Jakarta Sans'; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-3); }
.dobras-res-grade b { font: 800 17px 'Plus Jakarta Sans'; font-variant-numeric: tabular-nums; margin-right: 6px; }

/* Tabela lado a lado */
.evo-ctl { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 12px; }
.evo-chips { margin: 0; align-items: center; }
.evo-chips > span { font: 600 12px 'Inter'; color: var(--texto-2); margin-right: 2px; }
.evo-chips button { border-color: var(--borda); background: var(--card); }
.evo-rolagem { overflow-x: auto; margin-top: 12px; -webkit-overflow-scrolling: touch; }
.evo-tabela { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.evo-tabela th, .evo-tabela td { padding: 7px 10px; border-bottom: 1px solid var(--borda); text-align: right; vertical-align: top; }
.evo-tabela thead th { font: 700 12.5px 'Plus Jakarta Sans'; color: var(--texto); border-bottom: 2px solid var(--borda); white-space: nowrap; }
.evo-tabela tbody th { text-align: left; font-weight: 500; color: var(--texto-2); white-space: nowrap; }
.evo-tabela th:first-child, .evo-tabela td:first-child { position: sticky; left: 0; background: var(--card); z-index: 1; }
.evo-tabela td b { font: 700 14.5px 'Plus Jakarta Sans'; color: var(--texto); white-space: nowrap; }
.evo-tabela td .evo-d { display: block; font-style: normal; font-size: 11.5px; color: var(--texto-2); white-space: nowrap; }
.evo-tabela td small { display: block; font-size: 11px; color: var(--texto-3); white-space: nowrap; }
.evo-tabela tr.evo-grupo th { text-align: left; font: 700 10.5px 'Plus Jakarta Sans'; letter-spacing: .08em; text-transform: uppercase; color: #8A5A1C; background: #FCEFE0; padding: 6px 10px; border-bottom: 0; }
:root[data-tema="escuro"] .evo-tabela tr.evo-grupo th { color: #D9A45A; background: #3A2E1C; }

/* Composição por consulta */
.evo-comp { display: flex; gap: 14px; align-items: flex-end; margin-top: 8px; overflow-x: auto; padding-bottom: 2px; }
.evo-ccol { flex: 0 0 76px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.evo-cpct { font: 800 14px 'Plus Jakarta Sans'; color: var(--texto); }
.evo-cbox { width: 46px; display: flex; align-items: flex-end; }
.evo-cstack { width: 100%; display: flex; flex-direction: column; border-radius: 8px; overflow: hidden; }
.evo-cstack i { display: flex; align-items: center; justify-content: center; min-height: 18px; }
.evo-cstack i em { font: 700 11px 'Inter'; font-style: normal; }
.evo-cstack i.g, .evo-leg i.g { background: #E3B77A; } .evo-cstack i.g em { color: #3A2A12; }
.evo-cstack i.l, .evo-leg i.l { background: #3E5C4C; } .evo-cstack i.l em { color: #fff; }
.evo-crot { font-size: 12px; color: var(--texto-2); }
.evo-leg { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 8px; font-size: 12px; color: var(--texto-2); }
.evo-leg i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }

/* Página de foto e impressão: cores fixas, larga o bastante pra caber 3 ou 4 consultas no celular */
.evo-pagina { max-width: 760px; margin: 0 auto; padding: 16px; }
.evo-pagina .evo-ctl { margin: 0 0 12px; }
.evo-folha { --card: #fff; --borda: #EDE8E2; --texto: #2D2B28; --texto-2: #5E5B57; --texto-3: #6F6B66; --verde-claro: #D4EAE0; --refeicao-claro: #FCEFE0; --terracota-claro: #F5D9CF; --agua-claro: #E3EFF7; --superficie: #F0E6D3;
  background: #fff; color: #2D2B28; border-radius: 18px; padding: 20px 18px 14px; box-shadow: 0 2px 6px rgba(45,43,40,.06), 0 18px 40px -16px rgba(62,92,76,.28); }
.evo-folha .evo-tabela tr.evo-grupo th { color: #8A5A1C; background: #FCEFE0; }
.evo-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; border-bottom: 2px solid #EDE8E2; padding-bottom: 12px; }
.evo-cab small { font: 700 11px 'Plus Jakarta Sans'; letter-spacing: .1em; text-transform: uppercase; color: #8A5A1C; }
.evo-cab h1 { font: 800 22px 'Plus Jakarta Sans'; color: #2D2B28; margin: 2px 0; }
.evo-cab span { font-size: 12.5px; color: #5E5B57; }
.evo-logo { max-height: 44px; max-width: 150px; object-fit: contain; }
.evo-logo.marca { height: 24px; }
.evo-ref { margin: 8px 0 0; font-size: 12px; line-height: 1.45; color: var(--texto-2); max-width: 760px; }
.evo-folha .evo-ref { color: #5E5A55; }
.evo-rodape { display: flex; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 8px; border-top: 1px solid #EDE8E2; font-size: 11.5px; color: #6F6B66; }
@media (max-width: 600px) { .evo-pagina { padding: 10px 8px; } .evo-folha { padding: 14px 10px 10px; } .evo-tabela { font-size: 12.5px; } .evo-tabela th, .evo-tabela td { padding: 6px 7px; } .evo-tabela td b { font-size: 13.5px; } .evo-cab h1 { font-size: 19px; } }
@media print {
  .evo-pagina { max-width: none; padding: 0; }
  .evo-folha { box-shadow: none; border-radius: 0; padding: 0; }
  .evo-rolagem { overflow: visible; }
  .evo-tabela tr { break-inside: avoid; }
}
.evo-tabela th { text-transform: none; letter-spacing: 0; }
.evo-tabela tbody th { white-space: normal; min-width: 116px; max-width: 170px; font-size: 13px; line-height: 1.3; }
.evo-tabela tbody th .evo-fonte { display: block; font-size: 11px; color: var(--texto-3); }
.evo-tabela thead th { background: transparent; }
@media (max-width: 600px) { .evo-tabela tbody th { min-width: 96px; max-width: 120px; font-size: 12px; } .evo-tabela td small { white-space: normal; } }
@media (max-width: 600px) { .evo-tabela th, .evo-tabela td { padding: 6px 5px; } .evo-tabela td b { font-size: 13px; } .evo-tabela td .evo-d { font-size: 11px; } }
@media print {
  .evo-folha .evo-tabela { font-size: 10.5px; }
  .evo-folha .evo-tabela th, .evo-folha .evo-tabela td { padding: 3px 8px; }
  .evo-folha .evo-tabela td b { font-size: 11.5px; }
  .evo-folha .evo-tabela td .evo-d, .evo-folha .evo-tabela td small { font-size: 9.5px; display: inline; margin-left: 6px; }
  .evo-folha .evo-tabela tr.evo-grupo th { padding: 4px 8px; }
}
.dobras-res-grade span.cl-gord { display: inline-block; font: 600 11px 'Inter', sans-serif; letter-spacing: 0; text-transform: none; color: var(--texto); }

/* ─── Consultas (frente de consultas, Fase 2) ─────────────────────────────── */
.resumo-clinico { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin: 0 0 14px; padding: 12px 14px; border-left: 4px solid var(--terracota); }
.resumo-clinico span { display: block; font: 700 10.5px 'Plus Jakarta Sans'; letter-spacing: .08em; text-transform: uppercase; color: var(--texto-3); }
.resumo-clinico b { display: block; font-weight: 600; color: var(--texto); line-height: 1.4; margin-top: 2px; }
.resumo-clinico small { font-size: 11px; color: var(--texto-3); }
.prox-quando { font: 800 20px 'Plus Jakarta Sans'; color: var(--texto); margin: 4px 0 2px; }
.desde-tiles { margin-top: 10px; }
.cons-lista { display: grid; gap: 10px; margin-top: 12px; }
.cons-item { border: 1px solid var(--borda); border-radius: 12px; background: var(--card); }
.cons-item > summary { cursor: pointer; list-style: none; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 12px 14px; }
.cons-item > summary::-webkit-details-marker { display: none; }
.cons-item > summary b { font: 800 15px 'Plus Jakarta Sans'; color: var(--texto); }
.cons-item > summary span { color: var(--texto-2); font-size: 14px; }
.cons-item > summary:focus-visible { outline: 2px solid var(--verde); outline-offset: 2px; border-radius: 12px; }
.cons-status { margin-left: auto; font: 600 11.5px 'Inter'; font-style: normal; padding: 2px 9px; border-radius: 999px; background: var(--superficie); color: var(--texto); }
.cons-status.aberta { background: var(--refeicao-claro); }
.cons-corpo { padding: 0 14px 14px; border-top: 1px solid var(--borda); }
.cons-dl { margin: 12px 0 0; display: grid; gap: 4px; }
.cons-dl dt { font: 700 12px 'Plus Jakarta Sans'; color: var(--texto-2); margin-top: 6px; }
.cons-dl dd { margin: 0; color: var(--texto); line-height: 1.5; }
.cons-ret, .cons-liga { margin-top: 10px; font-size: 13.5px; color: var(--texto-2); }
.cons-meta { margin-top: 10px; font-size: 12px; color: var(--texto-3); }
.cons-adendos { margin-top: 12px; display: grid; gap: 8px; }
.cons-adendo { border-left: 3px solid var(--refeicao); background: var(--refeicao-claro); border-radius: 0 10px 10px 0; padding: 8px 12px; }
.cons-adendo span { font: 700 11.5px 'Plus Jakarta Sans'; color: var(--texto-2); }
.cons-adendo p { margin: 3px 0 0; color: var(--texto); line-height: 1.5; }
.cons-campo { margin-top: 12px; }
.cons-campo label { display: block; font-weight: 600; margin-bottom: 4px; }
.cons-campo textarea { width: 100%; resize: vertical; font: inherit; line-height: 1.5; }
.ex-linhas { display: grid; gap: 8px; margin: 12px 0 8px; }
.ex-linha { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 8px; }
.mo-lista { display: grid; gap: 6px; margin-top: 12px; max-height: 50vh; overflow-y: auto; }
.mo-linha { display: grid; grid-template-columns: 1fr auto auto auto; gap: 6px; align-items: center; }
@media (max-width: 600px) { .ex-linha { grid-template-columns: 1fr 1fr; } .ex-linha .ex-nome { grid-column: 1 / -1; } .cons-status { margin-left: 0; } }
.pront-cons { margin-top: 16px; padding-top: 12px; border-top: 1px solid #EDE8E2; break-inside: auto; }
.pront-cons h2 { font: 800 15px 'Plus Jakarta Sans'; color: #2D2B28; margin: 0; break-after: avoid; }
.pront .cons-dl dt { color: #5E5B57; } .pront .cons-dl dd { color: #2D2B28; }
.pront .cons-adendo { background: #FCEFE0; border-left-color: #B57A2B; } .pront .cons-adendo span { color: #5E5B57; } .pront .cons-adendo p { color: #2D2B28; }
.pront .cons-meta, .pront .cons-ret { color: #6F6B66; }
@media print { .pront-pagina .pront-cons dl, .pront-pagina .cons-adendo { break-inside: avoid; } }
/* Consultas, versão enxuta (pedido do Luís, 05/11): o essencial na tela, campos que crescem com o texto. */
.cons-topo { display: grid; gap: 16px; margin-top: 16px; }
.cons-topo > .card { margin-top: 0 !important; }
@media (min-width: 900px) { .cons-topo { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); align-items: stretch; } }
.desde-card .viz-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1100px) { .desde-card .viz-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.desde-card .viz-tile b { font-size: 20px; }
.cons-editor .cons-cab { padding: 14px 16px; }
.cons-cab-linha { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.cons-cab h1 { font: 800 20px 'Plus Jakarta Sans'; color: var(--texto); margin: 0; }
.cons-cab .sub { margin: 2px 0 0; }
.cons-salvo { font-size: 12.5px; color: var(--texto-2); padding: 4px 10px; border-radius: 999px; background: var(--superficie); white-space: nowrap; }
.cons-salvo.erro { background: var(--terracota-claro); color: var(--texto); white-space: normal; }
.cons-cab-campos { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; }
.cons-cab-campos input, .cons-cab-campos select { width: auto; padding: 8px 10px; }
.cons-tipo { font: 700 14px 'Plus Jakarta Sans'; padding: 7px 12px; border-radius: 10px; background: var(--refeicao-claro); color: var(--texto); }
.seg { display: inline-flex; border: 1px solid var(--borda); border-radius: 10px; padding: 3px; background: var(--creme); }
.seg button { border: 0; background: transparent; font: 600 13.5px 'Plus Jakarta Sans'; color: var(--texto-2); padding: 6px 12px; border-radius: 8px; cursor: pointer; }
.seg button.ativa { background: var(--verde-escuro); color: #fff; }
:root[data-tema="escuro"] .seg button.ativa { background: var(--verde); color: #10140F; }
.cons-sec-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.cons-editor .cons-campo { margin-top: 10px; }
.cons-editor .cons-campo label { font-size: 13px; color: var(--texto-2); font-weight: 600; margin-bottom: 3px; }
.cons-editor .cons-campo textarea { min-height: 40px; overflow: hidden; resize: none; padding: 9px 11px; }
.cons-rodape-card { display: grid; gap: 12px; }
.cons-medidas { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; color: var(--texto-2); }
.cons-medidas b { color: var(--texto); font-weight: 600; }
.cons-retorno { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; border-top: 1px solid var(--borda); padding-top: 12px; }
.cons-retorno label { margin: 0; font-weight: 600; font-size: 14px; }
.cons-retorno input { width: auto; padding: 8px 10px; }
.cons-editor .cons-campo textarea { min-height: 86px; }
.cons-escolha h1 { font: 800 20px 'Plus Jakarta Sans'; color: var(--texto); margin: 0; }
.cons-escolha-botoes { display: grid; gap: 12px; margin-top: 14px; }
@media (min-width: 700px) { .cons-escolha-botoes { grid-template-columns: 1fr 1fr; } }
.cons-opcao { display: block; text-decoration: none; border: 1.5px solid var(--borda); border-radius: 14px; padding: 18px; background: var(--creme); color: var(--texto); }
.cons-opcao:hover, .cons-opcao:focus-visible { border-color: var(--verde); background: var(--card); outline: none; }
.cons-opcao b { display: block; font: 800 17px 'Plus Jakarta Sans'; }
.cons-opcao span { display: block; margin-top: 4px; color: var(--texto-2); font-size: 14px; line-height: 1.45; }

/* ── Paciente sem o app (frente de consultas, Fase 3) ── */
.sem-app-lista { list-style: none; margin-top: 8px; }
.sem-app-lista li { border-top: 1px solid var(--borda); }
.sem-app-lista li:first-child { border-top: none; }
.sem-app-lista a { display: flex; align-items: center; gap: 12px; padding: 10px 4px; min-height: 48px; color: inherit; text-decoration: none; border-radius: 10px; }
.sem-app-lista a:hover, .sem-app-lista a:focus-visible { background: var(--creme); }
.sem-app-lista .sa-txt { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.sem-app-lista b { font-family: 'Plus Jakarta Sans'; }
.sem-app-lista .seta { font-size: 22px; color: var(--texto-2); }
.aviso-resp { border-left: 4px solid #B57A2B; background: #FBF3E6; color: #4A3A22; border-radius: 0 10px 10px 0; padding: 10px 12px; font-size: 13.5px; line-height: 1.5; margin: 14px 0 6px; }
.check-linha { display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 2px 0 6px; font-weight: 600; cursor: pointer; }
.check-linha input { width: 20px; height: 20px; accent-color: var(--verde); margin: 0; }
.erro-campo { color: #A23B2A; font-size: 13.5px; min-height: 1em; margin-top: 8px; }
:root[data-tema="escuro"] .aviso-resp { background: #2E261B; color: #EADFCB; }
:root[data-tema="escuro"] .sem-app-lista a:hover, :root[data-tema="escuro"] .sem-app-lista a:focus-visible { background: var(--superficie); }
:root[data-tema="escuro"] .erro-campo { color: #F0A493; }

/* Paciente de exemplo */
.aviso-exemplo { margin-top: 16px; background: #FCEFE0; border: 1px solid #EBD3B4; color: #4A3A26; font-size: 14px; line-height: 1.5; }
.aviso-exemplo b { color: #8A5A1C; }
:root[data-tema="escuro"] .aviso-exemplo { background: #2E261B; border-color: #4A3B26; color: #EADFCB; }
:root[data-tema="escuro"] .aviso-exemplo b { color: #D9A45A; }
.exemplo-vazio { margin-top: 6px; }

/* Fluxo novo (05/11): convite em destaque no paciente, com QR; selo discreto na lista. */
.convite-destaque { border: 1.5px solid var(--verde, #5E8470); }
.convite-destaque.momento { box-shadow: 0 0 0 4px rgba(94,132,112,.14); }
.qr-convite { width: min(240px, 70vw); margin: 12px auto 0; background: #fff; border-radius: 12px; padding: 8px; }
.qr-convite svg, .pdf-convite-qr svg { display: block; width: 100%; height: auto; }
.pdf-convite-qr { width: 46mm; margin: 6px 0 14px; }
.selo-app { display: inline-block; align-self: flex-start; width: fit-content; margin: 4px 0 0; font-size: 11.5px; color: var(--texto-3, #8E8A84); border: 1px solid var(--borda); border-radius: 999px; padding: 0 8px; white-space: nowrap; }
.opcao-discreta { font-size: 13px; }
.acoes-topo { justify-content: flex-start; }

/* Consulta salva em blocos (pedido do Luís, 05/11): motivo em destaque, Saúde, Hábitos, Alimentação e Outras anotações,
   cada um com um tom suave da paleta; campos curtos em duas colunas no computador; recordatório em linha do tempo. */
.an { display: grid; gap: 14px; margin-top: 12px; max-width: 920px; }
.an-motivo { margin: 0; padding: 14px 18px; border: 1px solid var(--borda); border-left: 5px solid var(--terracota); border-radius: 6px 14px 14px 6px; background: var(--card); }
.an-motivo span { display: block; font: 700 11.5px 'Plus Jakarta Sans'; letter-spacing: .06em; text-transform: uppercase; color: var(--terracota); }
.an-motivo p { margin: 6px 0 0; font-size: 16.5px; line-height: 1.55; color: var(--texto); max-width: 72ch; }
.an-bloco { border-radius: 16px; padding: 14px 18px 16px; border: 1px solid var(--borda); }
.an-bloco h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font: 800 14px 'Plus Jakarta Sans'; color: var(--texto); }
.an-ico { width: 18px; height: 18px; flex: none; }
.an-saude { background: var(--verde-claro); border-color: transparent; } .an-saude .an-ico { color: var(--verde-escuro); }
.an-habitos { background: var(--superficie); border-color: transparent; } .an-habitos .an-ico { color: var(--refeicao); }
.an-alimentacao { background: var(--terracota-claro); border-color: transparent; } .an-alimentacao .an-ico { color: var(--terracota); }
.an-outras, .an-retorno { background: var(--card); } .an-outras .an-ico, .an-retorno .an-ico { color: var(--verde); }
.an-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 22px; margin: 0; }
.an-campo { grid-column: 1 / -1; min-width: 0; }
.an-campo.curto { grid-column: auto; }
.an-campo dt { font: 700 12.5px 'Plus Jakarta Sans'; color: var(--texto-2); margin: 6px 0 3px; }
.an-campo dd { margin: 0; }
.an-campo dd p { margin: 0; line-height: 1.6; color: var(--texto); max-width: 72ch; }
.an-campo.destaque dd p { font-weight: 600; }
.an-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.an-chip { background: var(--card); border: 1px solid var(--borda); border-radius: 999px; padding: 3px 11px; font-size: 13.5px; font-weight: 600; color: var(--texto); }
.an-tempo { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 8px; }
.an-tempo li { display: grid; grid-template-columns: 62px 1fr; gap: 12px; align-items: start; }
.an-hora { font: 700 12.5px 'Plus Jakarta Sans'; font-variant-numeric: tabular-nums; text-align: center; background: var(--card); border-radius: 999px; padding: 3px 0; color: var(--terracota); }
.an-tempo li.sem-hora .an-hora { background: none; }
.an-tempo p { margin: 0; line-height: 1.55; color: var(--texto); }
@media (max-width: 700px) { .an-campos { grid-template-columns: 1fr; } .an-campo.curto { grid-column: 1 / -1; } .an-motivo p { font-size: 15.5px; } }
.pront .an-bloco, .pront .an-motivo { -webkit-print-color-adjust: exact; print-color-adjust: exact; break-inside: avoid; }

/* ═══ Padrão visual do painel (DESIGN.md): nunca fundo branco chapado com texto preto ("parece um livro").
   Blocos com tom suave da paleta, título com ícone SVG, número de resultado em destaque, rótulos legíveis. ═══ */
.bloco { border-radius: 16px; padding: 14px 18px 16px; margin-top: 14px; border: 1px solid transparent; }
.bloco--verde { background: var(--verde-claro); } .bloco--verde .an-ico { color: var(--verde-escuro); }
.bloco--creme { background: var(--superficie); } .bloco--creme .an-ico { color: var(--refeicao); }
.bloco--terra { background: var(--terracota-claro); } .bloco--terra .an-ico { color: var(--terracota); }
.bloco--agua { background: var(--agua-claro); } .bloco--agua .an-ico { color: var(--agua); }
.bloco--neutro { background: var(--card); border-color: var(--borda); } .bloco--neutro .an-ico { color: var(--verde); }
.bloco-titulo { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font: 800 15px 'Plus Jakarta Sans'; color: var(--texto); letter-spacing: 0; text-transform: none; }
.bloco-sub { margin: -2px 0 10px; color: var(--texto-2); font-size: 14px; }
.num-destaque { font: 800 18px 'Plus Jakarta Sans'; color: var(--destaque, var(--verde-escuro)); font-variant-numeric: tabular-nums; }
.num-destaque.grande { font-size: 30px; line-height: 1.1; }
.rotulo { font: 700 12.5px 'Plus Jakarta Sans'; color: var(--texto-2); }
.refs { margin: 14px 2px 0; font-size: 11.5px; line-height: 1.5; color: var(--texto-3); }

/* Montador do plano */
.assist .c-grupo { margin: 10px 0 6px; font: 700 13px 'Plus Jakarta Sans'; color: var(--texto-2); }
.assist .c-grupo small { font-weight: 500; color: var(--texto-3); }
.assist .bloco .c-radio { background: var(--card); }
.assist .bloco .c-linha { border-color: rgba(0,0,0,.06); }
.c-atalhos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 2px 0 6px; }
.chip-acao { border: 1px solid var(--borda); background: var(--card); color: var(--texto); border-radius: 999px; padding: 4px 12px; font: 700 13px 'Plus Jakarta Sans'; cursor: pointer; }
.chip-acao.ativa { background: var(--verde); color: #fff; border-color: transparent; }
.c-meta-final { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 10px; padding: 12px 14px; background: var(--card); border-radius: 12px; }
.c-meta-final span { font: 700 13px 'Plus Jakarta Sans'; color: var(--texto-2); }
.c-conta { margin: 8px 2px 0; font-size: 13.5px; color: var(--texto-2); line-height: 1.5; }
.assist .c-aviso { background: var(--card); border-left: 3px solid var(--refeicao); border-radius: 8px; padding: 6px 10px; color: var(--texto); }
.c-barra { display: flex; height: 12px; border-radius: 999px; overflow: hidden; margin: 2px 0 10px; background: var(--card); }
.c-barra i { display: block; height: 100%; }
.c-barra .b-p { background: var(--saude); } .c-barra .b-c { background: var(--refeicao); } .c-barra .b-g { background: var(--terracota); }
.c-dist-lista { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.c-dist-lista li { display: grid; grid-template-columns: 62px 1fr auto 90px; gap: 10px; align-items: center; background: var(--card); border-radius: 10px; padding: 6px 10px; }
.c-dist-lista li.total { background: transparent; font-weight: 700; }
.c-dist-lista b { text-align: right; font-variant-numeric: tabular-nums; }
.c-dist-lista .fora { color: var(--terracota); font-weight: 800; }
.metas-calc .meta-campo { position: relative; }
.metas-card .metas div.meta-campo.da-calc { box-shadow: inset 0 0 0 1.5px var(--verde); }
.meta-sug { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; font-size: 11.5px; color: var(--texto-2); white-space: nowrap; flex-wrap: wrap; }
.meta-sug.ok { color: var(--destaque, var(--verde-escuro)); font-weight: 600; }
.meta-ok-ico { width: 14px; height: 14px; }
.lnk-usar { border: 0; background: none; color: var(--destaque, var(--verde-escuro)); font: 700 12px 'Plus Jakarta Sans'; text-decoration: underline; cursor: pointer; padding: 0 2px; }
@media (max-width: 700px) { .c-dist-lista li { grid-template-columns: 54px 1fr auto; } .c-dist-lista li b { grid-column: 2 / -1; text-align: left; } .num-destaque.grande { font-size: 26px; } }
.metas-card { background: var(--verde-claro); border-color: transparent; }
.metas-card .bloco-titulo .an-ico { color: var(--verde-escuro); }
.metas-card .metas div.meta-campo { background: var(--card); }

/* Destaque legível no escuro (o verde-escuro some no fundo escuro). */
:root[data-tema="escuro"] { --destaque: #A9D1BB; }
/* Gestação e amamentação (ficha, só no painel). */
.gest-linha { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.gest-card h2 { margin: 0; }

/* Lista de pacientes no padrão (DESIGN.md): blocos com cor e ícone; cada paciente numa linha-cartão. */
.lista-bloco { box-shadow: none; }
.bloco-tit-sub { font: 600 12.5px 'Plus Jakarta Sans'; color: var(--texto-2); margin-left: 4px; }
.lista-bloco table.alunos { border-collapse: separate; border-spacing: 0 6px; margin-top: -2px; }
.lista-bloco table.alunos thead th { background: transparent; color: var(--texto-2); }
.lista-bloco table.alunos tbody tr { background: var(--card); }
.lista-bloco table.alunos tbody td { border-top: none; }
.lista-bloco table.alunos tbody td:first-child { border-radius: 12px 0 0 12px; }
.lista-bloco table.alunos tbody td:last-child { border-radius: 0 12px 12px 0; }
.lista-bloco .sem-app-lista li { border-top: none; background: var(--card); border-radius: 12px; margin-top: 6px; }
.lista-bloco .sem-app-lista a { padding: 10px 12px; }
.lista-bloco .sem-app-lista a:hover, .lista-bloco .sem-app-lista a:focus-visible { background: transparent; }
.lista-bloco .sub { color: var(--texto-2); }
.lista-bloco .viz-tabela tbody tr { background: var(--card); }
@media (max-width: 700px) {
  .lista-bloco.card table.alunos tr { background: var(--card); border-radius: 12px; border-top: none; padding: 12px; margin-top: 8px; }
}

/* Página do paciente no padrão (DESIGN.md): cada cartão é um bloco; o conteúdo de dentro fica em cartão. */
.bloco--rosa { background: var(--saude-claro); } .bloco--rosa .an-ico { color: var(--saude); }
.card.bloco { box-shadow: none; border-color: transparent; }
.bloco .sub { color: var(--texto-2); }
.bloco .cons-item, .bloco .viz-bloco, .bloco .compart, .bloco .resumo-fisico { background: var(--card); }
.bloco .cons-item { border-color: transparent; border-radius: 14px; }
.bloco .viz-bloco { border-radius: 14px; }
.bloco .compart { border-radius: 12px; padding: 4px 12px; }
.bloco .viz-tabela { background: var(--card); border-radius: 12px; }
.bloco.resumo-clinico { border-left: 4px solid var(--terracota); }
.bloco.resumo-clinico b { color: var(--texto); }
.bloco.convite-destaque { border: 1.5px solid var(--verde); }
.resumo-fisico.bloco .rf-item { background: var(--card); border-color: transparent; }
.bloco .dob-lista, .bloco table { background: var(--card); border-radius: 12px; }

/* Plano montado (varredura visual, lote 4): escolha, editor e coluna de envio em blocos. */
.bloco--laranja { background: var(--refeicao-claro); } .bloco--laranja .an-ico { color: var(--refeicao); }
.card.bloco.destaque { border: 1.5px solid var(--verde); }
.grid-cards > .card.bloco { margin-top: 0; }
.assist-cab .bloco-titulo { margin: 4px 0 0; }
.bloco .tot-dia > div, .bloco .secao-livre input { background: var(--card); }
.bloco .secao-livre { border-top-color: rgba(0,0,0,.08); }
.bloco .sup-linha { border-top-color: rgba(0,0,0,.08); }
.bloco .mp-tabela { background: var(--card); border-radius: 12px; padding: 2px 10px; }
.bloco .mp-tabela table { background: none; }
.micro-card.bloco > summary .bloco-titulo { margin: 0; }
.bloco .abas { background: var(--card); }
.pdf-barra { background: var(--verde-claro); border-radius: 16px; padding: 10px 14px; }
.pdf-barra .mut { color: var(--texto-2); }
:root[data-tema="escuro"] .bloco .secao-livre, :root[data-tema="escuro"] .bloco .sup-linha { border-top-color: rgba(255,255,255,.08); }
:root[data-tema="escuro"] .bloco--verde .an-ico, :root[data-tema="escuro"] .metas-card .bloco-titulo .an-ico { color: var(--destaque); }
/* Ajuste pelo objetivo (06/11): Perder peso | Manter | Ganhar peso, e o número sem sinal. */
.c-linha-ajuste { justify-content: flex-start; }
.c-ajuste-rot { font-weight: 600; }
#c-sentido { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.c-sentido { display: inline-flex; padding: 3px; gap: 2px; background: var(--card); border: 1px solid var(--borda); border-radius: 999px; }
.c-sentido .seg { border: none; background: none; color: var(--texto-2); border-radius: 999px; padding: 6px 12px; font: 700 13px 'Plus Jakarta Sans'; cursor: pointer; white-space: nowrap; }
.c-sentido .seg:hover { color: var(--texto); background: var(--superficie); }
.c-sentido .seg.ativa { background: var(--verde); color: #fff; }
.c-sentido .seg:focus-visible { outline: 2px solid var(--verde); outline-offset: 2px; }
.c-ajuste-num { display: inline-flex; align-items: center; gap: 6px; }
.c-ajuste-num select.c-mini { text-align: left; }
:root[data-tema="escuro"] .c-sentido .seg.ativa { color: #10140F; }
@media (max-width: 480px) { .c-sentido .seg { padding: 6px 9px; font-size: 12.5px; } }

/* Editor das refeições (pedido do Luís, 05/11): destaque sem pintar o fundo. Cada refeição com contorno e faixa lateral
   na cor da vez, nome como título forte na mesma cor, ícone, horário em chip e kcal em destaque. */
.ed-ref { --rc: var(--verde); background: var(--card); border: 1.5px solid color-mix(in srgb, var(--rc) 45%, transparent); border-left: 5px solid var(--rc); border-radius: 14px; padding: 12px 14px 14px; }
.ed-ref.ref-c1 { --rc: var(--refeicao); } .ed-ref.ref-c2 { --rc: var(--agua); } .ed-ref.ref-c3 { --rc: var(--terracota); } .ed-ref.ref-c4 { --rc: var(--saude); }
.ed-cab { grid-template-columns: auto minmax(0, 1fr) auto auto auto; grid-template-areas: "ico nome hora kcal rm"; gap: 10px; }
.ed-ico { grid-area: ico; display: inline-flex; color: var(--rc); }
.ed-ico .an-ico { width: 22px; height: 22px; }
.ed-cab input.ed-ref-nome { grid-area: nome; font: 800 18px 'Plus Jakarta Sans'; color: var(--rc); background: transparent; border: 1px solid transparent; border-bottom: 1px dashed color-mix(in srgb, var(--rc) 40%, transparent); border-radius: 8px 8px 0 0; padding: 4px 6px; }
.ed-cab input.ed-ref-nome:hover, .ed-cab input.ed-ref-nome:focus { border-color: var(--borda); border-bottom-color: var(--rc); background: var(--card); }
.ed-cab input.ed-ref-nome::placeholder { color: var(--rc); opacity: .5; }
.ed-cab input.ed-hora { grid-area: hora; width: 76px; text-align: center; font: 700 13px 'Plus Jakarta Sans'; font-variant-numeric: tabular-nums; color: var(--rc); background: color-mix(in srgb, var(--rc) 12%, var(--card)); border: 1px solid transparent; border-radius: 999px; padding: 5px 8px; }
.ed-cab input.ed-hora:focus { border-color: var(--rc); }
.ed-kcal { grid-area: kcal; display: inline-flex; align-items: baseline; gap: 4px; justify-self: end; }
.ed-kcal input { width: 72px; text-align: right; font: 800 20px 'Plus Jakarta Sans'; font-variant-numeric: tabular-nums; color: var(--destaque, var(--verde-escuro)); background: transparent; border: 1px solid transparent; border-radius: 8px; padding: 2px 4px; }
.ed-kcal input:hover, .ed-kcal input:focus { border-color: var(--borda); background: var(--card); }
.ed-kcal > span { font: 700 12px 'Plus Jakarta Sans'; color: var(--texto-2); }
.ed-rm-ref { grid-area: rm; }
.ed-calc { margin-top: 8px; }
.ed-itens { margin-top: 10px; border-top: 1px solid var(--borda); }
.ed-item { border-top: none; border-bottom: 1px solid var(--borda); padding: 7px 6px; }
.ed-item:nth-child(even) { background: color-mix(in srgb, var(--rc) 4%, var(--card)); }
.ed-qtd input { text-align: right; }
.ed-item input.ed-troca { font-style: italic; color: var(--texto-2); }
.ed-item input.ed-troca::placeholder { font-style: italic; color: var(--texto-3); opacity: .7; }
.ed-tirar { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; border-radius: 999px; color: var(--texto-3); }
.ed-tirar .an-ico { width: 16px; height: 16px; }
.ed-tirar:hover, .ed-tirar:focus-visible { color: var(--terracota); background: var(--terracota-claro); }
.ed-ref .ed-add-item { margin-top: 10px; background: var(--card); color: var(--rc); border: 1.5px solid var(--rc); }
.ed-ref .ed-add-item:hover { background: color-mix(in srgb, var(--rc) 10%, var(--card)); }
.tot-dia > div { background: var(--card); }
.tot-dia b.num-destaque { font-size: 22px; }
.tot-dia .dif.fora b { color: var(--terracota); }
:root[data-tema="escuro"] .tot-dia .dif.ok b { color: var(--destaque); }
@media (max-width: 760px) {
  .ed-cab { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "ico nome nome" "hora kcal rm"; row-gap: 8px; }
  .ed-cab .ed-kcal { justify-self: start; }
}
.ed-item { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1.8fr) minmax(0, 1.4fr) auto; }
.ed-qtd { grid-template-columns: 60px minmax(0, 1fr); }
.ed-qtd input::-webkit-inner-spin-button, .ed-qtd input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.ed-qtd input { -moz-appearance: textfield; }
.tot-dia .dif.ok { border-color: var(--verde); }
.tot-dia .dif.fora { border-color: var(--terracota); }
.dif-tag { margin-left: 6px; padding: 1px 8px; border-radius: 999px; font: 700 10.5px 'Plus Jakarta Sans'; font-style: normal; letter-spacing: .04em; text-transform: uppercase; }
.dif.ok .dif-tag { background: var(--verde-claro); color: var(--verde-escuro); }
.dif.fora .dif-tag { background: var(--terracota-claro); color: var(--terracota); }
:root[data-tema="escuro"] .dif.ok .dif-tag { color: var(--destaque); }
@media (max-width: 760px) { .ed-item .ed-qtd { grid-template-columns: 70px minmax(0, 1fr); } }
:root[data-tema="escuro"] .ed-ref .ed-add-item { background: var(--card); color: var(--rc); border-color: var(--rc); }
.dif-tag { display: inline-block; white-space: nowrap; margin: 2px 0 0 6px; }
@media (max-width: 760px) { .ed-item { grid-template-columns: minmax(0, 1fr) auto; } }
@media (max-width: 760px) { .ed-cab { grid-template-columns: 28px auto minmax(0, 1fr) auto; grid-template-areas: "ico nome nome nome" "hora hora kcal rm"; } .ed-cab .ed-kcal { justify-self: start; margin-left: 8px; } }
@media (max-width: 760px) { .ed-ref { padding: 10px 10px 12px; border-left-width: 4px; } .ed-item { padding: 7px 2px; } .ed-item > * { min-width: 0; } }

/* Lote 4 refeito (05/11, "destaque não é pintar fundo"): seções do plano com fundo claro, faixa colorida no topo,
   contorno suave e título forte na cor da seção. Fundo pintado só nas Metas do dia e nos blocos da calculadora. */
.card.secao { --rc: var(--verde); background: var(--card); border: 1px solid color-mix(in srgb, var(--rc) 35%, var(--borda)); border-top: 4px solid var(--rc); box-shadow: none; }
.secao.sc-verde { --rc: var(--verde); } .secao.sc-laranja { --rc: var(--refeicao); } .secao.sc-agua { --rc: var(--agua); }
.secao.sc-terra { --rc: var(--terracota); } .secao.sc-rosa { --rc: var(--saude); }
.secao > .bloco-titulo, .secao .assist-cab .bloco-titulo, .secao > summary .bloco-titulo, .mp-card.secao .bloco-titulo { color: var(--rc); font-size: 17px; }
.secao > .bloco-titulo .an-ico, .secao .assist-cab .bloco-titulo .an-ico, .secao > summary .bloco-titulo .an-ico { color: var(--rc); }
.card.secao.destaque { border: 1.5px solid var(--rc); border-top: 4px solid var(--rc); }
.grid-cards > .card.secao { margin-top: 0; }
.secao .mp-tabela { background: none; padding: 0; }
.pdf-barra { background: var(--card); border: 1px solid var(--borda); border-left: 4px solid var(--verde); }
:root[data-tema="escuro"] .card.secao { border-color: color-mix(in srgb, var(--rc) 30%, var(--borda)); border-top-color: var(--rc); }
:root[data-tema="escuro"] .card.secao.destaque { border-color: var(--rc); }
/* ─── Reconhecimento na TACO (frente AGENDA, 05/11): etiqueta "reconhecido como" e contagem dos micronutrientes ─── */
.ed-reconhecido { min-width: 0; }
.ed-reconhecido > span { min-width: 0; flex: 1 1 200px; overflow-wrap: anywhere; }
.ed-reconhecido .ed-taco-ref { color: var(--refeicao, #8A5A1C); }
:root[data-tema="escuro"] .ed-reconhecido .ed-taco-ref { color: #E3B46E; }
.ed-nao-reconhecido > span { color: var(--terracota); font-weight: 600; }
.ed-confirmar { font-weight: 700; color: var(--verde-escuro); }
:root[data-tema="escuro"] .ed-confirmar { color: #BFE3CF; }
.micro-contagem { margin: 0 0 8px; font-size: 13.5px; color: var(--texto-2); overflow-wrap: anywhere; }
.micro-contagem b { color: var(--texto); }

/* Perfil (varredura visual, lote 5): seções claras com faixa e título; grupos do formulário com subtítulo e ícone
   na cor da seção; campos lado a lado no computador; as três imagens em molduras. */
.pf-grupo-tit { display: flex; align-items: center; gap: 8px; margin: 22px 0 4px; padding-top: 14px; border-top: 1px solid var(--borda); font: 800 14px 'Plus Jakarta Sans'; letter-spacing: .02em; color: var(--rc); }
.pf-grupo-tit .an-ico { color: var(--rc); width: 18px; height: 18px; }
.pf-grade { display: grid; gap: 0 16px; }
.pf-grade.dois { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pf-grade.tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pf-imgs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 8px; }
.pf-img { border: 1px solid var(--borda); border-top: 3px solid color-mix(in srgb, var(--rc) 55%, var(--borda)); border-radius: 14px; padding: 10px 12px 12px; background: var(--card); min-width: 0; }
.pf-img > label { margin-top: 0; font-weight: 700; color: var(--texto); }
.pf-img .logo-linha { display: grid; grid-template-columns: 1fr; gap: 8px; justify-items: start; }
.pf-img .logo-linha > div:not(.logo-prev) { min-width: 0; width: 100%; }
.pf-img input[type="file"] { width: 100%; }
@media (max-width: 900px) { .pf-imgs { grid-template-columns: 1fr; } .pf-grade.tres { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .pf-grade.dois, .pf-grade.tres { grid-template-columns: 1fr; } }
/* ─── Tabela de substituições equivalentes (frente AGENDA, trocas.js): editor e PDF ─── */
.tr-card .tr-restr { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 8px 0 4px; }
.tr-card .tr-alerg { flex-basis: 100%; font-size: 13.5px; color: var(--texto-2); overflow-wrap: anywhere; }
/* Condição da jurídica: alergia checada pelo nome e revisão obrigatória antes de enviar. */
.tr-card .tr-aviso-alerg { margin: 6px 0 10px; padding: 8px 12px; border-left: 4px solid var(--refeicao); background: var(--refeicao-claro); border-radius: 0 10px 10px 0; font-size: 13.5px; color: var(--texto); max-width: 80ch; }
.tr-card .tr-revisao { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-top: 14px; padding: 12px 14px; border: 1.5px solid var(--refeicao); border-radius: 12px; font-size: 14px; }
.tr-card .tr-revisao > span { flex: 1 1 260px; min-width: 0; }
.tr-card .tr-revisao.ok { border-color: var(--verde); color: var(--verde-escuro); font-weight: 600; }
.tr-card .tr-revisao.ok svg { width: 18px; height: 18px; vertical-align: -3px; margin-right: 6px; }
:root[data-tema="escuro"] .tr-card .tr-revisao.ok { color: #BFE3CF; }
/* Lista de substituição completa (anexo opcional): no cartão, recolhida; no PDF, página à parte em duas colunas. */
.tr-card .tr-lista-sub { margin: 0 0 6px 28px; font-size: 13px; color: var(--texto-2); max-width: 80ch; }
.tr-card .tr-lista-ver { margin: 4px 0 8px 28px; }
.tr-card .tr-lista-ver summary { cursor: pointer; font-weight: 600; color: var(--agua); }
.tr-card .tr-lista-ver[open] { padding-bottom: 6px; }
.lista-grupo { margin-top: 12px; }
.lista-grupo h3 { font: 800 14px 'Plus Jakarta Sans', sans-serif; margin: 0 0 4px; padding-bottom: 3px; border-bottom: 1.5px solid var(--agua); }
.lista-grupo h3 small { display: block; font: 500 12.5px Inter, sans-serif; color: var(--texto-2); margin-top: 2px; }
.lista-grupo ul { list-style: none; margin: 0; padding: 0; columns: 2 220px; column-gap: 22px; }
.lista-grupo li { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; border-bottom: 1px solid var(--borda); break-inside: avoid; font-size: 13px; }
.lista-grupo li span { min-width: 0; overflow-wrap: anywhere; }
.lista-grupo li b { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.lista-grupo li i { font-style: normal; font-weight: 400; color: var(--texto-2); }
.pdf-lista { margin-top: 24px; break-before: page; page-break-before: always; padding-bottom: 24px; color: #2D2B28; }
.pdf-lista-intro { font-size: 12px; margin-top: 14px; margin-bottom: 4px; }
.pdf-lista .pdf-rodape { margin-top: 16px; }
.pdf-lista .lista-grupo { margin-top: 10px; break-inside: auto; }
.pdf-lista .lista-grupo h3 { font-size: 12.5px; color: #2F6F8F; border-color: #2F6F8F; break-after: avoid; }
.pdf-lista .lista-grupo h3 small { font-size: 10.5px; color: #5E5B57; }
.pdf-lista .lista-grupo li { font-size: 10.5px; padding: 2px 0; border-color: #E3E8EB; }
.pdf-lista .lista-grupo li i { color: #6F6B66; }
.pdf-barra .pdf-aviso-trocas { flex-basis: 100%; font-size: 13.5px; color: var(--texto); background: var(--refeicao-claro); border-left: 4px solid var(--refeicao); border-radius: 0 8px 8px 0; padding: 6px 10px; }
.tr-ref { margin-top: 14px; }
.tr-ref-nome { font: 800 15px 'Plus Jakarta Sans', sans-serif; color: var(--agua, #2F6F8F); margin: 0 0 6px; }
.tr-rolagem { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--borda); border-radius: 12px; }
.tr-tabela { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 560px; }
.tr-tabela th, .tr-tabela td { padding: 6px 8px; border-bottom: 1px solid var(--borda); text-align: right; vertical-align: top; font-variant-numeric: tabular-nums; }
.tr-tabela thead th { font: 700 11.5px 'Plus Jakarta Sans', sans-serif; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-2); background: none; }
.tr-tabela th:first-child, .tr-tabela th:nth-child(2), .tr-tabela .tr-nome { text-align: left; }
.tr-tabela .tr-orig { text-align: left; font-weight: 400; color: var(--texto); min-width: 150px; border-right: 1px solid var(--borda); }
.tr-tabela .tr-orig small, .tr-tabela .tr-q small { display: block; color: var(--texto-2); font-size: 12px; }
.tr-tabela .tr-macro { font-weight: 800; color: var(--texto); }
.tr-tabela tr:not(.tr-marcada) td { color: var(--texto-2); }
.tr-tabela tr.tr-marcada .tr-nome { color: var(--texto); font-weight: 600; }
.tr-op { display: flex; gap: 6px; align-items: flex-start; text-align: left; cursor: pointer; }
.tr-op input { margin-top: 3px; }
.tr-propria { font-style: normal; font-size: 11px; background: var(--agua-claro, #E3EEF5); border-radius: 999px; padding: 0 6px; }
.tr-add { position: relative; text-align: left; }
.tr-add input { width: 100%; max-width: 360px; padding: 6px 10px; font-size: 13.5px; }
.tr-sug { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.tr-sug-op { border: 1px solid var(--borda); background: var(--card); color: var(--texto); border-radius: 999px; padding: 4px 10px; font-size: 12.5px; cursor: pointer; }
.tr-sug-op:hover, .tr-sug-op:focus-visible { border-color: var(--verde); }
/* PDF: título colorido, contorno, sem pintar fundo (DESIGN.md) */
.pdf-trocas ul { margin: 4px 0 0; padding-left: 18px; }
.pdf-trocas ul li { margin: 2px 0; }
.pdf-tr-dia { font: 800 13px 'Plus Jakarta Sans', sans-serif; margin: 10px 0 2px; }
.pdf-tr-ref { font: 800 12.5px 'Plus Jakarta Sans', sans-serif; color: #2F6F8F; margin: 10px 0 4px; }
.pdf-tr { width: 100%; border-collapse: collapse; font-size: 10.5px; border: 1px solid #D6DEE3; }
.pdf-tr th, .pdf-tr td { border-bottom: 1px solid #E3E8EB; padding: 4px 6px; text-align: right; vertical-align: top; }
.pdf-tr th, .pdf .pdf-tr thead th { font-size: 9.5px; text-transform: uppercase; letter-spacing: .05em; color: #5E5B57; background: none; border-bottom: 1.5px solid #2F6F8F; }
.pdf-tr th:first-child, .pdf-tr th:nth-child(2), .pdf-tr .tr-nome, .pdf-tr .pdf-tr-orig { text-align: left; }
.pdf-tr .pdf-tr-orig { border-right: 1px solid #E3E8EB; }
.pdf-tr .pdf-tr-orig small { display: block; color: #6F6B66; }
.pdf-tr .tr-macro { font-weight: 800; }
.pdf-tr tr { break-inside: avoid; }
.pdf-tr-nota { font-size: 10px; color: #6F6B66; margin-top: 6px; }
.tr-mais { display: inline-block; margin: 0 0 6px; }
.tr-tabela tbody th, .tr-tabela thead th { background: none; }
/* Tabela de substituições: célula do original sem o estilo de cabeçalho; nome com espaço; números estreitos */
.tr-tabela tbody th.tr-orig { text-transform: none; letter-spacing: 0; font: 400 13px 'Inter', system-ui, sans-serif; color: var(--texto); width: 24%; padding: 8px; }
.tr-tabela tbody th.tr-orig b { font-weight: 700; }
.tr-tabela { min-width: 600px; font-size: 13px; }
.tr-tabela .tr-nome { min-width: 190px; }
.tr-tabela td:not(.tr-nome) { white-space: nowrap; width: 1%; padding-left: 6px; padding-right: 6px; }
.tr-tabela .tr-q small { white-space: nowrap; }
.tr-tabela .tr-add-linha td { white-space: normal; width: auto; }
.tr-op span { line-height: 1.35; }
.tr-op input[type="checkbox"] { width: 16px; height: 16px; flex: none; margin: 2px 0 0; padding: 0; }
.tr-op span { flex: 1; text-align: left; }
.tr-op { margin: 0; font-weight: 400; }
.tr-tabela th, .tr-tabela td { padding: 6px; }
/* Celular: a tabela vira lista (alimento do plano como título; cada troca numa linha, números rotulados) */
@media (max-width: 640px) {
  .tr-rolagem { overflow: visible; border: 0; }
  .tr-tabela { min-width: 0; }
  .tr-tabela thead { display: none; }
  .tr-tabela, .tr-tabela tbody, .tr-tabela tr { display: block; }
  .tr-tabela tbody th.tr-orig { display: block; width: auto; border-right: 0; border-radius: 10px; background: var(--agua-claro, #E3EEF5); margin-top: 10px; }
  .tr-tabela tr { border-bottom: 1px solid var(--borda); padding: 4px 0; }
  .tr-tabela td { display: inline-block; border: 0; width: auto !important; padding: 2px 6px 2px 0; }
  .tr-tabela td.tr-nome { display: block; padding-top: 6px; }
  .tr-tabela td[data-r]::before { content: attr(data-r) ' '; color: var(--texto-3); font-weight: 400; font-size: 11.5px; }
  .tr-tabela .tr-add-linha { border-bottom: 0; }
  .tr-tabela .tr-add-linha td { display: block; }
}
:root[data-tema="escuro"] .tr-tabela tbody th.tr-orig { background: transparent; }
@media (max-width: 640px) { :root[data-tema="escuro"] .tr-tabela tbody th.tr-orig { background: #1D2A32; } }
@media (max-width: 640px) { .tr-tabela td { text-align: left !important; } .tr-tabela .tr-q small { display: inline; margin-left: 4px; } }

/* Dicas para o paciente (dicas.js): lista com caixa de marcar, ícone do tema e texto editável; contagem perto do
   botão de enviar; no PDF, título na cor e um item por linha com ícone discreto, sem fundo pintado. */
.dicas-lista { display: grid; gap: 8px; margin-top: 6px; }
.dica { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 10px; align-items: start; padding: 8px 10px; border: 1px solid var(--borda); border-left: 4px solid var(--borda); border-radius: 12px; background: var(--card); }
.dica.marcada { border-left-color: var(--verde); }
.dica > input[type="checkbox"] { width: 18px; height: 18px; margin: 8px 0 0; accent-color: var(--verde); }
.dica-ico { display: inline-flex; margin-top: 6px; color: var(--verde); }
.dica:not(.marcada) .dica-ico, .dica:not(.marcada) textarea { opacity: .55; }
.dica-corpo { display: grid; gap: 4px; }
.dica textarea { min-height: 44px; padding: 7px 10px; font-size: 14px; line-height: 1.45; resize: vertical; }
.dica-aviso { color: var(--terracota); font-weight: 600; font-size: 12.5px; }
.dica-corpo .lnk-tirar { justify-self: start; }
.dicas-conta { margin: 12px 0 0; padding: 6px 10px; border-radius: 10px; background: color-mix(in srgb, var(--verde) 10%, var(--card)); color: var(--texto); font: 600 13px 'Plus Jakarta Sans'; }
.pdf-dicas ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; }
.pdf-dicas li { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: start; line-height: 1.5; }
.pdf-dicas li .an-ico { width: 15px; height: 15px; margin-top: 3px; color: var(--verde); }
.pdf-texto.pdf-dicas { background: #fff; border: 1px solid #D4EAE0; border-left: 4px solid #5E8470; }
.pdf-dicas h2 { color: #3E5C4C; }
.pdf-dicas li { color: #2D2B28; }
.pdf-dicas li .an-ico { color: #5E8470; }
.dica textarea { field-sizing: content; overflow: hidden; }
.dicas-conta.erro { background: var(--terracota-claro); color: var(--terracota); }

/* Importação e janela de modelo (varredura visual, lote 6): passos como seções com faixa e título com ícone; o que
   entra e o que não entra com ícone; coluna mapeada com faixa verde e "Não importar" apagada; números do resumo em
   cartões claros com faixa e número em destaque. Seletores com .imp-card porque o agenda.css carrega depois. */
.imp-card .imp-lista { list-style: none; padding-left: 0; gap: 8px; }
.imp-card .imp-lista li { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: start; color: var(--texto-2); }
.imp-card .imp-lista li .an-ico { margin-top: 1px; }
.imp-card .imp-lista li b { color: var(--texto); }
.imp-lista .imp-sim .an-ico { color: var(--verde); } .imp-lista .imp-medida .an-ico { color: var(--agua); }
.imp-lista .imp-nao .an-ico { color: var(--terracota); } .imp-lista .imp-info .an-ico { color: var(--texto-3); }
.imp-card .imp-col { border-left: 4px solid transparent; padding-left: 10px; border-radius: 0; }
.imp-card .imp-col.mapeada { border-left-color: var(--verde); }
.imp-card .imp-col.mapeada .imp-col-txt b { color: var(--texto); }
.imp-card .imp-col.fora { border-left-color: var(--borda); }
.imp-card .imp-col.fora .imp-col-txt { opacity: .6; }
.imp-card .imp-resumo > div { background: var(--card); border: 1px solid var(--borda); border-top: 3px solid var(--borda); }
.imp-card .imp-resumo b.num-destaque { font-size: 24px; }
.imp-card .imp-resumo .r-novos { border-top-color: var(--verde); }
.imp-card .imp-resumo .r-medidas { border-top-color: var(--agua); } .imp-card .imp-resumo .r-medidas b { color: var(--agua); }
.imp-card .imp-resumo .r-ja { border-top-color: var(--refeicao); } .imp-card .imp-resumo .r-ja b { color: var(--refeicao); }
.imp-card .imp-resumo .r-ign { border-top-color: var(--terracota); } .imp-card .imp-resumo .r-ign b { color: var(--terracota); }
.imp-feito-ico { display: inline-flex; color: var(--verde); margin: 4px auto 0; }
.imp-feito-ico .an-ico { width: 44px; height: 44px; stroke-width: 1.5; }
.imp-card .imp-feito-tit { color: var(--verde-escuro); }
:root[data-tema="escuro"] .imp-card .imp-feito-tit { color: var(--destaque); }
.modal .modal-tit { font-size: 20px; color: var(--verde-escuro); }
.modal .modal-tit .an-ico { color: var(--verde); }
:root[data-tema="escuro"] .modal .modal-tit { color: var(--destaque); }

/* Documentos que ela emite (A3 e E): aba do paciente, formulários e lista com o recebimento. */
.doc-novos { flex-wrap: wrap; }
.doc-lista { list-style: none; margin: 0; padding: 0; }
.doc-lista li { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 0; border-top: 1px solid var(--borda); }
.doc-lista li:first-child { border-top: 0; }
.doc-lista .doc-receb { font-size: 12.5px; }
.modal.modal-largo { max-width: 680px; }
.doc-item { border: 1px solid var(--borda); border-radius: 12px; padding: 4px 14px 12px; margin: 12px 0 8px; }
.doc-item .lnk-tirar { margin-top: 8px; }
.doc-aviso { background: var(--fundo-suave, rgba(184,95,71,.08)); border-left: 3px solid var(--refeicao, #B85F47); border-radius: 8px; padding: 8px 12px; margin: 10px 0 6px; font-size: 13.5px; }
.doc-opcoes { display: grid; gap: 4px; }
.linha-campo { display: flex; gap: 8px; align-items: center; }
.linha-campo input { flex: 1; min-width: 0; }

/* Documentos (A3 e E) no padrão visual: cada tipo com ícone e cor; na lista, faixa lateral na cor do tipo e o
   recebimento em chip; nos formulários, cada item com faixa. */
.doc-novo { display: inline-flex; align-items: center; gap: 6px; }
.doc-novo .an-ico { width: 16px; height: 16px; }
.doc-lista li { --dc: var(--borda); border-top: none; border: 1px solid var(--borda); border-left: 4px solid var(--dc); border-radius: 12px; padding: 10px 12px; margin-top: 8px; background: var(--card); }
.doc-lista li:first-child { border-top: 1px solid var(--borda); }
.doc-lista .doc-suplementos, .doc-novo.doc-suplementos { --dc: var(--saude); }
.doc-lista .doc-fitoterapia, .doc-novo.doc-fitoterapia { --dc: var(--verde); }
.doc-lista .doc-exames, .doc-novo.doc-exames { --dc: var(--agua); }
.doc-lista .doc-declaracao, .doc-novo.doc-declaracao { --dc: var(--refeicao); }
.doc-lista .doc-recibo, .doc-novo.doc-recibo { --dc: var(--terracota); }
.doc-novo .an-ico, .doc-tit .an-ico { color: var(--dc); }
.doc-tit { display: inline-flex; align-items: center; gap: 6px; font: 800 15px 'Plus Jakarta Sans'; }
.doc-lista .doc-receb { display: inline-block; margin-top: 6px; padding: 2px 10px; border-radius: 999px; background: var(--superficie); color: var(--texto-2); font-size: 12.5px; }
.doc-lista .doc-receb.ok { background: var(--verde-claro); color: var(--verde-escuro); }
.doc-lista .doc-receb.pendente { background: var(--refeicao-claro); color: var(--refeicao); }
:root[data-tema="escuro"] .doc-lista .doc-receb.ok { color: var(--destaque); }
.doc-item { border-left: 4px solid var(--saude); }
.doc-lista .doc-nota { display: block; margin-top: 4px; font-size: 12.5px; }

/* ── Plano por e-mail com link privado (envio.js e documento.js; Termos 1.14, 4.22) ───────────────────────────────── */
/* No cartão do plano: a lista dos envios, cada um com faixa lateral e chips (destaque sem pintar fundo, DESIGN.md). */
.env-box { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--borda); }
.env-titulo { display: flex; align-items: center; gap: 8px; margin: 0; font: 800 15px 'Plus Jakarta Sans'; color: var(--verde-escuro); }
.env-nota { margin: 4px 0 0; font-size: 12.5px; }
.env-lista { list-style: none; margin: 8px 0 0; padding: 0; }
.env-lista li { --ec: var(--borda); border: 1px solid var(--borda); border-left: 4px solid var(--ec); border-radius: 12px; padding: 10px 12px; margin-top: 8px; background: var(--card); min-width: 0; }
.env-lista li.env-ativo { --ec: var(--verde); }
.env-lista li.env-falhou { --ec: var(--refeicao); }
.env-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.env-tit { font: 800 14.5px 'Plus Jakarta Sans'; color: var(--texto); }
.env-lista li.env-ativo .env-tit { color: var(--verde-escuro); }
.env-sit { display: inline-block; padding: 2px 10px; border-radius: 999px; font: 700 12px 'Plus Jakarta Sans'; background: var(--superficie); color: var(--texto-2); }
.env-sit.ok { background: var(--verde-claro); color: var(--verde-escuro); }
.env-sit.alerta { background: var(--refeicao-claro); color: var(--refeicao); }
.env-linha { margin: 6px 0 0; font-size: 13px; color: var(--texto-2); overflow-wrap: anywhere; }
.env-linha .num-destaque { font-size: 13px; }
.env-chip { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12.5px; background: var(--superficie); color: var(--texto-2); margin: 2px 4px 2px 0; }
.env-chip.ok { background: var(--verde-claro); color: var(--verde-escuro); }
.env-chip.pendente { background: var(--refeicao-claro); color: var(--refeicao); }
.env-lista .lnk-tirar { margin-top: 6px; }
:root[data-tema="escuro"] .env-titulo, :root[data-tema="escuro"] .env-lista li.env-ativo .env-tit { color: var(--destaque); }
:root[data-tema="escuro"] .env-sit.ok, :root[data-tema="escuro"] .env-chip.ok { color: var(--destaque); }
/* A tela de envio */
.env-modal-tit { display: flex; align-items: center; gap: 8px; color: var(--verde-escuro); }
:root[data-tema="escuro"] .env-modal-tit { color: var(--destaque); }
.env-menor { margin: 10px 0 4px; }
.env-trava { margin: 4px 0 0; color: var(--refeicao); font-weight: 600; }
.env-avisos { margin: 12px 0 0; padding: 10px 12px 10px 28px; border-left: 3px solid var(--agua); border-radius: 8px; background: var(--card); font-size: 13px; color: var(--texto-2); display: grid; gap: 6px; }

/* A página pública do documento: a mesma folha do PDF; em volta, o fundo do tema, sem a moldura do painel. */
.doc-publico { background: var(--creme); }
.doc-publico .doc-carregando { max-width: 860px; margin: 40px auto; padding: 0 16px; }
.doc-barra { background: var(--card); border: 1px solid var(--borda); border-top: 4px solid var(--verde); border-radius: 12px; padding: 12px 14px; }
.doc-barra-txt { display: grid; gap: 2px; min-width: 0; font-size: 13.5px; color: var(--texto-2); }
.doc-barra-txt b:first-child { font: 800 15px 'Plus Jakarta Sans'; color: var(--verde-escuro); }
:root[data-tema="escuro"] .doc-barra-txt b:first-child { color: var(--destaque); }
.doc-neutro { max-width: 560px; margin: 56px auto; padding: 0 16px; }
.doc-neutro .card { padding: 22px 20px; }
.doc-neutro-tit { margin: 0; font: 800 19px/1.35 'Plus Jakarta Sans'; color: var(--rc, var(--verde-escuro)); }
@media (max-width: 560px) { .doc-barra .btn { width: 100%; } }

/* ── Assinatura com certificado A1 (assinar.html; etapa 2 da jurídica) ─────────────────────────────────────────────── */
.assinar-main { max-width: 760px; margin: 0 auto; padding: 24px 16px 48px; }
.assinar-wrap { display: grid; gap: 14px; }
.assinar-tit { margin: 0 0 6px; font-size: 22px; color: var(--rc, var(--verde-escuro)); }
.assinar-txt { margin: 6px 0 0; font-size: 14px; color: var(--texto-2); }
.assinar-passo { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; font-size: 17px; color: var(--rc, var(--verde-escuro)); }
.assinar-num { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 999px; border: 2px solid var(--rc, var(--verde)); font: 800 13px 'Plus Jakarta Sans', sans-serif; color: var(--rc, var(--verde-escuro)); }
.assinar-acoes { margin-top: 12px; }
.assinar-arquivo { margin: 6px 0 2px; overflow-wrap: anywhere; }
.assinar-dica { margin: 6px 0 0; font-size: 13px; }
.assinar-cert { margin-top: 12px; border: 1px solid var(--borda); border-left: 4px solid var(--verde); border-radius: 12px; padding: 10px 14px; background: var(--card); }
.assinar-cert.bloqueado { border-left-color: var(--refeicao); }
.assinar-cert-nome { margin: 0; font: 800 16px 'Plus Jakarta Sans', sans-serif; color: var(--verde-escuro); overflow-wrap: anywhere; }
.assinar-cert.bloqueado .assinar-cert-nome { color: var(--texto); }
.assinar-cert-dados { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; font-size: 13.5px; }
.assinar-cert-dados li { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.assinar-cert-dados span { color: var(--texto-2); }
.assinar-bloqueio { margin: 8px 0 0; }
.assinar-meu { margin: 6px 0 8px; }
.assinar-feito { margin-top: 12px; border: 1px solid var(--borda); border-top: 4px solid var(--verde); border-radius: 12px; padding: 12px 14px; background: var(--card); }
.assinar-feito p { margin: 0 0 8px; }
:root[data-tema="escuro"] .assinar-cert-nome, :root[data-tema="escuro"] .assinar-tit, :root[data-tema="escuro"] .assinar-passo, :root[data-tema="escuro"] .assinar-num { color: var(--destaque); }
/* "Lembrar o certificado neste computador" (assinar.rumolife.com) */
.assinar-lembrado { margin: 6px 0 4px; border: 1px solid var(--borda); border-left: 4px solid var(--verde); border-radius: 12px; padding: 10px 14px; background: var(--card); }
.assinar-lembrado-tit { margin: 0; font: 700 12px 'Plus Jakarta Sans', sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-2); }
.assinar-lembrado-nome { margin: 4px 0 2px; font: 800 16px 'Plus Jakarta Sans', sans-serif; color: var(--verde-escuro); overflow-wrap: anywhere; }
.assinar-lembrado-validade { margin: 0; font-size: 13.5px; }
.assinar-lembrar { margin: 12px 0 0; font-size: 13.5px; }
.assinar-guardado { margin: 8px 0 0; font-size: 13.5px; color: var(--verde-escuro); font-weight: 600; }
.assinar-aviso { margin: 4px 0 10px; }
:root[data-tema="escuro"] .assinar-lembrado-nome, :root[data-tema="escuro"] .assinar-guardado { color: var(--destaque); }
