/* 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; }
.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-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; }
.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 input:nth-child(2) { 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: auto 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-rumo { display: flex; align-items: center; gap: 8px; font: 800 17px 'Plus Jakarta Sans'; color: #fff; position: relative; z-index: 1; }
.pdf-rumo img { height: 30px; background: #fff; border-radius: 50%; padding: 2px; }
.pdf-rumo img.lockup { height: 26px; width: auto; background: none; border-radius: 0; padding: 0; }
.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; }
.pdf-logo-caixa { background: #fff; border-radius: 12px; padding: 8px 12px; position: relative; z-index: 1; }
.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: 110px; color: #B57A2B; font-weight: 600; white-space: nowrap; padding-right: 10px; }
.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; }
.logo-prev.assinatura-prev { width: 160px; height: 72px; }
:root[data-tema="escuro"] .pdf { box-shadow: none; }
@media (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,.88); 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; }
  .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: 22px; 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; }
