/* Treino principal (js/fase-treino.js): guia de execução, sessões que abrem e fecham, fotos em movimento. */

/* guia de execução */
.guia-ex { display: flex; flex-direction: column; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--s1); }
.guia-ex .kicker { margin: 0; }
.guia-ex__abas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; border-radius: var(--r-pill); background: var(--s2); }
.guia-ex__abas button { min-height: 40px; border: 0; border-radius: var(--r-pill); background: transparent; color: var(--muted); font-size: 13px; font-weight: 600; cursor: pointer; transition: background 0.2s var(--ease), color 0.2s var(--ease); }
.guia-ex__abas button[aria-selected="true"] { background: var(--gold); color: var(--ink); }
.guia-ex__painel { animation: treino-fundo 0.2s ease both; }
.guia-ex__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.guia-ex__lista li { display: grid; grid-template-columns: 26px 1fr; gap: 10px; align-items: start; line-height: 1.4; }
.guia-ex__lista i { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: rgba(227, 166, 20, 0.14); color: var(--gold-hi); font-style: normal; font-size: 13px; font-weight: 650; }
.guia-ex__lista--erros i { background: rgba(232, 113, 95, 0.14); color: var(--alerta); font-size: 12px; }
.guia-ex__dica { margin: 0; padding: 10px 12px; border-radius: var(--r-sm); background: rgba(233, 200, 115, 0.08); color: var(--text); font-size: 14px; line-height: 1.4; }
.guia-ex__dica b { color: var(--ok); }
.guia-ex__faixas { list-style: none; margin: 0; padding: 10px 0 0; border-top: 1px solid var(--line); display: grid; gap: 10px; }
.guia-ex__faixas li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: 14px; line-height: 1.35; }
.guia-ex__faixas svg { width: 22px; height: 22px; fill: none; stroke: var(--gold); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.guia-ex__faixas small { display: block; color: var(--faint); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 1px; }
.guia-ex--prox { text-align: left; }

/* na sessão: "Como fazer" recolhido, abaixo do registro */
.guia-dobra { border: 1px solid var(--line); border-radius: var(--r-md); background: var(--s1); }
.guia-dobra > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: var(--touch); padding: 12px 14px; cursor: pointer; }
.guia-dobra > summary::-webkit-details-marker { display: none; }
.guia-dobra > summary b { display: block; font-size: 15px; }
.guia-dobra > summary small { display: block; color: var(--faint); font-size: 12px; margin-top: 2px; }
.guia-dobra > summary svg { flex: none; width: 20px; height: 20px; fill: none; stroke: var(--gold); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.2s var(--ease); }
.guia-dobra[open] > summary svg { transform: rotate(180deg); }
.guia-dobra__corpo { display: flex; flex-direction: column; gap: 10px; padding: 0 14px 14px; animation: treino-fundo 0.2s ease both; }
.guia-dobra .guia-ex { padding: 0; border: 0; background: none; }
.guia-dobra .guia-ex > .kicker { display: none; }

/* sessões da semana: uma linha por sessão, a lista abre com um toque */

/* duas fotos do exercício se alternando */
.foto-mov { position: relative; }
.foto-mov:not(.is-pausado) .strip { display: grid; overflow: hidden; }
.foto-mov:not(.is-pausado) .strip img { grid-area: 1 / 1; width: 100%; }
.foto-mov:not(.is-pausado) .strip img:nth-child(2) { animation: treino-flip var(--ciclo, 4s) ease-in-out infinite; }
.foto-mov.is-pausado .foto-mov__leg { display: none; }
.foto-mov__leg { position: absolute; left: 12px; top: 12px; margin: 0; display: grid; pointer-events: none; }
.foto-mov__leg span { grid-area: 1 / 1; padding: 4px 10px; border-radius: var(--r-pill); background: rgba(7, 7, 7, 0.72); color: var(--text); font-size: 12px; font-weight: 600; backdrop-filter: blur(6px); }
.foto-mov__leg span:nth-child(1) { animation: treino-flip-inv var(--ciclo, 4s) ease-in-out infinite; }
.foto-mov__leg span:nth-child(2) { color: var(--gold-hi); animation: treino-flip var(--ciclo, 4s) ease-in-out infinite; }
.foto-mov__btn { position: absolute; right: 12px; top: 12px; min-height: 34px; padding: 0 12px; border: 1px solid rgba(244, 239, 228, 0.18); border-radius: var(--r-pill); background: rgba(7, 7, 7, 0.72); color: var(--text); font-size: 12px; font-weight: 600; cursor: pointer; backdrop-filter: blur(6px); }
.foto-mov.is-pausado .foto-mov__btn { background: var(--gold); color: var(--ink); border-color: transparent; }
.foto-mov ~ .strip__dots, .foto-mov:not(.is-pausado) + .strip__leg { display: none; }

@keyframes treino-fundo { from { opacity: 0; } }
@keyframes treino-flip { 0%, 32% { opacity: 0; } 42%, 72% { opacity: 1; } 82%, 100% { opacity: 0; } }
@keyframes treino-flip-inv { 0%, 32% { opacity: 1; } 42%, 72% { opacity: 0; } 82%, 100% { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  .foto-mov .strip img:nth-child(2), .foto-mov__leg span, .guia-ex__painel, .guia-dobra__corpo, .sessao-linha .lexs { animation: none; }
  .guia-dobra > summary svg { transition: none; }
}

/* sessões da semana: cabeçalho que abre e fecha, botão logo abaixo, lista depois */
.sessao-linha { display: flex; flex-direction: column; gap: 10px; }
.sessao-linha__cab { width: 100%; display: grid; grid-template-columns: 36px 1fr 20px; gap: 12px; align-items: center; min-height: var(--touch); padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.sessao-linha__cab:active { transform: scale(0.99); }
.sessao-linha__n { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--s3); color: var(--gold-hi); font-weight: 650; }
.sessao--feita .sessao-linha__n { background: rgba(233, 200, 115, 0.16); color: var(--ok); }
.sessao-linha__txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sessao-linha__txt b { font-size: 16px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sessao-linha.is-aberta .sessao-linha__txt b { -webkit-line-clamp: unset; display: block; }
.sessao-linha__txt small { color: var(--muted); font-size: 12.5px; }
.sessao-linha__estado { font-weight: 650; color: var(--muted); }
.sessao-linha__estado--feita { color: var(--ok); }
.sessao-linha__estado--hoje, .sessao-linha__estado--disponivel { color: var(--gold-hi); }
.sessao-linha__estado--atrasada { color: var(--gold); }
.sessao-linha__estado--andamento { color: var(--gold-hi); }
.sessao-linha__seta { width: 20px; height: 20px; fill: none; stroke: var(--muted); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.2s var(--ease); }
.sessao-linha.is-aberta .sessao-linha__seta { transform: rotate(180deg); }
.sessao-linha .btn { margin: 0; }
.sessao-linha .lexs { margin: 0; animation: treino-fundo 0.2s ease both; }

/* resumo da semana no topo da aba */
.semana-resumo { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--s1); }
.semana-resumo.is-fechada { border-color: rgba(233, 200, 115, 0.45); }
.semana-resumo__topo { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.semana-resumo__topo .kicker { margin: 0; }
.semana-resumo__topo small { color: var(--muted); font-size: 12px; white-space: nowrap; }
.semana-resumo__linha { display: flex; align-items: center; gap: 12px; }
.semana-resumo__linha b { font-size: 26px; font-weight: 650; font-variant-numeric: tabular-nums; }
.semana-resumo__linha b small { font-size: 15px; color: var(--faint); font-weight: 500; }
.semana-resumo__barra { flex: 1; height: 8px; border-radius: 8px; background: var(--s3); overflow: hidden; }
.semana-resumo__barra i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--gold), var(--gold-hi)); }
.semana-resumo.is-fechada .semana-resumo__barra i { background: var(--ok); }
.semana-resumo__fala { margin: 0; color: var(--muted); font-size: 13.5px; }

/* Quadrinho que sobra sozinho na última linha ocupa a linha inteira. */
/* Séries, repetições e peso na mesma linha; o descanso embaixo, na linha inteira. */

/* Cronômetro de descanso opcional: ícone na barra do exercício e anel flutuante no canto. */
/* Descanso: o quadrinho vira o cronômetro, sempre na linha inteira e centralizado, com a barra de progresso embaixo. */
.player__meta li.meta-desc, .player__meta li.meta-desc:last-child:nth-child(odd) { position: relative; grid-column: 1 / -1; padding: 0; overflow: hidden; }
.meta-desc button { display: block; width: 100%; height: 100%; padding: 10px 8px 12px; margin: 0; border: 0; background: none; color: inherit; font: inherit; text-align: center; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.meta-desc em { display: block; margin-top: 2px; font-style: normal; font-size: 11px; color: var(--gold); }
.meta-desc b { font-variant-numeric: tabular-nums; }
.meta-desc.is-correndo, .meta-desc.is-pausado, .meta-desc.is-pronto { border-color: var(--gold); }
.meta-desc.is-correndo small, .meta-desc.is-pausado small { color: var(--gold); }
.meta-desc.is-correndo b { font-size: 30px; color: var(--gold); }
.meta-desc.is-pausado b { font-size: 30px; opacity: 0.7; }
.meta-desc.is-correndo em, .meta-desc.is-pausado em { color: var(--faint); }
.meta-desc [data-desc-anel]::after { content: ""; position: absolute; left: 0; bottom: 0; height: 4px; width: calc(var(--p, 0) * 100%); background: var(--gold); transition: width 0.25s linear; }
.meta-desc.is-pronto { background: var(--gold); color: #1a1408; animation: desc-pronto 0.6s ease-out 2; }
.meta-desc.is-pronto small { color: inherit; }
.meta-desc.is-pronto b { font-size: 30px; }
@keyframes desc-pronto { 50% { transform: scale(1.04); } }
@media (prefers-reduced-motion: reduce) { .meta-desc.is-pronto { animation: none; } .meta-desc [data-desc-anel]::after { transition: none; } }

/* Carga usada: o quadrinho Carga abre um ajuste pequeno, só para quem tocar. */
.player__meta li.meta-carga { padding: 0; }
.carga-como { margin: 8px 2px 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.meta-carga button { display: block; width: 100%; height: 100%; padding: 10px 8px 12px; margin: 0; border: 0; background: none; color: inherit; font: inherit; text-align: center; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.meta-carga small::after { content: "±"; margin-left: 4px; color: var(--gold); letter-spacing: 0; }
.meta-carga.is-ajustada { border-color: var(--gold); }
.meta-carga.is-ajustada b { color: var(--gold); }
.meta-carga em { display: block; margin-top: 2px; font-style: normal; font-size: 11px; color: var(--faint); }
.carga-ajuste { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px 12px; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 16px; background: var(--s1); }
.carga-ajuste p { margin: 0; font-weight: 650; font-size: 15px; }
.carga-ajuste small { grid-column: 1; color: var(--muted); font-size: 13px; }
.carga-ajuste .textbtn { grid-column: 2; justify-self: end; }
/* Aparelho sem mais peso (will-1.1): linha inteira, abaixo do ajuste, discreta. */
.carga-ajuste > [data-aparelho-limite], .carga-ajuste small.carga-ajuste__limite { grid-column: 1 / -1; justify-self: start; padding-top: 6px; border-top: 1px solid var(--line); width: 100%; text-align: left; }
.carga-ajuste__limite .textbtn { display: inline; padding: 0; }
.carga-ajuste__ctl { display: flex; align-items: center; gap: 10px; }
.carga-ajuste__ctl b { min-width: 64px; text-align: center; font-size: 18px; font-variant-numeric: tabular-nums; }
.carga-ajuste__ctl button { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line-2); background: var(--s2); color: var(--text); font: inherit; font-size: 20px; line-height: 1; cursor: pointer; }

/* Voltar no canto de cima da sessão. */
.voltar-btn svg { stroke-width: 2.2; }
.session.prep > .player__bar { margin-bottom: 4px; }

/* Fiz menos: repetições de cada série, opcional. */
.reps { margin-top: 4px; border: 1px solid var(--line-2); border-radius: 16px; background: var(--s1); padding: 0 14px; }
.reps summary { cursor: pointer; padding: 14px 0; font-weight: 650; list-style: none; }
.reps summary::-webkit-details-marker { display: none; }
.reps summary::after { content: "+"; float: right; color: var(--gold); font-size: 18px; line-height: 1; }
.reps[open] summary::after { content: "−"; }
.reps__lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.reps__campo { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--s2); font-size: 14px; }
.reps__campo input { width: 64px; padding: 8px; border-radius: 10px; border: 1px solid var(--line-2); background: var(--bg, #0b0b0b); color: var(--text); font: inherit; font-size: 16px; text-align: center; }
.reps .sub { margin: 10px 0; }
.reps .btn { margin-bottom: 14px; }

/* Prévia da próxima semana. */
.proxima-topo { margin: 4px 0 2px; }
.proxima-topo .sub { margin: 4px 0 0; }
.proxima h3 { margin: 2px 0 8px; font-size: 17px; }
.proxima__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.proxima__lista li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line); }
.proxima__lista li:first-child { border-top: 0; }
.proxima__lista span { display: flex; flex-direction: column; min-width: 0; }
.proxima__lista span b { font-weight: 600; font-size: 15px; overflow-wrap: break-word; }
.proxima__lista small { color: var(--muted); font-size: 13px; }
.proxima__lista em { font-style: normal; font-size: 14px; color: var(--muted); white-space: nowrap; }
.proxima__lista em b { color: var(--gold); }
.seg.seg--3 { grid-template-columns: repeat(3, 1fr); }
.seg.seg--3 button { font-size: 14px; }
.proxima__lista li.is-sai b { text-decoration: line-through; color: var(--muted); }

/* Atalho para a próxima semana, no card da semana do Início. */
.semana-proxima { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; margin-top: 12px; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 14px; background: var(--s2); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.semana-proxima span { display: flex; flex-direction: column; gap: 2px; }
.semana-proxima b { font-weight: 650; }
.semana-proxima small { color: var(--muted); font-size: 13px; }
.semana-proxima svg { width: 18px; height: 18px; flex: none; fill: none; stroke: var(--gold); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.seg.seg--3 button { font-size: 13px; padding-left: 4px; padding-right: 4px; }
/* Resumo desta semana para a próxima. */
.mudou-card { display: flex; flex-direction: column; gap: 10px; }
.mudou ul { list-style: none; margin: 4px 0 0; padding: 0; }
.mudou li { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-top: 1px solid var(--line); font-size: 15px; }
.mudou li:first-child { border-top: 0; }
.mudou li b { white-space: nowrap; font-weight: 650; }
.mudou--sobe .kicker, .mudou--sobe li b { color: var(--gold); }
.mudou--desce li b { color: var(--muted); }
.mudou--sai li b { color: var(--muted); font-weight: 500; font-size: 13px; }

/* iPhone: campo com letra menor que 16 px faz o Safari dar zoom sozinho ao tocar. No celular, todo campo fica com 16 px
   ou mais. O zoom de pinça continua livre (não mexemos no viewport). */
@media (max-width: 900px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), select, textarea { font-size: max(16px, 1em) !important; }
}

/* Conferir o peso antes de dizer como fechou: um toque, não obrigatório. */
.carga-confere { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--gold); border-radius: 16px; background: var(--s1); }
.carga-confere p { margin: 0; }
.carga-confere b { display: block; font-size: 16px; font-weight: 650; }
.carga-confere small { display: block; margin-top: 2px; color: var(--muted); font-size: 13px; }
.carga-confere__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.carga-confere__btns .btn { width: 100%; margin: 0; }
.carga-ok { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--muted); font-size: 14px; }
.carga-ok svg { flex: none; width: 18px; height: 18px; fill: none; stroke: var(--gold); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

/* Medidor Sob medida, no Início: a porcentagem, a barra e o que falta, cada um levando direto onde se faz. */
.sob__topo { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.sob__pct { font-size: 28px; font-weight: 700; color: var(--gold); font-variant-numeric: tabular-nums; }
.sob__barra { height: 8px; margin: 8px 0 10px; border-radius: 99px; background: var(--s3); overflow: hidden; }
.sob__barra i { display: block; height: 100%; border-radius: inherit; background: var(--gold); transition: width 0.6s ease; }
.sob__lista { list-style: none; display: grid; gap: 8px; margin: 12px 0 0; padding: 0; }
.sob__item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 14px; background: var(--s1); color: inherit; font: inherit; text-align: left; }
button.sob__item { cursor: pointer; -webkit-tap-highlight-color: transparent; }
.sob__item span { flex: 1; min-width: 0; }
.sob__item b { display: block; font-size: 15px; font-weight: 650; }
.sob__item small { display: block; margin-top: 2px; color: var(--muted); font-size: 13px; line-height: 1.4; }
.sob__item .chev { flex: none; width: 18px; height: 18px; fill: none; stroke: var(--muted); stroke-width: 2; }
@media (prefers-reduced-motion: reduce) { .sob__barra i { transition: none; } }

/* Resposta ao "como foi", pelo nome e com os números da pessoa. */
.fb-pessoal__abre { margin: 4px 0 6px; font-size: 17px; line-height: 1.45; font-weight: 600; }
.fb-pessoal .sub { margin: 0 0 6px; }
.fb-pessoal .facts { margin-top: 10px; }

/* Check-in dos momentos-chave, no Início: a pergunta, as opções e, depois do toque, um campo opcional. */
.ck { border-color: var(--gold); }
.ck__q { margin: 4px 0 10px; font-size: 17px; line-height: 1.4; font-weight: 600; }
.ck__mais { display: block; margin-top: 12px; color: var(--muted); font-size: 14px; }
.ck__mais textarea { display: block; width: 100%; margin-top: 6px; }
.ck .btn { width: 100%; margin-top: 10px; }
.ck .textbtn { display: block; margin: 8px auto 0; }

/* Orientação do Will: no Início, na Conta e, em uma linha, no exercício da região. */
.will-nota__lista { list-style: none; display: grid; gap: 10px; margin: 6px 0 0; padding: 0; }
.will-nota__lista li { display: grid; gap: 2px; padding: 12px 14px; border-left: 3px solid var(--gold); border-radius: 0 12px 12px 0; background: var(--s1); }
.will-nota__lista b { font-size: 14px; color: var(--gold); }
.will-nota__lista span { font-size: 15px; line-height: 1.45; }
.will-dica { margin: 8px 0 0; padding: 10px 12px; border-left: 3px solid var(--gold); border-radius: 0 12px 12px 0; background: var(--s1); font-size: 14px; line-height: 1.45; }
.will-dica b { color: var(--gold); font-weight: 650; }
.lims__lista { list-style: none; display: grid; gap: 10px; margin: 10px 0 0; padding: 0; }
.lim { display: grid; gap: 6px; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 14px; background: var(--s1); }
.lim > b { font-size: 15px; font-weight: 650; }
.lim__eu, .lim__will { margin: 0; font-size: 14px; line-height: 1.45; }
.lim__eu small, .lim__will small { display: block; color: var(--faint); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; }
.lim__will { padding-left: 10px; border-left: 3px solid var(--gold); }
.lim__will small { color: var(--gold); }
.lims > .lim__eu { margin-top: 8px; }
.lim__campo { display: block; color: var(--muted); font-size: 14px; }
.lim__campo textarea { display: block; width: 100%; margin-top: 6px; }
.lim__acoes { display: flex; align-items: center; gap: 12px; }
.lim > .textbtn { justify-self: start; margin-left: -8px; color: var(--gold); font-weight: 650; }

/* Painel do Will: aba Conversa. */
.will-orientar { display: grid; gap: 10px; margin-top: 10px; }
.will-orientar select, .will-orientar textarea { display: block; width: 100%; margin-top: 6px; }
.will-conv { list-style: none; display: grid; gap: 10px; margin: 6px 0 0; padding: 0; }
.will-conv__item { padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--s1); }
.will-conv__item p { margin: 2px 0; }
.will-conv__item--will { border-left: 3px solid var(--gold); }

/* Apresentação de um recurso por vez, no Início. */
.apres__t { margin: 4px 0 2px; font-size: 17px; font-weight: 650; }
.apres__acoes { display: flex; align-items: center; gap: 14px; margin-top: 10px; }
/* Passo a passo para pôr o Fase na Tela de Início do iPhone (avisos). */
.passos-instalar { list-style: none; margin: 10px 0 4px; padding: 0; display: grid; gap: 10px; }
.passos-instalar li { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; line-height: 1.4; color: var(--muted); }
.passos-instalar b { color: var(--text); font-weight: 600; }
.passos-instalar__ico { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--s2); border: 1px solid var(--line); color: var(--gold-hi); }
.passos-instalar__ico svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.passos-instalar__ico--app { background: var(--gold); border-color: var(--gold); color: #0b0b0b; font-weight: 800; font-size: 16px; }
.will-niveis { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 8px; }
.will-niveis select { display: block; width: 100%; margin-top: 4px; }
.will-niveis .btn { grid-column: 1 / -1; justify-self: start; }

/* Evolução por grupo: a sugestão no Início, Minha jornada e a reavaliação no começo da fase. */
.evoluir { border: 1px solid var(--gold); background: linear-gradient(180deg, rgba(227, 166, 20, 0.1), transparent 60%), var(--s1); }
.evoluir h2 { margin: 4px 0 6px; }
.evoluir__lista, .evoluir__muda { list-style: none; display: grid; gap: 6px; margin: 6px 0 0; padding: 0; font-size: 14px; line-height: 1.4; }
.evoluir__lista li { display: flex; gap: 8px; align-items: flex-start; }
.evoluir__lista svg { flex: none; width: 18px; height: 18px; fill: none; stroke: var(--gold); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.evoluir__muda li::before { content: "↑ "; color: var(--gold); font-weight: 700; }
.evoluir__acoes { display: flex; align-items: center; gap: 14px; margin-top: 14px; }
.evoluir__acoes .btn { flex: 1; }
.jornada__lista { list-style: none; display: grid; gap: 12px; margin: 10px 0 0; padding: 0; }
.jornada__topo { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.jornada__topo b { font-size: 15px; font-weight: 650; }
.jornada__topo span { color: var(--gold); font-size: 13px; font-weight: 650; }
.jornada__g .sob__barra { margin: 6px 0 4px; height: 6px; }
.jornada__g small { color: var(--muted); font-size: 13px; line-height: 1.4; }
.reav .measure { margin-top: 6px; }
.reav .textbtn { display: block; margin: 8px auto 0; }
.jornada__comum { margin: 8px 0 0; padding: 8px 12px; border-radius: 12px; background: var(--s1); color: var(--muted); font-size: 14px; line-height: 1.4; }

/* Cardio: quanto tempo fez, no lugar das séries; e a troca por outro cardio ou abdominal, à vista. */
.cardio-fim__ctl { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 4px 0 2px; }
.cardio-fim__ctl button { width: 48px; height: 48px; border: 1px solid var(--line-2); border-radius: 50%; background: var(--s1); color: inherit; font: inherit; font-size: 24px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.cardio-fim__ctl b { min-width: 96px; text-align: center; font-size: 30px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--gold); }
.cardio-fim__ficha { display: block; text-align: center; color: var(--muted); font-size: 13px; margin-bottom: 4px; }
.checkex__troca { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border: 1px dashed var(--line-2); border-radius: 16px; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.checkex__troca svg { flex: none; width: 22px; height: 22px; fill: none; stroke: var(--gold); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.checkex__troca b { display: block; font-size: 15px; font-weight: 650; }
.checkex__troca small { display: block; color: var(--muted); font-size: 13px; }

/* Cuidado da região com dor: observação no exercício e etiqueta na lista. */
.cuidado-dica { margin: 8px 0 0; padding: 10px 12px; border-left: 3px solid #e8a35f; border-radius: 0 12px 12px 0; background: rgba(232, 163, 95, 0.08); font-size: 14px; line-height: 1.45; }
.cuidado-dica b { color: #f0b67a; font-weight: 650; }
.lex__cuidado { font-style: normal; color: #f0b67a; }

/* Escala da dor: 0 a 10 numa linha, e o gráfico na Evolução. */
.choices--escala { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 4px; }
.choices--escala button { min-width: 0; padding: 10px 0; font-variant-numeric: tabular-nums; }
.ck-escala { display: flex; justify-content: space-between; margin-top: 4px; color: var(--muted); font-size: 12px; }
.dor-reg + .dor-reg { margin-top: 14px; }
.dor-calma { margin: 6px 0 0; padding: 8px 12px; border-radius: 12px; background: rgba(233, 200, 115, 0.12); color: var(--ok); font-size: 14px; }
.will-volta { margin: 6px 0 4px; color: var(--ok); font-size: 14px; }
.will-volta__btns { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }

/* Cuidado da região no exercício: instrução, adaptação e a saída para quem não consegue fazer hoje. */
.cuidado-dica p { margin: 0 0 4px; }
.cuidado-dica p:last-child { margin-bottom: 0; }
.cuidado-dica__fim { color: var(--muted); font-size: 13px; }
.cuidado-dica__troca { display: block; margin: 4px 0 0 -6px; padding: 6px; color: #f0b67a; font-weight: 650; text-align: left; }
.troca-selo { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 99px; background: rgba(232, 163, 95, 0.14); color: #f0b67a; font-size: 11px; font-style: normal; font-weight: 650; }
.troca-selo--ok { background: rgba(233, 200, 115, 0.14); color: var(--ok); }

/* O aluno ciente: como o app cuida da limitação (uma vez) e o aviso no treino de hoje. */
.ciente { border-color: rgba(232, 163, 95, 0.45); }
.ciente h3 { margin: 4px 0 8px; }
.ciente__lista { display: grid; gap: 8px; margin: 0 0 12px; padding-left: 18px; font-size: 14px; line-height: 1.45; }
.ciente .btn { width: 100%; }
.hero__nota--cuidado { color: #f0b67a; }
/* Aparelho ocupado: exercícios da própria sessão para fazer agora (sem o número da troca). */
.exbtn--ficha { grid-template-columns: 64px minmax(0, 1fr) 18px; }
/* Cronômetro do cardio: mesmo quadrinho do descanso, contando para cima; a barra enche até a meta da ficha. */
.meta-cardio [data-cardio-anel]::after { content: ""; position: absolute; left: 0; bottom: 0; height: 4px; width: calc(var(--p, 0) * 100%); background: var(--gold); transition: width 0.5s linear; }
.meta-cardio.is-meta { border-color: var(--gold); }
.meta-cardio.is-meta small { color: var(--gold); }
@media (prefers-reduced-motion: reduce) { .meta-cardio [data-cardio-anel]::after { transition: none; } }
/* Fim do exercício: ações secundárias visíveis, com ícone, sem competir com "Fechei bem". Encerrar ocupa a linha toda. */
.acoes-ex { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 6px; }
.acao-ex { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 14px; background: var(--s1); color: var(--text); font: inherit; font-size: 14px; font-weight: 600; text-align: center; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background 0.15s, transform 0.12s; }
.acao-ex:active { transform: scale(0.98); background: var(--s2); }
.acao-ex svg { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.acao-ex--alerta { color: #f2a498; border-color: rgba(242, 164, 152, 0.4); }
.acao-ex--sair { grid-column: 1 / -1; min-height: 52px; font-size: 15px; border-color: var(--line-2); background: var(--s2); }
.acoes-ex .acao-ex--alerta:nth-last-child(2) { grid-column: 1 / -1; } /* sem "Reiniciar", "Não estou bem" ocupa a linha */
/* Pausou o cronômetro do cardio: a pergunta acende rapidinho para mostrar que o tempo entrou. */
.cardio-fim.is-preenchido { animation: cardio-preenchido 1.2s ease-out; }
@keyframes cardio-preenchido { 0% { box-shadow: 0 0 0 0 rgba(227, 166, 20, 0.55); } 100% { box-shadow: 0 0 0 14px rgba(227, 166, 20, 0); } }
@media (prefers-reduced-motion: reduce) { .cardio-fim.is-preenchido { animation: none; } }
