/* ══════════════════════════════════════════════════════════════════════
   PERIODIZAÇÃO — porte 26/09 (rodada periodizacao, Jean Claude)
   Molde: docs/rodada_periodizacao_2026-09-26/periodizacao-curso-CSS-2026-09-26.html
   Regras do molde COPIADAS; cada seletor ganhou o escopo `.rn-per` na frente
   (`.plano`, `.pe`, `.eb`, `.link`, `.sheet`, `.add` existem em outros CSS do
   app — `.pe` é o rodapé de assinaturas da /ficha). O `:root` do molde NÃO
   veio (armadilha 2): os tokens abaixo são a escala oficial da emenda 23/09,
   escopados. `.mac X` do molde → @media (min-width:1024px), o mesmo corte do
   Montador. Fora: as cenas de demonstração (.phone, .rev, .t-*, .fcard,
   .mac-ficha — que não existe na /ficha, ver conversa pré-porte), o caret
   falso `.cp.ativo b:after` (armadilha 3) e `.t-add-4 … display:none`
   (armadilha 1). ⚠️ `.param b`/células em --text3 = ESTADO «segue o bloco».
   ══════════════════════════════════════════════════════════════════════ */
.rn-per,.em-modo{
  --text:#F0EBE0;--text2:#C8BFB0;--text3:#b1a99a;--text4:#9a9384;
  --ouro:#c9a227;--ouro-hi:#e2c25e;--azul:#5b8def;
  --line:rgba(255,255,255,.08);--line-soft:rgba(255,255,255,.05);--fill:rgba(255,255,255,.03);--bg:#0a0806;
  --card-line-1:rgba(255,255,255,.18);--card-line-2:rgba(255,255,255,.28);--card-line-ouro:rgba(201,162,39,.5);
  --fs-micro:11.5px;--fs-xs:13px;--fs-sm:14.5px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;
  --ui:'Jost','Avenir Next',system-ui,-apple-system,'Segoe UI',sans-serif;--serif:'Playfair Display',Georgia,serif;
  --ease:cubic-bezier(.23,1,.32,1);--teclado:0px
}
.rn-per button{font-family:var(--ui);-webkit-tap-highlight-color:transparent;cursor:pointer}
.rn-per .eb{font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--text3);white-space:nowrap}
.rn-per .eb.ouro{color:var(--ouro)}
.rn-per .ponto{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ouro);box-shadow:0 0 6px rgba(201,162,39,.5);flex:none}
.rn-per .i{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.rn-per .link{background:none;border:0;padding:12px 0;margin:-12px 0;color:var(--text2);font:400 var(--fs-xs)/1 var(--ui);text-decoration:underline dotted;text-underline-offset:3px;min-height:44px}
.rn-per .link:hover{color:var(--text)}
.rn-per .rn-btn,.rn-per .rn-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:11px 11px 11px 5px;font:500 var(--fs-sm)/1 var(--ui);border:1px solid transparent;transition:background 160ms var(--ease)}
.rn-per .rn-btn{background:var(--ouro);color:#0a0806}
.rn-per .rn-btn:hover{background:var(--ouro-hi)}
.rn-per .rn-btn-secondary{background:rgba(255,255,255,.02);border-color:var(--line);color:var(--text)}
.rn-per .rn-btn-secondary:hover{background:rgba(255,255,255,.04)}
.rn-per .plano{margin-top:14px;padding:14px 14px 12px;border:1px solid var(--line);border-top:2.5px solid var(--azul);border-radius:18px;background:linear-gradient(180deg,rgba(91,141,239,.06),rgba(255,255,255,.012))}
.rn-per .plano .pc{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rn-per .plano h2{margin:0;font:500 var(--fs-lg)/1.2 var(--serif)}
.rn-per .par{display:grid;grid-template-columns:1fr 1fr;padding:3px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.26);margin:12px 0 14px}
.rn-per .par button{height:38px;border:0;border-radius:9px;background:none;color:var(--text2);font:500 var(--fs-sm)/1 var(--ui)}
/* b4 (molde periodizacao-modo-exercicio, aprovada 26/09): o par ganha alfinete e plano */
.rn-per .par button{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.rn-per .par .i{display:block;width:15px;height:15px}
.rn-per .par button.ativo .i{fill:rgba(201,162,39,.28)}
/* «guardado» (entrega curta) continua embaixo de «Por blocos»: com o botão em flex, ele vai pra linha de baixo */
.rn-per .par button:has(.guardado){flex-wrap:wrap;align-content:center;row-gap:0}
.rn-per .par .guardado{flex-basis:100%}
.rn-per .par button.ativo{background:rgba(201,162,39,.12);color:var(--ouro)}
.rn-per .fita-cab{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--fs-xs);color:var(--text2);margin-bottom:8px}
.rn-per .fita-cab b{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}
.rn-per .fita{display:flex;gap:3px;height:14px}
.rn-per .fita span{flex:var(--w) 1 0;min-width:10px;border-radius:4px;background:rgba(91,141,239,.32);border:1px solid rgba(91,141,239,.5);position:relative}
.rn-per .fita span.edit{background:rgba(201,162,39,.32);border-color:var(--ouro);box-shadow:0 0 8px rgba(201,162,39,.45)}
.rn-per .fita span.apag{background:rgba(0,0,0,.26);border:1px dashed rgba(255,255,255,.16)}
.rn-per .fita span.novo{background:rgba(91,141,239,.14);border-style:dashed}
.rn-per .fita-n{display:flex;gap:3px;margin-top:5px}
.rn-per .fita-n span{flex:var(--w) 1 0;min-width:10px;text-align:center;white-space:nowrap;overflow:hidden;font-size:var(--fs-xs);color:var(--text3);font-variant-numeric:tabular-nums}
.rn-per .blocos{margin-top:14px;display:flex;flex-direction:column;gap:6px}
/* 01/10 (Raphael: «não parece um botão») — linha vira botão, desenho do Jean Claude */
.rn-per .bl-row{display:grid;grid-template-columns:26px 1fr auto 32px 20px;align-items:center;gap:10px;min-height:44px;padding:0 6px 0 8px;border:1px solid var(--line,rgba(255,255,255,.08));border-radius:11px 11px 11px 5px;background:rgba(255,255,255,.025);font-size:var(--fs-sm);color:var(--text);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s,border-color .12s}
.rn-per .bl-row + .bl-row{margin-top:6px}
.rn-per .bl-row:hover{background:rgba(255,255,255,.05)}
.rn-per .bl-row:active{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22)}
.rn-per .bl-row .tr{display:inline-flex;align-items:center;gap:8px;color:var(--text2)}
.rn-per .bl-row .tr::after{content:"\203A";font-size:var(--fs-lg);line-height:1;color:var(--text3)}
.rn-per .bl-row.vazio .tx{color:var(--text3);font-style:italic}
.rn-per .bl-row .n{width:26px;height:26px;border-radius:8px 8px 8px 4px;border:1px solid rgba(91,141,239,.4);display:grid;place-items:center;font:500 var(--fs-xs)/1 var(--serif);color:var(--text)}
.rn-per .bl-row .tx b{font-weight:500}
.rn-per .bl-row .tx i{font-style:normal;color:var(--text2)}
.rn-per .bl-row .tr{font-size:var(--fs-xs);color:var(--text2);white-space:nowrap}
.rn-per .bl-row .drag{color:var(--text3);font-size:var(--fs-lg);letter-spacing:-.18em;line-height:1}
.rn-per .bl-row .drag{touch-action:none;cursor:grab;min-height:44px;display:grid;place-items:center;-webkit-user-select:none;user-select:none}
.rn-per .bl-row .drag.off{opacity:.35;cursor:default}
.rn-per .blocos .bl-row,.rn-per .blocos .bl-edit{transition:transform 180ms cubic-bezier(.2,.8,.2,1)}
.rn-per .bl-row.movendo{position:relative;z-index:5;transition:box-shadow 160ms ease;background:rgba(255,255,255,.06);box-shadow:0 0 0 1px rgba(201,162,39,.45),0 16px 32px rgba(0,0,0,.5);cursor:grabbing}
.rn-per .bl-row.movendo .drag{color:var(--gold,#c9a227)}
.rn-per .bl-row.caindo{transition:transform 260ms cubic-bezier(.34,1.36,.64,1),box-shadow 260ms ease}
.rn-per.arrastando .bl-row:not(.movendo),.arrastando .blocos .bl-row:not(.movendo){pointer-events:none}
@media (prefers-reduced-motion:reduce){.rn-per .blocos .bl-row,.rn-per .blocos .bl-edit,.rn-per .bl-row.caindo{transition:none!important}}
.rn-per .bl-row.apagando{outline:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26);color:var(--text2)}
.rn-per .bl-row.apagando .n{border-style:dashed;color:var(--text2)}
.rn-per .bl-row .bl-del,.rn-per .bl-row .bl-del-vazio{width:32px;height:32px}
.rn-per .bl-row .bl-del{position:relative;display:grid;place-items:center;padding:0;margin:0;border:1px solid transparent;border-radius:9px 9px 9px 4px;background:none;color:var(--text3);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.rn-per .bl-row .bl-del::before{content:"";position:absolute;inset:-6px}
.rn-per .bl-row .bl-del:hover,.rn-per .bl-row .bl-del:focus-visible{color:var(--text2);border-color:var(--line);outline:none}
.rn-per .bl-row.apagando .bl-del{color:var(--text2);border-color:rgba(255,255,255,.16);border-style:dashed}
.rn-per .bl-edit{margin-top:4px;padding:12px 12px 10px;border-radius:14px;border:1px solid rgba(201,162,39,.35);background:rgba(201,162,39,.04)}
.rn-per .bl-edit .bh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.rn-per .bl-edit .bh .eb{color:var(--ouro)}
.rn-per .bl-edit .herda{font-size:var(--fs-xs);color:var(--text2);font-style:italic;text-align:right}
.rn-per .campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.rn-per .cp{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:10px 10px 10px 5px;background:rgba(0,0,0,.26);min-height:52px}
.rn-per .cp span{display:block;font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--text3);white-space:nowrap}
.rn-per .cp b{display:block;font:500 var(--fs-lg)/1 var(--ui);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.rn-per .cp b small{font-size:var(--fs-xs);color:var(--text2);font-weight:400}
.rn-per .cp.ativo{border-color:var(--ouro);box-shadow:0 0 0 2px rgba(201,162,39,.25)}
.rn-per .conv{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;font-size:var(--fs-xs);color:var(--text2);line-height:1.4}
.rn-per .conv .i{margin-top:1px}
.rn-per .conv span{display:block;flex:1;min-width:0}
.rn-per .conv small{display:block;font-size:var(--fs-xs);color:var(--text3)}
.rn-per .conv .i{color:var(--azul)}
.rn-per .conv b{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}
.rn-per .conv.vazia b{color:var(--text2);font-style:italic}
.rn-per .freq-ask{margin-top:12px;padding:12px;border-radius:12px;border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26)}
.rn-per .freq-ask p{margin:0;font-size:var(--fs-sm);color:var(--text);line-height:1.45}
.rn-per .freq-ask .ops{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.rn-per .freq-ask .ops button{height:40px;min-width:52px;padding:0 12px;border:1px solid var(--line);border-radius:10px 10px 10px 5px;background:rgba(255,255,255,.02);color:var(--text);font:500 var(--fs-sm)/1 var(--ui)}
.rn-per .freq-ask .ops button:hover{border-color:rgba(201,162,39,.45)}
.rn-per .freq-ask small{display:block;margin-top:10px;font-size:var(--fs-xs);color:var(--text2);line-height:1.45}
.rn-per .bl-acoes{display:flex;justify-content:flex-end;margin-top:12px}
.rn-per .add{margin-top:8px;width:100%;min-height:48px;border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26);border-radius:12px;color:var(--text);font:500 var(--fs-sm)/1 var(--ui);display:flex;align-items:center;justify-content:center;gap:8px}
.rn-per .add i{font-style:italic;color:var(--text2);font-weight:400;font-size:var(--fs-xs)}
.rn-per .plano .nota{margin:10px 0 0;font-size:var(--fs-xs);color:var(--text3);line-height:1.45}
.rn-per .pe{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.rn-per .pe .cabpe{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.rn-per .gerada{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--fill);position:relative}
.rn-per .gerada .tag{position:absolute;top:-9px;right:12px;white-space:nowrap;font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--text2);background:var(--bg);padding:2px 7px;border:1px solid var(--line);border-radius:6px}
.rn-per .gerada .legp{margin:10px 0 0;font-size:var(--fs-xs);color:var(--text3);line-height:1.45}
.rn-per .obs{display:block;margin-top:14px}
.rn-per .obs .eb{display:block;margin-bottom:8px}
.rn-per .obs textarea{width:100%;min-height:88px;padding:12px 14px;border:1px solid var(--line);border-radius:14px 14px 14px 6px;background:rgba(0,0,0,.26);color:var(--text);font:italic 400 var(--fs-md)/1.5 var(--serif);resize:none;outline:0}
.rn-per .obs textarea:focus{border-color:rgba(201,162,39,.45)}
.rn-per .obs .legp{margin:8px 0 0;font-size:calc(var(--fs-xs) + 1px);color:var(--text3);line-height:1.45}  /* Raphael 27/09: «suba 1px» — 13→14px; nenhum token dá +1 exato */
.rn-per .ph-bloco{display:flex;flex-direction:column;gap:6px}
.rn-per .pb-1{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text);line-height:1.35}
.rn-per .pb-1 .ponto{align-self:center}
.rn-per .pb-1>*{white-space:nowrap}
.rn-per .pb-1 b{font:500 var(--fs-md)/1.2 var(--serif)}
.rn-per .pb-1 .volta{display:inline-flex;align-items:center;gap:5px;color:var(--text2)}
.rn-per .pb-1 .volta .i{width:14px;height:14px;color:var(--azul)}
.rn-per .pb-1 .sep{color:var(--text3)}
.rn-per .pb-2{display:flex;gap:14px;flex-wrap:wrap;padding-left:15px;font-size:var(--fs-xs);color:var(--text2);font-variant-numeric:tabular-nums}
.rn-per .pb-2 span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.rn-per .pb-2 .i{width:14px;height:14px;color:var(--azul)}
.rn-per .pb-2 .fecha{color:var(--text)}
.rn-per .ph-obs .eb{margin-bottom:5px}
.rn-per .ph-obs p{margin:0;font:italic 400 var(--fs-md)/1.5 var(--serif);color:var(--text);text-wrap:pretty}
.rn-per .foco{display:none}
.rn-per .foco-in{height:100%;display:flex;align-items:center;gap:8px;padding:0 10px 0 14px}
.rn-per .foco-in .onde{flex:1;min-width:0;font-size:var(--fs-xs);color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rn-per .foco-in .onde b{color:var(--text);font-weight:500}
.rn-per .foco-in .nav{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px 10px 10px 5px;background:rgba(255,255,255,.02);color:var(--text2)}
.rn-per .foco-in .pronto{height:44px;padding:0 14px;border:0;border-radius:10px 10px 10px 5px;background:rgba(201,162,39,.14);color:var(--ouro);font:500 var(--fs-sm)/1 var(--ui)}
.rn-per .veu{display:none;position:absolute;inset:0;z-index:50;background:rgba(8,6,4,.58);-webkit-backdrop-filter:blur(12px) saturate(115%);backdrop-filter:blur(12px) saturate(115%);align-items:flex-end;justify-content:center}   /* porte F2-2: véu v2 */
.rn-per .sheet{width:100%;padding:22px 20px 34px;background:linear-gradient(160deg,#262421,#1c1b19) padding-box,linear-gradient(150deg,rgba(236,214,170,.48) 0%,rgba(255,255,255,.28) 34%,rgba(255,255,255,.22) 100%) border-box;border:1px solid transparent;border-bottom:0;border-radius:18px 18px 0 0;box-shadow:0 -22px 60px -26px rgba(0,0,0,.85),inset 0 1px 0 rgba(238,231,218,.07)}   /* porte F2-2: placa chumbo */
.rn-per .sheet h3{margin:0;font:500 var(--fs-lg)/1.3 var(--serif)}
.rn-per .sheet p{margin:10px 0 0;font-size:var(--fs-sm);line-height:1.55;color:var(--text2);text-wrap:pretty}
.rn-per .sheet p b{color:var(--text);font-weight:500}
.rn-per .sheet .btns{display:flex;gap:10px;margin-top:22px}
.rn-per .sheet .btns>*{flex:1}
.rn-per .fita span.curso:before{content:"";position:absolute;left:0;top:50%;margin-top:-1px;height:2px;width:calc(var(--p,0)*100%);border-radius:2px;background:linear-gradient(90deg,rgba(201,162,39,.25),var(--ouro) 45%,var(--ouro-hi));box-shadow:0 0 8px rgba(201,162,39,.55);transition:width 600ms var(--ease);pointer-events:none}
.rn-per .fita span.curso:after{content:"";position:absolute;left:calc(var(--p,0)*100% - 3px);top:50%;margin-top:-3px;width:6px;height:6px;border-radius:50%;background:var(--ouro-hi);box-shadow:0 0 10px 2px rgba(226,194,94,.6);animation:rn-sg-pulso 2.4s var(--ease) infinite alternate;transition:left 600ms var(--ease);pointer-events:none}
@keyframes rn-sg-pulso{from{opacity:.55}to{opacity:1}}
.rn-per .fita span.feito{background:rgba(200,191,176,.10);border-color:rgba(200,191,176,.22)}
.rn-per .bl-edit .bh .eb{display:inline-flex;align-items:center;gap:8px}
.rn-per .conv [data-nome]{display:inline}
.rn-per .bl-row.feito{grid-template-columns:26px 1fr;row-gap:2px;padding-top:6px;padding-bottom:6px}
.rn-per .bl-row.feito .n{grid-row:span 2}
.rn-per .bl-row.feito .tr{grid-column:2}
.rn-per .bl-row.feito .n{border-color:rgba(200,191,176,.24);color:var(--text2)}
.rn-per .bl-row.feito .tx{color:var(--text2)}
.rn-per .bl-row.feito .tx b{font-weight:400}
.rn-per .bl-edit.feito{border-color:var(--line);background:none}
.rn-per .bl-edit.feito .bh .eb{color:var(--text3)}
.rn-per .bl-edit .bh .lido{font-size:var(--fs-xs);color:var(--text2);white-space:nowrap}
.rn-per .bl-edit.feito .campos{gap:0 16px}
.rn-per .bl-edit.feito .cp{min-height:40px;padding:0 2px;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;background:none}
.rn-per .bl-edit.feito .cp b{color:var(--text2)}
.rn-per .sheet .btns.pilha{flex-direction:column-reverse}
.rn-per .sheet .btns.pilha>*{flex:none}
.rn-per .plano.fixas .par{margin-bottom:2px}
.rn-per .par .guardado{display:block;margin-top:3px;font-size:var(--fs-xs);font-weight:400;color:var(--text3)}
.rn-per .bl-edit .herda{white-space:nowrap}
@media (prefers-reduced-motion:reduce){.rn-per .fita span.curso:before,.rn-per .fita span.curso:after{animation:none;transition:none}}
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){
.rn-per .campos{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.rn-per .conv{margin-top:8px}
.rn-per .bl-row{grid-template-columns:26px 1fr auto 32px 20px;min-height:44px}
.rn-per .veu{align-items:center}
.rn-per .sheet{max-width:480px;padding:22px 24px 24px;border-bottom:1px solid transparent;border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.62),0 2px 6px rgba(0,0,0,.4),inset 0 1px 0 rgba(238,231,218,.07)}
.rn-per .sheet .btns.pilha{flex-direction:row}
.rn-per .sheet .btns.pilha>*{flex:1}
.rn-per .cp{flex-direction:column;align-items:flex-start;justify-content:center;gap:5px}
}

/* ── o que o porte precisou somar (declarado na conversa pré-porte) ─────── */
/* .cp: o <input> entra onde o molde tem <b> (armadilha 3) — mesma letra do .cp b */
.rn-per .cp input{display:block;width:100%;min-width:0;margin:0;padding:0;border:0;outline:0;background:none;text-align:right;font:500 var(--fs-lg)/1 var(--ui);color:var(--text);font-variant-numeric:tabular-nums;-webkit-appearance:none;appearance:none}
/* folhas: o .veu do molde é absolute dentro do .phone; aqui o hospedeiro é fixo na tela */
.rn-per-folha{position:fixed;inset:0;z-index:10200}   /* porte janelas F2-2: J-031 no andar das folhas (era 10040) */
.rn-per .veu.on{display:flex}
/* linha de foco: .t-add-4 .foco do molde, sobre o teclado numérico do Montador (#wkbKeypad) */
.rn-per .foco.on{display:block;position:fixed;left:0;right:0;bottom:var(--teclado);z-index:10030;height:52px;background:rgba(10,8,6,.97);border-top:1px solid var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
/* ficha do aluno: `.fcard .rodape` do molde, sem a .fcard (conversa, item 3 do Jean Claude) */
.rn-per.rodape{margin:18px 16px 0;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:14px}
/* ficha do aluno R2 (26/09): o sinal do modo substitui o .em-fixo — nasce em TODO card quando há plano
   (fixo → ouro + alfinete; senão azul «Segue o bloco»). É <span>: o .em:last-of-type do ficha_v4.css conta divs.
   Molde: docs/rodada_ficha_cinema_2026-09-26/ficha-R2-porte-CSS-2026-09-26.html, a2 (verbatim). */
.em-modo{flex:0 0 100%;display:flex;align-items:flex-start;gap:6px;margin-top:8px;font:400 var(--fs-xs)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
.em-modo .i{width:14px;height:14px;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.em-modo span{flex:1;min-width:0}
.em-modo b{font-weight:500}
.em-modo i{font-style:normal;color:var(--text2)}
.em-modo i::before{content:' · '}
.em-modo:not(.fixo),.em-modo:not(.fixo) b{color:var(--azul)}
.em-modo.fixo,.em-modo.fixo b{color:var(--ouro)}
.em-modo.fixo .i{fill:rgba(201,162,39,.28)}
.ex-card.fixo .em{background:rgba(201,162,39,.035)}
.ex-card.done .em-modo,.ex-card.done .em-modo b,.ex-card.done .em-modo i{color:var(--text3)}
.ex-card.done .em-modo .i{fill:none}
/* a7 · a fita da temporada (valores do Montador) — só nasce quando o plano manda st.fita */
.rn-per .pb-fita{display:flex;gap:3px;height:8px;margin:2px 0 0 15px}
.pb-fita span{flex:var(--w) 1 0;min-width:8px;border-radius:3px;background:rgba(91,141,239,.32);border:1px solid rgba(91,141,239,.5);position:relative}
.pb-fita span.feito{background:rgba(200,191,176,.10);border-color:rgba(200,191,176,.22)}
.pb-fita span.curso:before{content:"";position:absolute;left:0;top:50%;margin-top:-1px;height:2px;width:calc(var(--p,0)*100%);border-radius:2px;background:linear-gradient(90deg,rgba(201,162,39,.25),var(--ouro) 45%,var(--ouro-hi));box-shadow:0 0 8px rgba(201,162,39,.55);transition:width 600ms var(--ease);pointer-events:none}
.pb-fita span.curso:after{content:"";position:absolute;left:calc(var(--p,0)*100% - 3px);top:50%;margin-top:-3px;width:6px;height:6px;border-radius:50%;background:var(--ouro-hi);box-shadow:0 0 10px 2px rgba(226,194,94,.6);animation:rn-sg-pulso 2.4s var(--ease) infinite alternate;transition:left 600ms var(--ease);pointer-events:none}
.pb-fita.volta span.curso:before{left:auto;right:0;background:linear-gradient(270deg,rgba(201,162,39,.25),var(--ouro) 45%,var(--ouro-hi))}
.pb-fita.volta span.curso:after{left:calc(100% - var(--p,0)*100% - 3px)}
/* ══ O CARD DO EXERCÍCIO NO MODELO DO JEAN CLAUDE (decisão de Raphael, 26/09 à noite) ══════════
   Molde: docs/rodada_periodizacao_2026-09-26/periodizacao-modo-exercicio-CSS-2026-09-26.html —
   `.stamp`, `.ex-t small`, `.ex-linha`, `.params`/`.param`, `.modo`, `.ex-nota`, COPIADOS.
   `.ex` do molde = o cartão real `.rn2-ex-card`, que MANTÉM o relevo que já tem (Rodada 49: fio
   .22 + bisel — mais forte que a borda chapada do molde) e o nome em serifa 18px (`.rn-name`).
   Tokens: o escopo do Montador só os define abaixo de 900px (medido 26/09), então o cartão ganha
   os valores oficiais em `--per-*` e a linha dos números mora num `.rn-per`. */
.rn2-ex-card{--per-text:#F0EBE0;--per-text2:#C8BFB0;--per-text3:#b1a99a;--per-ouro:#c9a227;--per-fs-xs:13px;--per-ui:'Jost','Avenir Next',system-ui,-apple-system,'Segoe UI',sans-serif;--per-serif:'Playfair Display',Georgia,serif}
.rn2-ex-card .stamp{width:28px;height:28px;border-radius:8px 8px 8px 4px;border:1px solid rgba(201,162,39,.24);background:rgba(201,162,39,.06);display:grid;place-items:center;color:var(--per-ouro);font:500 var(--per-fs-xs)/1 var(--per-serif);flex:none}
/* `.ex-t small` do molde: o grupo muscular embaixo do nome (b3: em --text2) */
/* o <small> do molde herda 400 do .ex-t; aqui o pai é o .rn-name (500 serifa), então peso e família vêm escritos */
.rn2-ex-card .rn-ex-grupo{display:block;margin-top:2px;color:var(--per-text2);font-size:var(--per-fs-xs);font-weight:400;font-family:var(--per-ui)}
/* conserto (a): `.ex-linha` = os três números + o par (só com plano) */
.rn-per .ex-linha{border-top:1px solid var(--line-soft)}
.rn-per .params{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.rn-per .param{position:relative;padding:9px 10px;border-right:1px solid var(--line-soft);transition:background 220ms var(--ease);cursor:pointer}
.rn-per .param:last-child{border-right:0}
/* ── 04/10 A CARGA NA GRADE (molde rodada_mais_usados_cabecalho_2026-10-04/card_final_jean.html,
   [CÓPIA]; MEDIDO a 375 no molde: «150,5 kg» 68/78px, «8–12» 44/48, CARGA+boneco 74/78).
   Carga por último e com filete (é a única que não segue o bloco). */
.rn-per .params.com-carga{grid-template-columns:.88fr .82fr 1.05fr 1.25fr}
.rn-per .params.com-carga > .param:nth-child(-n+2){padding-left:8px;padding-right:8px}
.rn-per .param.p-carga1{border-right:0;border-left:1px solid var(--card-line-1,rgba(255,255,255,.18));margin-left:-1px}
.rn-per .param.p-carga1 .p-rot{display:flex;align-items:center;justify-content:space-between;gap:6px;height:24px;margin:-6px 0 2px}
.rn-per .param.p-carga1 .p-rot i{font-style:normal;font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--text3);white-space:nowrap}
/* .p-rot e .p-kg são <span>: anulam o `.rn-per .param span` (rótulo em caixa alta) */
.rn-per .param.p-carga1 .p-rot,.rn-per .param.p-carga1 .p-kg{text-transform:none;letter-spacing:normal;color:inherit}
.rn-per .param.p-carga1 .p-kg{display:flex;align-items:baseline;gap:3px;white-space:nowrap;margin:0;font-size:inherit}
.rn-per .param.p-carga1 .p-kg b{display:inline;min-width:0}
/* a carga NUNCA segue o bloco: valor aceso mesmo com o card em «segue o bloco» */
.rn-per .param.p-carga1 .p-kg b.v:not(.empty){color:var(--text)}
/* em edição o <b> vira o campo: ocupa a célula, o «kg» some (MEDIDO: input não estoura a coluna) */
.rn-per .param.p-carga1 .p-kg b:has(input){flex:1 1 auto;display:block}
.rn-per .param.p-carga1 .p-kg b:has(input) + small{display:none}
.rn-per .param.p-carga1 .p-kg b input{width:100%;min-width:0}
.rn-per .param.p-carga1 .p-kg small{font:500 var(--fs-xs)/1 var(--ui);color:var(--text2)}
.rn-per .param.p-carga1.corp .p-kg b,.rn-per .param.p-carga1.corp .p-kg small{color:var(--ciano,#22d3ee)}
.rn-per .param.p-carga1.sem-peso .p-kg b,.rn-per .param.p-carga1.sem-peso .p-kg small{color:var(--text3)}
.rn-per .param.p-carga1.corp{cursor:default}
.rn-per .boneco{position:relative;z-index:2;flex:none;width:24px;height:24px;display:grid;place-items:center;padding:0;border:1px solid var(--line,rgba(255,255,255,.08));border-radius:7px 7px 7px 3px;background:rgba(255,255,255,.02);color:var(--text3);cursor:pointer}
.rn-per .boneco::before{content:"";position:absolute;inset:-10px}
.rn-per .boneco svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rn-per .boneco[aria-pressed="true"]{color:var(--ciano,#22d3ee);border-color:rgba(34,211,238,.45);background:rgba(34,211,238,.08)}
.rn2-ex-card.piram .rn-per .params.com-carga{grid-template-columns:repeat(3,minmax(0,1fr))}
/* título da lista dos mais usados (sem o botão ⭐, 04/10) */
.wkb-exercise-results .wkb-mu-tit{padding:8px 12px 6px;font-size:var(--fs-micro,11.5px);letter-spacing:.14em;text-transform:uppercase;color:var(--text3,#b1a99a)}
.rn-per .param span{display:block;font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin-bottom:4px;white-space:nowrap}
/* 12/10: o «?» «Por que comparamos pela meta de repetições» (js/core/ajudaRecorde.js) mora no rótulo Reps; a âncora v2 é <span> e não pode
   herdar o display:block acima (medido: o «?» caía na 2ª linha, embaixo do valor, e o toque ia pro data-tap="reps") */
.rn-per .param span.rnj-ancora{position:relative;z-index:2;display:inline-flex;vertical-align:middle;margin:-6px 0 -6px 2px;letter-spacing:0}   /* z-index: a área de toque ampliada do valor (b.v) cobria o «?» — medido com elementFromPoint */
.rn-per .param span.rnj-ancora .rn-ajuda::before,#wkBuilderOverlay .rn-per .param span.rnj-ancora .rn-ajuda::before{bottom:0}   /* o toque do «?» não desce sobre o valor logo abaixo (medido: cobria o centro do b.v; o #wkBuilderOverlay de montagem_v5.css:2162 devolvia os 44) */
.rn-per .param .rnj-balao{text-transform:none;letter-spacing:normal;white-space:normal;color:var(--rnj-text,var(--text));margin:0}   /* o balão do Mac nasce dentro do rótulo e não herda a caixa alta/nowrap dele (medido: só o título aparecia) */
.rn-per .param b{display:block;font:500 var(--fs-sm)/1 var(--ui);color:var(--text3);font-variant-numeric:tabular-nums;transition:color 220ms var(--ease)}
/* --text3 é o ESTADO «segue o bloco» (armadilha 4). Fixo — e, sem plano, o valor que é do
   próprio exercício — acende em --text (`.ex.fixo .param b` e `.sem-bloco .param b` dos moldes) */
.rn2-ex-card:not(.segue-bloco) .rn-per .param b{color:var(--text)}
.rn2-ex-card:not(.segue-bloco) .rn-per .param b.empty{color:var(--text3)}
.rn2-ex-card.fixo .rn-per .param{background:rgba(201,162,39,.035)}
/* o editor de toque de sempre: o valor é o alvo; a célula inteira é a área (cola do .rn-cell) */
.rn-per .param [data-tap]:not(:has(input))::after{content:'';position:absolute;inset:0}
/* o <input> entra no lugar do <b>; 16px pra o iOS não dar zoom no foco (abaixo disso ele aproxima) */
.rn-per .param input{display:block;width:100%;margin:0;padding:0;border:0;border-radius:0;outline:0;background:none;font:500 var(--fs-md)/1 var(--ui);color:var(--text);font-variant-numeric:tabular-nums}
.rn-per .modo{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin:6px 8px 8px;padding:3px;border:1px solid var(--card-line-1);border-radius:11px 11px 11px 5px;background:rgba(0,0,0,.26)}
.rn-per .modo button{height:34px;border:0;border-radius:8px 8px 8px 4px;background:none;color:var(--text2);font:500 var(--fs-xs)/1 var(--ui);display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;padding:0 10px;transition:background 220ms var(--ease),color 220ms var(--ease)}
.rn-per .modo button .i{width:15px;height:15px}
.rn-per .modo button:hover{color:var(--text)}
/* estado «segue o bloco»: azul = herda do plano; posição esquerda; ícone do plano */
.rn2-ex-card:not(.fixo) .rn-per .m-seg{background:rgba(91,141,239,.14);color:var(--azul)}
/* estado «fixo»: ouro = valor próprio; posição direita; alfinete cravado; números acesos */
.rn2-ex-card.fixo .rn-per .m-fix{background:rgba(201,162,39,.14);color:var(--ouro)}
.rn2-ex-card.fixo .rn-per .m-fix .i{fill:rgba(201,162,39,.28);animation:crava 220ms var(--ease) both}
@keyframes crava{from{transform:translateY(-3px);fill:transparent}to{transform:translateY(0)}}
.rn-per .ex-nota{margin:0;padding:0 12px 10px;font-size:var(--fs-xs);color:var(--text2);line-height:1.45;display:none}
.rn2-ex-card.fixo .rn-per .ex-nota{display:block}
.rn-per .ex-nota b{color:var(--text);font-weight:500}
/* Mac: mesmo markup; o par entra inline na 4ª coluna (bloco `.mac .ex-linha` do molde) */
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){
.rn-per .ex-linha{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.rn-per .ex-linha .modo{grid-template-columns:auto auto;margin:6px 8px 6px 0}
.rn-per .ex-linha .modo button{padding:0 12px}
}
@media (prefers-reduced-motion:reduce){.rn-per .modo button,.rn-per .modo .i,.rn-per .param,.rn-per .param b{animation:none!important;transition:none!important}}
/* MEDIDO 26/09 (Chromium, 375px): no .ex-metrics REAL da /ficha a 4ª peça não
   cabe — sobra 35px pra fora do cartão e «fixo» some cortado (a armadilha 7 da
   conversa previa). Onde não cabe, ela desce pra linha de baixo; onde cabe
   (Mac, 1280px: medido), fica ao lado. Nada some. */
/* .ex-metrics:has(> .em-fixo){flex-wrap} saiu com o .em-fixo (R2, 26/09) — o .em-modo ocupa a linha inteira por flex-basis 100% */
/* MEDIDO 26/09 (estilo computado, molde × app): duas regras do app vazavam no
   cartão — `#wkBuilderOverlay .eb{font-size:12px}` (id vence a classe) e
   `button{text-align:left}` (o molde contava com o centro do navegador). */
#wkBuilderOverlay .rn-per .eb{font-size:var(--fs-micro);font-weight:400;letter-spacing:.14em}
/* o molde herdava o padrão do navegador (line-height normal, botão centrado com
   padding 1px 6px); o app muda os três no corpo — aqui o cartão volta ao molde */
.rn-per{line-height:normal;font-family:var(--ui);font-size:var(--fs-md);color:var(--text)}   /* o `body` do molde */
.rn-per button{text-align:center;padding:1px 6px}
/* Mac: o `.mac .cp` do molde empilha rótulo e número à esquerda — o input segue o <b> */
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){.rn-per .cp input{text-align:left}}
/* b2 (molde periodizacao-modo-exercicio, aprovada 26/09; conversa com o Jean Claude): o trilho
   das abas JÁ existe (Rodada 49, superfície --fio-solido). Entra só o que o molde mudou nele — o
   ativo em tinta de ouro no lugar do ouro cheio. O contador escuro sumiria na tinta: vai pro --text3. */
#wkBuilderOverlay .rn-tab.active{background:rgba(201,162,39,.14);color:var(--gold)}
#wkBuilderOverlay .rn-tab.active i{color:#b1a99a}   /* --text3 oficial, literal: no Mac o escopo não o tem (medido) */
/* o fantasma do arrasto da aba é anexado no <body> (workoutBundle ~5263), fora do #wkBuilderOverlay */
.rnd-reorder-ghost-pill.rn-tab.active{background:rgba(201,162,39,.14);color:#c9a227}
.rnd-reorder-ghost-pill.rn-tab.active i{color:#b1a99a}

/* ══ MÉTODOS DE TREINO — MONTADOR (porte 27/09) ═══════════════════════════════════════════
   Molde: docs/rodada_metodos_treino_2026-09-26/metodos-treino-CSS-2026-09-26.html, do
   «(a) MONTADOR — a técnica» ao «fim do (a) MONTADOR». Traduções (as mesmas do porte do modo):
   `.ex` do molde = `.rn2-ex-card`; `.mac X` = @media (min-width:1024px); todo nó novo mora num
   `.rn-per` (os tokens oficiais só existem ali no Mac). `.ex.fixo .param .degraus b.v.empty`
   vira `.rn2-ex-card.piram …` (piramidal é sempre fixa; sem plano o cartão não leva `.fixo`).
   Cola do app (não é desenho): `.dg{position:relative}` — o `::after` de toque do `.param`
   (acima) cobriria a linha inteira e toda célula viraria a última; o <input> do editor de toque
   entra DENTRO do <b> (não no lugar dele), então o foco do `.dg-in` do molde veste o `b:has(input)`;
   `.par-b{margin-top:-12px}` desfaz o `gap:12px` da `.rn-list` (no molde era margem 8 → 0). */
/* a técnica (montagem_v5.css 347–371 + o que a entrega acrescenta) */
.rn2-ex-card .wkb-tec-x{position:relative;width:30px;height:30px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px 8px 8px 4px;color:var(--per-text3);font-size:var(--fs-md,16px);line-height:1}
.rn2-ex-card .wkb-tec-x:hover{color:var(--verm);border-color:rgba(240,97,107,.3)}
.rn2-ex-card .wkb-tec-x::before{content:"";position:absolute;inset:-6px}
.rn2-ex-card .wkb-tec-actions{display:inline-flex;align-items:center;gap:4px;margin-left:auto}
.rn2-ex-card .wkb-tec-actions .wkb-tec-info{margin-left:0}
.rn2-ex-card.menu-aberto{overflow:visible}
/* o «parear com…» pendente: ouro decide */
.wkb-tec-chip.pendente{border-style:solid;border-color:var(--per-ouro,#c9a227);color:var(--per-ouro,#c9a227);box-shadow:0 0 0 3px rgba(201,162,39,.16)}
/* a legenda gerada pelos grupos — sugestão, nunca decisão */
.tec-legenda.rn-per{margin:8px 0 0;font-size:var(--fs-xs);color:var(--text2);line-height:1.45;text-wrap:pretty}
.tec-legenda.rn-per b{color:var(--text);font-weight:500}
/* PIRAMIDAL: a célula Reps nasce N vezes */
.rn2-ex-card.piram .rn-per .params{grid-template-columns:repeat(2,minmax(0,1fr))}
.rn2-ex-card.piram .rn-per .param:nth-child(2){border-right:0}
.rn2-ex-card.piram .rn-per .param.p-reps,.rn2-ex-card.piram .rn-per .param.p-carga{grid-column:1/-1;border-right:0;border-top:1px solid var(--line-soft);padding:9px 10px 10px;cursor:default}
.rn-per .param .p-l{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rn-per .param .p-l .p-forma{display:inline-flex;align-items:center;gap:8px;font-style:normal;color:var(--text3)}
.rn-per .param .p-l .p-opt{font-style:normal;color:var(--text3);letter-spacing:.12em}
.rn-per .p-forma i{display:block;width:4px;height:calc(var(--f,1)*14px);border-radius:1px;background:var(--text3)}
.rn-per .p-forma .fb{display:inline-flex;align-items:flex-end;gap:2px;height:14px}
.rn-per .param .degraus{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0;font-size:inherit;letter-spacing:0;text-transform:none;white-space:normal}
.rn-per .degraus .dg{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;flex:1 0 44px;max-width:64px;margin:0}
.rn-per .degraus .dg small{font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--text3);font-variant-numeric:tabular-nums}
.rn-per .degraus b.v{display:grid;place-items:center;width:100%;height:44px;margin:0;padding:0;border:1px solid var(--card-line-1);border-radius:10px 10px 10px 5px;background:rgba(255,255,255,.03);font:600 var(--fs-lg)/1 var(--serif);font-variant-numeric:tabular-nums;color:var(--text);text-align:center;transition:border-color .16s var(--ease),background-color .16s var(--ease),box-shadow .16s var(--ease)}
.rn-per .degraus b.v:has(input){border-color:var(--ouro);background:rgba(201,162,39,.07);box-shadow:0 0 0 3px rgba(201,162,39,.22),0 0 22px rgba(201,162,39,.28)}
.rn-per .param .degraus b.v input{text-align:center;font:600 var(--fs-lg)/1 var(--serif);caret-color:var(--ouro);color:var(--text)}
/* o vazio clicável — o valor único da casa */
.rn2-ex-card.piram .rn-per .param .degraus b.v.empty{border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26);color:var(--text3);font-weight:400}
/* a sobra: digitada, guardada, fora do treino */
.rn2-ex-card.piram .rn-per .param .degraus b.v.sobra{border:1px dashed rgba(255,255,255,.16);background:none;color:var(--text3);font-weight:400}
.rn-per .degraus .dg-sobra small{color:var(--text3)}
.rn-per .param .degraus .dg-add{flex:0 0 52px;align-self:flex-start;height:44px;display:grid;place-items:center;margin:0;padding:0;border:none;border-radius:9px 9px 9px 4px;background:none;color:var(--ink3);font-size:var(--fs-md);line-height:1;cursor:pointer;transition:background .18s var(--ease)}
.rn-per .param .degraus .dg-add:hover,
.rn-per .param .degraus .dg-add:focus-visible{background:rgba(255,255,255,.04);outline:none}
.rn-per .param.p-carga.off{padding:8px 10px 10px}
.rn-per .param.p-carga.off .wkb-tec-pill.add{min-height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 11px;border:1px dashed rgba(238,231,218,.2);border-radius:9px 9px 9px 4px;background:none;color:var(--text3);font:500 var(--fs-sm)/1 var(--ui);white-space:nowrap}
.rn-per .dg-legenda{margin:0;padding:0 12px 10px;font-size:var(--fs-xs);color:var(--text2);line-height:1.45;text-wrap:pretty}
.rn-per .dg-legenda b{color:var(--text);font-weight:500}
/* piramidal força Fixo: o outro segmento apaga e não responde */
.rn2-ex-card.piram .rn-per .m-seg{color:var(--text3);pointer-events:none}
.rn2-ex-card.piram .rn-per .m-seg .i{opacity:.55}
/* Mac: na piramidal, a tarja do celular (os degraus precisam da largura) */
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){
.rn2-ex-card.piram .rn-per .ex-linha{grid-template-columns:minmax(0,1fr)}
.rn2-ex-card.piram .rn-per .ex-linha .modo{grid-template-columns:1fr 1fr;margin:6px 8px 8px}
}
/* O PAR: dois cards abraçados, sem wrapper (a lista é arrastável) */
.rn2-ex-card.par-a{border-bottom-width:0;border-radius:13px 13px 0 0}
.rn2-ex-card.par-b{margin-top:-12px;border-top:1px solid rgba(255,255,255,.05);border-radius:0 0 13px 13px}
.rn2-ex-card .par-cab.rn-per{display:flex;align-items:center;gap:8px;height:30px;margin:-12px -14px 10px;padding:0 12px;border-bottom:1px solid var(--line-soft);border-radius:13px 13px 0 0;background:rgba(255,255,255,.015);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--text3)}
.rn2-ex-card .par-cab.rn-per b{color:var(--text2);font-weight:500}
.rn2-ex-card .par-cab.rn-per span{font-size:var(--fs-xs);letter-spacing:0;text-transform:none;color:var(--text3)}
/* o fio: desce do carimbo do líder, sobe até o carimbo do parceiro (left = o centro do carimbo, medido) */
.rn2-ex-card.par-a::before,.rn2-ex-card.par-b::before{content:'';position:absolute;left:var(--par-fio-x,67px);width:2px;background:rgba(255,255,255,.28);pointer-events:none;z-index:0}
.rn2-ex-card.par-a::before{top:var(--par-fio-top,70px);bottom:0}
.rn2-ex-card.par-b::before{top:-1px;height:calc(var(--par-fio-b,12px) + 1px)}
.rn2-ex-card.par-a .stamp,.rn2-ex-card.par-b .stamp{position:relative;z-index:1;background:#16130c}
.rn2-ex-card.par-b .rn-per .param.p-int-par b{color:var(--text3);font-weight:400}
/* ══ fim dos MÉTODOS — MONTADOR ══ */
.rn-manchete .fecha,.rn-manchete b .fecha{color:var(--text)}

/* ══ MÉTODO DO BLOCO — Periodização (porte 28/09) ═════════════════════════════════════════
   Molde: docs/rodada_periodizacao_2026-09-26/metodo-do-bloco-2026-09-28.html
   Cópia literal: chip+menu (mesma peça de .wkb-tec-chip/.wkb-tec-menu do exercício,
   escopada aqui em .rn-per pra valer dentro do cartão do plano); a célula não-editável de
   Repetições quando o método não é Normal; o editor de degraus (.cp-piram), que reusa
   .param .degraus/.dg/b.v já existentes acima — só b.v.empty/.sobra precisavam de uma
   versão sem o prefixo .rn2-ex-card.piram, porque aqui o escopo é o .bl-edit do bloco. */
.rn-per .metodo-strip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px;position:relative}
.rn-per .metodo-strip .wkb-tec-chip{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 12px;border:1px solid rgba(201,162,39,.30);border-radius:11px 11px 11px 4px;background:rgba(201,162,39,.03);font-size:var(--fs-sm);font-weight:500;color:var(--text2)}
.rn-per .metodo-strip .wkb-tec-chip .r{color:var(--text3);font-weight:400}
.rn-per .metodo-strip .wkb-tec-chip .a{color:var(--ouro-hi)}
.rn-per .metodo-strip .wkb-tec-chip .car{width:8px;height:8px;opacity:.8}
.rn-per .metodo-strip .wkb-tec-chip.on{border-color:rgba(201,162,39,.45);background:rgba(201,162,39,.08)}
.rn-per .metodo-strip .wkb-tec-menu{display:none;box-sizing:border-box;text-align:left;position:absolute;left:0;top:calc(100% + 6px);z-index:30;min-width:250px;border:1px solid rgba(255,255,255,.14);border-radius:14px 14px 14px 6px;background:var(--bg);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 18px 40px rgba(0,0,0,.5);padding:6px}
.rn-per .metodo-strip .wkb-tec-menu.open{display:block}
/* 29/09 (Raphael: «retângulo fino por cima dos seletores»): a folha do celular do montagem_v5
   (@media max-width:1023 → bottom/right/max-height/margin) vazava aqui; com top E bottom o menu
   absoluto encolhia a 14px vazio, por cima de Semanas/Séries. O balão da periodização não é folha. */
.rn-per .metodo-strip .wkb-tec-menu{right:auto;bottom:auto;margin:0;max-width:none;max-height:none;overflow:visible;translate:none}   /* 11/10: a folha do celular centra por `translate:0 -50%` (C-1090) — vazava aqui e jogava o balão pra cima dos blocos, sob o cabeçalho (Piramidal não pegava) */
.rn-per .metodo-strip .wkb-tec-menu-eb{margin:0 0 4px;padding:10px 12px 10px;border-bottom:1px solid rgba(255,255,255,.08);font:600 var(--fs-xs)/1.3 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ouro)}
.rn-per .metodo-strip .wkb-tec-menu-eb b{display:block;margin-top:4px;font:500 var(--fs-md)/1.25 var(--serif);letter-spacing:0;text-transform:none;color:var(--text)}
.rn-per .metodo-strip .wkb-tec-menu button{position:relative;display:block;width:100%;min-height:44px;margin:0;padding:12px 14px;border:1px solid transparent;border-radius:12px 12px 12px 5px;background:none;text-align:left;color:var(--text);font:500 var(--fs-md)/1.2 var(--serif)}
.rn-per .metodo-strip .wkb-tec-menu button+button{margin-top:1px}
.rn-per .metodo-strip .wkb-tec-menu button:hover:not([disabled]){background:rgba(255,255,255,.05)}
.rn-per .metodo-strip .wkb-tec-menu button.wkb-tec-menu-cur{border-color:rgba(226,194,94,.62);background:rgba(201,162,39,.11);color:var(--ouro-hi)}
.rn-per .metodo-strip .wkb-tec-menu button small{display:block;margin-top:4px;font:400 var(--fs-sm)/1.4 var(--ui);color:var(--text2)}
.rn-per .metodo-strip .wkb-tec-menu button[disabled]{cursor:default;font:italic 400 var(--fs-md)/1.3 var(--ui);color:var(--text2)}
.rn-per .metodo-strip .wkb-tec-menu button[disabled] small{color:var(--text3)}
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){.rn-per .metodo-strip .wkb-tec-menu{width:min(320px,calc(100vw - 32px))}}
/* a célula Repetições quando o método não é Normal — não-editável, ponte pro editor abaixo */
.rn-per .cp.cp-reps-piram{cursor:pointer}
.rn-per .cp.cp-reps-piram b{color:var(--text2);font:500 var(--fs-sm)/1.15 var(--ui);white-space:normal}
.rn-per .cp.cp-reps-piram .p-forma{display:inline-flex;align-items:flex-end;gap:2px;height:12px;margin-right:6px;vertical-align:-1px}
.rn-per .cp.cp-reps-piram .p-forma i{display:block;width:3px;height:calc(var(--f,1)*12px);border-radius:1px;background:var(--text3)}
.rn-per .cp.cp-reps-piram .ver{display:block;font-size:var(--fs-micro);color:var(--text3);text-transform:none;letter-spacing:0;margin-top:2px}
/* o editor de degraus do BLOCO — mesma peça .param .degraus/.dg/b.v, célula de largura cheia */
.rn-per .cp-piram{grid-column:1/-1;flex-direction:column;align-items:stretch;gap:8px;min-height:0;padding:12px 12px 12px;cursor:default}
.rn-per .cp-piram .cpp-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.rn-per .cp-piram .cpp-tip{font-size:var(--fs-xs);color:var(--text3);text-transform:none;letter-spacing:0;font-style:italic;white-space:normal;text-align:right}
.rn-per .cp-piram .degraus{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.rn-per .degraus b.v.empty{border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26);color:var(--text3);font-weight:400}
.rn-per .degraus b.v.sobra{border:1px dashed rgba(255,255,255,.16);background:none;color:var(--text3);font-weight:400}
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){.rn-per .cp-piram{grid-column:1/-1}}
/* 29/09 (Raphael): a célula Repetições Piramidal transbordava pra cima do Intervalo no celular.
   Numa linha só: barrinhas + «Piramidal»; a dica «toque nos degraus abaixo» só no Mac (no celular
   o editor já está logo abaixo). Tamanhos de letra intactos. */
.rn-per .cp.cp-reps-piram{flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding-top:6px;padding-bottom:6px}
.rn-per .cp.cp-reps-piram b{display:inline-flex;align-items:center;white-space:nowrap;max-width:100%}
@media (max-width:1023px), (pointer:coarse) and (max-height:500px){.rn-per .cp.cp-reps-piram .ver{display:none}}
/* o «+» de mais uma série no fim dos degraus do bloco */
.rn-per .cp-piram .degraus .dg-add{flex:0 0 44px;align-self:flex-end;height:44px;display:grid;place-items:center;margin:0;padding:0;border:1px dashed rgba(201,162,39,.45);border-radius:10px 10px 10px 5px;background:none;color:var(--ouro);font:500 var(--fs-lg)/1 var(--ui);cursor:pointer}
/* ══ fim MÉTODO DO BLOCO ══ */
/* «Eu monto» (09/10): o bloco aberto pisca uma vez em ouro — «aponta pra onde ele vai editar» (Raphael) */
@keyframes euMontoAqui{0%{box-shadow:0 0 0 0 rgba(201,162,39,.0)}25%{box-shadow:0 0 0 3px rgba(201,162,39,.55)}100%{box-shadow:0 0 0 0 rgba(201,162,39,0)}}
.rn-per .bl-edit.eu-monto-aqui{animation:euMontoAqui 1.6s cubic-bezier(.2,.8,.2,1) 1}
@media (prefers-reduced-motion:reduce){.rn-per .bl-edit.eu-monto-aqui{animation:none;border-color:rgba(201,162,39,.7)}}
/* C-1341 (Raphael 13/10 + Jean): seta que recolhe o bloco aberto (celular) — ic-chev girado, 14px, alvo 44 */
.rn-per .bl-recolher{margin:-8px -10px -8px auto;width:44px;height:44px;flex:none;display:grid;place-items:center;border:0;background:none;color:var(--text3);cursor:pointer;-webkit-tap-highlight-color:transparent}
.rn-per .bl-recolher svg,.rn-per .bl-recolher .i{width:14px;height:14px;transform:rotate(-90deg)}
.rn-per .bl-recolher:active,.rn-per .bl-recolher:focus-visible{color:var(--text)}
/* C-1341: «Voltar ao Meu cérebro» — desenho do Botão Voltar padrão (#wkhVoltar), fonte da escala */
.per-volta-cerebro{display:inline-flex;align-items:center;gap:7px;height:44px;margin:0 0 8px;padding:0 14px 0 10px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;background:rgba(255,255,255,.02);color:var(--text2);font:400 var(--fs-xs)/1 var(--ui);letter-spacing:.02em;white-space:nowrap;cursor:pointer;transition:color .18s var(--ease),border-color .18s var(--ease)}
.per-volta-cerebro .i,.per-volta-cerebro svg{width:16px;height:16px;flex:none}
.per-volta-cerebro:hover,.per-volta-cerebro:active{color:var(--text);border-color:rgba(255,255,255,.16)}
