/* Treinos: fichas presas em prancheta, séries pra marcar, cronômetro de descanso e dias carimbados. */
.treinos { display: flex; flex-direction: column; gap: 18px; }

/* ---------- topo ---------- */
.treinos-topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
.treinos-titulo { flex: 1 1 340px; min-width: 0; }
.treinos-meta { margin: 6px 0 12px; font-size: 15px; color: var(--tinta); }
.treinos-meta .botao-texto { margin-left: 6px; font-size: 13.5px; }
.treinos-acoes { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.treinos-botoes { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.botao-texto { border: 0; background: none; padding: 6px 0; font: inherit; font-size: 14px; font-weight: 600; color: var(--tinta); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }

.semana-treino { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; max-width: 420px; }
.semana-treino li { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.dia-letra { font-size: 12px; font-weight: 600; color: color-mix(in srgb, var(--tinta) 70%, transparent); }
.dia-marca { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 14px; color: color-mix(in srgb, var(--tinta) 65%, transparent); }
.semana-treino li.hoje .dia-marca { box-shadow: inset 0 0 0 1.5px var(--tinta); color: var(--tinta); font-weight: 700; }
.semana-treino li.fez .dia-marca { color: var(--destaque); }
.semana-treino li.fez svg { width: 38px; height: 38px; transform: rotate(-12deg); opacity: .9; }
.efeitos-ativos .treinos.chegando .semana-treino li.fez svg { animation: carimba-dia .45s cubic-bezier(.3, 1.6, .5, 1) both; }
@keyframes carimba-dia { from { transform: rotate(-12deg) scale(1.6); opacity: 0; } }

.faixa-treino { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px 12px 18px; border-radius: 14px; background: var(--tinta); color: var(--cartao, #fff); text-decoration: none; }
.faixa-treino .botao { min-height: 38px; pointer-events: none; }

/* ---------- prancheta ---------- */
.grade-treinos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: 18px; align-items: start; }
.col-principal, .col-lado { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.prancheta {
  position: relative; padding: 30px 16px 16px; border-radius: 14px;
  background:
    url('/assets/fundos/ruido-prancheta.png'),
    linear-gradient(160deg, #A87A4E, #8E6038 60%, #7A5130);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), inset 0 -2px 0 rgba(0,0,0,.18), 0 22px 30px -22px rgba(40, 20, 5, .7);
}
.prendedor-prancheta { position: absolute; top: -8px; left: 50%; width: 120px; height: 44px; margin-left: -60px; z-index: 2; filter: drop-shadow(0 3px 2px rgba(0,0,0,.35)); }
.folha-ficha {
  position: relative; padding: 26px 22px 18px; border-radius: 3px; color: #3A3426;
  background: #FFFDF7;
  box-shadow: 0 1px 1px rgba(0,0,0,.12), 0 8px 14px -10px rgba(0,0,0,.45);
  transform: rotate(-.35deg);
}
.folha-ficha::before { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 6px; background: var(--forte, var(--destaque)); opacity: .85; border-radius: 3px 0 0 3px; }
.ficha-chamada { margin: 0 0 2px; font-size: 13px; font-weight: 600; color: var(--forte, var(--destaque)); }
.folha-ficha h3 { margin: 0; font-family: 'Pacifico', serif; font-weight: 400; font-size: 24px; line-height: 1.15; color: #2E2A20; }
.prancheta.destaque .folha-ficha h3 { font-size: 30px; }
.ficha-foco { margin: 2px 0 8px; font-size: 14.5px; color: #6B6450; }
.lista-ex { list-style: none; margin: 8px 0 0; padding: 0; counter-reset: ex; }
.lista-ex li { border-bottom: 1px solid rgba(80, 110, 160, .14); display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 34px; padding: 4px 0; box-sizing: border-box; counter-increment: ex; font-size: 15px; }
.lista-ex li::before { content: counter(ex); width: 20px; flex: none; font-size: 12px; font-weight: 700; color: #9A917A; }
.lista-ex .ex-nome { flex: 1; min-width: 0; }
.lista-ex .ex-meta { flex: none; font-size: 13.5px; font-weight: 600; color: #6B6450; font-variant-numeric: tabular-nums; }
.lista-ex li.ex-mais { color: #8A826C; font-size: 14px; }
.lista-ex li.ex-mais::before { content: ''; }
.ficha-ultima { margin: 10px 0 0; font-size: 13px; color: #7A735F; }
.ficha-botoes { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 14px; }
.folha-ficha .botao-texto { color: #3A3426; }
.folha-ficha .botao-claro { color: #3A3426 !important; background: #FFFDF7 !important; }
.outras-fichas { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.outras-fichas .prancheta { padding: 26px 12px 12px; }
.outras-fichas .folha-ficha { padding: 22px 16px 14px; transform: rotate(.3deg); }

/* modelos (primeira vez) */
.treinos-vazio p { max-width: 560px; }
.modelos-ficha { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin: 14px 0 6px; }
.modelo-ficha { display: flex; flex-direction: column; gap: 3px; text-align: left; padding: 14px 16px; border-radius: 12px; border: 1px solid color-mix(in srgb, var(--forte) 35%, transparent); background: color-mix(in srgb, var(--clara) 35%, var(--cartao, #fff)); color: var(--tinta); font: inherit; cursor: pointer; transition: transform .2s ease; }
.modelo-ficha:hover { transform: translateY(-2px); }
.modelo-ficha strong { font-family: 'Pacifico', serif; font-weight: 400; font-size: 18px; }
.modelo-ficha span { font-size: 14px; }
.modelo-ficha small { font-size: 12.5px; font-weight: 600; color: var(--forte); }

/* ---------- lateral ---------- */
.lista-sessoes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.sessao { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--borda-premium, rgba(0,0,0,.08)); }
.sessao:last-child { border-bottom: 0; }
.sessao-data { display: flex; flex-direction: column; align-items: center; font-size: 11.5px; line-height: 1.1; color: color-mix(in srgb, var(--tinta) 70%, transparent); }
.sessao-data strong { font-family: 'Pacifico', serif; font-weight: 400; font-size: 20px; color: var(--tinta); }
.sessao-texto { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sessao-texto strong { font-size: 15px; font-weight: 600; }
.sessao-texto small { font-size: 13px; color: color-mix(in srgb, var(--tinta) 72%, transparent); }
.sessao-texto em { font-size: 13px; font-style: italic; color: color-mix(in srgb, var(--tinta) 80%, transparent); }
.sessao-humor { color: var(--tinta); display: flex; }
.apagar-sessao { border: 0; background: none; color: color-mix(in srgb, var(--tinta) 45%, transparent); font-size: 18px; cursor: pointer; padding: 4px 6px; }
.apagar-sessao:hover, .apagar-sessao.confirmando { color: #A33A3A; font-size: 13px; font-weight: 600; }
.cabecalho-cartao a.pequeno { color: var(--tinta); font-weight: 600; }

/* ---------- treino em andamento ---------- */
.treino-agora-topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; flex-wrap: wrap; }
.treino-agora-topo > div:first-child { flex: 1 1 320px; }
.treino-progresso { margin: 4px 0 10px; font-size: 15px; }
.treino-progresso span { font-family: 'Pacifico', serif; font-size: 20px; font-variant-numeric: tabular-nums; }
.treino-agora-botoes { display: flex; gap: 16px; align-items: center; }
.prancheta.grande { padding: 34px 18px 18px; }
.prancheta.grande .folha-ficha { transform: none; padding: 30px 24px 20px; background: #FFFDF7; }
.lista-agora { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ex-agora { padding: 14px 0 12px; border-bottom: 1px dashed rgba(80, 70, 50, .22); }
.ex-agora:last-child { border-bottom: 0; }
.ex-agora-topo { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ex-agora h3 { margin: 0; font-family: 'Pacifico', serif; font-weight: 400; font-size: 21px; color: #2E2A20; }
.ex-agora.completo h3 { text-decoration: line-through; text-decoration-color: var(--destaque); text-decoration-thickness: 2px; }
.ex-agora-meta { font-size: 13.5px; font-weight: 600; color: #6B6450; }
.ex-ultima { margin: 4px 0 6px; font-size: 13px; color: #7A6F55; }
.series-cab, .serie { display: grid; grid-template-columns: 44px minmax(0, 1fr) minmax(0, 1fr) 48px; gap: 10px; align-items: center; }
.series-cab { margin-top: 6px; font-size: 11.5px; font-weight: 700; color: #8A826C; }
.series-cab, .series { max-width: 560px; }
.series { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.serie { padding: 4px 0; border-radius: 10px; transition: background .2s; }
.serie-n { text-align: center; font-family: 'Pacifico', serif; font-size: 17px; color: #6B6450; }
.serie input { width: 100%; box-sizing: border-box; min-height: 42px; text-align: center; font: inherit; font-size: 17px; font-variant-numeric: tabular-nums; border-radius: 10px; border: 1px solid rgba(80, 70, 50, .22); background: #fff; color: #2E2A20; }
.serie input:focus { outline: 2px solid var(--destaque); outline-offset: 1px; }
.marcar-serie { width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid rgba(80, 70, 50, .35); background: #fff; color: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; transition: background .2s, color .2s, transform .2s; }
.marcar-serie svg { width: 22px; height: 22px; }
.marcar-serie:hover { color: rgba(80, 70, 50, .35); }
.serie.feita { background: color-mix(in srgb, var(--destaque) 9%, transparent); }
.serie.feita .marcar-serie { background: var(--destaque); border-color: var(--destaque); color: var(--destaque-texto, #fff); }
.efeitos-ativos .serie.feita .marcar-serie { animation: marcou .35s cubic-bezier(.3, 1.8, .5, 1); }
@keyframes marcou { from { transform: scale(.7); } }
.serie.feita input { background: transparent; border-color: transparent; }
.ex-acoes { display: flex; gap: 16px; margin-top: 4px; }
.ex-acoes .botao-texto, .prancheta .botao-texto { color: #3A3426; font-size: 13.5px; }
.add-ex-agora { margin-top: 14px; }
.add-ex-agora input { background: #fff; color: #2E2A20; }

/* cronômetro de descanso */
.cronometro {
  position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 65;
  display: flex; align-items: center; gap: 14px; padding: 10px 16px 10px 12px; border-radius: 18px;
  background: var(--cartao, #FBF7EC); color: var(--tinta); border: 1px solid var(--borda-premium, rgba(0,0,0,.1));
  box-shadow: 0 18px 40px -16px rgba(0,0,0,.5);
  animation: sobe-cronometro .35s cubic-bezier(.3, 1.4, .5, 1);
}
@keyframes sobe-cronometro { from { transform: translate(-50%, 30px); opacity: 0; } }
.cronometro-texto { display: flex; flex-direction: column; line-height: 1.1; }
.cronometro-texto strong { font-family: 'Pacifico', serif; font-weight: 400; font-size: 28px; font-variant-numeric: tabular-nums; }
.cronometro-botoes { display: flex; align-items: center; gap: 12px; }
.cronometro-botoes .botao { min-height: 38px; }

/* ---------- histórico ---------- */
.cal-treino-cab, .cal-treino-grade { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; text-align: center; }
.cal-treino-cab { font-size: 12px; font-weight: 600; color: color-mix(in srgb, var(--tinta) 65%, transparent); margin: 6px 0 4px; }
.cal-treino { position: relative; aspect-ratio: 1; max-height: 64px; display: flex; align-items: center; justify-content: center; border-radius: 10px; font-size: 15px; }
.cal-treino i { font-style: normal; position: relative; z-index: 1; }
.cal-treino.hoje { box-shadow: inset 0 0 0 1.5px var(--tinta); font-weight: 700; }
.cal-treino.fez { color: var(--destaque); font-weight: 700; }
.cal-treino svg { position: absolute; inset: 8%; width: 84%; height: 84%; transform: rotate(-14deg); opacity: .85; }

/* ---------- janelas ---------- */
.form-ficha { min-width: min(640px, 82vw); }
.ex-cab, .ex-linha { display: grid; grid-template-columns: minmax(0, 2.4fr) 62px 74px 70px 82px 32px; gap: 6px; align-items: center; }
.ex-cab { font-size: 11.5px; font-weight: 700; color: color-mix(in srgb, var(--tinta) 65%, transparent); margin-bottom: 4px; }
.ex-linhas { list-style: none; margin: 0 0 6px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ex-linha label { display: block; margin: 0; }
.ex-linha input { width: 100%; box-sizing: border-box; min-height: 40px; padding: 0 8px; font-size: 14.5px; }
.tirar-linha { border: 0; background: none; font-size: 20px; color: color-mix(in srgb, var(--tinta) 50%, transparent); cursor: pointer; }
.exercicios-ficha { display: block; }
.sensacoes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.sensacao input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sensacao span { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 2px; border-radius: 12px; font-size: 12.5px; font-weight: 600; cursor: pointer; color: var(--tinta); }
.sensacao input:checked + span { background: color-mix(in srgb, var(--destaque) 12%, transparent); box-shadow: inset 0 0 0 1.5px var(--destaque); }
.sensacao input:focus-visible + span { outline: 2px solid var(--destaque); }
.caixa-linha { flex-direction: row !important; align-items: center; gap: 10px; font-size: 14.5px; }

/* ---------- celular ---------- */
@media (max-width: 900px) {
  .grade-treinos { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .treinos-acoes { align-items: stretch; width: 100%; }
  .treinos-botoes { justify-content: stretch; }
  .treinos-botoes .botao { flex: 1; }
  .prancheta { padding: 28px 10px 10px; }
  .folha-ficha { padding: 22px 14px 14px 18px; }
  .prancheta.grande { padding: 28px 8px 8px; }
  .prancheta.grande .folha-ficha { padding: 24px 12px 16px 16px; }
  .series-cab, .serie { grid-template-columns: 30px minmax(0, 1fr) minmax(0, 1fr) 46px; gap: 6px; }
  .cronometro { bottom: calc(96px + env(safe-area-inset-bottom)); width: calc(100vw - 24px); box-sizing: border-box; justify-content: space-between; }
  .form-ficha { min-width: 0; }
  .ex-cab { display: none; }
  .ex-linha { grid-template-columns: repeat(4, minmax(0, 1fr)) 28px; padding-bottom: 8px; border-bottom: 1px dashed var(--borda-premium, rgba(0,0,0,.12)); }
  .ex-linha label:nth-of-type(1) { grid-column: 1 / -1; }
  .sensacoes { gap: 2px; }
  .sensacao span { font-size: 11px; }
}

body.m-cronometro .barra-baixo { opacity: .98; }
.serie input, .add-ex-agora input, .ex-linha input { min-width: 0; }
.serie > * { min-width: 0; }
.add-ex-agora { display: block; }
.add-ex-agora input { width: 100%; box-sizing: border-box; }

/* ---------- objetos 3D (js/academia.js) ---------- */
.halter3d, .barra3d, .anilha3d { position: absolute; left: 50%; top: 50%; width: 0; height: 0; transform-style: preserve-3d; }
.f3 { position: absolute; left: 0; top: 0; display: block; backface-visibility: visible; }
.f3.serrilha { background-image: repeating-linear-gradient(90deg, rgba(0,0,0,.16) 0 1px, transparent 1px 2.5px) !important; background-color: #B9BCC4; }
.tampa3 { display: flex !important; align-items: center; justify-content: center; }
.tampa3 b { font-family: 'Schibsted Grotesk', sans-serif; font-weight: 800; font-size: 10px; letter-spacing: -.02em; color: var(--forte, #333); opacity: .9; text-shadow: 0 1px 0 rgba(255,255,255,.35); white-space: nowrap; }

/* rack de halteres */
.rack { position: relative; padding: 4px 10px 16px; margin-top: 4px; }
.rack-prateleira { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin-bottom: 14px; }
.rack-trilho {
  position: absolute; left: -8px; right: -8px; top: 66px; height: 22px; z-index: 0; border-radius: 3px; pointer-events: none;
  background: linear-gradient(180deg, #8E929B 0 3px, #3E4149 3px 6px, #55585F 6px 18px, #2B2D33 18px 22px, #6E727A 22px);
  transform: perspective(500px) rotateX(50deg); transform-origin: top;
  box-shadow: 0 10px 14px -8px rgba(0,0,0,.45);
}
.rack-pe { pointer-events: none; position: absolute; top: 30px; bottom: 0; width: 9px; border-radius: 3px; background: linear-gradient(90deg, #2B2D33, #5D6068 45%, #2B2D33); }
.rack-pe.esq { left: 0; } .rack-pe.dir { right: 0; }
.rack-vaga { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; border: 0; background: none; padding: 0; font: inherit; color: var(--tinta); cursor: pointer; min-width: 0; }
.rack-vaga.vazia { height: 120px; cursor: default; }
.halter-cena { position: relative; z-index: 1; display: block; width: 100%; height: 76px; perspective: 600px; }
.halter-cena .halter3d { top: 50%; transform: rotateX(-24deg) rotateY(-58deg); transition: transform .45s cubic-bezier(.3, 1.4, .5, 1); }
.rack-vaga:hover .halter-cena .halter3d, .rack-vaga:focus-visible .halter-cena .halter3d { transform: translateY(-14px) rotateX(-24deg) rotateY(-34deg) scale3d(1.06, 1.06, 1.06); }
.rack-vaga:focus-visible { outline: 2px solid var(--destaque); outline-offset: 4px; border-radius: 8px; }
.rack-placa { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; text-align: center; font-size: 11px; line-height: 1.2; width: 100%; margin-top: 12px; hyphens: auto; letter-spacing: -.01em; }
.rack-placa strong { font-family: 'Pacifico', serif; font-weight: 400; font-size: 15px; color: var(--tinta); }
.rack-placa { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; color: color-mix(in srgb, var(--tinta) 80%, transparent); }
.rack-placa strong { display: block; }
.rack-vazio { margin: 0; }
.efeitos-ativos .treinos.chegando .halter-cena .halter3d { animation: chega-halter .6s cubic-bezier(.3, 1.4, .5, 1) both; }
.efeitos-ativos .treinos.chegando .rack-vaga:nth-child(2) .halter3d { animation-delay: .06s; }
.efeitos-ativos .treinos.chegando .rack-vaga:nth-child(3) .halter3d { animation-delay: .12s; }
.efeitos-ativos .treinos.chegando .rack-vaga:nth-child(4) .halter3d { animation-delay: .18s; }
@keyframes chega-halter { from { transform: translateY(-40px) rotateX(-24deg) rotateY(-150deg); } }

/* janela do halter */
.janela-halter { width: min(480px, calc(100vw - 76px)); }
.halter-palco { position: relative; height: 210px; perspective: 800px; cursor: grab; touch-action: none; user-select: none; margin: 4px 0 6px; }
.halter-palco:active { cursor: grabbing; }
.halter-giro { position: absolute; left: 50%; top: 46%; width: 0; height: 0; transform-style: preserve-3d; animation: gira-halter 14s linear infinite; }
.halter-giro .halter3d { transform: scale3d(1.7, 1.7, 1.7); }
.halter-giro.parado { animation: none; }
@keyframes gira-halter { from { transform: rotateX(-22deg) rotateY(-30deg); } to { transform: rotateX(-22deg) rotateY(330deg); } }
.efeitos-ativos .janela-halter .halter-giro:not(.parado) { animation: tira-do-rack .8s cubic-bezier(.25, 1.2, .5, 1) both, gira-halter 14s linear .8s infinite; }
@keyframes tira-do-rack { from { transform: translateY(60px) rotateX(-22deg) rotateY(-120deg) scale3d(.3, .3, .3); } to { transform: rotateX(-22deg) rotateY(-30deg); } }
.halter-chao { position: absolute; left: 50%; bottom: 14px; width: 220px; height: 22px; margin-left: -110px; border-radius: 50%; background: radial-gradient(closest-side, rgba(0,0,0,.28), transparent); }
.halter-recorde { margin: 0 0 14px; text-align: center; font-size: 15.5px; }
.halter-recorde strong { font-family: 'Pacifico', serif; font-weight: 400; font-size: 21px; color: var(--forte); }
.janela-halter h3 { margin: 0 0 6px; font-family: 'Pacifico', serif; font-weight: 400; font-size: 18px; }
.lista-evolucao { list-style: none; margin: 0 0 8px; padding: 0; }
.lista-evolucao li { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 10px; align-items: baseline; padding: 8px 0; border-bottom: 1px solid var(--borda-premium, rgba(0,0,0,.08)); }
.lista-evolucao li:last-child { border-bottom: 0; }
.evo-data { font-size: 13px; color: color-mix(in srgb, var(--tinta) 75%, transparent); }
.evo-carga { font-family: 'Pacifico', serif; font-size: 17px; }
.evo-carga small { font-family: 'Schibsted Grotesk', sans-serif; font-size: 13px; color: color-mix(in srgb, var(--tinta) 75%, transparent); }
.evo-dif { font-size: 13px; font-weight: 600; color: color-mix(in srgb, var(--tinta) 70%, transparent); }
.evo-dif.subiu { color: var(--destaque); }

/* barra olímpica do treino em andamento */
.treino-agora-topo .barra-palco { order: 3; flex: 1 1 100%; }
.barra-palco { position: relative; height: 128px; perspective: 900px; margin: 0 0 -6px; }
.barra-cena { position: absolute; left: 50%; top: 50%; width: 0; height: 0; transform-style: preserve-3d; transform: rotateZ(calc(var(--pende) * 2.5deg)); transition: transform .6s cubic-bezier(.3, 1.5, .5, 1); }
.barra3d { transform: rotateX(-12deg) rotateY(-22deg); }
.barra-palco { contain: layout paint; }
@keyframes balanca-barra { from { transform: rotateX(-12deg) rotateY(-28deg); } to { transform: rotateX(-8deg) rotateY(-12deg); } }
.anilha3d { transform: translateX(var(--x)); }
.efeitos-ativos .anilha3d.nova { animation: encaixa-anilha .55s cubic-bezier(.3, 1.3, .5, 1) both; }
@keyframes encaixa-anilha { from { transform: translateX(calc(var(--x) + var(--de))); } }
.barra-sombra { position: absolute; left: 50%; bottom: 2px; width: 380px; height: 16px; margin-left: -190px; border-radius: 50%; background: radial-gradient(closest-side, rgba(0,0,0,.22), transparent); }
.efeitos-ativos .barra-palco.completa .barra-cena { animation: levanta-barra 1.4s cubic-bezier(.4, 0, .3, 1) .5s 2; }
@keyframes levanta-barra { 40%, 60% { transform: translateY(-26px) rotateZ(0); } }

/* ampulheta do descanso */
.ampulheta { width: 46px; height: 70px; flex: none; filter: drop-shadow(0 4px 4px rgba(0,0,0,.18)); }
.ampulheta .areia { fill: color-mix(in srgb, var(--destaque) 40%, #E2BF8C); }
.ampulheta .areia-fio { stroke: color-mix(in srgb, var(--destaque) 40%, #E2BF8C); stroke-width: 1.4; }
.efeitos-ativos .ampulheta .areia-fio { animation: areia-cai .35s linear infinite; }
@keyframes areia-cai { to { stroke-dashoffset: -4.6; } }
.efeitos-ativos .ampulheta.virando { animation: vira-ampulheta .7s cubic-bezier(.4, 1.3, .5, 1); }
@keyframes vira-ampulheta { from { transform: rotate(-180deg); } }

@media (max-width: 640px) {
  .barra-palco { height: 104px; }
  .barra-cena { scale: .74 .74 .74; }
  .barra-sombra { width: 290px; margin-left: -145px; }
  .rack { padding: 4px 10px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .semana-treino svg, .marcar-serie, .cronometro, .barra3d, .barra-cena, .anilha3d, .halter3d, .halter-giro, .ampulheta, .areia-fio { animation: none !important; }
}

/* ---------- ajustes: cronômetro escondido, lista da ficha, campo de exercício ---------- */
.cronometro[hidden] { display: none !important; }
.lista-ex li { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; column-gap: 10px; align-items: baseline; }
.lista-ex li::before { width: auto; }
.lista-ex .ex-nome { line-height: 1.3; }
.lista-ex .ex-meta { text-align: right; white-space: nowrap; }
.outras-fichas .lista-ex li { grid-template-columns: 18px minmax(0, 1fr); row-gap: 1px; }
.outras-fichas .lista-ex .ex-meta { grid-column: 2; text-align: left; font-size: 12.5px; }
.lista-ex li.ex-mais { display: block; }
.add-ex-agora input { font-size: 16px !important; }
.serie input::placeholder { color: #B3AA95; }

/* carimbo "Feito hoje" na prancheta */
.folha-ficha { position: relative; }
.carimbo-feito { position: absolute; top: 18px; right: 16px; width: 128px; color: #2E7A55; transform: rotate(-9deg); opacity: .88; pointer-events: none; z-index: 1; }
.carimbo-feito svg { width: 100%; height: auto; display: block; }
.carimbo-feito text { font-family: 'Pacifico', serif; font-size: 22px; fill: currentColor; }
.efeitos-ativos .treinos.chegando .carimbo-feito { animation: carimba-feito .5s .3s cubic-bezier(.3, 1.6, .5, 1) both; }
@keyframes carimba-feito { from { transform: rotate(-9deg) scale(1.6); opacity: 0; } }
.outras-fichas .carimbo-feito { width: 96px; top: 14px; right: 8px; }

/* rack vazio: halteres fantasmas */
.rack-vaga.fantasma { opacity: .35; filter: grayscale(1); display: flex; align-items: flex-end; justify-content: center; }
.rack-vaga.fantasma .halter-cena { pointer-events: none; }
.rack-vazio { margin: 16px 0 0 !important; position: relative; }

/* mais fichas */
.mais-fichas .pequeno { max-width: 560px; margin: 0 0 4px; }
.modelo-ficha.do-zero { --clara: transparent; --forte: var(--tinta); border-style: dashed; background: transparent; }

/* histórico: botão do story */
.sessao { grid-template-columns: 44px minmax(0, 1fr) auto auto auto; }
.story-sessao { border: 0; background: none; color: color-mix(in srgb, var(--tinta) 70%, transparent); cursor: pointer; padding: 6px; border-radius: 8px; display: flex; }
.story-sessao:hover { color: var(--tinta); background: color-mix(in srgb, var(--tinta) 7%, transparent); }

/* janela do story */
.janela-story { display: flex; flex-direction: column; gap: 10px; }
.janela-story h2 { margin: 0; }
.janela-story .pequeno { margin: 0; }
.story-moldura { align-self: center; width: min(300px, 62vw); aspect-ratio: 9 / 16; border-radius: 14px; overflow: hidden; background: color-mix(in srgb, var(--tinta) 6%, transparent); display: flex; align-items: center; justify-content: center; box-shadow: 0 20px 40px -22px rgba(0,0,0,.55); margin: 6px 0; }
.story-moldura img { width: 100%; height: 100%; display: block; }
.story-gerando { font-size: 14px; color: color-mix(in srgb, var(--tinta) 70%, transparent); }
.story-estilos { align-self: center; display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; background: color-mix(in srgb, var(--tinta) 7%, transparent); }
.story-estilos button { border: 0; background: none; font: inherit; font-size: 13.5px; font-weight: 500; color: var(--tinta); padding: 7px 13px; border-radius: 999px; cursor: pointer; }
.story-estilos button.ativo { background: var(--tinta); color: var(--cartao, #fff); }
@media (max-width: 640px) {
  .story-moldura { width: min(240px, 60vw); }
  .story-estilos button { padding: 7px 10px; font-size: 12.5px; }
  .carimbo-feito { width: 104px; top: 14px; right: 10px; }
}
.folha-ficha.feita h3, .folha-ficha.feita .ficha-foco, .folha-ficha.feita .ficha-chamada { padding-right: 132px; }
.outras-fichas .folha-ficha.feita h3, .outras-fichas .folha-ficha.feita .ficha-foco { padding-right: 98px; }
@media (max-width: 640px) { .folha-ficha.feita h3, .folha-ficha.feita .ficha-foco, .folha-ficha.feita .ficha-chamada { padding-right: 108px; } }

/* rack desenhado (leve): halteres em SVG, com o mesmo jeitinho de sair do lugar no toque */
.halter-cena { perspective: none; }
.halter-desenho { display: block; width: 100%; height: 70px; margin-top: 12px; transition: transform .35s cubic-bezier(.3, 1.4, .5, 1); }
.rack-vaga:hover .halter-desenho, .rack-vaga:focus-visible .halter-desenho { transform: translateY(-10px) rotate(-5deg); }
.efeitos-ativos .treinos.chegando .rack-vaga .halter-desenho { animation: chega-halter-2d .55s cubic-bezier(.3, 1.4, .5, 1) both; }
.efeitos-ativos .treinos.chegando .rack-vaga:nth-child(2) .halter-desenho { animation-delay: .06s; }
.efeitos-ativos .treinos.chegando .rack-vaga:nth-child(3) .halter-desenho { animation-delay: .12s; }
.efeitos-ativos .treinos.chegando .rack-vaga:nth-child(4) .halter-desenho { animation-delay: .18s; }
@keyframes chega-halter-2d { from { transform: translateY(-34px) rotate(-14deg); opacity: 0; } }
.rack-vaga.fantasma { filter: none; opacity: .4; }
.prancheta, .cartao.recordes { contain: layout paint; }

/* janela do story: prévia + opções (modelo, cores, foto, frase) */
#janela.m-story { width: min(820px, calc(100vw - 24px)); }
.story-cabeca { display: flex; flex-direction: column; gap: 2px; }
.story-corpo { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 26px; align-items: start; }
.story-corpo .story-moldura { width: 100%; margin: 0; }
.story-opcoes { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.story-grupo { display: flex; flex-direction: column; gap: 8px; }
.story-rotulo { font-size: 13.5px; font-weight: 600; color: var(--tinta); }
.story-grupo .story-estilos { align-self: flex-start; flex-wrap: wrap; border-radius: 18px; }
.story-foto { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.story-foto .botao { min-height: 40px; cursor: pointer; }
.story-foto label:focus-within { outline: 2px solid var(--destaque); outline-offset: 2px; }
.story-frase { display: flex; gap: 12px; align-items: center; }
.story-frase select { flex: 1; min-width: 0; min-height: 44px; padding: 0 12px; font: inherit; font-size: 15px; border-radius: 12px; border: 1px solid var(--borda-premium, rgba(0,0,0,.15)); background: var(--cartao, #fff); color: var(--tinta); }
.story-minha { width: 100%; box-sizing: border-box; min-height: 44px; padding: 0 12px; font: inherit; font-size: 16px; border-radius: 12px; border: 1px solid var(--borda-premium, rgba(0,0,0,.15)); background: #fff; color: #2B261E; }
@media (max-width: 720px) {
  .story-corpo { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .story-corpo .story-moldura { width: min(220px, 58vw); justify-self: center; }
  .story-grupo .story-estilos button { padding: 7px 11px; font-size: 13px; }
}
