/* Ficha da avaliação em A4 (impressão e PDF). Depende de base.css.
   Todas as regras ficam dentro de .doc para não afetar as telas do app. */
@page {
  size: A4 portrait;
  margin: 14mm 14mm 16mm;
  /* Caixas de cima e de baixo definidas: o Chrome não imprime o cabeçalho padrão dele (data e título). */
  @top-left { content: "Evoque Academia"; font: 600 7.5pt 'Inter', sans-serif; color: #62626c; }
  @top-right { content: "Documento confidencial"; font: 500 7.5pt 'Inter', sans-serif; color: #62626c; }
  @bottom-left { content: "Dados pessoais sensíveis · Lei nº 13.709/2018 (LGPD)"; font: 500 7.5pt 'Inter', sans-serif; color: #62626c; }
  @bottom-right { content: "Página " counter(page) " de " counter(pages); font: 500 7.5pt 'Inter', sans-serif; color: #62626c; }
}
.doc { --c-line: #d9d9e0; --c-soft: #f5f5f7; width: 182mm; margin: 0 auto; color: #141417; font: 400 9.5pt/1.45 var(--font); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.doc h1, .doc h2, .doc h3, .doc p { margin: 0; }
.doc ul { margin: 0; }

/* Cabeçalho */
.doc .doc-head { display: grid; grid-template-columns: auto 1fr auto; align-items: end; gap: 8mm; padding-bottom: 4mm; border-bottom: 2.2pt solid #ff4d00; }
.doc .doc-logo { width: 34mm; height: auto; }
.doc .doc-title span { display: block; font-size: 8pt; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #62626c; }
.doc .doc-title h1 { font-family: var(--display); font-weight: 800; text-transform: uppercase; font-size: 19pt; line-height: 1; letter-spacing: .01em; margin-top: 1mm; }
.doc .doc-ref { display: grid; grid-auto-flow: column; gap: 6mm; margin: 0; text-align: right; }
.doc .doc-ref dt { font-size: 7pt; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #62626c; }
.doc .doc-ref dd { margin: 0; font-weight: 700; font-size: 10pt; font-variant-numeric: tabular-nums; }

/* Seções */
.doc .doc-sec { margin-top: 6mm; }
/* O título da seção pode vir dentro de um bloco .keep (Respostas: o título vai junto com as primeiras linhas). */
.doc .doc-sec > h2, .doc .doc-sec > .keep > h2 { display: flex; align-items: baseline; gap: 3mm; padding-bottom: 1.6mm; margin-bottom: 3mm; border-bottom: .6pt solid #141417; font-family: var(--display); font-weight: 700; text-transform: uppercase; font-size: 11.5pt; letter-spacing: .03em; break-after: avoid; }
.doc .doc-sec > h2 span, .doc .doc-sec > .keep > h2 span { color: #cc3800; font-variant-numeric: tabular-nums; }
.doc .keep { break-inside: avoid; }
.doc .doc-src { font-size: 8pt; color: #62626c; margin-bottom: 2.5mm; }
.doc .doc-src.after { margin: 2mm 0 0; }
.doc .doc-muted { color: #3a3a42; margin-top: 2mm; }

/* Grade de dados: 6 colunas; cada célula ocupa 2 (padrão), 3 (meia linha) ou 6 (linha inteira).
   A linha de cima da grade é desenhada por ::before, fora do fluxo, e não como borda: uma borda no topo da grade criava
   um ponto de quebra logo depois do título, e o título da seção ficava sozinho no fim da página (o mesmo de .ans). */
.doc .kv { position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0; border-left: .4pt solid var(--c-line); }
.doc .kv::before { content: ""; position: absolute; top: 0; right: 0; left: -.4pt; border-top: .4pt solid var(--c-line); }
.doc .kv > div { grid-column: span 2; padding: 1.8mm 2.4mm; border-right: .4pt solid var(--c-line); border-bottom: .4pt solid var(--c-line); min-width: 0; }
.doc .kv > div.w3 { grid-column: span 3; }
.doc .kv > div.w4 { grid-column: span 4; }
.doc .kv > div.w6 { grid-column: 1 / -1; }
.doc .kv dt { font-size: 7pt; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #62626c; }
.doc .kv dd { margin: .6mm 0 0; font-weight: 600; overflow-wrap: anywhere; }

.doc .pend { margin-top: 3mm; padding: 2.5mm 4mm; border: .6pt solid #e7b4b0; border-radius: 2mm; background: #fdf1f0; break-inside: avoid; }
.doc .pend b { color: #b3261e; font-size: 9pt; }
.doc .pend ul { margin-top: 1mm; padding-left: 4.5mm; }

.doc .finds { display: grid; gap: 2mm; }
.doc .find { display: grid; grid-template-columns: 22mm 1fr; gap: 3mm; padding: 2.2mm 3mm; border: .4pt solid var(--c-line); border-radius: 1.6mm; break-inside: avoid; }
.doc .find .tag { align-self: start; justify-self: start; padding: .5mm 2mm; border-radius: 10mm; font-size: 7pt; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: #ececf0; color: #3a3a42; }
.doc .find.t-alert .tag { background: #fde3e1; color: #b3261e; }
.doc .find.t-warn .tag { background: #ffeccc; color: #93370d; }
.doc .find b { font-size: 9.5pt; }
.doc .find p { margin-top: .6mm; color: #3a3a42; }
.doc .obs { margin: 0; padding-left: 4.5mm; display: grid; gap: 1.2mm; color: #3a3a42; }
.doc .obs b { color: #141417; }

/* Medidas */
.doc .mts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2mm; }
.doc .mt { display: grid; gap: .4mm; align-content: start; padding: 2.2mm 3mm; border: .4pt solid var(--c-line); border-radius: 1.6mm; break-inside: avoid; }
.doc .mt span { font-size: 7pt; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #62626c; }
.doc .mt b { font-size: 11pt; font-variant-numeric: tabular-nums; }
.doc .mt small { font-size: 7.5pt; color: #3a3a42; line-height: 1.35; }
.doc .mt:first-child { background: #141417; border-color: #141417; color: #fff; }
.doc .mt:first-child span, .doc .mt:first-child small { color: rgba(255, 255, 255, .78); }
.doc .mt:first-child b { font-family: var(--display); font-weight: 800; font-size: 18pt; line-height: 1; }
/* 4 células: uma linha só. 7 células: o IMC em destaque ocupa duas linhas à esquerda e as outras 6 ficam em 3 colunas. */
.doc .mts.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.doc .mts.hero { grid-template-columns: minmax(0, .82fr) repeat(3, minmax(0, 1fr)); }
.doc .mts.hero > .mt:first-child { grid-row: span 2; align-content: space-between; padding: 3mm 3.4mm; }
.doc .mts.hero > .mt:first-child b { font-size: 34pt; }
.doc .plan-h { margin: 3mm 0 1mm; font-size: 7.5pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #3a3a42; break-after: avoid; }
.doc .bullets { padding-left: 4.5mm; display: grid; gap: 1.2mm; }
/* Lista partida em blocos (ficha.js, lista): a continuação mantém o mesmo espaço entre os itens. */
.doc .bullets.cont, .doc .obs.cont { margin-top: 1.2mm; }
.doc .nw { white-space: nowrap; }

/* PAR-Q e Termo */
.doc table.parq { width: 100%; border-collapse: collapse; }
.doc table.parq th, .doc table.parq td { padding: 1.6mm 2.2mm; border: .4pt solid var(--c-line); vertical-align: middle; text-align: left; }
.doc table.parq thead th { background: var(--c-soft); font-size: 7pt; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #3a3a42; }
.doc table.parq .c { width: 11mm; text-align: center; }
.doc table.parq td:first-child { font-weight: 700; color: #3a3a42; }
/* Caixas centralizadas (inline-grid desalinhava pela linha de base) e visíveis até em impressora fraca. */
.doc .parq .x, .doc .parq .o { display: grid; place-items: center; width: 4.2mm; height: 4.2mm; margin: 0 auto; border: .6pt solid #8a8a94; }
.doc .parq .x { border-color: #141417; font-size: 8pt; font-weight: 800; line-height: 1; }
/* Pergunta com SIM em destaque: o professor vê na hora. */
.doc table.parq tr.is-sim td { background: #fff4ee; }
.doc table.parq tr.is-sim td:nth-child(2) { font-weight: 600; }
.doc .doc-result { margin-top: 2mm; font-weight: 600; }
.doc .doc-termo { margin: 0; padding: 2mm 0 2mm 4mm; border-left: 1.2mm solid #141417; display: grid; gap: 1.6mm; font-size: 9.5pt; }
.doc .accept { margin-top: 3mm; display: grid; gap: .6mm; padding: 2.5mm 4mm; border-radius: 2mm; border: .6pt solid var(--c-line); }
.doc .accept.ok { background: #f3fbf7; border-color: #a6e3c4; }
.doc .accept.no { background: #fff8eb; border-color: #f5cf8d; }
.doc .accept span { color: #3a3a42; font-size: 8.5pt; }

/* Respostas em duas colunas. Sem borda no topo da lista: assim o Chrome não quebra a página logo depois do título
   (a borda criava um ponto de quebra dentro da lista e o título ficava sozinho no fim da página). */
.doc .ans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 6mm; margin: 0; }
.doc .ans > div { display: grid; grid-template-columns: 38% 1fr; gap: 2.5mm; padding: 1.5mm 0; border-bottom: .4pt solid var(--c-line); break-inside: avoid; }
.doc .ans dt { color: #3a3a42; }
.doc .ans dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }

/* Cuidados aplicados e liberação (checagem do professor, só na ficha da equipe): resumo em 4 dados, a lista dos
   cuidados com a situação de cada um e a observação da liberação. */
.doc .kv.ck4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.doc .kv.ck4 > div { grid-column: auto; }
.doc .kv .ck-ok dd { color: #067647; }
.doc .ck-falta { color: #b3261e; }
.doc .ck-ic { display: inline-block; width: 3.4mm; height: 3.4mm; margin: 0 1mm -.5mm 0; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.doc .ck-list { margin: 2.2mm 0 0; padding: 0; list-style: none; }
.doc .ck-list li { display: grid; grid-template-columns: 23mm minmax(0, 1fr); gap: 3mm; align-items: start; padding: 1.5mm 0; border-bottom: .4pt solid var(--c-line); }
.doc .ck-tag { justify-self: start; margin-top: .2mm; padding: .4mm 2mm; border-radius: 10mm; font-size: 6.6pt; font-weight: 700; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.doc .ck-list .ok .ck-tag { background: #e6f6ee; color: #067647; }
.doc .ck-list .no .ck-tag { background: #fff1d6; color: #93370d; }
.doc .ck-list p { font-size: 8.5pt; line-height: 1.4; }
.doc .ck-list p b { font-weight: 600; }
.doc .ck-list small { display: block; margin-top: .5mm; font-size: 8pt; line-height: 1.38; color: #3a3a42; }
.doc .ck-list small b { color: #93370d; }
.doc .ck-obs { margin-top: 2mm; font-size: 8.5pt; line-height: 1.4; color: #3a3a42; }
.doc .ck-obs b { color: #141417; }

/* Fechamento: anotações, assinaturas e rodapé ficam juntos na mesma página. */
.doc .closing { break-inside: avoid; }
.doc .notes { min-height: 26mm; padding: 2mm 3mm; border: .4pt solid var(--c-line); border-radius: 1.6mm; display: grid; align-content: start; gap: 6mm; }
.doc .notes p { white-space: pre-wrap; }
.doc .notes small { color: #62626c; }
.doc .notes i { display: block; border-bottom: .4pt solid var(--c-line); height: 0; }
.doc .sign { margin-top: 14mm; display: grid; grid-template-columns: 1fr 1fr; gap: 14mm; font-size: 8.5pt; color: #3a3a42; text-align: center; }
.doc .sign span { display: block; border-top: .6pt solid #141417; margin-bottom: 1.4mm; }
.doc .sign small { display: block; margin-top: .8mm; font-size: 7.5pt; color: #62626c; }
/* Registro de exemplo: etiqueta no topo e marca d'água em todas as páginas impressas. */
.doc .doc-demo { display: inline-block; margin-left: 2mm; padding: .2mm 2mm; border-radius: 10mm; background: #ffe8dc; color: #b83700; font: 700 7pt/1.4 var(--font); font-style: normal; letter-spacing: .08em; vertical-align: 1px; }
.doc .wm { display: none; }
/* Fixa: o Chrome repete em todas as páginas. Linhas centralizadas entre si e no meio da folha. */
@media print { .doc .wm { display: grid; position: fixed; top: 0; right: 0; bottom: 0; left: 0; place-items: center; text-align: center; pointer-events: none; font: 800 72pt/1 var(--display); letter-spacing: .04em; color: rgba(20, 20, 23, .06); transform: rotate(-30deg); } }
.doc .doc-foot { margin-top: 8mm; padding-top: 2.5mm; border-top: .4pt solid var(--c-line); font-size: 7.5pt; color: #62626c; display: grid; gap: .6mm; text-wrap: pretty; }

/* Faixa de resumo da ficha de avaliação (logo abaixo do cabeçalho): o essencial antes de ler o resto. */
.doc .doc-band { display: grid; grid-template-columns: 1.05fr 1.35fr 1.1fr 1.15fr .65fr; margin-top: 4mm; border: .4pt solid var(--c-line); border-radius: 1.6mm; overflow: hidden; break-inside: avoid; }
.doc .doc-band > div { display: grid; align-content: start; gap: .5mm; padding: 2.2mm 3mm 2.4mm; border-left: .4pt solid var(--c-line); min-width: 0; }
.doc .doc-band > div:first-child { border-left: 0; }
.doc .doc-band > div > span { font-size: 6.8pt; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; color: #62626c; }
.doc .doc-band b { font-size: 9.5pt; line-height: 1.25; overflow-wrap: anywhere; }
.doc .doc-band small { font-size: 7.5pt; line-height: 1.3; color: #3a3a42; }
.doc .doc-band .bd-risk { box-shadow: inset 1.6mm 0 0 #12b76a; background: #f3fbf7; padding-left: 4.4mm; }
.doc .doc-band .bd-risk.risk-prioridade { box-shadow: inset 1.6mm 0 0 #d92d20; background: #fdf1f0; }
.doc .doc-band .bd-risk.risk-revisao, .doc .doc-band .bd-risk.risk-incompleta { box-shadow: inset 1.6mm 0 0 #f79009; background: #fff8eb; }
.doc .doc-band .bd-imc b { font-family: var(--display); font-weight: 800; font-size: 15pt; line-height: 1; }
/* Treino salvo na Central: resumo curto numa linha de 4 dados e uma de sessões (a ficha de treino completa é outro documento). */
.doc .kv.k4 { grid-template-columns: 1.15fr .95fr 1.2fr 1.2fr; }
.doc .kv.k4 > div { grid-column: auto; }
.doc .kv dd small { display: block; margin-top: .2mm; font-size: 7.5pt; font-weight: 500; line-height: 1.3; color: #62626c; }
.doc .tm-sess { display: flex; flex-wrap: wrap; gap: 1.6mm; margin: 2.4mm 0 0; padding: 0; list-style: none; }
.doc .tm-sess li { display: inline-flex; align-items: center; gap: 1.6mm; padding: .8mm 2.6mm .8mm .8mm; border: .4pt solid var(--c-line); border-radius: 1.4mm; font-size: 8.5pt; break-inside: avoid; }
.doc .tm-sess b { display: inline-grid; place-items: center; min-width: 5.4mm; height: 5.4mm; padding: 0 .8mm; border-radius: 1mm; background: #141417; color: #fff; font: 800 9.5pt/1 var(--display); }
.doc .tm-sess em { font-style: normal; color: #62626c; font-size: 8pt; }
.doc .tm-sess + .doc-src.after { margin-top: 1.6mm; }

/* ---------- Ficha de treino (treino-pdf.js). Tudo dentro de .doc.treino: a ficha de avaliação não muda. ---------- */
.doc.treino .doc-head + .kv { margin-top: 4.5mm; }
.doc.treino .kv > div { padding: 1.6mm 2.4mm; }
.doc.treino .kv > div.w1 { grid-column: span 1; }
.doc.treino .kv dd.big { font-size: 12pt; line-height: 1.25; }
.doc.treino .kv dd.blank { min-height: 4.6mm; }
.doc.treino .doc-sec { margin-top: 4.6mm; }
/* 01 Como treinar e evoluir: caixas da largura da folha, uma embaixo da outra: escala de esforço, quando subir o peso
   e, quando a avaliação pede, o plano B de 20 min. */
.doc.treino .tr-como { display: grid; gap: 2.2mm; }
.doc.treino .tr-box { min-width: 0; padding: 2.1mm 3.2mm 2.3mm; border: .4pt solid var(--c-line); border-radius: 1.6mm; }
.doc.treino .tr-k { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 3mm; margin-bottom: 1.2mm; font-size: 7pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #62626c; }
.doc.treino .tr-k span { font-size: 7.5pt; font-weight: 500; letter-spacing: 0; text-transform: none; color: #3a3a42; }
.doc.treino .tr-tx { font-size: 8.5pt; line-height: 1.42; text-wrap: pretty; }
.doc.treino .tr-tx b { font-weight: 600; }
/* Escala: barra de 0 a 10; embaixo de cada faixa, o nome e o que o aluno sente; por último, o teste da fala do aeróbico. */
.doc.treino .tr-rpe { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); column-gap: .7mm; row-gap: 1.1mm; }
.doc.treino .tr-rpe .v { display: grid; place-items: center; height: 6.2mm; font-weight: 700; font-size: 10pt; font-variant-numeric: tabular-nums; }
.doc.treino .tr-rpe .v:first-child { border-radius: 1.2mm 0 0 1.2mm; }
.doc.treino .tr-rpe .v:nth-child(11) { border-radius: 0 1.2mm 1.2mm 0; }
.doc.treino .tr-rpe .f1 { background: #ececf0; }
.doc.treino .tr-rpe .f2 { background: #ffdcc9; }
.doc.treino .tr-rpe .f3 { background: #ffa77a; }
.doc.treino .tr-rpe .f4 { background: #ff4d00; }
.doc.treino .tr-rpe .f5 { background: #141417; color: #fff; }
.doc.treino .tr-rpe .l { grid-row: 2; padding: .8mm .6mm 0; border-top: .6pt solid #c9c9d1; text-align: center; font-size: 7.2pt; line-height: 1.25; color: #3a3a42; text-wrap: balance; }
.doc.treino .tr-rpe .l b { font-weight: 700; color: #141417; }
.doc.treino .tr-fala { display: grid; grid-template-columns: 4.2mm minmax(0, 1fr); gap: 2.2mm; align-items: center; margin-top: 1.7mm; padding-top: 1.6mm; border-top: .4pt solid var(--c-line); font-size: 8pt; line-height: 1.38; text-wrap: pretty; }
.doc.treino .tr-fala b { font-weight: 700; }
/* Ícones de traço num quadrado (sem fonte: SVG no próprio HTML). */
.doc.treino .tr-ic { display: block; width: 4.2mm; height: 4.2mm; padding: .75mm; border-radius: 1mm; background: #ececf0; fill: none; stroke: #141417; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.doc.treino .tr-ic.on { background: #ff4d00; }
.doc.treino .tr-ic.alerta { background: #fde3e1; stroke: #b3261e; }
/* Quando subir o peso: a regra principal em destaque e as outras numa linha, lado a lado. */
.doc.treino .tr-lead { display: grid; grid-template-columns: 5.4mm minmax(0, 1fr); gap: 2.4mm; align-items: center; font-size: 8.6pt; line-height: 1.42; text-wrap: pretty; }
.doc.treino .tr-lead .tr-ic { width: 5.4mm; height: 5.4mm; padding: 1mm; }
.doc.treino .tr-lead b { font-weight: 700; }
.doc.treino .tr-regras { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); column-gap: 4.5mm; margin: 1.9mm 0 0; padding: 1.8mm 0 0; border-top: .4pt solid var(--c-line); list-style: none; }
.doc.treino .tr-regras li { display: grid; grid-template-columns: 4.2mm minmax(0, 1fr); gap: 2mm; align-items: start; font-size: 8pt; line-height: 1.36; text-wrap: pretty; }
.doc.treino .tr-seu { margin-top: 1.8mm; padding: 1.3mm 2.2mm; border-radius: 1.2mm; background: #f5f5f7; font-size: 8pt; line-height: 1.38; }
.doc.treino .tr-seu b { font-weight: 700; }
/* Plano B: faixa clara da marca, com o título à esquerda. */
.doc.treino .tr-pb { display: grid; grid-template-columns: 31mm minmax(0, 1fr); column-gap: 2.6mm; align-items: baseline; border-color: #ffd2bd; background: #fff5ef; }
.doc.treino .tr-pb .tr-k { margin: 0; white-space: nowrap; color: #b83700; }
/* Aquecimento: no começo dos treinos, antes da dica e das tabelas. */
.doc.treino .tr-aq { display: grid; grid-template-columns: 24mm minmax(0, 1fr); column-gap: 3mm; align-items: baseline; margin: 0 0 2.2mm; padding: 1.7mm 3.2mm 1.9mm; border-radius: 1.6mm; background: #f5f5f7; font-size: 8.5pt; line-height: 1.42; text-wrap: pretty; break-inside: avoid; break-after: avoid; }
.doc.treino .tr-aq b { font-size: 7pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #3a3a42; }
/* Folha mais justa (EvoqueTreinoPdf.ajustar põe a classe aperta quando faltam poucos milímetros para a primeira sessão
   caber inteira na página 1): os mesmos blocos com espaços um pouco menores. */
.doc.treino.aperta .doc-head { padding-bottom: 3mm; }
.doc.treino.aperta .doc-head + .kv { margin-top: 3.4mm; }
.doc.treino.aperta > .kv > div { padding-top: 1.1mm; padding-bottom: 1.1mm; }
.doc.treino.aperta .doc-sec { margin-top: 3.6mm; }
.doc.treino.aperta .doc-sec > h2, .doc.treino.aperta .doc-sec > .keep > h2 { margin-bottom: 2.4mm; }
.doc.treino.aperta .tr-como { gap: 1.6mm; }
.doc.treino.aperta .tr-box { padding-top: 1.6mm; padding-bottom: 1.8mm; }
.doc.treino.aperta .tr-aq { margin-bottom: 1.8mm; padding-top: 1.3mm; padding-bottom: 1.5mm; }
.doc.treino.aperta .tr-hint { margin-bottom: 1.8mm; }
.doc.treino .tr-rpe .l1 { grid-column: 1 / 4; }
.doc.treino .tr-rpe .l2 { grid-column: 4 / 6; }
.doc.treino .tr-rpe .l3 { grid-column: 6 / 8; }
.doc.treino .tr-rpe .l4 { grid-column: 8 / 10; }
.doc.treino .tr-rpe .l5 { grid-column: 10 / 12; }
/* Sessões: uma tabela com a faixa escura da letra no cabeçalho. A sessão que cabe numa página fica inteira (classe
   keep, que treino-pdf.js põe pela altura estimada); a maior que uma página, e a primeira, que começa logo na página 1,
   continuam na seguinte com a faixa e os títulos das colunas repetidos (cabeçalho de tabela). O título "Treinos" e a
   dica não se separam um do outro nem da primeira sessão. */
.doc.treino .tr-sess { margin-top: 4mm; }
.doc.treino .tr-hint { margin: -.6mm 0 2.4mm; font-size: 8pt; line-height: 1.4; color: #3a3a42; text-wrap: pretty; break-inside: avoid; break-after: avoid; }
.doc.treino .tr-hint b { color: #141417; }
.doc.treino .tr-sessoes > .tr-hint + .tr-sess { margin-top: 0; }
.doc.treino .tr-tab tr.tr-band th { padding: 0; border: 0; background: none; text-transform: none; letter-spacing: normal; }
.doc.treino .tr-sh { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 3mm; padding: 1.6mm 3.2mm 1.6mm 1.6mm; border-radius: 1.6mm 1.6mm 0 0; background: #141417; color: #fff; text-align: left; }
.doc.treino .tr-id { display: grid; place-items: center; min-width: 9mm; height: 9mm; padding: 0 1.2mm; border-radius: 1.2mm; background: #ff4d00; color: #141417; font: 800 17pt/1 var(--display); }
.doc.treino .tr-nm { display: grid; gap: .5mm; min-width: 0; }
.doc.treino .tr-nm b { font: 800 13pt/1.05 var(--display); letter-spacing: .02em; text-transform: uppercase; overflow-wrap: anywhere; }
.doc.treino .tr-nm small { font-size: 8pt; font-weight: 400; line-height: 1.3; color: rgba(255, 255, 255, .82); }
.doc.treino .tr-qt { font-size: 7pt; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; color: rgba(255, 255, 255, .85); }
.doc.treino table.tr-tab { width: 100%; border-collapse: collapse; table-layout: fixed; }
/* Larguras em mm (treino-pdf.js usa as mesmas para estimar a altura): colunas fixas e uma coluna por semana (4 a 6). */
.doc.treino .tr-tab col.cn { width: 7mm; }
.doc.treino .tr-tab col.cs { width: 11mm; }
.doc.treino .tr-tab col.cr { width: 18mm; }
.doc.treino .tr-tab col.cd { width: 15mm; }
.doc.treino .tr-tab col.cc { width: 14mm; }
.doc.treino .tr-tab col.cw { width: 11mm; }
.doc.treino .tr-tab.s5 col.cw { width: 10mm; }
.doc.treino .tr-tab.s6 col.cw { width: 9.5mm; }
.doc.treino .tr-tab th, .doc.treino .tr-tab td { padding: 1mm 1.4mm; border: .4pt solid var(--c-line); vertical-align: middle; text-align: left; overflow-wrap: anywhere; }
.doc.treino .tr-tab thead th { padding: 1mm .6mm; background: #f5f5f7; font-size: 6.5pt; font-weight: 700; line-height: 1.2; letter-spacing: .05em; text-transform: uppercase; color: #3a3a42; overflow-wrap: normal; }
.doc.treino .tr-tab thead th.reg { padding-left: .2mm; padding-right: .2mm; background: #fff1e9; color: #b83700; letter-spacing: .02em; white-space: nowrap; }
.doc.treino .tr-tab .c { text-align: center; }
/* Linha de 7 mm: espaço para escrever a carga à mão em cada semana. */
.doc.treino .tr-tab tbody td { height: 7mm; font-size: 9pt; line-height: 1.25; }
.doc.treino .tr-tab tbody tr { break-inside: avoid; }
.doc.treino .tr-tab td.n { padding-left: .4mm; padding-right: .4mm; text-align: center; white-space: nowrap; font-weight: 700; color: #62626c; font-variant-numeric: tabular-nums; }
.doc.treino .tr-tab td.cg { font-size: 8pt; line-height: 1.2; }
.doc.treino .tr-tab td.ex b { display: block; font-size: 9pt; font-weight: 600; line-height: 1.25; }
.doc.treino .tr-tab td.ex small { display: block; margin-top: .3mm; font-size: 7pt; line-height: 1.3; color: #3a3a42; }
.doc.treino .tr-tab td.ex em { margin-right: 1.4mm; font-style: normal; font-size: 6.3pt; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #b83700; }
.doc.treino .tr-tab td.num { font-weight: 700; font-variant-numeric: tabular-nums; }
.doc.treino .tr-tab td.w { background: #fffaf6; }
.doc.treino .tr-tab td.none { height: auto; padding: 3mm; text-align: center; color: #62626c; }
.doc.treino .tr-ori { gap: 1.6mm; text-wrap: pretty; }
.doc.treino .tr-ori.cont { margin-top: 1.6mm; }
/* Fechamento num bloco só: as últimas orientações (continuação da lista, ou a seção inteira se for curta), observações,
   assinatura do professor e rodapé. Assim a última página nunca fica só com a assinatura. */
.doc.treino .tr-closing { break-inside: avoid; }
.doc.treino .tr-ori-fim { margin-top: 1.6mm; }
.doc.treino .notes { min-height: 18mm; gap: 5mm; }
.doc.treino .notes.has-text { min-height: 0; padding: 2.6mm 3.2mm; }
/* Espaços do fechamento medidos na varredura de paginação: com eles, mais fichas cabem em 2 páginas. */
.doc.treino .doc-foot { margin-top: 3.8mm; }
.doc.treino .tr-sign { margin-top: 6.5mm; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10mm; align-items: end; }
.doc.treino .tr-line { display: block; margin-bottom: 1.6mm; border-top: .6pt solid #141417; }
.doc.treino .tr-prof b { display: block; font-size: 8.5pt; font-weight: 600; color: #3a3a42; }
.doc.treino .tr-cref { display: block; margin-top: 1.6mm; font-size: 8.5pt; color: #3a3a42; white-space: nowrap; }
.doc.treino .tr-blank { display: inline-block; width: 24mm; height: 3mm; border-bottom: .6pt solid #8a8a94; }
.doc.treino .tr-blank.wide { width: 42mm; }
.doc.treino .tr-help { display: grid; gap: .6mm; padding: 2.6mm 3.4mm; border: .4pt solid #ffd2bd; border-radius: 1.6mm; background: #fff5ef; }
.doc.treino .tr-help b { font-size: 9pt; }
.doc.treino .tr-help span { font-size: 8pt; color: #3a3a42; }

/* Pré-visualização na tela: folha A4 sobre fundo cinza. */
@media screen {
  .doc-page { background: #e7e7ec; min-height: 100vh; padding: 24px 12px 48px; }
  .doc-bar { max-width: 210mm; margin: 0 auto 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
  .doc-bar p { color: #3a3a42; font-size: 14px; max-width: 46ch; }
  .doc-sheet { width: 210mm; max-width: 100%; margin: 0 auto; background: #fff; padding: 14mm; box-shadow: 0 2px 16px rgba(0, 0, 0, .1); overflow: hidden; }
  .doc-sheet .doc { width: auto; max-width: 182mm; }
  /* A folha pousa na tela uma vez quando fica pronta (no papel nada anima). */
  .doc-sheet.is-ready { --rise: 16px; animation: ev-in-up 420ms var(--e-out) both; }
}
@media screen and (max-width: 820px) {
  .doc-sheet { padding: 16px; }
  .doc { font-size: 13px; }
  .doc .doc-head { grid-template-columns: 1fr; gap: 12px; }
  .doc .kv { grid-template-columns: minmax(0, 1fr); }
  .doc .kv > div, .doc .kv > div.w3, .doc .kv > div.w4 { grid-column: 1 / -1; }
  .doc .find { grid-template-columns: 1fr; }
  .doc .mts, .doc .mts.n4, .doc .mts.hero { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .doc .mts.hero > .mt:first-child { grid-row: auto; grid-column: 1 / -1; }
  .doc .kv.ck4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .doc .ck-list li { grid-template-columns: minmax(0, 1fr); gap: 1mm; }
  .doc .ans { grid-template-columns: minmax(0, 1fr); }
  .doc .kv.k4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .doc .doc-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .doc .doc-band > div { border-left: 0; border-top: .4pt solid var(--c-line); }
  .doc .doc-band > div:first-child { grid-column: 1 / -1; border-top: 0; }
  /* Ficha de treino no celular: a tabela rola de lado dentro da folha (a página não rola). */
  .doc.treino .tr-pb, .doc.treino .tr-aq, .doc.treino .tr-sign { grid-template-columns: minmax(0, 1fr); }
  .doc.treino .tr-sign { row-gap: 5mm; }
  .doc.treino .tr-regras { grid-auto-flow: row; row-gap: 1.6mm; }
  .doc.treino .tr-rpe .l { font-size: 10px; padding: 3px 1px 0; }
  .doc.treino .tr-sh { grid-template-columns: auto minmax(0, 1fr); }
  .doc.treino .tr-qt { grid-column: 2; white-space: normal; }
  .doc.treino .tr-scroll { overflow-x: auto; }
  .doc.treino table.tr-tab { min-width: 620px; }
}
@media print {
  html, body { background: #fff !important; }
  .doc-bar { display: none !important; }
  .doc-page, .doc-sheet { padding: 0 !important; margin: 0 !important; box-shadow: none !important; background: #fff !important; }
}
