:root {
  --azul: #0a58a8;
  --azul-claro: #e8f0f9;
  --dourado: #c6a15b;
  --dourado-claro: #f6efe1;
  --texto: #313131;
  --suave: #6b6b6b;
  --linha: #e6e2da;
  --fundo: #fbfaf7;
  --cartao: #ffffff;
  --alerta: #8c2f1f;
  --alerta-fundo: #fbefec;
  --raio: 14px;
  --titulo: "Fraunces", "Cormorant Garamond", Georgia, serif;
  --corpo: "Lora", Georgia, serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--fundo);
  color: var(--texto);
  font-family: var(--corpo);
  font-size: 17px;
  line-height: 1.55;
}
body.travado { overflow: hidden; }
button { font: inherit; color: inherit; cursor: pointer; }
button:disabled { cursor: default; }
h1, h2, h3 { font-family: var(--titulo); font-weight: 600; color: var(--azul); line-height: 1.15; margin: 0; }

.topo { display: flex; justify-content: center; padding: 18px 16px 6px; }
.logo { height: 40px; width: auto; }

main { max-width: 600px; margin: 0 auto; padding: 8px 16px 32px; min-height: 70vh; }

.rodape { max-width: 600px; margin: 0 auto; padding: 24px 16px 40px; border-top: 1px solid var(--linha); color: var(--suave); font-size: 13px; text-align: center; }
.rodape p { margin: 4px 0; }

/* Capa */
.capa { padding-top: 28px; }
.selo { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--dourado); font-weight: 600; margin: 0 0 10px; }
.capa h1 { font-size: 38px; margin-bottom: 16px; }
.lead { font-size: 19px; margin: 0 0 18px; }
.capa-lista { list-style: none; padding: 0; margin: 0 0 28px; }
.capa-lista li { padding: 10px 0 10px 28px; border-top: 1px solid var(--linha); position: relative; }
.capa-lista li::before { content: "✓"; position: absolute; left: 4px; color: var(--dourado); font-weight: 600; }
.assinatura { color: var(--suave); font-style: italic; margin-top: 22px; }

/* Botões */
.botao, .botao-sec {
  display: block; width: 100%; padding: 16px 20px; border-radius: 12px;
  border: 0; font-weight: 600; font-size: 17px; text-align: center;
}
.botao { background: var(--azul); color: #fff; }
.botao:hover:not(:disabled) { background: #084c90; }
.botao:disabled { background: #c9d6e6; color: #fff; }
.botao-sec { background: #fff; color: var(--azul); border: 1.5px solid var(--azul); }
.botao-texto { background: none; border: 0; color: var(--azul); padding: 12px 8px; text-decoration: underline; text-underline-offset: 3px; }
.capa .botao-texto { display: block; margin: 8px auto 0; }
.capa .botao-sec { margin-top: 10px; }

/* Pergunta */
.pergunta { padding-top: 8px; }
.progresso { height: 6px; background: var(--linha); border-radius: 6px; overflow: hidden; }
.progresso div { height: 100%; background: var(--dourado); transition: width .3s ease; }
.contador { color: var(--suave); font-size: 13px; margin: 8px 0 18px; }
.pergunta h2 { font-size: 28px; margin-bottom: 8px; }
.ajuda { color: var(--suave); margin: 0 0 6px; }
.corpo { margin: 18px 0 24px; }
.rotulo { display: block; font-weight: 600; margin: 18px 0 8px; }
.campo {
  width: 100%; padding: 15px 16px; font: inherit; font-size: 18px;
  border: 1.5px solid var(--linha); border-radius: 12px; background: #fff; color: var(--texto);
}
.campo:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px var(--azul-claro); }
.campo-num { max-width: 180px; }
.dupla { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dupla .campo-num { max-width: none; }

.opcoes { display: grid; gap: 10px; }
.opcao {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left;
  padding: 15px 18px; background: #fff; border: 1.5px solid var(--linha); border-radius: 12px;
  transition: border-color .15s, background .15s;
}
.opcao:hover { border-color: #b9c9dc; }
.opcao { position: relative; padding-right: 48px; }
.opcao.marcada { border-color: var(--azul); border-width: 2px; background: var(--azul-claro); }
.opcao.marcada::after { content: "✓"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; border-radius: 50%; background: var(--azul); color: #fff; display: grid; place-items: center; font-size: 13px; }
.opcao-t { font-weight: 600; }
.opcao-d { color: var(--suave); font-size: 15px; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  padding: 10px 14px; background: #fff; border: 1.5px solid var(--linha); border-radius: 999px; font-size: 16px;
}
.chip.marcada { background: var(--azul); border-color: var(--azul); color: #fff; }
.chip.bloqueada { opacity: .45; }

.declaro { display: flex; gap: 12px; align-items: flex-start; margin-top: 26px; padding: 14px; background: var(--dourado-claro); border-radius: 12px; font-size: 15px; }
.declaro input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--azul); flex: none; }

.navegacao { display: flex; align-items: center; gap: 8px; position: sticky; bottom: 0; padding: 12px 0 16px; background: linear-gradient(to top, var(--fundo) 75%, rgba(251,250,247,0)); }
.navegacao .botao { flex: 1; }

/* Plano */
.plano { padding-top: 22px; }
.plano h1 { font-size: 34px; margin-bottom: 14px; }
.contagem { background: var(--azul-claro); color: var(--azul); padding: 10px 14px; border-radius: 10px; font-size: 15px; }

/* Pirâmide: cada nível é um trapézio; os cinco juntos fecham o triângulo. Cores do azul da base ao laranja do topo, como no logo. */
.piramide { display: grid; gap: 4px; margin: 26px 0; padding: 18px 14px; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); }
.degrau { display: flex; align-items: stretch; gap: 14px; color: var(--texto); text-decoration: none; border-radius: 6px; }
.degrau .forma {
  flex: 0 0 38%; min-height: 56px; display: flex; align-items: center; justify-content: center;
  font-family: var(--titulo); font-size: 22px; font-weight: 600; color: #fff;
  clip-path: polygon(calc(50% - var(--topo) / 2) 0, calc(50% + var(--topo) / 2) 0, calc(50% + var(--base) / 2) 100%, calc(50% - var(--base) / 2) 100%);
}
.degrau-texto { flex: 1; min-width: 0; align-self: center; display: grid; gap: 2px; }
.degrau-texto strong { font-family: var(--titulo); font-weight: 600; font-size: 15px; line-height: 1.2; color: var(--azul); text-wrap: balance; }
.degrau-texto span { font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--suave); }
.degrau-5 .forma { --topo: 12%; --base: 29.6%; background: #e07a3a; color: #2a1407; }
.degrau-4 .forma { --topo: 29.6%; --base: 47.2%; background: var(--dourado); color: #2a2111; }
.degrau-3 .forma { --topo: 47.2%; --base: 64.8%; background: #2b8fc4; }
.degrau-2 .forma { --topo: 64.8%; --base: 82.4%; background: var(--azul); }
.degrau-1 .forma { --topo: 82.4%; --base: 100%; background: #0b3c6e; }
.degrau-1 .degrau-texto span { color: #8a6a2c; font-weight: 600; }
.degrau.vazio { opacity: .35; }
.degrau:hover .degrau-texto strong { text-decoration: underline; text-underline-offset: 3px; }
.degrau:focus-visible { outline: 2px solid var(--azul); outline-offset: 3px; }

.aula-destaque { background: #fff; border: 1px solid var(--linha); border-left: 4px solid var(--dourado); border-radius: var(--raio); padding: 16px 18px; margin-bottom: 8px; }
.aula-destaque p { margin: 0 0 12px; }

.etapa { font-size: 24px; margin: 36px 0 6px; scroll-margin-top: 16px; }
.etapa span { display: block; font-family: var(--corpo); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--dourado); margin-bottom: 4px; }
.etapa-texto { margin: 0 0 14px; color: var(--suave); }
.etapa-texto strong { color: var(--texto); }

.cartao, .habito { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); margin-bottom: 10px; }
.cartao summary, .habito summary {
  list-style: none; cursor: pointer; padding: 16px 44px 16px 18px; position: relative;
  display: flex; flex-direction: column; gap: 3px;
}
.cartao summary::-webkit-details-marker, .habito summary::-webkit-details-marker { display: none; }
.cartao summary::after, .habito summary::after {
  content: "+"; position: absolute; right: 18px; top: 14px; font-size: 22px; color: var(--azul);
}
.cartao[open] summary::after, .habito[open] summary::after { content: "−"; }
.cartao-nome { font-weight: 600; font-size: 18px; color: var(--texto); }
.cartao-dose { font-size: 15px; }
.cartao-hora { font-size: 14px; color: var(--azul); }
.cartao.feito { border-color: #b8d0e9; background: #f7fafd; }
.cartao.feito .cartao-nome::before { content: "✓ "; color: var(--azul); }
.tag { font-family: var(--corpo); font-size: 12px; font-weight: 600; background: var(--dourado-claro); color: #8a6a2c; padding: 2px 8px; border-radius: 999px; vertical-align: 2px; }
.tag-aviso { background: var(--alerta-fundo); color: var(--alerta); }

.cartao-corpo { padding: 0 18px 18px; border-top: 1px solid var(--linha); }
.cartao-corpo > p:first-child, .cartao-corpo > div:first-child { margin-top: 14px; }
.porque { background: var(--azul-claro); padding: 12px 14px; border-radius: 10px; }
.nota { font-size: 15px; color: var(--suave); font-style: italic; }
.subtitulo { font-weight: 600; margin: 16px 0 4px; }
.cuidados { padding-left: 20px; margin: 4px 0 0; font-size: 15px; }
.cuidados li { margin: 4px 0; }
.aviso-pessoal { background: var(--alerta-fundo); border-left: 4px solid var(--alerta); color: var(--alerta); padding: 10px 14px; border-radius: 8px; margin: 14px 0; font-size: 15px; }
.aviso-pessoal p { margin: 4px 0; }
.consulta { background: var(--azul-claro); border-left: 4px solid var(--azul); padding: 12px 16px; border-radius: 8px; margin: 14px 0; font-size: 15px; }
.consulta p { margin: 4px 0 10px; }
.botao-consulta { display: inline-block; padding: 10px 16px; border-radius: 10px; border: 2px solid var(--azul); color: var(--azul); font-weight: 600; text-decoration: none; }

.cartao-acoes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.botao-aula {
  display: inline-flex; align-items: center; gap: 10px; padding: 11px 16px; border-radius: 10px;
  background: var(--azul); color: #fff; border: 0; font-weight: 600; font-size: 15px;
}
.play { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--dourado); color: #fff; font-size: 10px; padding-left: 2px; }
.marcar { padding: 11px 16px; border-radius: 10px; background: #fff; border: 1.5px solid var(--linha); font-size: 15px; }
.marcar.marcado { border-color: var(--azul); color: var(--azul); font-weight: 600; }

.habito summary { padding: 13px 44px 13px 18px; }
.habito .cartao-nome { font-size: 16px; }
.habito .cartao-dose { font-size: 14px; color: var(--suave); }

.exames { width: 100%; border-collapse: collapse; margin-top: 12px; font-size: 15px; }
.exames th, .exames td { border-bottom: 1px solid var(--linha); padding: 10px 0; vertical-align: top; text-align: left; }
.exames th span { display: block; font-weight: 400; color: var(--suave); font-size: 13px; }
.exames td { text-align: right; white-space: nowrap; padding-left: 12px; font-weight: 600; color: var(--azul); }

.calorias { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px; }
.calorias div { background: var(--fundo); border-radius: 10px; padding: 12px 8px; text-align: center; }
.calorias strong { display: block; font-family: var(--titulo); font-size: 24px; color: var(--azul); }
.calorias span { font-size: 13px; color: var(--suave); }

.alimentos { padding-left: 18px; margin: 12px 0 0; font-size: 15px; }
.alimentos li { margin: 6px 0; }

.starter { margin: 40px 0 8px; padding: 24px 20px; border-radius: var(--raio); background: var(--azul); color: #fff; }
.starter .selo { color: var(--dourado); }
.starter h2 { color: #fff; font-size: 26px; margin-bottom: 12px; text-wrap: balance; }
.starter p { margin: 0 0 14px; }
.starter ul { list-style: none; padding: 0; margin: 0 0 16px; }
.starter li { padding: 8px 0 8px 26px; border-top: 1px solid rgba(255,255,255,.18); position: relative; }
.starter li::before { content: "✓"; position: absolute; left: 2px; color: var(--dourado); font-weight: 600; }
.starter .preco { font-size: 16px; }
.starter .subtitulo { color: var(--dourado); margin: 0 0 4px; }
.degraus { list-style: none; padding: 0; margin: 4px 0 20px; display: grid; gap: 8px; }
.degraus li { border: 1px solid rgba(255,255,255,.25); border-radius: 10px; padding: 12px 14px; display: grid; gap: 2px; }
.degraus li::before { content: none; }
.degraus span { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.degraus strong { font-weight: 500; font-size: 15px; }
.degraus em { font-size: 13px; color: var(--dourado); font-style: normal; font-weight: 600; }
.degraus li.atual { background: #fff; color: var(--texto); border-color: var(--dourado); box-shadow: 0 0 0 2px var(--dourado); }
.degraus li.atual span { color: var(--azul); font-weight: 600; }
.starter .botao { background: var(--dourado); color: #1d2a3a; text-decoration: none; }
.starter .botao:hover { background: #b8924c; }
.starter .nota { color: rgba(255,255,255,.75); font-size: 13px; margin: 12px 0 0; }

.acoes-finais { display: grid; gap: 10px; margin-top: 30px; }
.acoes-finais .botao-texto { justify-self: center; }

/* Aula em vídeo */
.modal { position: fixed; inset: 0; background: rgba(10, 25, 45, .72); display: grid; place-items: center; padding: 16px; z-index: 10; }
.modal[hidden] { display: none; }
.modal-caixa { background: #fff; border-radius: var(--raio); width: 100%; max-width: 760px; overflow: hidden; }
.modal-topo { display: flex; justify-content: space-between; align-items: center; padding: 12px 12px 12px 18px; }
.modal-topo h3 { font-size: 18px; }
.fechar { background: none; border: 0; font-size: 30px; line-height: 1; padding: 4px 10px; color: var(--suave); }
.video { position: relative; aspect-ratio: 16 / 9; background: #000; }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.link-youtube { display: block; padding: 12px 18px; color: var(--azul); font-size: 15px; }

/* Entrada do modo PRO na capa e no fim do plano */
.capa-pro { color: var(--suave); font-size: 15px; text-align: center; margin: 18px 0 0; }
.botao-link { background: none; border: 0; padding: 0; color: var(--azul); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* Modo PRO */
.so-impressao { display: none; }
.modo-pro .topo { flex-direction: column; align-items: center; gap: 6px; }
.modo-pro .topo::after { content: "Modo PRO"; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: #8a6a2c; background: var(--dourado-claro); border: 1px solid #e6d6b4; padding: 2px 10px; border-radius: 999px; }
body:not(.com-raciocinio) .raciocinio,
body:not(.com-raciocinio) .decisao,
body:not(.com-raciocinio) .caso { display: none; }

.painel { padding-top: 22px; }
.painel h1 { font-size: 32px; margin-bottom: 14px; text-wrap: balance; }
.painel-acoes { display: grid; gap: 10px; margin: 6px 0 8px; }
.painel .dupla .campo { font-size: 16px; }
.painel .nota { margin-top: 14px; }
.sair-pro, .ver-exemplo { display: block; margin: 18px auto 0; }
.ver-exemplo { margin: 4px auto 8px; font-weight: 600; }
.pacientes { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.pacientes li { display: flex; gap: 8px; align-items: stretch; }
.paciente { flex: 1; text-align: left; background: #fff; border: 1px solid var(--linha); border-radius: 12px; padding: 12px 16px; display: grid; gap: 2px; }
.paciente:hover { border-color: #b9c9dc; }
.paciente strong { font-size: 17px; color: var(--texto); }
.paciente span { font-size: 14px; color: var(--suave); }
.apagar { background: none; border: 1px solid var(--linha); border-radius: 12px; padding: 0 12px; font-size: 13px; color: var(--suave); }
.apagar.confirmar { border-color: var(--alerta); color: var(--alerta); background: var(--alerta-fundo); }

.selo-paciente { color: var(--azul); margin-bottom: 12px; }

.barra-pro { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: -6px 0 14px; }
.barra-pro .botao-texto { padding-left: 0; text-decoration: none; font-weight: 600; }
.chave { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--suave); cursor: pointer; }
.chave input { appearance: none; -webkit-appearance: none; width: 38px; height: 22px; border-radius: 999px; background: #cfd6df; position: relative; margin: 0; cursor: pointer; transition: background .15s; flex: none; }
.chave input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .15s; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.chave input:checked { background: var(--azul); }
.chave input:checked::after { transform: translateX(16px); }
.chave input:focus-visible { outline: 2px solid var(--azul); outline-offset: 2px; }

.caso { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px 16px; margin: 4px 0 18px; font-size: 15px; }
.caso p { margin: 0; }
.caso dl { display: grid; grid-template-columns: 6.2em 1fr; gap: 4px 10px; margin: 10px 0 0; }
.caso dt { font-weight: 600; color: var(--azul); }
.caso dd { margin: 0; }

.rac-titulo { font-family: var(--corpo); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--azul); font-weight: 600; margin: 0 0 8px; }
.rac-nota { font-size: 14px; color: var(--suave); margin: 8px 0 0; }

.raciocinio { margin: 14px 0; padding: 14px 16px; border-radius: 12px; background: #f2f6fb; border: 1px solid #dbe5f1; font-size: 15px; }
.raciocinio > p { margin: 0 0 8px; }
.raciocinio .rac-titulo + p { margin-top: 0; }
.raciocinio .rac-titulo:not(:first-child) { margin-top: 16px; }
.gatilhos { list-style: none; padding: 0; margin: 0 0 4px; display: grid; gap: 6px; }
.gatilhos li { display: flex; align-items: baseline; gap: 10px; }
.pts { flex: none; min-width: 34px; text-align: center; font-variant-numeric: tabular-nums; font-size: 13px; font-weight: 700; color: #fff; background: var(--azul); border-radius: 6px; padding: 1px 6px; }
.estudo { background: #fff; border: 1px solid #dbe5f1; border-radius: 10px; padding: 12px 14px; margin: 8px 0; }
.estudo p { margin: 6px 0 0; }
.estudo .tipo { display: inline-block; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; color: #8a6a2c; background: var(--dourado-claro); border-radius: 999px; padding: 2px 9px; }
.ref { font-size: 13px; color: var(--suave); display: grid; gap: 1px; }
.ref a { color: var(--azul); font-weight: 600; text-underline-offset: 2px; }
.limite { font-size: 14px; color: var(--suave); margin: 10px 0 0 !important; }
.limite strong { color: var(--texto); }

.decisao { background: #f2f6fb; border: 1px solid #dbe5f1; border-radius: var(--raio); padding: 14px 16px; margin: 0 0 14px; }
.ranking { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.ranking li { display: grid; gap: 4px; }
.r-topo { display: flex; justify-content: space-between; gap: 10px; font-size: 15px; }
.r-nome { font-weight: 600; }
.r-pts { font-variant-numeric: tabular-nums; font-size: 14px; font-weight: 600; color: var(--suave); white-space: nowrap; }
.barra { position: relative; height: 8px; border-radius: 8px; background: #dde5ef; overflow: visible; }
.barra i { display: block; height: 100%; border-radius: 8px; background: #9db4cf; }
.barra[style*="--minimo"]::after { content: ""; position: absolute; top: -3px; bottom: -3px; left: var(--minimo); width: 2px; background: var(--dourado); }
.ranking .entrou .barra i { background: var(--azul); }
.ranking .entrou .r-nome { color: var(--azul); }
.ranking .fora { opacity: .78; }
.r-por { font-size: 13px; color: var(--suave); margin: 0; }
.r-estado { font-size: 12px; font-weight: 600; margin: 0; color: var(--suave); }
.ranking .entrou .r-estado { color: var(--azul); }

.limites { background: var(--dourado-claro); border: 1.5px solid var(--dourado); border-radius: var(--raio); padding: 20px 18px; margin: 18px 0 8px; }
.limites .selo { color: #8a6a2c; margin-bottom: 6px; }
.limites h2 { font-size: 24px; margin-bottom: 8px; }
.limites > p { margin: 0 0 12px; }
.limites ul { list-style: none; padding: 0; margin: 0 0 14px; display: grid; gap: 10px; }
.limites li { background: #fff; border-radius: 10px; padding: 12px 14px; display: grid; gap: 3px; font-size: 15px; }
.limites li strong { color: var(--texto); }
.limites .falta { color: var(--alerta); }
.link-pro { display: inline-block; font-weight: 600; color: var(--azul); text-underline-offset: 3px; }

.oferta-pro { background: #0b2f57; }
.oferta-pro .parou { background: rgba(255,255,255,.08); border-left: 3px solid var(--dourado); border-radius: 8px; padding: 10px 12px; }
.oferta-pro li strong { color: var(--dourado); font-weight: 600; }
.depoimento { margin: 0 0 16px; padding: 14px 16px; border-radius: 10px; background: #fff; color: var(--texto); }
.depoimento p { margin: 0 0 6px; font-style: italic; font-size: 16px; }
.depoimento cite { font-style: normal; font-size: 13px; color: var(--suave); }

.exames tr.fora-faixa th { color: var(--alerta); }

@media (min-width: 700px) {
  .capa h1 { font-size: 46px; }
  .plano h1 { font-size: 40px; }
  .painel h1 { font-size: 38px; }
  .painel-acoes { grid-template-columns: 1fr 1fr; }
  .piramide { padding: 22px 24px; gap: 5px; }
  .degrau .forma { flex-basis: 46%; min-height: 60px; font-size: 24px; }
  .degrau-texto strong { font-size: 18px; }
}

@media print {
  @page { margin: 14mm 12mm; }
  .topo, .navegacao, .acoes-finais, .starter, .cartao-acoes, .aula-destaque, .piramide, .rodape p:first-child, .so-tela { display: none !important; }
  .so-impressao { display: block; }
  body { background: #fff; font-size: 10.5pt; line-height: 1.45; }
  main, .rodape { max-width: none; padding-left: 0; padding-right: 0; min-height: 0; }
  .plano { padding-top: 0; }
  .plano h1 { font-size: 22pt; margin-bottom: 8px; }
  .lead { font-size: 11.5pt; margin-bottom: 10px; }
  .etapa { font-size: 15pt; margin: 18px 0 4px; break-inside: avoid; break-after: avoid; }
  .etapa-texto { margin-bottom: 8px; break-after: avoid; }
  .cartao summary, .habito summary { padding: 8px 12px; }
  .cartao-nome { font-size: 12pt; }
  .cartao-dose, .cartao-hora { font-size: 10pt; }
  .cartao-corpo { padding: 0 12px 10px; }
  .cartao, .habito, .estudo, .ranking li, .limites li, .tabela-plano tr { break-inside: avoid; border-color: #ccc; }
  .cartao summary::after, .habito summary::after, .cartao[open] summary::after, .habito[open] summary::after { content: ""; }
  .resumo-pdf { margin: 6px 0 0; break-after: page; }
  body.pdf-completo .resumo-pdf { break-after: auto; margin-bottom: 14px; }
  body.pdf-completo .limites { break-after: page; }
  .decisao { break-inside: avoid; }
  .rodape { break-before: avoid; padding-top: 8px; }
  .tabela-plano { width: 100%; border-collapse: collapse; font-size: 10pt; }
  .tabela-plano td, .tabela-plano th { border-bottom: 1px solid #ddd; padding: 5px 6px; text-align: left; vertical-align: top; }
  .tabela-plano td:first-child { font-weight: 600; width: 34%; }
  .tabela-plano td:last-child { width: 22%; color: var(--azul); }
  .tabela-plano .grupo th { padding-top: 10px; font-size: 9pt; letter-spacing: .06em; text-transform: uppercase; color: #8a6a2c; border-bottom: 1.5px solid var(--dourado); }
  .habitos-pdf { font-size: 10pt; margin: 8px 0 0; }
  /* O PDF do paciente leva só o plano; o completo leva também o raciocínio, os estudos e os limites. */
  body.pdf-paciente .so-pro { display: none !important; }
  .cabecalho-pdf { display: flex; align-items: center; gap: 16px; padding-bottom: 12px; margin-bottom: 18px; border-bottom: 2px solid var(--azul); }
  .cabecalho-pdf img { height: 34px; width: auto; }
  .cabecalho-pdf div { display: grid; gap: 1px; font-size: 11pt; color: var(--suave); }
  .cabecalho-pdf strong { font-family: var(--titulo); font-size: 15pt; color: var(--azul); }
  .assinatura-pdf { display: grid; justify-items: center; gap: 4px; margin: 48px auto 0; width: 70%; font-size: 11pt; color: var(--suave); break-inside: avoid; }
  .assinatura-pdf .linha { display: block; width: 100%; border-top: 1px solid #555; }
  .modo-pro .topo::after { content: none; }
  .ref a { color: var(--azul); text-decoration: none; }
  .ref a::after { content: " · doi.org/" attr(data-doi); }
}
