/* App das alunas · Betina Personal — preto e rosa, pensado primeiro para o celular. */
:root{
  --bg:#0B0B0D; --card:#141418; --card-2:#1C1C21; --hover:#25252C;
  --fg:#F5F5F7; --muted:#ABABB5; --line:rgb(255 255 255 / 9%); --line-2:rgb(255 255 255 / 16%);
  --pink:#FF4FA3; --pink-claro:#FFC9E2; --pink-ink:#FF7DBB; --on-pink:#0B0B0D; --pink-soft:rgb(255 79 163 / 14%);
  --green:#4ADE80; --green-soft:rgb(74 222 128 / 14%); --amber:#FBBF24; --amber-soft:rgb(251 191 36 / 14%); --red:#F87171; --red-soft:rgb(248 113 113 / 14%);
  --f:"Montserrat",ui-sans-serif,system-ui,sans-serif; --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --r:16px; --tab:68px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--pink-ink)}
:focus-visible{outline:2px solid var(--pink);outline-offset:2px;border-radius:8px}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- casca do app ---------- */
.top{position:sticky;top:0;z-index:10;background:rgb(11 11 13 / 92%);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));display:flex;align-items:center;gap:12px;min-height:56px}
.top .marca{font-weight:900;font-size:15px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--fg)}
.top .marca span{color:var(--pink)}
.top h1{margin:0;font-size:17px;font-weight:800;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.voltar{display:inline-grid;place-items:center;width:40px;height:40px;margin:-6px 0 -6px -8px;border-radius:12px;color:var(--fg);text-decoration:none}
.voltar:hover{background:var(--hover)}
.voltar svg{width:22px;height:22px}
main.app{max-width:620px;margin:0 auto;padding:18px 16px calc(var(--tab) + 28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}
main.solo{max-width:440px;margin:0 auto;min-height:100vh;padding:max(32px,env(safe-area-inset-top)) 16px 40px;display:flex;flex-direction:column;justify-content:center;gap:18px}

.abas{position:fixed;left:0;right:0;bottom:0;z-index:20;background:rgb(16 16 19 / 96%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
.abas a{flex:1;max-width:120px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border-radius:12px;color:var(--muted);text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.02em}
.abas a svg{width:23px;height:23px}
.abas a[aria-current="page"]{color:var(--pink)}
.abas a:hover{color:var(--fg)}

/* ---------- blocos ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.card h2,.sec-t{margin:0 0 4px;font-size:16px;font-weight:800}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--pink-ink)}
.sub{color:var(--muted);font-size:13px}
.ola{display:flex;flex-direction:column;gap:2px}
.ola h2{margin:0;font-size:24px;font-weight:900;letter-spacing:-.01em}
.vazio{text-align:center;padding:28px 18px;color:var(--muted)}
.vazio strong{display:block;color:var(--fg);font-size:16px;margin-bottom:6px}
.lista{display:flex;flex-direction:column;gap:10px}
.linha{display:flex;align-items:center;gap:12px}
.linha .cresce{flex:1;min-width:0}
.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:var(--card-2);color:var(--muted);white-space:nowrap}
.tag.ok{background:var(--green-soft);color:var(--green)}
.tag.av{background:var(--amber-soft);color:var(--amber)}
.tag.er{background:var(--red-soft);color:var(--red)}
.tag.pk{background:var(--pink-soft);color:var(--pink-ink)}
.aviso{display:flex;gap:12px;align-items:flex-start;background:var(--pink-soft);border:1px solid rgb(255 79 163 / 30%);border-radius:14px;padding:14px;font-size:14px}
.aviso.amb{background:var(--amber-soft);border-color:rgb(251 191 36 / 30%)}
.aviso a{font-weight:700}
.msg{border-radius:12px;padding:12px 14px;font-size:14px;font-weight:600}
.msg.ok{background:var(--green-soft);color:var(--green)}
.msg.er{background:var(--red-soft);color:var(--red)}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 22px;border-radius:999px;border:0;background:var(--pink);color:var(--on-pink);font-weight:800;font-size:15px;text-decoration:none;cursor:pointer;letter-spacing:.01em}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.5;cursor:default}
.btn.sec{background:var(--card-2);color:var(--fg);border:1px solid var(--line-2)}
.btn.peq{min-height:40px;padding:0 16px;font-size:14px}
.btn.cheio{width:100%}
.btn svg{width:18px;height:18px}
.lnk{background:none;border:0;padding:0;color:var(--pink-ink);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* formulários */
.form{display:flex;flex-direction:column;gap:14px}
.f{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}
.f input,.f select,.f textarea{width:100%;min-height:48px;padding:12px 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--card-2);color:var(--fg);font-size:16px;font-weight:500}
.f textarea{min-height:96px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--pink)}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--fg);font-weight:500}
.chk input{width:22px;height:22px;margin:0;accent-color:var(--pink);flex-shrink:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;inset:0;margin:0}
.chips span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--card-2);color:var(--fg);font-size:14px;font-weight:600;cursor:pointer}
.chips input:checked + span{background:var(--pink-soft);border-color:var(--pink);color:var(--pink-ink)}
.chips input:focus-visible + span{outline:2px solid var(--pink);outline-offset:2px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0;margin-bottom:8px;font-size:13px;font-weight:700;color:var(--muted)}

/* marca na tela de login */
.logo{font-weight:900;font-size:22px;letter-spacing:.08em;text-transform:uppercase;text-align:center}
.logo span{color:var(--pink)}
.logo small{display:block;font-size:11px;letter-spacing:.2em;color:var(--muted);font-weight:700;margin-top:2px}

/* ---------- treino do dia ---------- */
.hero{background:linear-gradient(160deg,rgb(255 79 163 / 22%),rgb(255 79 163 / 4%) 60%),var(--card);border:1px solid rgb(255 79 163 / 28%);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px}
.hero h3{margin:0;font-size:22px;font-weight:900;line-height:1.15}
.metas{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--muted)}
.metas b{color:var(--fg)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;text-align:center}
.stat b{display:block;font-size:22px;font-weight:900;font-family:var(--mono)}
.stat small{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em}

.sessoes{display:flex;flex-direction:column;gap:10px}
.sessao{display:flex;align-items:center;gap:14px;padding:14px;border-radius:16px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--fg)}
.sessao:hover{border-color:var(--line-2);background:var(--card-2)}
.sessao.prox{border-color:var(--pink)}
.letra{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--card-2);font-weight:900;font-size:20px;flex-shrink:0}
.sessao.prox .letra{background:var(--pink);color:var(--on-pink)}
.sessao .cresce{flex:1;min-width:0}
.sessao strong{display:block;font-size:15px}
.sessao .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seta{width:20px;height:20px;color:var(--muted);flex-shrink:0}

/* execução */
.exs{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}
.ex{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px;transition:border-color .15s}
.ex.feito{border-color:rgb(74 222 128 / 45%);background:linear-gradient(0deg,rgb(74 222 128 / 6%),rgb(74 222 128 / 6%)),var(--card)}
.ex.alt{margin-top:-6px;border-style:dashed}
.ex-h{display:flex;gap:12px;align-items:flex-start}
.ex-n{display:grid;place-items:center;min-width:32px;height:32px;border-radius:10px;background:var(--card-2);font-weight:800;font-size:14px;font-family:var(--mono)}
.ex.alt .ex-n{font-family:var(--f);font-size:12px;color:var(--muted)}
.ex-nome{flex:1;min-width:0}
.ex-nome strong{display:block;font-size:15px;line-height:1.3}
.grp{display:inline-block;margin-top:4px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--pink-ink)}
.chipsx{display:flex;flex-wrap:wrap;gap:6px}
.cx{display:inline-flex;flex-direction:column;padding:6px 10px;border-radius:10px;background:var(--card-2);min-width:64px}
.cx small{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cx b{font-family:var(--mono);font-size:14px}
.obs{font-size:13px;color:var(--muted);margin:0}
.ex-acoes{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.ex-acoes .f{flex:1;min-width:120px}
.ex-acoes .f input{min-height:44px;font-size:16px}
.feito-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--line-2);background:var(--card-2);font-weight:800;font-size:14px;cursor:pointer}
.feito-btn svg{width:18px;height:18px}
.feito-btn[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:#06210F}
.desc-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line-2);background:transparent;font-weight:700;font-size:13px;cursor:pointer}
.desc-btn svg{width:16px;height:16px}
.video{border-radius:12px;overflow:hidden;background:#000;aspect-ratio:16/9}
.video iframe,.video video{display:block;width:100%;height:100%;border:0}
.video-sem{font-size:12px;color:var(--muted)}
details.ver summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--pink-ink)}
details.ver summary::-webkit-details-marker{display:none}
details.ver summary svg{width:16px;height:16px}
details.ver[open] summary{margin-bottom:10px}

.barra-fim{position:sticky;bottom:calc(var(--tab) + env(safe-area-inset-bottom) + 8px);z-index:5;background:rgb(20 20 24 / 96%);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line-2);border-radius:18px;padding:12px;display:flex;align-items:center;gap:12px}
.barra-fim .cresce{flex:1;min-width:0;font-size:13px;color:var(--muted)}
.barra-fim b{color:var(--fg);font-family:var(--mono)}
.prog{height:6px;border-radius:999px;background:var(--card-2);overflow:hidden;margin-top:6px}
.prog i{display:block;height:100%;background:var(--pink);width:0;transition:width .2s}

/* timer de descanso */
.timer{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tab) + env(safe-area-inset-bottom) + 90px);z-index:30;background:var(--pink);color:var(--on-pink);border-radius:999px;padding:10px 12px 10px 20px;display:flex;align-items:center;gap:14px;font-weight:900;box-shadow:0 10px 40px rgb(0 0 0 / 50%)}
.timer[hidden]{display:none}
.timer .num{font-size:22px}
.timer button{border:0;background:rgb(0 0 0 / 15%);color:inherit;border-radius:999px;min-height:36px;padding:0 14px;font-weight:800;cursor:pointer}

/* modal de fim de treino */
dialog{border:1px solid var(--line-2);background:var(--card);color:var(--fg);border-radius:20px;padding:22px;width:min(92vw,440px)}
dialog::backdrop{background:rgb(0 0 0 / 65%)}
dialog h2{margin:0 0 6px;font-size:20px}

/* progresso */
.graf{width:100%;height:auto;display:block}
.graf text{fill:var(--muted);font-size:10px;font-family:var(--f)}
.ex-sel{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.ex-sel::-webkit-scrollbar{display:none}
.ex-sel a,.ex-sel button{flex-shrink:0;padding:8px 12px;border-radius:999px;background:var(--card-2);border:1px solid var(--line);color:var(--fg);text-decoration:none;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.ex-sel a[aria-current="true"],.ex-sel button[aria-selected="true"]{background:var(--pink-soft);border-color:var(--pink);color:var(--pink-ink)}
.ex-sel{scroll-behavior:smooth;scroll-padding-inline:16px}
.ex-painel{animation:surge .2s ease-out}
@keyframes surge{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ex-painel{animation:none}.ex-sel{scroll-behavior:auto}}

/* histórico / fatura */
.item{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--fg)}
a.item:hover{background:var(--card-2)}
.item .cresce{flex:1;min-width:0}
.item strong{display:block;font-size:15px}
.dia{display:grid;place-items:center;width:48px;height:52px;border-radius:12px;background:var(--card-2);flex-shrink:0;line-height:1.1}
.dia b{font-size:18px;font-weight:900;font-family:var(--mono)}
.dia small{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--muted)}
.valor{font-family:var(--mono);font-weight:700;font-size:15px;white-space:nowrap}
.tabela{width:100%;border-collapse:collapse;font-size:14px}
.tabela td{padding:10px 0;border-bottom:1px solid var(--line);vertical-align:top}
.tabela td:last-child{text-align:right;font-family:var(--mono);white-space:nowrap;padding-left:12px}
.ok-ic{color:var(--green)}.no-ic{color:var(--muted)}

/* feedback */
.fb{display:flex;flex-direction:column;gap:10px}
.bolha{padding:12px 14px;border-radius:16px;background:var(--card-2);font-size:14px;white-space:pre-wrap;word-wrap:break-word}
.bolha.dela{border-top-right-radius:6px;align-self:flex-end;max-width:92%;background:var(--pink-soft)}
.bolha.betina{border-top-left-radius:6px;align-self:flex-start;max-width:92%}
.bolha small{display:block;margin-top:6px;font-size:11px;color:var(--muted);font-weight:700}
.upl{display:flex;flex-direction:column;gap:8px}
.upl-bar{height:8px;border-radius:999px;background:var(--card-2);overflow:hidden}
.upl-bar i{display:block;height:100%;width:0;background:var(--pink);transition:width .2s}

/* perfil */
.menu{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
.menu a,.menu button{display:flex;align-items:center;gap:12px;padding:16px;background:var(--card);border:0;border-bottom:1px solid var(--line);color:var(--fg);text-decoration:none;font-weight:700;font-size:15px;text-align:left;cursor:pointer;width:100%}
.menu > :last-child{border-bottom:0}
.menu a:hover,.menu button:hover{background:var(--card-2)}
.menu svg{width:20px;height:20px;color:var(--pink-ink);flex-shrink:0}
.menu .cresce{flex:1}
.menu form{margin:0}

@media (min-width:700px){
  main.app{padding-top:28px}
}

/* vídeo e observação de cada exercício */
.ex-video .video{width:100%;max-width:100%}
.video-sem{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:repeating-linear-gradient(135deg,var(--card-2) 0 12px,#18181D 12px 24px);border:1px dashed var(--line-2);color:var(--muted);font-size:13px;font-weight:700;text-decoration:none;text-align:center;padding:12px}
.video-sem svg{width:34px;height:34px;color:var(--pink-ink);opacity:.8}
a.video-sem:hover{color:var(--fg)}
.ex-obs{background:var(--card-2);border-radius:12px;padding:10px 12px}
.ex-obs-t{display:block;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--pink-ink);margin-bottom:2px}
.ex-obs p{margin:0;font-size:14px;white-space:pre-wrap}
.ex-obs.vazia .ex-obs-t{color:var(--muted)}
.ex-obs.vazia p{color:var(--muted);font-size:13px}

/* ficha de treino: mesmo conteúdo do PDF do Orbit */
.ficha-topo{display:flex;flex-direction:column;gap:12px}
.rotina{font-size:13px;font-weight:700;color:var(--pink-ink)}
.foco{background:var(--pink-soft);border:1px solid rgb(255 79 163 / 28%);border-radius:14px;padding:12px 14px}
.foco-t{display:block;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--pink-ink);margin-bottom:2px}
.foco p{margin:0;font-size:14px;line-height:1.5}
.sess-t{margin:4px 0 0;font-size:22px;font-weight:900;line-height:1.2;text-wrap:balance}
.sess-tags{display:flex;flex-wrap:wrap;gap:6px}
.sess-tags span{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}
.st-reg{background:var(--card-2);color:var(--fg);border:1px solid var(--line-2)}
.st-obj{background:var(--pink-soft);color:var(--pink-ink)}
.membro{flex-shrink:0;max-width:42%;padding:3px 9px;border-radius:999px;background:var(--card-2);border:1px solid var(--line-2);font-size:11px;font-weight:700;color:var(--muted);text-align:right;line-height:1.35}
.ex-dados{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;font-size:14px}
.ex-dados div{display:flex;gap:4px}
.ex-dados dt{font-weight:800}
.ex-dados dd{margin:0;color:var(--muted)}
.ex-dados .ult dd{color:var(--pink-ink);font-weight:700}
.ou-tag{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--pink-ink)}
.grupo{list-style:none;background:rgb(251 191 36 / 7%);border:1px solid rgb(251 191 36 / 30%);border-radius:18px;padding:12px;display:flex;flex-direction:column;gap:12px}
.grupo-h{display:flex;gap:10px;align-items:flex-start}
.grupo-h svg{width:24px;height:24px;color:var(--amber);flex-shrink:0;margin-top:1px}
.grupo-h strong{display:block;font-size:16px;color:var(--amber)}
.grupo-h span{display:block;font-size:12px;color:var(--muted)}
.grupo .exs{gap:10px}

/* cronômetro do treino */
.relogio{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px 0 12px;border-radius:999px;border:1.5px solid var(--pink);background:transparent;color:var(--pink-ink);font-weight:800;font-size:15px;cursor:pointer;flex-shrink:0}
.relogio svg{width:16px;height:16px}
.relogio .ic-pausa{display:none}
.relogio.rodando{background:var(--pink);color:var(--on-pink)}
.relogio.rodando .ic-play{display:none}
.relogio.rodando .ic-pausa{display:block}
.relogio.pausado{border-color:var(--amber);color:var(--amber)}
.relogio .num{min-width:3.2em;text-align:left}
.fim-tempo{margin:2px 0 6px;font-size:15px;font-weight:700;color:var(--pink-ink)}
.fim-tempo:empty{display:none}

/* durante o treino, a barra com o cronômetro fica sempre visível (presa acima do menu) */
.barra-fim{position:fixed;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:calc(var(--tab) + env(safe-area-inset-bottom,0px) + 8px);max-width:596px;margin:0 auto;z-index:15;box-shadow:0 8px 30px rgb(0 0 0 / 45%)}
main.app:has(.barra-fim){padding-bottom:calc(var(--tab) + 120px + env(safe-area-inset-bottom,0px))}
.timer{bottom:calc(var(--tab) + env(safe-area-inset-bottom,0px) + 96px)}

/* barra do treino em andamento, visível em todas as abas */
.treino-ativo{position:fixed;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:calc(var(--tab) + env(safe-area-inset-bottom,0px) + 8px);max-width:596px;margin:0 auto;z-index:15;display:flex;align-items:center;gap:10px;padding:10px 12px 10px 14px;border-radius:18px;background:var(--pink);color:var(--on-pink);text-decoration:none;box-shadow:0 8px 30px rgb(0 0 0 / 45%)}
.treino-ativo.pausado{background:var(--card-2);color:var(--fg);border:1.5px solid var(--amber)}
.treino-ativo .ta-ic{width:10px;height:10px;border-radius:50%;background:currentColor;flex-shrink:0;animation:pulsa 1.4s ease-in-out infinite}
.treino-ativo.pausado .ta-ic{background:var(--amber);animation:none}
.treino-ativo .ta-txt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.treino-ativo small{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.treino-ativo b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.treino-ativo .ta-t{font-size:20px;font-weight:800}
.treino-ativo .ta-ir{font-size:12px;font-weight:800;padding:8px 10px;border-radius:999px;background:rgb(0 0 0 / 14%);white-space:nowrap}
.treino-ativo.pausado .ta-ir{background:var(--pink);color:var(--on-pink)}
body.com-treino main.app{padding-bottom:calc(var(--tab) + 110px + env(safe-area-inset-bottom,0px))}
@keyframes pulsa{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.treino-ativo .ta-ic{animation:none}}
@media (max-width:360px){.treino-ativo .ta-ir{display:none}}

/* resumo da performance (IA) */
.resumo{display:flex;flex-direction:column;gap:14px}
.ia-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--pink-soft);color:var(--pink-ink);flex-shrink:0}
.ia-ic svg{width:22px;height:22px}
.resumo h2{margin:0}
.resumo-out{display:flex;flex-direction:column;gap:10px}
.resumo-out p{margin:0;font-size:14px;line-height:1.55}
.resumo-out b{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--pink-ink);margin-bottom:2px}
.resumo-out .rs-atencao b{color:var(--amber)}
.resumo-out .rs-destaques b{color:var(--green)}

/* comparativo semanal */
.comp{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.comp-h,.comp-l{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;padding:10px 12px}
.comp-h{background:var(--card-2);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.comp-h span:nth-child(n+2),.comp-v{text-align:right}
.comp-h span:last-child{color:var(--pink-ink)}
.comp-l{border-top:1px solid var(--line);font-size:13px}
.comp-l span:first-child{color:var(--muted);font-weight:600}
.comp-v{font-weight:800;font-size:14px;white-space:nowrap}
.comp-v.ant{color:var(--muted);font-weight:600}
.comp-d{font-style:normal;font-size:10px;margin-left:2px}
.comp-d.sobe{color:var(--green)}
.comp-d.desce{color:var(--red)}
.comp-sub{display:block;font-family:var(--f);font-size:11px;font-weight:600;color:var(--muted);white-space:normal;line-height:1.3;margin-top:2px}

/* dicas para evoluir */
.dicas{display:flex;flex-direction:column;gap:14px}
.dicas h2{margin:0}
.dicas-l{margin:0;padding:0;list-style:none;counter-reset:dica;display:flex;flex-direction:column;gap:10px}
.dicas-l li{counter-increment:dica;display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.55;background:var(--card-2);border-radius:12px;padding:12px}
.dicas-l li::before{content:counter(dica);display:grid;place-items:center;flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--pink);color:var(--on-pink);font-weight:900;font-size:13px}

/* grade de dias da semana (progresso) */
.sem-t{margin:18px 0 8px;font-size:14px;font-weight:800}
.sem-grade{display:flex;flex-direction:column;gap:6px}
.sg-l{display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr));gap:6px;align-items:center}
.sg-l > span:first-child{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap}
.sg-h span{text-align:center;font-size:11px;font-weight:800;color:var(--muted)}
.sg-h span:first-child{text-align:left}
.sg-d{display:grid;place-items:center;aspect-ratio:1;max-height:40px;border-radius:9px;background:var(--card-2);font-size:12px;font-weight:700;color:var(--muted);font-family:var(--mono)}
.sg-d.on{background:var(--pink);color:var(--on-pink)}
.sg-d.fut{background:transparent;border:1px dashed var(--line-2);opacity:.5}

/* medidas: IMC e água */
.agua{display:flex;gap:12px;align-items:flex-start;margin-top:14px;background:rgb(96 165 250 / 10%);border:1px solid rgb(96 165 250 / 30%);border-radius:14px;padding:12px 14px}
.agua-ic{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:rgb(96 165 250 / 18%);color:#93C5FD;flex-shrink:0}
.agua-ic svg{width:20px;height:20px}
.agua strong{display:block;font-size:15px}
.agua p{margin:4px 0 0;font-size:13px;color:var(--muted);line-height:1.5}

/* título "Frequência" acima dos números */
.headline{margin:4px 0 -4px;font-size:22px;font-weight:900;letter-spacing:.06em;line-height:1.2;text-transform:uppercase;text-align:center;color:var(--pink)}
.stat .de{font-size:15px;color:var(--muted);font-weight:700}
.stat .pct{display:block;width:fit-content;margin:6px auto 0;padding:2px 8px;border-radius:999px;background:var(--pink-soft);color:var(--pink-ink);font-size:12px;font-weight:800;font-family:var(--mono)}
.stat .nivel{display:block;margin-top:6px;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.nv-muito-bom{color:#4ADE80}.nv-bom{color:#A3E635}.nv-regular{color:#FBBF24}.nv-ruim{color:#FB923C}.nv-pessimo{color:#F87171}

/* legenda do gráfico com todos os exercícios */
.legenda{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:6px}
.legenda li{display:flex;align-items:center;gap:8px;font-size:13px}
.legenda i{width:12px;height:12px;border-radius:3px;flex-shrink:0}
.legenda .cresce{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legenda .num{color:var(--muted);font-size:12px;white-space:nowrap}

/* navegação lateral entre exercícios */
.ex-nav{position:relative;display:flex;align-items:center;gap:6px;margin:8px 0 4px}
.ex-nav .ex-sel{flex:1;min-width:0;scroll-snap-type:x proximity;padding:2px 0 4px}
.ex-nav .ex-sel button{scroll-snap-align:start}
.ex-seta{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2);background:var(--card-2);color:var(--fg);cursor:pointer;transition:opacity .15s}
.ex-seta svg{width:18px;height:18px}
.ex-seta:disabled{opacity:.3;cursor:default}
.ex-nav::before,.ex-nav::after{content:"";position:absolute;top:0;bottom:4px;width:24px;pointer-events:none;opacity:0;transition:opacity .2s}
.ex-nav::before{left:42px;background:linear-gradient(90deg,var(--card),transparent)}
.ex-nav::after{right:42px;background:linear-gradient(270deg,var(--card),transparent)}
.ex-nav.tem-esq::before,.ex-nav.tem-dir::after{opacity:1}
.ex-dica{margin:0 0 10px;font-size:12px}
.ex-paineis{touch-action:pan-y}

/* nome do treino (limpo) */
.nt-det{display:inline-block;margin-top:2px;color:var(--pink-ink);font-weight:600}
.rotina-det{display:block;margin-top:2px;font-size:12px;font-weight:600;color:var(--muted)}

/* comparativo da semana (cartões) */
.cmp{display:flex;flex-direction:column;gap:10px}
.cmp-top h3{margin:0 0 8px;font-size:15px;font-weight:800}
.cmp-leg{display:flex;flex-wrap:wrap;gap:6px}
.cmp-chip{font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px}
.cmp-chip.ant{background:var(--card-2);color:var(--muted);border:1px solid var(--line-2)}
.cmp-chip.atu{background:var(--pink-soft);color:var(--pink-ink);border:1px solid rgb(255 79 163 / 35%)}
.cmp-item{background:var(--card-2);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px}
.cmp-cab{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.cmp-cab strong{display:block;font-size:14px}
.cmp-cab small{display:block;font-size:12px;color:var(--muted);line-height:1.35;margin-top:1px}
.cmp-var{flex-shrink:0;font-size:12px;font-weight:800;padding:3px 8px;border-radius:999px;white-space:nowrap}
.cmp-var.bom{background:var(--green-soft);color:var(--green)}
.cmp-var.ruim{background:var(--red-soft);color:var(--red)}
.cmp-var.igual{background:var(--card);color:var(--muted)}
.cmp-vals{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cmp-val{border-radius:10px;padding:8px 10px;background:var(--card)}
.cmp-val small{display:block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cmp-val b{display:block;font-size:15px;margin-top:2px}
.cmp-val.atu{background:var(--pink-soft)}
.cmp-val.atu small{color:var(--pink-ink)}

/* exercício feito: cartão minimizado */
.ex-abrir{display:none;place-items:center;flex-shrink:0;width:36px;height:36px;margin:-2px -4px 0 0;border-radius:10px;border:0;background:transparent;color:var(--muted);cursor:pointer}
.ex-abrir svg{width:20px;height:20px;transition:transform .2s}
.ex .ex-abrir{display:grid}
.ex:not(.fechado) .ex-abrir svg{transform:rotate(180deg)}
.ex-feito-res{display:none;margin-top:2px;font-size:12px;font-weight:800;color:var(--green)}
.ex.feito .ex-feito-res{display:block}
.ex.fechado{gap:0;padding-top:10px;padding-bottom:10px}
.ex.fechado > :not(.ex-h):not(.ou-tag){display:none}
.ex.fechado .membro{display:none}
.ex.feito.fechado .ex-n{background:var(--green);color:#06210F}
.ex.feito.fechado .ex-nome strong{color:var(--muted);text-decoration:line-through;text-decoration-color:rgb(74 222 128 / 60%)}

/* barra de baixo antes de começar: só o botão TREINAR, centralizado */
.treinar{display:none;flex:1;min-height:52px;font-size:17px;font-weight:900;letter-spacing:.12em;box-shadow:0 8px 24px rgb(255 79 163 / 30%)}
.treinar svg{width:20px;height:20px}
.barra-fim.parado{justify-content:center}
.barra-fim.parado .treinar{display:inline-flex}
.barra-fim.parado > :not(.treinar){display:none}
[hidden]{display:none!important}

/* modo treino: topo rosa com o cronômetro fixo */
body.modo-treino .top{background:var(--pink-claro);border-bottom-color:rgb(0 0 0 / 8%)}
body.modo-treino .top .marca,body.modo-treino .top h1,body.modo-treino .voltar{color:#0B0B0D}
body.modo-treino .top .marca span{color:#D61F78}
body.modo-treino .voltar:hover{background:rgb(0 0 0 / 10%)}
.top-relogio{margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border-radius:999px;border:0;background:#0B0B0D;color:#FFFFFF;text-decoration:none;cursor:pointer;font:inherit}
.top-relogio .tr-t{font-size:17px;font-weight:800;color:#FFFFFF}
.top-relogio .tr-ic{width:9px;height:9px;border-radius:50%;background:var(--pink);animation:pulsa 1.4s ease-in-out infinite}
.top-relogio.pausado .tr-ic{background:var(--amber);animation:none}
.top-relogio .tr-ir{font-size:12px;font-weight:800;color:var(--pink-ink)}
@media (prefers-reduced-motion:reduce){.top-relogio .tr-ic{animation:none}}
/* o cronômetro agora fica no topo; embaixo ficam só o progresso e o Finalizar */
body.modo-treino .barra-fim .relogio{display:none}
/* modo treino: barra de abas rosa; no treino, progresso + Finalizar ficam no fim da lista, depois de todos os exercícios */
body.modo-treino .abas{background:var(--pink-claro);border-top-color:rgb(0 0 0 / 8%)}
body.modo-treino .abas a{color:rgb(11 11 13 / 62%)}
body.modo-treino .abas a[aria-current="page"],body.modo-treino .abas a:hover{color:#0B0B0D}
body.modo-treino .barra-fim{position:static;max-width:none;margin:20px 0 0;box-shadow:none;border-color:var(--pink);background:var(--pink-soft)}
body.modo-treino main.app:has(.barra-fim){padding-bottom:calc(var(--tab) + 96px + env(safe-area-inset-bottom,0px))}
/* descanso no topo, ao lado do relógio, em todas as abas */
.top-descanso{margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;gap:4px;min-height:38px;padding:0 4px 0 10px;border-radius:999px;background:#FFFFFF;color:#0B0B0D;font-weight:900}
.top-descanso .td-rot{display:none}
.top-descanso .td-t{font-size:16px;font-weight:800;margin-right:2px}
.top-descanso button{border:0;border-radius:999px;min-height:30px;padding:0 8px;font:inherit;font-size:12px;font-weight:800;background:rgb(11 11 13 / 10%);color:inherit;cursor:pointer}
.top-descanso .td-x{width:30px;padding:0;font-size:18px;line-height:1}
.top-descanso ~ .top-relogio{margin-left:0}
body:not(.modo-treino) .top-descanso{background:var(--pink);color:var(--on-pink)}
.top-descanso ~ .top-relogio .tr-ir{display:none}
.top .marca{white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}
.top:has(.top-descanso) .marca span{display:none}
/* recolher exercícios ainda não feitos */
.exs-barra{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 10px;font-size:13px;font-weight:700;color:var(--muted)}
.ex-resumo{display:none;font-size:12px;font-weight:700;color:var(--muted);margin-top:2px}
.ex.fechado:not(.feito) .ex-resumo{display:block}
/* descanso: sem excluir; quando acaba, aparece o play para começar de novo */
.top-descanso .td-play{display:none;width:30px;padding:0;place-items:center;background:#0B0B0D;color:#FFFFFF}
.top-descanso .td-play svg{width:14px;height:14px}
.top-descanso.pronto{padding-left:4px}
.top-descanso.pronto .td-play{display:grid}
.top-descanso.pronto .td-mais{display:none}
.top-descanso.pronto .td-t{margin-right:10px;opacity:.7}
/* REDE no topo */
.rede-link{margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);color:var(--fg);text-decoration:none;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.rede-link svg{width:18px;height:18px}
.rede-link[aria-current="page"]{background:var(--pink);border-color:var(--pink);color:var(--on-pink)}
.rede-link ~ .top-descanso,.rede-link ~ .top-relogio{margin-left:0}
body.modo-treino .rede-link{border-color:rgb(11 11 13 / 30%);color:#0B0B0D}
body.modo-treino .rede-link[aria-current="page"]{background:#0B0B0D;color:#FFFFFF}
.top:has(.top-relogio) .rede-link{padding:0;width:38px;justify-content:center}
.top:has(.top-relogio) .rede-link .rl-t{display:none}
.rede-link ~ .top-relogio .tr-ir{display:none}
.top:has(.rede-link):has(.top-descanso) .marca{display:none}
.top:has(.rede-link):has(.top-descanso) .rede-link{margin-left:0;margin-right:auto}
/* Rede: abas internas */
.rede-abas{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:2px -16px 0;padding:0 16px}
.rede-abas::-webkit-scrollbar{display:none}
.rede-abas a{flex:1 0 auto;justify-content:center;min-height:38px;display:inline-flex;align-items:center;padding:0 14px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--muted);text-decoration:none;font-size:13px;font-weight:800}
.rede-abas a[aria-current="page"]{background:var(--pink);border-color:var(--pink);color:var(--on-pink)}
/* posts */
.avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--card-2);border:1px solid var(--line-2);color:var(--fg);font-size:14px;font-weight:900}
.avatar.b{background:var(--pink);border-color:var(--pink);color:var(--on-pink)}
.avatar.mini{width:30px;height:30px;font-size:11px}
.post{display:flex;flex-direction:column;gap:10px}
.post.da-betina{border-color:rgb(255 79 163 / 40%)}
.post-h{display:flex;align-items:center;gap:10px}
.post-h .cresce{flex:1;min-width:0}
.post-h strong{font-size:15px}
.post-h small{display:block;font-size:12px;color:var(--muted);font-weight:600}
.selo{display:inline-block;margin-left:4px;padding:2px 7px;border-radius:999px;background:var(--pink-soft);color:var(--pink-ink);font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;vertical-align:2px}
.post-apagar{border:0;background:none;color:var(--muted);font:inherit;font-size:12px;font-weight:700;cursor:pointer;padding:8px}
.post-treino{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:var(--pink-soft);color:var(--fg);font-size:14px}
.post-treino svg{width:20px;height:20px;color:var(--pink);flex-shrink:0}
.post-txt{margin:0;white-space:pre-wrap;line-height:1.5;overflow-wrap:anywhere}
.post-acoes{display:flex;align-items:center;gap:14px;font-size:13px}
.curtir{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--fg);font:inherit;font-weight:800;cursor:pointer}
.curtir svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.curtir.on{border-color:var(--pink);color:var(--pink)}
.curtir.on svg{fill:var(--pink);stroke:var(--pink)}
.coments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.coments:empty{display:none}
.coments li{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.4}
.coments li > div{background:var(--card-2);border-radius:12px;padding:8px 10px;flex:1;min-width:0;overflow-wrap:anywhere}
.coments small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.comentar{display:flex;gap:8px}
.comentar input{flex:1;min-width:0;min-height:40px;border-radius:999px;border:1px solid var(--line-2);background:var(--card-2);color:var(--fg);padding:0 14px;font:inherit;font-size:14px}
.comentar .btn{min-height:40px}
.check{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}
.check input{width:20px;height:20px;accent-color:var(--pink)}
/* ranking */
.ranking{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ranking li{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.ranking li.eu{border-color:var(--pink);background:var(--pink-soft)}
.ranking .pos{width:30px;font-size:16px;font-weight:800;color:var(--muted);flex-shrink:0}
.ranking .top1 .pos{color:#FFD54A}.ranking .top2 .pos{color:#D7D7DE}.ranking .top3 .pos{color:#E0A16B}
.ranking .cresce{flex:1;min-width:0}
.ranking strong{display:block;font-size:15px}
.ranking small{display:block;font-size:12px;color:var(--muted);font-weight:600}
.ranking .pts{text-align:right}
.ranking .pts b{font-size:20px;color:var(--pink)}
/* redes sociais */
.rede-item .rd-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--pink-soft);color:var(--pink);flex-shrink:0}
.rede-item .rd-ic svg{width:22px;height:22px}
.rede-item small{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rede-item .seta{width:20px;height:20px;color:var(--muted);flex-shrink:0}
/* desafios */
.desafio{display:flex;flex-direction:column;gap:12px}
.desafio.dentro{border-color:rgb(255 79 163 / 45%)}
.dsf-h{display:flex;align-items:center;gap:12px}
.dsf-h .cresce{flex:1;min-width:0}
.dsf-h strong{display:block;font-size:17px;font-weight:900}
.dsf-h small{display:block;font-size:12px;color:var(--muted);font-weight:700}
.dsf-ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--pink);color:var(--on-pink);flex-shrink:0}
.dsf-ic svg{width:24px;height:24px}
.dsf-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;font-weight:700;color:var(--muted)}
.dsf-meta > span{padding:6px 10px;border-radius:999px;background:var(--card-2)}
.dsf-meta b{color:var(--fg)}
.dsf-prog{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;background:var(--pink-soft)}
.dsf-prog-t{display:flex;justify-content:space-between;font-size:13px;font-weight:800}
.dsf-prog-t b{color:var(--pink);font-size:15px}
.dsf-prog .prog{margin-top:0;height:8px}
.dsf-ok{font-size:13px;font-weight:800;color:var(--green)}
.dsf-parts summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--muted);padding:4px 0;list-style-position:inside}
.dsf-parts .ranking{margin-top:8px}
.dsf-parts .ranking li{padding:10px 12px}
.dsf-parts .ranking .cresce .prog{display:block;margin-top:6px}
.dsf-parts .pts b{font-size:15px}
.dsf-fim small{display:block;color:var(--muted);font-size:12px}
/* ranking por pontos */
.msg.av{background:var(--amber-soft);color:var(--amber)}
.minha-nota{display:flex;flex-direction:column;gap:14px;border-color:rgb(255 79 163 / 45%)}
.mn-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.mn-n{display:block;font-size:44px;font-weight:800;line-height:1.05;color:var(--pink);margin-top:4px}
.mn-topo small{display:block;font-size:12px;color:var(--muted);font-weight:700}
.mn-pos{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.mn-pos b{font-size:28px;font-weight:800}
.selo-clube{display:inline-block;margin-top:6px;padding:4px 9px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.selo-clube.mini{margin:0 0 0 4px;padding:1px 6px;font-size:10px;vertical-align:2px}
.mn-semana{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;background:var(--card-2)}
.mn-s-t{display:flex;justify-content:space-between;font-size:13px;font-weight:800}
.mn-s-t b{color:var(--pink)}
.mn-letras{display:flex;gap:6px}
.mn-letras span{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;border:1px dashed var(--line-2);color:var(--muted);font-weight:900}
.mn-letras span.ok{background:var(--pink);border:1px solid var(--pink);color:var(--on-pink)}
.mn-det summary,.regras summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--muted)}
.mn-semanas{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.mn-semanas li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--card-2)}
.mn-semanas .cresce{flex:1;min-width:0}
.mn-semanas strong{display:block;font-size:14px}
.mn-semanas small{display:block;font-size:12px;color:var(--muted);line-height:1.4}
.mn-semanas b{font-size:16px;color:var(--pink)}
.ranking .pts b{font-size:18px}
.regras-txt{font-size:14px;line-height:1.55;margin-top:8px}
.regras-txt p{margin:0 0 10px}
.regras-txt ul{margin:0 0 10px;padding-left:20px}
/* desafio por dentro */
.dsf-dentro{display:flex;flex-direction:column;gap:14px}
.dsf-capa{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.dsf-capa .dsf-ic{width:56px;height:56px;border-radius:18px}
.dsf-capa .dsf-ic svg{width:30px;height:30px}
.dsf-capa h2{margin:4px 0 0;font-size:20px;font-weight:900}
.dsf-capa small{font-size:12px;color:var(--muted);font-weight:700}
.dsf-capa .dsf-meta{justify-content:center}
.dsf-capa .post-txt{text-align:left;width:100%}
.dsf-dentro:not(.dentro) .dsf-so-dentro,.dsf-dentro:not(.dentro) .dsf-sair,.dsf-dentro.dentro .dsf-entrar{display:none}
.dsf-ver{align-self:center;font-size:13px;font-weight:800;color:var(--muted);text-decoration:none;padding:4px 8px}
.post-desafio{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;border:1px solid rgb(255 79 163 / 35%);color:var(--fg);text-decoration:none;font-size:13px}
.post-desafio svg{width:18px;height:18px;color:var(--pink);flex-shrink:0}
.post-desafio b{color:var(--pink-ink)}
/* fotos nos posts */
.post-foto{display:block;width:100%;max-height:520px;object-fit:cover;border-radius:14px;background:var(--card-2)}
.np-foto{position:relative}
.np-foto img{display:block;width:100%;max-height:320px;object-fit:cover;border-radius:12px}
.np-foto button{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:50%;border:0;background:rgb(0 0 0 / 70%);color:#fff;font-size:20px;line-height:1;cursor:pointer}
.np-foto-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.np-foto-btn svg{width:20px;height:20px}
/* missões do desafio */
.missoes{display:flex;flex-direction:column;gap:12px}
.mis-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.mis-lista li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--card-2)}
.mis-lista li.ok{background:var(--green-soft)}
.mis-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--card);font-size:17px;flex-shrink:0}
.mis-lista li.ok .mis-ic{background:var(--green);color:#06210F;font-weight:900}
.mis-lista .cresce{flex:1;min-width:0}
.mis-lista strong{display:block;font-size:14px}
.mis-lista small{display:block;font-size:12px;color:var(--muted);line-height:1.4}
.mis-lista .prog{display:block;margin-top:6px}
.mis-lista b{font-size:14px;color:var(--pink);white-space:nowrap}
.mis-lista li.ok b{color:var(--green)}
.mis-atalhos{display:flex;gap:8px;flex-wrap:wrap}
.missoes .dsf-prog-t b{color:var(--pink);font-size:15px}
.missoes > .prog{margin-top:0;height:8px}
/* modo treino em rosa claro: pílula do descanso com contorno para não sumir no fundo claro */
body.modo-treino .top-descanso{box-shadow:0 0 0 1px rgb(11 11 13 / 12%)}
body.modo-treino .abas a{color:rgb(11 11 13 / 55%)}
body.modo-treino .abas a[aria-current="page"]{color:#D61F78}
/* REDE em todas as telas, com o número de novidades */
.rede-link{position:relative}
.rede-badge{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#FF3B5C;color:#FFFFFF;font-size:11px;font-weight:800;line-height:19px;text-align:center;box-shadow:0 0 0 2px var(--bg)}
body.modo-treino .rede-badge{box-shadow:0 0 0 2px var(--pink-claro)}
.top:has(.voltar) .rede-link{padding:0;width:38px;justify-content:center}
.top:has(.voltar) .rede-link .rl-t{display:none}
.top:has(.voltar) .rede-link{margin-left:0}
.top:has(.voltar):has(.top-descanso) h1{display:none}
.top:has(.voltar):has(.top-descanso) .rede-link{margin-left:auto}
body.modo-treino .top{gap:8px}
.rede-abas a{position:relative}
.aba-dot{display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;background:#FF3B5C;vertical-align:1px}
/* equipe vendo o app como uma aluna */
.faixa-ver{position:sticky;top:0;z-index:30;background:#FFC9E2;color:#0B0B0D;font-size:12px;font-weight:700;text-align:center;padding:7px 12px}
.faixa-ver a{color:#0B0B0D;font-weight:900}
body:has(.faixa-ver) .top{top:31px}

/* distribuição muscular (radar) */
.dm-card{display:flex;flex-direction:column;gap:14px}
.dm-card h2{margin:0}
.dm-card .cmp-leg{margin-top:-4px}
.dm-radar{padding:8px 4px}
.radar{display:block;width:100%;height:auto;max-width:400px;margin:0 auto;overflow:visible}
.dm-h,.dm-l li{display:grid;grid-template-columns:88px minmax(0,1fr) 52px 36px;gap:10px;align-items:center}
.dm-h{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dm-h span:nth-child(n+3),.dm-l li>b{text-align:right}
.dm-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.dm-l li{font-size:13px;font-weight:600}
.dm-bar{position:relative;height:14px;border-radius:999px;background:var(--hover);overflow:hidden}
.dm-bar>b{position:absolute;inset:0 auto 0 0;border:1.5px dashed #ABABB5;border-radius:999px;box-sizing:border-box}
.dm-bar>i{position:relative;display:block;height:100%;border-radius:999px;background:var(--pink)}
.dm-l li>b{font-weight:800;font-size:13px;white-space:nowrap}
.dm-l b.dm-mes{color:var(--muted);font-weight:600}
.dm-tr{display:inline-block;width:14px;height:0;border-top:2px dashed #ABABB5;vertical-align:middle;margin-right:6px}
.dm-tr-a{border-top:3px solid #FF4FA3}

/* Regra de pontos do desafio */
.dsf-regra{margin:12px 0 4px;padding:12px 14px;border-radius:14px;background:rgb(255 79 163 / 8%);border:1px solid rgb(255 79 163 / 25%)}
.dsf-regra ul{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:6px}
.dsf-regra li{display:flex;justify-content:space-between;gap:10px;font-size:14px}
.dsf-regra li b{color:var(--pink-ink)}

/* ---------- Frequência: sequência de dias, semana e recado da Betina (Início e Progresso) ---------- */
.fq-card{background:linear-gradient(165deg,rgb(255 79 163 / 16%),rgb(255 79 163 / 2%) 55%),var(--card);border:1px solid rgb(255 79 163 / 26%);border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:14px}
.fq-topo{display:flex;align-items:center;gap:14px}
.fq-fogo{flex:0 0 58px;height:58px;border-radius:18px;display:grid;place-items:center;background:var(--pink);color:var(--on-pink);box-shadow:0 8px 24px -8px rgb(255 79 163 / 60%)}
.fq-fogo svg{width:32px;height:32px}
.fq-seq{display:flex;align-items:center;gap:10px;min-width:0}
.fq-seq b{font-family:var(--mono);font-size:44px;font-weight:900;line-height:1;color:var(--fg)}
.fq-seq>span{display:flex;flex-direction:column;font-size:17px;font-weight:800;line-height:1.2}
.fq-seq small{font-size:12.5px;font-weight:600;color:var(--muted);margin-top:2px}
.fq-sem-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.fq-sem-h h2,.fq-sem-h h3{margin:0;font-size:15px;font-weight:800}
.fq-sem-h .num{font-family:var(--mono);font-size:14px;color:var(--muted)}
.fq-sem-h .num b{color:var(--pink-ink);font-size:17px}
.fq-barra{height:10px;border-radius:99px;background:rgb(255 255 255 / 8%);overflow:hidden;margin-top:-6px}
.fq-barra span{display:block;height:100%;border-radius:99px;background:var(--pink)}
.fq-barra.fino{height:7px;margin-top:0}
.fq-barra span.nv-muito-bom{background:#4ADE80}.fq-barra span.nv-bom{background:#A3E635}.fq-barra span.nv-regular{background:#FBBF24}.fq-barra span.nv-ruim{background:#FB923C}.fq-barra span.nv-pessimo{background:#F87171}
.fq-semana{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.fq-dia{display:flex;flex-direction:column;align-items:center;gap:5px}
.fq-dn{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.fq-bola{width:100%;max-width:38px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:13px;font-weight:700;color:var(--muted);background:rgb(255 255 255 / 5%);border:2px solid transparent}
.fq-bola svg{width:55%;height:55%}
.fq-dia.feito .fq-bola{background:var(--pink);color:var(--on-pink)}
.fq-dia.feito .fq-dn{color:var(--pink-ink)}
.fq-dia.hoje .fq-bola{border-color:var(--pink);color:var(--fg);background:var(--pink-soft)}
.fq-dia.hoje .fq-dn{color:var(--fg)}
.fq-dia.futuro .fq-bola{background:transparent;border:2px dashed rgb(255 255 255 / 12%)}
.fq-msg{display:flex;gap:10px;align-items:flex-start;background:rgb(0 0 0 / 28%);border:1px solid var(--line);border-radius:16px;border-top-left-radius:4px;padding:11px 13px}
.fq-av{flex:0 0 30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--pink-claro);color:#0B0B0D;font-weight:900;font-size:14px}
.fq-msg p{margin:0;font-size:14px;line-height:1.45}
.fq-msg strong{display:block;font-size:12px;color:var(--pink-ink);text-transform:uppercase;letter-spacing:.06em;margin-bottom:1px}
.fq-msg b{color:var(--pink-ink)}
.fq-regra summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--muted);list-style:none}
.fq-regra summary::-webkit-details-marker{display:none}
.fq-regra summary::before{content:"ⓘ "}
.fq-regra p{margin:8px 0 0;font-size:13px;color:var(--muted);line-height:1.5}
.fq-resumo{display:flex;flex-direction:column;gap:14px}
.fq-resumo h2{margin:0;font-size:15px;font-weight:800}
.fq-lin{display:flex;flex-direction:column;gap:6px}
.fq-lin-h{display:flex;justify-content:space-between;gap:10px;font-size:14px;font-weight:700}
.fq-lin-h .num{font-family:var(--mono);font-weight:500;color:var(--muted);font-size:13px;white-space:nowrap}
.fq-lin-h .num b{color:var(--fg);font-weight:800}
.fq-lin-r{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.fq-nv{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.fq-lin-r small{font-size:12.5px;color:var(--muted)}
.fq-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:12px}
.fq-ch{text-align:center;font-size:11px;font-weight:800;color:var(--muted)}
.fq-c{aspect-ratio:1;border-radius:9px;display:grid;place-items:center;font-family:var(--mono);font-size:12.5px;color:var(--muted);background:rgb(255 255 255 / 4%)}
.fq-c.vazio{background:none}
.fq-c.futuro{opacity:.35}
.fq-c.feito{background:var(--pink);color:var(--on-pink);font-weight:800}
.fq-c.hoje{box-shadow:inset 0 0 0 2px var(--pink);color:var(--fg)}
.fq-leg{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.fq-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:6px}
.fq-leg i.feito{background:var(--pink)}.fq-leg i.hoje{box-shadow:inset 0 0 0 2px var(--pink)}
.sessao .sub{display:block}
@media (max-width:360px){.fq-seq b{font-size:38px}.fq-fogo{flex-basis:50px;height:50px}.fq-semana{gap:2px}}

/* Evolução de carga: exercícios em que ela subiu a carga nesta semana */
.subiu{margin:10px 0 12px;background:var(--green-soft);border:1px solid rgb(74 222 128 / 30%);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.subiu-h{display:flex;gap:10px;align-items:center}
.subiu-h strong{font-size:14px;line-height:1.35}
.subiu-ic{flex:0 0 30px;height:30px;border-radius:10px;display:grid;place-items:center;background:rgb(74 222 128 / 20%);color:var(--green)}
.subiu-ic svg{width:18px;height:18px}
.subiu ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.subiu li{display:flex;gap:10px;align-items:baseline;font-size:13.5px}
.subiu li .cresce{flex:1;min-width:0;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.subiu li .num{font-family:var(--mono);font-size:13px;white-space:nowrap;color:var(--muted)}
.subiu li .num b{color:var(--green)}

/* Menu de baixo: Rede virou aba; lembrete da fatura ("1") na aba Perfil */
.abas a.aba-rede,.abas a.aba-perfil{position:relative}
.abas .rede-badge,.abas .fat-badge{position:absolute;top:1px;right:auto;left:calc(50% + 5px);min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#FF3B5C;color:#fff;font-size:10.5px;font-weight:800;line-height:18px;text-align:center;box-shadow:0 0 0 2px var(--bg)}
body.modo-treino .abas .rede-badge,body.modo-treino .abas .fat-badge{box-shadow:0 0 0 2px var(--pink-claro)}
.menu .cresce small.menu-sub{display:block;font-size:12.5px;font-weight:600;color:var(--amber);margin-top:1px}
.fat-pill{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#FF3B5C;color:#fff;font-size:12px;font-weight:800;line-height:22px;text-align:center}

/* Fatura: lembrete do vencimento e convite para o plano recorrente */
.ft-msg{background:var(--card);border:1px solid rgb(251 191 36 / 35%);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:12px}
.ft-msg.ok{border-color:rgb(74 222 128 / 35%)}
.ft-msg.ok .ft-ic{background:var(--green-soft);color:var(--green)}
.ft-l{display:flex;gap:11px;align-items:center;min-width:0}
.ft-ic{flex:0 0 38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--amber-soft);color:var(--amber)}
.ft-ic svg{width:20px;height:20px}
.ft-l strong{display:block;font-size:15px}
.ft-l span{font-size:13px;color:var(--muted)}
.ft-rec{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:10px}
.ft-rec.so{border-top:0;padding-top:0}
.ft-rec p{margin:0;font-size:13.5px;line-height:1.45;color:var(--muted)}
.ft-rec b{color:var(--fg)}
.ft-btn{background:transparent;border:1.5px solid var(--pink);color:var(--pink-ink);text-align:center}

/* Ficha cadastral: refeições (1 a 10) e fotos dos aparelhos */
.chips-num{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.chips-num span{width:100%;justify-content:center;padding:0;font-family:var(--mono)}
.fotos-ap{display:flex;flex-direction:column;gap:8px}
.fa-t{font-weight:700}
.fa-sub{font-size:13px;color:var(--muted);line-height:1.45;font-weight:500}
.fa-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.fa-grade:empty{display:none}
.fa-foto{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--card-2);border:1px solid var(--line)}
.fa-foto img{width:100%;height:100%;object-fit:cover;display:block}
.fa-foto button{position:absolute;top:4px;right:4px;width:26px;height:26px;border-radius:50%;border:0;background:rgb(0 0 0 / 65%);color:#fff;font-size:16px;line-height:1;cursor:pointer}
.fa-add{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border-radius:14px;border:1.5px dashed var(--pink);color:var(--pink-ink);font-weight:800;font-size:14.5px;cursor:pointer}
.fa-add svg{width:20px;height:20px}
.fa-add input{position:absolute;inset:0;opacity:0;cursor:pointer}
.fa-msg{font-weight:600}

/* Ficha cadastral: foto de perfil e fotos de avaliação; foto no topo do Perfil */
.fp-linha{display:flex;gap:14px;align-items:center}
.fp-avatar{flex:0 0 76px;width:76px;height:76px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--pink-soft);border:2px solid var(--pink);color:var(--pink-ink);text-decoration:none}
.fp-avatar.grande{flex-basis:64px;width:64px;height:64px}
.fp-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.fp-ini{font-weight:900;font-size:22px;letter-spacing:.02em}
.fp-txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.fp-txt strong{font-size:15px}
.fp-txt>span{font-size:13px;color:var(--muted);line-height:1.4}
.fp-btn{position:relative;align-self:flex-start;display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;margin-top:4px;border-radius:999px;border:1.5px solid var(--pink);color:var(--pink-ink);font-size:13.5px;font-weight:800;cursor:pointer}
.fp-btn svg{width:17px;height:17px}
.fp-btn input,.av-slot input{position:absolute;inset:0;opacity:0;cursor:pointer}
.av-bloco{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:14px}
.av-h strong{font-size:15px}
.av-sub{margin:0;font-size:13px;color:var(--muted);line-height:1.45}
.av-grade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.av-slot{position:relative;aspect-ratio:3/4;border-radius:14px;overflow:hidden;border:1.5px dashed var(--line-2);background:var(--card-2);cursor:pointer}
.av-vazio{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted)}
.av-vazio svg{width:46%;height:auto;color:var(--pink-ink);opacity:.85}
.av-vazio b{font-size:13px;color:var(--fg)}
.av-vazio small{font-size:11px;font-weight:700;color:var(--pink-ink)}
.av-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.av-slot.tem{border-style:solid;border-color:var(--pink)}
.av-slot .av-tag{position:absolute;left:6px;bottom:6px;padding:2px 8px;border-radius:999px;background:rgb(0 0 0 / 65%);color:#fff;font-size:11px;font-weight:800}
.perfil-topo{display:flex;align-items:center;gap:14px}
.perfil-topo .ola{min-width:0}
