/* ══════════════════════════════════════════════════════════════════════
   COCKPIT · PROPOSTA B — "AUTORAL" · rodada 09/08/2026
   Base: montagem_v4.css aprovada e no ar, INTACTA até a marca "RODADA
   COCKPIT · B" lá embaixo. Nenhum id, data-* ou classe renomeada; todo
   estado do esqueleto tem regra. Elementos novos: rnd-* (montador) e
   rnd-hub-* (hub) — acrescentados.
   Hipótese B: comando é LEITURA VIVA, não repertório — módulos com filete
   de acento (linguagem chart-card do app), o copiloto fala primeiro e as
   ações nomeadas vêm depois, mini-HUD fixo no celular (tempo/volume sempre
   à vista), o Hub responde "o que preciso fazer agora?" numa frase.
   Roxo só no copiloto RN IA. Dourado escasso: o agora e a ação primária.
   Fontes pelos stacks (o app embarca). Celular 390 primeiro; Mac ≥900.
   ══════════════════════════════════════════════════════════════════════ */
:root{--bg:#0a0806;--ink:#eee7da;--ink2:#b1a99a;--ink3:#7a7060;--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.05);--gold:#c9a227;--gold2:#e2c25e;--ia:#9d5cff;--ciano:#22d3ee;--azul:#5b8def;--verde:#3ddc97;--lemon:#fde047;--verm:#f0616b;--vz-baixo:#5b8def;--vz-ideal:#3ddc97;--vz-acima:#e2c25e;--vz-limite:#e8862e;--vz-excesso:#f0616b;--vz-marker:#f0d789;--ease:cubic-bezier(.23,1,.32,1)}

/* ── BASE ── */
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:400 15px/1.5 Jost,'Avenir Next',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--gold2);text-decoration:none}
a:hover{color:var(--gold)}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:left}
input,select,textarea{font:inherit;color:var(--ink);background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:9px 9px 9px 4px;padding:9px 12px}
input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(201,162,39,.5)}
input[type="checkbox"]{padding:0}
select{-webkit-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%239a9384' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
textarea{resize:vertical;min-height:64px}
[hidden]{display:none!important}
:focus-visible{outline:2px solid rgba(226,194,94,.6);outline-offset:2px}
.i{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.eb{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.17em;color:var(--ink3);text-transform:uppercase}
.tabnum{font-variant-numeric:tabular-nums}
/* realce genérico que o motor aplica (trecho buscado, opção sugerida) */
.hl{background:rgba(201,162,39,.14);border-radius:3px}

/* ── O PALCO: overlays do app (.open é o motor) ── */
/* glow do RN IA desce pra ABAIXO do header (entrega Design 13/08): era at -8% -10%,
   nascia no topo e tingia o cabeçalho; agora at -8% 34%, no corpo do montador. */
.wkb-overlay{position:fixed;inset:0;display:none;background:radial-gradient(1100px 760px at 88% -12%,rgba(201,162,39,.09),transparent 60%),radial-gradient(620px 380px at -8% 34%,rgba(157,92,255,.07),transparent 62%),linear-gradient(#0a0806,#070505)}
.wkb-overlay.open{display:block}
#wkBuilderOverlay{z-index:9810}
#wkHubOverlay{z-index:9800}
/* o app trava a rolagem de trás enquanto um overlay vive */
body.rnp-wkb-open{overflow:hidden}
.wkb-panel{height:100dvh;display:flex;flex-direction:column}
#wkHubOverlay .wkb-panel{background:var(--bg);overflow:auto;display:block}

/* ── HUB ── */
.wkh-eyebrow{font-size:12px;font-weight:500;letter-spacing:.18em;color:var(--ink2);text-transform:uppercase}
.wkh-body{max-width:640px;margin:0 auto;padding:0 18px 90px}
.wkh-top{display:flex;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top) + 40px) 0 10px;background:#0a0806}
#wkhVoltar{display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 14px 0 10px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);font-size:13.5px;background:rgba(255,255,255,.02);transition:all .18s var(--ease)}
#wkhVoltar:hover{color:var(--ink);border-color:rgba(255,255,255,.16)}
.wkh-toptitle{flex:1;text-align:center;font-size:var(--fs-xs,13px);font-weight:500;letter-spacing:.2em;color:var(--ink3)}
#wkhClose{width:44px;height:44px;display:grid;place-items:center;border:1px solid transparent;border-radius:11px 11px 11px 5px;color:var(--ink2);transition:all .18s var(--ease)}
#wkhClose:hover{color:var(--ink);border-color:var(--line)}
.wkh-h1{margin:18px 0 4px;font:500 34px/1.05 'Playfair Display',Georgia,serif}
.wkh-sub{font-size:var(--fs-sm,14.5px);color:var(--ink2)}
.wkh-ai{margin-top:22px;border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:13px 13px 13px 6px;padding:14px 16px}
.wkh-ai .wkh-eyebrow{color:var(--gold)}
.wkh-ai p{margin:6px 0 0;font-size:var(--fs-sm,14.5px);color:var(--ink2);text-wrap:pretty}
.wkh-hero{display:flex;align-items:center;gap:16px;width:100%;margin-top:14px;padding:20px 18px;background:linear-gradient(135deg,rgba(201,162,39,.13),rgba(201,162,39,.05));border:1px solid rgba(201,162,39,.35);border-radius:16px 16px 16px 7px;transition:border-color .18s var(--ease)}
.wkh-hero:hover{border-color:rgba(226,194,94,.6)}
.wkh-hero-ic{width:46px;height:46px;display:grid;place-items:center;background:var(--gold);color:#0a0806;border-radius:13px 13px 13px 6px;flex:none}
.wkh-hero-t{font:500 20px 'Playfair Display',Georgia,serif;color:var(--ink)}
.wkh-hero-s{font-size:var(--fs-xs,13px);color:var(--ink2);margin-top:3px;text-wrap:pretty}
.wkh-hero .i-arrow{margin-left:auto;color:var(--gold2)}
.wkh-row{display:flex;align-items:center;gap:13px;width:100%;margin-top:10px;padding:14px 16px;border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:13px 13px 13px 6px;transition:border-color .18s var(--ease)}
.wkh-row:hover{border-color:var(--line)}
.wkh-row-ic{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px 10px 10px 5px;color:var(--gold2);flex:none}
.wkh-row-t{font-weight:500;font-size:16.5px}
.wkh-row-m{font-size:var(--fs-sm,14.5px);color:var(--ink2);margin-top:2px}
.wkh-row .i-arrow{margin-left:auto;color:var(--ink3)}
.wkh-sec{margin-top:30px}
.wkh-fichas-sec{margin-top:30px}
.wkh-sec-head{display:flex;align-items:baseline;gap:10px}
.wkh-sec-head .n{font-size:13.5px;color:var(--ink2);font-variant-numeric:tabular-nums}
.wkh-lib{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.wkh-lib-c{border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:13px 13px 13px 6px;padding:14px 16px;transition:border-color .18s var(--ease)}
.wkh-lib-c:hover{border-color:var(--line)}
.wkh-lib-top{display:flex;align-items:center;gap:11px}
.wkh-lib-ic{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(201,162,39,.3);background:rgba(201,162,39,.06);border-radius:10px 10px 10px 5px;color:var(--gold2);flex:none}
.wkh-lib-t{font:500 17px 'Playfair Display',Georgia,serif}
.wkh-lib-m{font-size:var(--fs-xs,13px);color:var(--ink3);margin-top:2px;font-variant-numeric:tabular-nums}
.wkh-lib-actions{display:flex;gap:8px;margin-top:12px}
.wkh-apply{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 16px;background:var(--gold);color:#0a0806;font-weight:500;font-size:13.5px;border-radius:10px 10px 10px 5px;transition:filter .18s var(--ease)}
.wkh-apply:hover{filter:brightness(1.08)}
.wkh-open{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 14px;border:1px solid var(--line);color:var(--ink2);font-size:13.5px;border-radius:10px 10px 10px 5px;transition:all .18s var(--ease)}
.wkh-open:hover{color:var(--ink);border-color:rgba(255,255,255,.16)}
.wkh-fichas{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.wkh-fichas .wkh-ficha{margin-top:0}
.wkh-ficha{display:flex;align-items:center;gap:12px;width:100%;padding:13px 16px;border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:13px 13px 13px 6px;margin-top:10px;transition:border-color .18s var(--ease)}
.wkh-ficha:hover{border-color:var(--line)}
.wkh-swatch{width:7px;height:26px;border-radius:4px;flex:none}
.wkh-ficha-t{font:500 var(--fs-lg,18px) 'Playfair Display',Georgia,serif}
.wkh-ficha-m{font-size:15px;color:var(--ink2);margin-top:2px}
.wkh-ficha .i-arrow{margin-left:auto;color:var(--ink3)}
.wkh-empty{display:none;border:1px dashed rgba(238,231,218,.16);background:rgba(0,0,0,.25);border-radius:13px 13px 13px 6px;padding:16px 18px;font-size:13.5px;color:var(--ink3);margin-top:12px;text-wrap:pretty}
body.wkh-vazio .wkh-empty{display:block}
body.wkh-vazio #wkhResumeBtn,body.wkh-vazio .wkh-lib,body.wkh-vazio .wkh-fichas{display:none}
.wkh-note{margin-top:26px;font-size:var(--fs-xs,13px);color:var(--ink3)}
.wkh-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.wkh-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;max-width:100%;padding:10px 16px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);font-size:var(--fs-sm,14.5px);text-align:left;transition:all .18s var(--ease)}
.wkh-chip b{width:7px;height:22px;border-radius:4px;flex:none}
.wkh-chip.active{border-color:rgba(226,194,94,.6);color:var(--ink);background:rgba(201,162,39,.07)}
.wkh-cta{flex:1;display:inline-flex;align-items:center;justify-content:center;height:48px;background:var(--gold);color:#0a0806;font-weight:500;border-radius:12px 12px 12px 6px}
.wkh-ghost{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 18px;border:1px solid var(--line);color:var(--ink2);border-radius:12px 12px 12px 6px}
.wkh-toast{position:fixed;left:50%;transform:translateX(-50%) translateY(8px);bottom:calc(env(safe-area-inset-bottom) + 90px);z-index:9880;background:rgba(24,20,14,.96);border:1px solid rgba(201,162,39,.4);color:var(--ink);font-size:13.5px;padding:12px 18px;border-radius:12px 12px 12px 6px;opacity:0;pointer-events:none;transition:all .22s var(--ease)}
.wkh-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.wkh-ai,.wkh-hero,#wkhResumeBtn,.wkh-sec{animation:rise .22s var(--ease) both}
.wkh-hero{animation-delay:.04s}
#wkhResumeBtn{animation-delay:.07s}
.wkh-sec{animation-delay:.1s}

/* ── MONTADOR · topo ── */
/* header OPACO (entrega Design 13/08): o roxo do RN IA não vaza mais por baixo.
   Fundo obsidiano sólido + blur — bloqueia qualquer glow de trás, venha de onde vier. */
.rn2-mobile-top{display:flex;align-items:center;gap:10px;padding:var(--topo-seguro) 16px 10px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#0b0907,#0a0806);backdrop-filter:blur(16px);flex:none}
#wkbMobileBackBtn{flex:none;display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 12px 0 10px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);font-size:13.5px}
#wkbMobileBackBtn .i{width:18px;height:18px;flex:none}
.wkb-toptitle{flex:1;min-width:0;text-align:center}
.wkb-toptitle .eb{color:var(--gold)}
.wkb-topname,#wkbTopName{font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#wkbClose{width:44px;height:44px;display:grid;place-items:center;border:1px solid transparent;border-radius:11px 11px 11px 5px;color:var(--ink2)}
#wkbClose:hover{color:var(--ink);border-color:var(--line)}
#wkbCancelBtn,.wkb-head-actions{display:none}

/* ── MONTADOR · corpo ── */
.wkb-body,#wkbBody{flex:1;overflow:auto;padding:16px 16px 40px;-webkit-overflow-scrolling:touch}
/* a barra inferior existe → o corpo respira acima dela (dois ganchos do motor) */
.wkb-body.rn-has-bottom-bar{padding-bottom:calc(env(safe-area-inset-bottom) + 28px)}
body.rnp-wkb-bottombar-open .wkb-body{padding-bottom:calc(env(safe-area-inset-bottom) + 28px)}
body.wkb-kb-open #wkbBody{padding-bottom:300px}
/* erro de validação: o motor só escreve o texto — com texto, aparece */
.wkb-error{display:none;border:1px solid rgba(240,97,107,.4);background:rgba(240,97,107,.06);color:var(--verm);font-size:13.5px;border-radius:11px 11px 11px 5px;padding:11px 14px;margin-bottom:12px}
.wkb-error:not(:empty){display:block}

/* ── FAIXA DO ALUNO ── */
.rn-strip{border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:14px 14px 14px 6px;padding:14px 16px}
.rn-strip-row{display:flex;align-items:center;gap:12px}
/* a cor do aluno é dado, não pele: o motor escreve o background inline.
   O default abaixo É o estado "sem aluno" (avatar "?"). */
#rnStripAvatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif;color:var(--ink3);background:rgba(255,255,255,.06);box-shadow:0 0 0 2px rgba(255,255,255,.08);flex:none}
#rnStripName{font:500 19px 'Playfair Display',Georgia,serif;line-height:1.1}
#rnStripBio{font-size:var(--fs-xs,13px);color:var(--ink3);margin-top:2px}
#rnStripBio:empty{display:none}
#rnEditToggle{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);font-size:var(--fs-xs,13px);flex:none}
#rnEditToggle:hover{color:var(--ink)}
#rnEditChevron{transition:transform .28s var(--ease)}
body.rn-edit-open #rnEditChevron{transform:rotate(180deg)}
#rnStripSaude{display:inline-flex;align-items:flex-start;gap:7px;margin-top:12px;padding:9px 12px;border:1px solid rgba(253,224,71,.25);background:rgba(253,224,71,.05);border-radius:10px 10px 10px 5px;color:var(--lemon);font-size:var(--fs-xs,13px);text-align:left;min-height:44px}
#rnStripSaude .i{width:14px;height:14px}
#rnStripSaudeDetail{display:none;margin-top:12px;border-top:1px solid var(--line2);padding-top:12px;font-size:13.5px;color:var(--ink2);text-wrap:pretty}
body.rn-saude-open #rnStripSaudeDetail,#rnStripSaudeDetail.open{display:block;animation:rise .22s var(--ease) both}
#rnStripSaudeDetail .sd-row{display:flex;gap:8px;margin-top:6px}
#rnStripSaudeDetail .sd-l{color:var(--ink3);min-width:110px;font-size:var(--fs-xs,13px);letter-spacing:.08em;text-transform:uppercase;padding-top:2px}
.sd-escala{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.sd-escala span{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs,13px);color:var(--ink3)}
.sd-escala b{width:7px;height:7px;border-radius:50%}
#rnEditFields{display:none;margin-top:14px;border-top:1px solid var(--line2);padding-top:14px}
body.rn-edit-open #rnEditFields,#rnEditFields.open{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;animation:rise .22s var(--ease) both}
#rnEditFields label{display:flex;flex-direction:column;gap:5px;font-size:var(--fs-micro,11.5px);letter-spacing:.12em;color:var(--ink3);text-transform:uppercase;font-weight:500}
#rnEditFields .full{grid-column:1/-1}
/* 27/09 (C-1020): 1fr cedia ao min-content dos campos e a grade passava da borda do card (245+156 em 307px — «Selecione» saindo no print de Raphael); minmax(0,…) segura a grade na largura do card */

/* ── ABAS (1 a 6, rótulo do professor — desenhado para texto longo) ── */
.rn-tabs{display:flex;gap:4px;margin-top:14px;background:rgba(255,255,255,.03);border:1px solid var(--line2);border-radius:13px 13px 13px 6px;padding:4px;position:relative;touch-action:pan-y}
.rn-tab{flex:1;min-width:0;min-height:46px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 10px;border-radius:9px 9px 9px 4px;color:var(--ink2);font-weight:600;font-size:15px;letter-spacing:.05em;white-space:nowrap;overflow:hidden;transition:background .18s var(--ease);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-y;will-change:transform}
.rn-tab i{font-style:normal;font-size:var(--fs-xs,13px);color:var(--ink3);font-variant-numeric:tabular-nums}
.rn-tab:hover{background:rgba(255,255,255,.04)}
.rn-tab.active{background:var(--gold);color:#0a0806}
.rn-tab.active i{color:rgba(10,8,6,.7)}
.rn-tab-add{flex:0 0 52px;color:var(--ink3)}

/* ── INSTRUMENTOS ── */
.rn-instruments{margin-top:14px}
.rn-metrics-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.rn-metric{position:relative;border:1px solid var(--line2);background:rgba(255,255,255,.03);border-radius:11px 11px 11px 5px;padding:10px 12px 9px;min-height:64px;display:flex;flex-direction:column-reverse;gap:2px}
.rn-metric .l{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.14em;color:var(--ink3);text-transform:uppercase}
.rn-metric .v{font:500 var(--fs-lg,18px) 'Playfair Display',Georgia,serif;font-variant-numeric:tabular-nums;color:var(--ink)}
.rn-metric .v small{font-family:Jost,sans-serif;font-size:var(--fs-xs,13px);color:var(--ink3);font-weight:400}
.rn-metric-info{position:absolute;top:6px;right:6px;width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--line2);border-radius:7px 7px 7px 3px;color:var(--ink3);font-size:var(--fs-xs,13px)}
.rn-metric-info:hover{color:var(--gold2);border-color:rgba(201,162,39,.4)}
button.rn-metric{cursor:pointer}
button.rn-metric:hover{border-color:var(--line)}
.wkb-volume-toggle{text-align:left}
/* C-278 (24/08): invólucro do botão "?" do Volume — `.rn-metric` (o toggle)
   fica intocado por dentro; isto só dá o encaixe de fora, esticando pra
   preencher a célula do grid exatamente como o botão sozinho já fazia. */
.rn-metric-cell{position:relative}
.rn-metric-cell .rn-metric{width:100%;height:100%}
.rn-metric .modo{position:absolute;top:8px;right:8px;color:var(--ink3)}

/* ── VOLUME POR GRUPO (estrutura do motor: track de 3 zonas com flex
     escrito no JS + marcador posicionado por left:% — nada fixado aqui) ── */
.wkb-vi{margin-top:10px;border:1px solid var(--line2);background:rgba(255,255,255,.025);border-radius:13px 13px 13px 6px;padding:14px 16px 12px}
.wkb-vi-head{display:flex;align-items:center;gap:8px}
.wkb-vi-head .eb{color:var(--gold)}
#wkbVolumeInteligenteInfoBtn{margin-left:auto;width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--line2);border-radius:7px 7px 7px 3px;color:var(--ink3);font-size:var(--fs-xs,13px)}
#wkbVolumeInteligenteInfoBtn:hover{color:var(--gold2);border-color:rgba(201,162,39,.4)}
.wkb-vi-row{padding:10px 0 11px;border-top:1px solid var(--line2)}
.wkb-vi-head + .wkb-vi-row{border-top:0;margin-top:6px}
.wkb-vi-row-top{display:flex;align-items:baseline;gap:10px}
.wkb-vi-grupo{flex:1;min-width:0;font-size:13.5px;color:var(--ink2)}
.wkb-vi-valor{font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.wkb-vi-valor small{font-family:Jost,'Avenir Next',system-ui,sans-serif;font-size:var(--fs-xs,13px);font-weight:400;color:var(--ink3);letter-spacing:.02em}
.wkb-vi-bar{position:relative;margin-top:7px;height:7px}
.wkb-vi-bar-track{position:absolute;inset:0;display:flex;gap:2px;border-radius:4px;overflow:hidden}
.wkb-vi-bar-seg{height:100%}
.wkb-vi-bar-baixo{background:rgba(91,141,239,.30)}
.wkb-vi-bar-ideal{background:rgba(61,220,151,.32)}
.wkb-vi-bar-acima{background:rgba(226,194,94,.32)}
.wkb-vi-mark{position:absolute;top:-2.5px;bottom:-2.5px;width:3px;border-radius:2px;background:var(--vz-marker);box-shadow:0 0 8px rgba(240,215,137,.75);transform:translateX(-50%)}
/* o rótulo textual carrega o tom (cor nunca sozinha) */
.wkb-vi-baixo .wkb-vi-valor small{color:var(--vz-baixo)}
.wkb-vi-ideal .wkb-vi-valor small{color:var(--vz-ideal)}
.wkb-vi-acima .wkb-vi-valor small{color:var(--vz-acima)}
/* vazio: aparece sozinho quando não há linha entre o cabeçalho e ele */
.wkb-vi-empty{display:none;margin:10px 0 2px;padding:12px 14px;border:1px dashed rgba(238,231,218,.16);background:rgba(0,0,0,.25);border-radius:10px 10px 10px 5px;font-size:var(--fs-xs,13px);color:var(--ink3);text-wrap:pretty}
.wkb-vi-head + .wkb-vi-empty{display:block}
/* leitura antiga do painel de volume (pele aprovada — segue valendo) */
.vi-name{font-size:13.5px;color:var(--ink2)}
.vi-n{font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif;font-variant-numeric:tabular-nums;justify-self:end}
.vi-selo{font-size:var(--fs-xs,13px);font-weight:500;letter-spacing:.06em;padding:3px 9px;border-radius:7px 7px 7px 3px;border:1px solid}
.tom-baixo{color:var(--vz-baixo);border-color:rgba(91,141,239,.35);background:rgba(91,141,239,.07)}
.tom-ideal{color:var(--vz-ideal);border-color:rgba(61,220,151,.35);background:rgba(61,220,151,.07)}
.tom-acima{color:var(--vz-acima);border-color:rgba(226,194,94,.4);background:rgba(226,194,94,.07)}
.tom-limite{color:var(--vz-limite);border-color:rgba(232,134,46,.4);background:rgba(232,134,46,.08)}
.tom-excesso{color:var(--vz-excesso);border-color:rgba(240,97,107,.4);background:rgba(240,97,107,.08)}
.vi-bar{grid-column:1/-1;position:relative;height:7px;border-radius:4px;overflow:hidden;display:flex}
.vi-bar b{height:100%}
.vi-bar .z1{width:18%;background:rgba(91,141,239,.32)}
.vi-bar .z2{width:39%;background:rgba(61,220,151,.34)}
.vi-bar .z3{width:14%;background:rgba(226,194,94,.36)}
.vi-bar .z4{width:14%;background:rgba(232,134,46,.36)}
.vi-bar .z5{width:15%;background:rgba(240,97,107,.34)}
.vi-mark{position:absolute;top:-2px;bottom:-2px;width:3px;border-radius:2px;background:var(--vz-marker);box-shadow:0 0 8px rgba(240,215,137,.75)}
.wkb-vi-note{margin-top:10px;font-size:var(--fs-xs,13px);color:var(--ink3);text-wrap:pretty}

/* ── PAINEL E LISTA ── */
.rn-panel{display:none}
.rn-panel.active{display:block;animation:rise .22s var(--ease) both}
.rn-block-label{display:flex;align-items:center;gap:8px;margin:18px 2px 10px}
#rnBlockLabel{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.17em;color:var(--gold);text-transform:uppercase;border:0;background:none;padding:0}
.rn-block-label .i{width:12px;height:12px;color:var(--ink3)}
.rn-list{display:flex;flex-direction:column;gap:12px}

/* ── O CARTÃO ── */
.rn2-ex-card{position:relative;border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:14px 14px 14px 6px;padding:12px 14px;transition:border-color .18s var(--ease),transform .18s var(--ease),opacity .18s var(--ease)}
.rn2-ex-card.editing{border-color:rgba(201,162,39,.45)}
.rn-ex-head{display:flex;align-items:center;gap:10px}
.rnd-alca{width:30px;min-height:44px;display:grid;place-items:center;color:var(--ink3);cursor:grab;flex:none;border-radius:8px;touch-action:none}
.rnd-alca:hover{color:var(--ink2)}
.rnd-alca:active{cursor:grabbing;color:var(--gold2)}
.rn-alca{width:30px;height:44px;display:grid;place-items:center;color:var(--ink3);cursor:grab;flex:none;border-radius:8px}
.rn-alca:hover{color:var(--ink2)}
.rn-num{width:20px;font:500 var(--fs-xs,13px) Jost,'Avenir Next',system-ui,sans-serif;color:var(--ink3);font-variant-numeric:tabular-nums;flex:none}
.rn-name{flex:1;min-width:0;font:500 var(--fs-lg,18px)/1.2 'Playfair Display',Georgia,serif;color:var(--ink);padding:6px 0;cursor:text;position:relative}
.rn-name .empty{color:var(--ink3);font-family:Jost,'Avenir Next',system-ui,sans-serif;font-size:15px;font-weight:400}
.rn-name input{width:100%;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:4px 0;font:500 var(--fs-lg,18px) 'Playfair Display',Georgia,serif;color:var(--ink)}
.rn-name input::placeholder{color:var(--ink3);font-family:Jost,sans-serif;font-size:15px;font-weight:400}
.rn-name input:focus{border-color:var(--gold)}
.wkb-exercise-search-wrap{position:relative;cursor:default}
.rn-par-tag{display:inline-flex;align-items:center;gap:6px;margin:2px 0 0 60px;font-size:var(--fs-xs,13px);color:var(--ink3)}
.rn-par-tag b{width:14px;height:2px;border-radius:2px;background:var(--gold);opacity:.6}

/* células de valor — o toque troca o texto por <input> no lugar */
.rn-cells{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.rn-cell{position:relative;border:1px solid var(--line2);background:rgba(255,255,255,.025);border-radius:10px 10px 10px 5px;padding:8px 10px;min-height:54px;display:flex;flex-direction:column-reverse;gap:1px;cursor:pointer;transition:border-color .18s var(--ease)}
.rn-cell:hover{border-color:var(--line)}
.rn-cell.focus,.rn-cell:has(.rn2-tap-input:focus){border-color:rgba(201,162,39,.55);box-shadow:0 0 0 1px rgba(201,162,39,.25)}
.rn-cell .v{font-weight:500;font-size:var(--fs-md,16px);font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;overflow:hidden}
.rn-cell .v.empty{color:var(--ink3);font-weight:400}
.rn-cell .l{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.13em;color:var(--ink3);text-transform:uppercase}
.rn-cell input{width:100%;background:none;border:0;padding:0;font-weight:500;font-size:var(--fs-md,16px);font-variant-numeric:tabular-nums;border-radius:0}
.rn2-tap-input{caret-color:var(--gold2)}
.wkb-num-field{caret-color:var(--gold2);letter-spacing:.02em;font-variant-numeric:tabular-nums}
/* cola do porte: data-tap mora no VALOR — a célula inteira vira alvo;
   o ::after some durante a edição para o input receber o caret */
.rn-cell [data-tap]:not(:has(input))::after{content:'';position:absolute;inset:0}
.rn-name [data-tap]:not(:has(input))::after{content:'';position:absolute;inset:0}

/* cadência e RIR */
/* "+ Cadência e RIR" — botão de verdade, em dourado forte (ordem do dono 11/08:
   "cores mais fortes, como um botão mesmo, com o padrão oficial de cores").
   Fundo dourado preenchido + borda sólida #c9a227 (herói) + tinta #e2c25e.

   Duas travas, não uma:
   1) o seletor carrega `[data-more-toggle]` (0,2,1) em vez de ser só
      `.rn-more` (0,1,0). O clientsBundle injeta `.rn-more` no head e estilo
      injetado ganha do <link> por vir depois; a origem foi escopada lá, mas a
      especificidade aqui é a rede. O atributo também impede o caminho
      inverso: o `•••` de Alunos é `.rn-more` e NÃO pode herdar este dourado
      (medido em bancada — com `button.rn-more` ele herdava glow e padding).
   2) hex literal em vez de var(--gold2) — `css/styles.css` define
      --gold2:#B8832A (escuro) no mesmo :root global. Hoje montagem_v5 carrega
      depois e vence, mas a ordem das folhas não é contrato. */
button.rn-more[data-more-toggle]{position:relative;display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding:9px 15px;min-height:40px;font-size:13.5px;font-weight:600;color:#e2c25e;background:linear-gradient(180deg,rgba(201,162,39,.26),rgba(201,162,39,.13));border:1px solid #c9a227;border-radius:10px 10px 10px 5px;box-shadow:0 6px 16px -10px rgba(201,162,39,.85)}
button.rn-more[data-more-toggle]:hover{color:#0a0806;background:linear-gradient(180deg,#e2c25e,#c9a227);border-color:#e2c25e}
button.rn-more[data-more-toggle]:active{transform:translateY(1px)}
.rn-more-panel{display:none;margin-top:8px}
.rn-more-panel.open{display:grid;grid-template-columns:1fr 1fr;gap:8px;animation:rise .22s var(--ease) both}
.rn-more-panel .rnd-peso-check{grid-column:1/-1}
/* C-1391: o editor da cadência nasce EMBAIXO do mostrador, linha inteira (molde rodada_tecnicas_ficha_2026-10-04) — na grade de 2 colunas ele ia pro lado e esticava o mostrador */
.rn-more-panel .rn-cad-guia,.rn-more-panel .rn-cad-livre{grid-column:1/-1}
/* A instrução que o aluno lê (C-81, 19/08). Ocupa a largura inteira do
   painel: é texto corrido, não célula de número. Rótulo com a mesma voz dos
   outros campos do montador; o textarea herda a regra global do arquivo
   (`input,select,textarea` no topo), então nenhuma pele nova entra aqui. */
.rn-more-panel .rn-txt-full{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;margin-top:4px;font-size:var(--fs-xs,13px);color:var(--ink3)}
.rn-more-panel .rn-txt-full textarea{min-height:52px;font-size:13.5px;color:var(--ink2)}
.rnd-peso-check{display:flex;align-items:center;gap:9px;margin-top:2px;min-height:34px;font-size:13.5px;color:var(--ink2);cursor:pointer}
.rnd-peso-check input{width:17px;height:17px;accent-color:#c9a227;padding:0}
.rn-peso{display:flex;align-items:center;gap:9px;margin-top:10px;font-size:13.5px;color:var(--ink2)}
.rn-peso input{width:17px;height:17px;accent-color:#c9a227;padding:0}
.rn-peso em{font-style:normal;color:var(--ink3);font-size:var(--fs-xs,13px);font-variant-numeric:tabular-nums}

/* ── AVISO DE SAÚDE — 5 tons, observacional: informa, não alarma.
     A cor segue o papel: avaliar=limão · adiar=azul(tempo) · evitar=vermelho
     · adaptar=ciano(corpo) · indicado=verde. Sempre com a frase junto. ── */
.wkb-saude-badge{display:flex;align-items:flex-start;gap:9px;margin:10px 0 2px 60px;padding:10px 12px;border-radius:10px 10px 10px 5px;border:1px solid var(--line);background:rgba(255,255,255,.02);--sd:#fde047}
.wkb-saude-dot{width:7px;height:7px;border-radius:50%;margin-top:5px;flex:none;background:var(--sd);box-shadow:0 0 7px color-mix(in oklab,var(--sd) 55%,transparent)}
.wkb-saude-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.wkb-saude-frase{font-size:13.5px;font-weight:500;color:color-mix(in oklab,var(--sd) 78%,var(--ink))}
.wkb-saude-cond{font-size:var(--fs-xs,13px);color:var(--ink2);text-wrap:pretty}
.wkb-saude-rel{color:var(--ink3)}
.wkb-saude-avaliar{--sd:#fde047;border-color:rgba(253,224,71,.22);background:rgba(253,224,71,.04)}
.wkb-saude-adiar{--sd:#5b8def;border-color:rgba(91,141,239,.25);background:rgba(91,141,239,.05)}
.wkb-saude-evitar{--sd:#f0616b;border-color:rgba(240,97,107,.26);background:rgba(240,97,107,.05)}
.wkb-saude-adaptar{--sd:#22d3ee;border-color:rgba(34,211,238,.22);background:rgba(34,211,238,.04)}
.wkb-saude-indicado{--sd:#3ddc97;border-color:rgba(61,220,151,.22);background:rgba(61,220,151,.04)}
/* peças da pele aprovada do aviso (seguem valendo) */
.wkb-saude-badge em{font-style:normal;color:var(--ink3)}
.wkb-saude-info{margin-left:auto;color:var(--ink3);font-size:var(--fs-xs,13px);border:1px solid var(--line2);border-radius:6px 6px 6px 3px;width:20px;height:20px;display:grid;place-items:center;flex:none}
.wkb-saude-tip{display:none;margin:6px 0 2px 60px;padding:10px 12px;border:1px dashed rgba(238,231,218,.16);background:rgba(0,0,0,.25);border-radius:10px 10px 10px 5px;font-size:var(--fs-xs,13px);color:var(--ink2);text-wrap:pretty}
.wkb-saude-tip.open{display:block}

/* ── TÉCNICA ── */
.wkb-tec-strip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px;position:relative}
/* chip «+ Técnica» — porte 27/09, cópia literal de docs/rodada_menu_tecnica_2026-09-27/chip-tecnica-v1.html (aprovado por Raphael) */
.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;cursor:pointer}
.wkb-tec-chip .r{color:var(--text3);font-weight:400}
.wkb-tec-chip .a{color:var(--gold2)}
.wkb-tec-chip .car{width:8px;height:8px;opacity:.8}
.wkb-tec-chip.on{border-color:rgba(201,162,39,.45);background:rgba(201,162,39,.08)}
.wkb-tec-pill{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 11px;border:1px solid var(--line);background:rgba(255,255,255,.02);border-radius:9px 9px 9px 4px;font-size:var(--fs-xs,13px);color:var(--ink2);font-variant-numeric:tabular-nums;transition:all .18s var(--ease)}
.wkb-tec-pill:hover{border-color:rgba(255,255,255,.16);color:var(--ink)}
.wkb-tec-pill.on{border-color:rgba(201,162,39,.4);background:rgba(201,162,39,.07);color:var(--gold2)}
.wkb-tec-pill.add{border-style:dashed;border-color:rgba(238,231,218,.2);background:none;color:var(--ink3)}
.wkb-tec-pill.add:hover{color:var(--ink2)}
.wkb-tec-remove{position:relative;width:30px;height:30px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px 8px 8px 4px;color:var(--ink3);font-size:var(--fs-md,16px);line-height:1}
.wkb-tec-remove:hover{color:var(--verm);border-color:rgba(240,97,107,.3)}
.wkb-tec-info{position:relative;margin-left:auto;width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--line2);border-radius:7px 7px 7px 3px;color:var(--ink3);font-size:var(--fs-xs,13px)}
.wkb-tec-info:hover{color:var(--gold2);border-color:rgba(201,162,39,.4)}
/* alvo de toque 44px sem inflar o visual: área de acerto invisível */
.wkb-tec-chip::before,.wkb-tec-pill::before,.wkb-tec-remove::before,.wkb-tec-info::before,.rn-metric-info::before,#wkbVolumeInteligenteInfoBtn::before,.rn-more::before{content:"";position:absolute;inset:-6px}
/* rótulo de pílula («Acessório», «Pausa»…) — achado do Jean no porte dos métodos
   novos (27/09): existia sem token nenhum de fonte/brilho, abaixo do padrão de
   legibilidade (regra 23/09). Cópia literal do desenho aprovado (BLOCO C). */
.wkb-tec-label{font:500 var(--fs-micro,11.5px)/1 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);text-transform:uppercase;letter-spacing:.12em;color:var(--text3,#b1a99a);margin-left:2px}
/* ── LINHA SOB A FAIXA — métodos novos (27/09): peso estimado da oclusão,
   nota fixa do FST-7, ou "sem base pra estimar". Cópia literal do desenho
   aprovado (BLOCO D, metodos_novos-CSS-2026-09-27.html). */
.tec-linha{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:2px;margin:10px 0 0;font-family:var(--ui,'Jost','Avenir Next',system-ui,sans-serif);text-wrap:pretty}
.tec-linha .tl-eb{flex:none;font:500 var(--fs-micro,11.5px)/1.4 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--text3,#b1a99a)}
.tec-linha--peso .tl-n{font:500 var(--fs-md,16px)/1.3 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);color:var(--text,#F0EBE0);font-variant-numeric:tabular-nums;white-space:nowrap;border-bottom:1px dashed rgba(226,194,94,.55);padding-bottom:1px}
.tec-linha--peso .tl-un{font:400 var(--fs-sm,14.5px)/1.3 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);color:var(--text2,#C8BFB0)}
.tec-linha--peso .tl-base{flex:0 0 100%;font:400 var(--fs-xs,13px)/1.45 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);color:var(--text2,#C8BFB0)}
.tec-linha--vazio .tl-t{font:400 var(--fs-xs,13px)/1.45 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);color:var(--text2,#C8BFB0)}
.tec-linha--nota .tl-t{flex:0 0 100%;font:400 var(--fs-sm,14.5px)/1.45 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);color:var(--text2,#C8BFB0)}
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){.tec-linha--peso .tl-base{flex:0 1 auto}}
/* ── FICHA DO ALUNO — peso estimado (oclusão) e nota fixa (FST-7 no relógio
   de descanso). Cópia literal do desenho aprovado (BLOCO G). */
.em-peso{flex:0 0 100%;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;margin-top:8px;font:400 var(--fs-xs,13px)/1.4 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);color:var(--text2,#C8BFB0);text-wrap:pretty}
.em-peso .ep-eb{font:500 var(--fs-micro,11.5px)/1.4 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--text3,#b1a99a)}
.em-peso b{font:500 var(--fs-md,16px)/1.3 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);color:var(--text,#F0EBE0);font-variant-numeric:tabular-nums;white-space:nowrap;border-bottom:1px dashed rgba(226,194,94,.55);padding-bottom:1px}
.em-peso .ep-un{font-size:var(--fs-sm,14.5px)}
.ex-card.done .em-peso,.ex-card.done .em-peso b{color:var(--text3,#b1a99a);border-color:rgba(200,191,176,.35)}
.tim-nota{grid-column:1/-1;justify-self:stretch;margin:2px 0 0;padding-top:12px;border-top:1px solid var(--line);font:400 var(--fs-md,16px)/1.45 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);color:var(--text2,#C8BFB0);text-align:center;text-wrap:pretty}
.tim-nota .tn-eb{display:block;margin-bottom:4px;font:500 var(--fs-micro,11.5px)/1 var(--ui,'Jost','Avenir Next',system-ui,sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
/* ══ MENU DE MÉTODOS (e «parear com…») — v3, porte 27/09: cópia literal do bloco «PRA PORTAR» de
   docs/rodada_menu_tecnica_2026-09-27/menu-tecnica-v3.html (aprovado por Raphael). Letra no nível do card do Montador,
   fio de luz nos quatro lados, itens com o «aceso» do card. O balão do Mac (≥1024) fica como estava (Mac segurado). ══ */
.wkb-tec-menu{
  --fs-micro:11.5px;--fs-xs:13px;--fs-sm:14.5px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;
  --text:#F0EBE0;--text2:#C8BFB0;--text3:#b1a99a;--gold:#c9a227;--gold2:#e2c25e;
  --ui:'Jost','Avenir Next',system-ui,-apple-system,'Segoe UI',sans-serif;
  --serif:'Playfair Display',Georgia,serif;
  --ease:cubic-bezier(.23,1,.32,1);
  --fio-1:linear-gradient(180deg,rgba(255,255,255,.36),rgba(255,255,255,.14) 45%,rgba(255,255,255,.06));
  --fio-solido:rgba(255,255,255,.22);
  --fio-solido-ouro:rgba(226,194,94,.62);
  --bisel:inset 0 1px 0 rgba(255,255,255,.07);
  --sopro:linear-gradient(180deg,rgba(255,255,255,.04),transparent 40%);
  --sopro-ouro:linear-gradient(180deg,rgba(201,162,39,.11),transparent 46%);
  --brasa:0 14px 34px -18px rgba(201,162,39,.65);
  --papel:linear-gradient(160deg,#262421,#1c1b19);   /* porte janelas F2-2: J-030 no chumbo do v2 (era obsidiana) */
  display:none;box-sizing:border-box;text-align:left;
  border:1px solid transparent;
  background:var(--sopro) padding-box,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,#1c1b19;   /* porte F2-2: placa e aro do v2 */
  box-shadow:var(--bisel),0 18px 40px rgba(0,0,0,.5)}
.wkb-tec-menu.open{display:block}
.wkb-tec-menu-eb{position:sticky;top:0;z-index:1;margin:0 0 4px;padding:12px 14px 12px;background:var(--papel);
  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(--gold);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.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);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wkb-tec-menu button{position:relative;display:block;width:100%;min-height:44px;margin:0;padding:12px 14px;border:1px solid transparent;
  border-radius:14px 14px 14px 6px;
  background:none;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;
  font:500 var(--fs-lg)/1.2 var(--serif);color:var(--text);
  transition:background-color .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease)}
.wkb-tec-menu button+button{margin-top:1px}
.wkb-tec-menu button+button::before{content:'';position:absolute;left:14px;right:14px;top:-1px;height:1px;background:rgba(255,255,255,.05);pointer-events:none}
.wkb-tec-menu button.wkb-tec-menu-cur::before,.wkb-tec-menu button.wkb-tec-menu-cur+button::before,
.wkb-tec-menu button.hl::before,.wkb-tec-menu button.hl+button::before{display:none}
.wkb-tec-menu small{display:block;margin-top:4px;font:400 var(--fs-sm)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
@media(hover:hover){.wkb-tec-menu button:not([disabled]):not([aria-disabled="true"]):hover{background:rgba(255,255,255,.05)}}
.wkb-tec-menu button:active{background:rgba(255,255,255,.05)}
.wkb-tec-menu button.hl{border-color:var(--fio-solido);background:var(--sopro);box-shadow:var(--bisel)}
.wkb-tec-menu button.wkb-tec-menu-cur{border-color:var(--fio-solido-ouro);background:var(--sopro-ouro);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),var(--brasa);color:var(--gold2)}
.wkb-tec-menu button.wkb-tec-menu-cur small{color:var(--text2)}
.wkb-tec-menu button:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.wkb-tec-menu button.novo{margin-top:10px;border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26);
  font:600 var(--fs-md)/1.25 var(--ui);color:var(--text2)}
.wkb-tec-menu button.novo::before{display:none}
.wkb-tec-menu button.novo small{color:var(--text3)}
.wkb-tec-menu button[disabled],.wkb-tec-menu button[aria-disabled="true"]{cursor:default;font:italic 400 var(--fs-md)/1.3 var(--ui);color:var(--text2)}
/* teto de 3 métodos (01/10, Raphael+Jean): esmaecido = serifa→Jost itálico e --text2 (sem opacity, o contraste segue); o 1º leva a frase do motivo em --text2 */
@media(hover:hover){.wkb-tec-menu button[aria-disabled="true"]:hover{background:none}}
/* C-1085 (30/09, Jean Claude): cabeçalho/lista — base neutra (o Mac não muda) */
.wkb-tec-menu-eb-t{margin:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wkb-tec-menu-lista{display:block}
.wkb-tec-menu .wkb-tec-menu-x{display:none}
@media (max-width:1023px), (pointer:coarse) and (max-height:500px){
  .wkb-tec-menu{position:fixed;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 10px);top:auto;z-index:9870;
    max-width:540px;margin:0 auto;
    max-height:calc(100dvh - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px) - 32px - 96px);
    overflow:hidden;border-radius:14px 14px 14px 6px;padding:0}
  .wkb-tec-menu.open{display:flex;flex-direction:column;animation:wkb-tec-sobe .22s var(--ease) both}
  .wkb-tec-menu-eb{position:static;flex:0 0 auto;display:flex;align-items:center;gap:8px;
    margin:0;padding:10px 6px 10px 22px;border-radius:13px 13px 0 0;background:#0a0806;white-space:normal;overflow:visible}
  .wkb-tec-menu-eb-t{flex:1 1 auto}
  .wkb-tec-menu .wkb-tec-menu-x{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;
    margin:0;padding:0;border:1px solid var(--line,rgba(255,255,255,.12));border-radius:11px 11px 11px 5px;
    background:rgba(255,255,255,.03);color:var(--text2);font:inherit}
  .wkb-tec-menu .wkb-tec-menu-x::before{display:none}
  .wkb-tec-menu .wkb-tec-menu-x:active{background:rgba(255,255,255,.08);color:var(--text)}
  .wkb-tec-menu-lista{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    padding:4px 8px 8px}
  /* 30/09 (Raphael no iPhone): a folha parecia «descer além do rodapé» — o fio
     da borda (--fio-1) some embaixo e ela estava presa no pé da tela. Agora
     fica no MEIO da tela e a borda é uma linha só, igual nos quatro lados. */
  /* C-1090 (30/09, Raphael: a lista não rolava, só 4 métodos, card gigante): no iPhone o
     `height:fit-content` com top:0/bottom:0 cai no auto e a folha estica a tela inteira.
     Centra por `translate` (soma com o transform da animação) e a altura segue o conteúdo. */
  .wkb-tec-menu{top:50%;bottom:auto;margin:0 auto;height:auto;translate:0 -50%;
    background:var(--sopro) padding-box,linear-gradient(rgba(255,255,255,.03),rgba(255,255,255,.03)) padding-box,
      linear-gradient(#0a0806,#0a0806) padding-box,linear-gradient(rgba(255,255,255,.16),rgba(255,255,255,.16)) border-box,#0a0806}
  .wkb-tec-scrim{position:fixed;inset:0;z-index:9869;background:var(--rnj-veu,rgba(8,6,4,.58));-webkit-backdrop-filter:blur(12px) saturate(115%);backdrop-filter:blur(12px) saturate(115%)} /* F3-1: véu v2 */
}
/* ── MAC (≥1024): o BALÃO ANCORADO, preso ao chip — geometria da v1, inalterada ── */
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){
  .wkb-tec-menu{position:absolute;left:0;top:calc(100% + 8px);z-index:30;width:min(340px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;  /* 27/09 C-1023: min(70vh,560) cortava o 7º item do menu v3 (letra 18) — agora cabe inteiro; a janela ainda limita */
    border-radius:12px 12px 12px 6px;padding:6px}
  .wkb-tec-menu.open{animation:wkb-tec-sobe .18s var(--ease) both}
  .wkb-tec-scrim{display:none}
}
/* folha aberta: o que flutua por cima dela sai (o molde mostra só a barra sob o scrim — por isso não é a
   body.rnp-wkb-sheet-open, que esconderia a barra) */
body.rnp-wkb-tec-open #wkbKeypad,body.rnp-wkb-tec-open .wkb-reps-suggest,body.rnp-wkb-tec-open #rndOrdemPill{display:none}
@keyframes wkb-tec-sobe{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.wkb-tec-menu.open{animation:none}.wkb-tec-menu button{transition:none}}

/* ── BUSCA DENTRO DO CARTÃO (abre em fluxo, empurra o conteúdo) ── */
.wkb-exercise-results{display:none;margin-top:8px;padding:4px 6px;border:1px solid transparent;border-radius:14px 14px 14px 7px;color:var(--rnj-text,#eee7da);
  /* C-1435 (19/10, Raphael: «tá com a identidade visual completamente da antiga»): a superfície do SELETOR v2 — chumbo + aro champanhe (janela_contexto_v2.css .rnj) */
  background:linear-gradient(160deg,var(--rnj-chumbo-1,#262421) 0%,var(--rnj-chumbo-0,#1c1b19) 100%) padding-box,
             linear-gradient(150deg,rgba(var(--rnj-champ,226,205,150),.48) 0%,rgba(255,255,255,.28) 34%,rgba(255,255,255,.22) 100%) border-box;
  box-shadow:0 18px 44px -10px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.06)}
.wkb-exercise-results.open{display:block;animation:rise .18s var(--ease) both}
.wkb-exercise-result-item{position:relative;display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 12px 10px 14px;border-radius:10px 10px 10px 5px;min-height:48px;justify-content:center}
.wkb-exercise-result-item+.wkb-exercise-result-item::before{content:"";position:absolute;top:0;left:14px;right:12px;height:1px;background:rgba(255,255,255,.06)}   /* o fio do .rnj-opcao */
.wkb-exercise-result-item:hover,.wkb-exercise-result-item.active{background:rgba(255,255,255,.035)}
.wkb-exercise-result-item:active{background:rgba(255,255,255,.06)}
.wkb-exercise-result-item .rt{font-weight:500;font-size:var(--fs-sm,14.5px);color:var(--ink)}
.wkb-exercise-result-item .rm{font-size:var(--fs-xs,13px);color:var(--ink3)}
.wkb-exercise-result-item .rs{font-size:var(--fs-xs,13px)}
/* ⭐ por grupo (04/10) — [CÓPIA] fonte: docs/rodada_estrela_por_grupo_2026-10-04/PRA_O_JEAN/lista_estrela_por_grupo.html (.gcab/.it/.normal) */
.wkb-exercise-results.wkb-res-estrela{padding:0;overflow:auto}
.wkb-res-gcab{position:sticky;top:0;z-index:1;height:30px;display:flex;align-items:center;gap:8px;padding:0 14px;background:rgba(24,20,14,.98);border-bottom:1px solid var(--line);font-size:var(--fs-micro,11.5px);letter-spacing:.14em;text-transform:uppercase;color:var(--text2,#C8BFB0)}
.wkb-res-gcab.subiu{color:var(--gold,#c9a227)}
.wkb-res-gcab .tag{margin-left:auto;letter-spacing:.12em;color:var(--gold,#c9a227)}
.wkb-res-gcab .tag.vazio{color:var(--text3,#b1a99a)}
.wkb-res-gcab{position:static}
.wkb-exercise-result-item.wkb-res-it{flex-direction:row;align-items:center;gap:10px;height:44px;min-height:44px;padding:0 14px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.05)}
.wkb-res-it .st{color:var(--gold,#c9a227);width:16px;flex:none;font-size:var(--fs-md,16px)}
.wkb-res-it .rt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400;font-size:var(--fs-md,16px);text-align:left}
.wkb-res-it .lado{font-size:var(--fs-xs,13px);color:var(--text3,#b1a99a);flex:none}
.wkb-res-it.feito .rt,.wkb-res-it.feito .st{color:var(--text3,#b1a99a)}
.wkb-res-it.n .st{visibility:hidden}
.wkb-res-normal{padding:10px 14px 4px;font-size:var(--fs-micro,11.5px);letter-spacing:.14em;text-transform:uppercase;color:var(--text3,#b1a99a)}
.rs.tem{color:var(--verde)}
.rs.similar{color:var(--lemon)}
.rs.nao{color:var(--ink3)}
.wkb-mais-usados-btn{display:inline-flex;align-items:center;gap:7px;margin-top:8px;padding:8px 12px;min-height:38px;border:1px solid var(--line);border-radius:10px 10px 10px 5px;color:var(--ink2);font-size:var(--fs-xs,13px)}
.wkb-mais-usados-btn:hover{color:var(--gold2);border-color:rgba(201,162,39,.35)}
.wkb-mais-usados-btn.active{color:var(--gold2);border-color:rgba(201,162,39,.4)}

/* ── C-357 (27/08): cards recolhíveis — cópia literal da rodada de Design,
   adaptada aos nomes reais de classe/id (o specimen supôs alguns diferentes
   dos que o app usa). Recolhido por padrão; o nome abre/fecha (toque curto)
   e segura apertado pra renomear (a busca de exercício que já existia). ── */
.rn-ex-barra{display:flex;align-items:center;gap:10px;padding:0 2px 10px}
.rn-ex-barra .cont{font-size:var(--fs-xs,13px);color:var(--ink3);letter-spacing:.04em}
.rn-ex-barra .cont b{color:var(--ink2);font-weight:600}
.rn-ex-abrirtudo{margin-left:auto;background:none;border:1px solid var(--line2);color:var(--ink2);font-family:inherit;font-size:var(--fs-xs,13px);letter-spacing:.06em;padding:6px 11px;border-radius:11px;cursor:pointer}
.rn-ex-abrirtudo:hover{color:var(--ink);border-color:var(--line)}

.rn2-ex-card.is-open{border-color:rgba(201,162,39,.34)}
.rn2-ex-card.is-vazio{border-style:dashed;border-color:rgba(255,255,255,.16);background:rgba(0,0,0,.26)}
.rn2-ex-card.is-open .rn-num{color:var(--gold2)}
.rn-name .titulo{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rn-name{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

.rn-ex-resumo{display:block;font-size:var(--fs-xs,13px);color:var(--ink3);letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.rn-ex-resumo .sep{color:var(--ink3);margin:0 2px}
.rn-ex-resumo .tec{color:var(--ciano);border:1px solid rgba(34,211,238,.28);border-radius:7px;padding:1px 6px;font-size:var(--fs-micro,11.5px);letter-spacing:.12em;text-transform:uppercase;margin-left:4px}
.rn-ex-resumo .falta{color:var(--ink3);border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26);border-radius:7px;padding:1px 7px;font-size:var(--fs-micro,11.5px);letter-spacing:.12em;text-transform:uppercase}

/* === rn-acao — O COMPONENTE === (porte 27/09, cópia literal de docs/rodada_expandir_card_2026-09-27/rn-acao-v1.html,
   aprovado por Raphael — componente oficial do par expandir/remover do app) */
.rn-acao{position:relative;width:30px;height:30px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:9px 9px 9px 4px;background:rgba(255,255,255,.02);color:var(--text3);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .22s var(--ease),border-color .22s var(--ease)}
.rn-acao::before{content:"";position:absolute;inset:-7px}
.rn-acao svg{width:16px;height:16px;display:block;transition:transform .22s var(--ease)}
.rn-acao:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.rn-acao--abre[aria-expanded="true"]{color:var(--gold2);border-color:rgba(226,194,94,.45)}
.rn-acao--abre[aria-expanded="true"] svg{transform:rotate(180deg)}
.rn-acao--tira:active{color:var(--verm)}
@media (prefers-reduced-motion:reduce){.rn-acao,.rn-acao svg{transition:none}}
/* === fim do componente === */
/* o par no card: mesmo contêiner, gap 6 (prancha .acoes); o vazio esconde o expandir (era .is-vazio .caret) */
.rn-acoes{display:flex;gap:6px;flex:none}
.rn2-ex-card.is-vazio .rn-acao--abre{visibility:hidden}

.rn-ex-drop{display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s var(--ease)}
.rn2-ex-card.is-open .rn-ex-drop{grid-template-rows:1fr}
.rn-ex-drop-in{overflow:hidden;min-height:0}
/* o menu de técnica abre DENTRO do drop: sem isto o overflow:hidden recorta a
   lista abaixo do chip e nenhum item recebe o toque (bug 27/09, celular) */
.rn2-ex-card.menu-aberto .rn-ex-drop-in{overflow:visible}
/* e o .rn-panel tem transform (contexto de empilhamento próprio): sem subir o
   painel, o z-index do menu não vence o bloco seguinte (.rn-instruments) */
.rn-panel:has(.menu-aberto){position:relative;z-index:40}
.rn-ex-drop-pad{opacity:0;transform:translateY(-6px);transition:opacity .2s var(--ease) .04s,transform .24s var(--ease) .04s}
.rn2-ex-card.is-open .rn-ex-drop-pad{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .rn-ex-drop,.rn-ex-drop-pad{transition:none!important}
}

/* ── FIM DA LISTA ── */
/* C-905 (21/09, Jean Claude): era tracejado cinza .2 sobre fundo preto, texto ink2 — "nao da nem pra ver"
   (Raphael). Vira apoio da familia dourada (borda .35 + fundo .06, texto ink); o heroi dourado solido continua so o Enviar. */
.rn-add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;min-height:52px;border:1px solid rgba(201,162,39,.35);background:rgba(201,162,39,.06);border-radius:13px 13px 13px 6px;color:var(--ink);font-size:var(--fs-md,16px);transition:all .18s var(--ease)}
.rn-add:hover{color:var(--gold2);border-color:rgba(201,162,39,.5);background:rgba(201,162,39,.12)}
.rn-model-save{display:inline-flex;align-items:center;gap:8px;margin-top:14px;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);font-size:13.5px}
.rn-model-save:hover{color:var(--gold2);border-color:rgba(201,162,39,.4)}
.rn-empty{border:1px dashed rgba(238,231,218,.16);background:rgba(0,0,0,.25);border-radius:13px 13px 13px 6px;padding:18px 20px;margin-top:16px;font-size:13.5px;color:var(--ink3);text-wrap:pretty}
.rn-empty .t{font:500 17px 'Playfair Display',Georgia,serif;color:var(--ink2)}

/* ── BARRA INFERIOR (celular) ── */
#wkbBottomBarMobile{flex:none;display:none;margin:0;flex-direction:row;align-items:stretch;gap:8px;padding:10px 16px calc(env(safe-area-inset-bottom) + 10px);border-top:1px solid var(--line);background:rgba(18,15,10,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
#wkbBottomBarMobile.open{display:flex}
#wkbRevisarBtnMobile{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:48px;padding:0 13px;border:1px solid rgba(157,92,255,.4);color:var(--ia);border-radius:12px 12px 12px 6px;font-size:13.5px}
/* A PRÉVIA (13/08) — mesma família do Salvar: secundária, sem peso de gesto.
   Ela, o Salvar e o Modelo dividem o meio da barra; o Enviar continua maior
   (1.2) porque é o ato que tira a ficha da mão dele. Com TRÊS no meio (C-260,
   22/08 — "Modelo" ganhou porta no celular, que não tinha), 13px não cabia
   confortável; 12px é o que sobra em 375px sem quebrar linha. */
#wkbPreviewBtnMobile{flex:1;display:inline-flex;align-items:center;justify-content:center;height:48px;border:1px solid var(--line);color:var(--ink2);border-radius:12px 12px 12px 6px;font-size:var(--fs-xs,13px)}
#wkbSaveBtnMobile{flex:1;display:inline-flex;align-items:center;justify-content:center;height:48px;border:1px solid var(--line);color:var(--ink2);border-radius:12px 12px 12px 6px;font-size:var(--fs-xs,13px)}
#wkbSalvarModeloBtnMobile{flex:1;display:inline-flex;align-items:center;justify-content:center;height:48px;border:1px solid var(--line);color:var(--ink2);border-radius:12px 12px 12px 6px;font-size:var(--fs-xs,13px)}
#wkbSendBtnMobile{flex:1.2;display:inline-flex;align-items:center;justify-content:center;height:48px;background:var(--gold);color:#0a0806;font-weight:500;border-radius:12px 12px 12px 6px}

/* ── TECLADO PRÓPRIO (mora no <body>, acima do overlay do montador) ── */
#wkbKeypad{position:fixed;left:0;right:0;bottom:0;z-index:10500;transform:translateY(105%);transition:transform .22s var(--ease);background:rgba(16,13,9,.97);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:10px 14px calc(env(safe-area-inset-bottom) + 12px)}
body.wkb-kb-open #wkbKeypad{transform:none}
/* ── FOLHA MODAL NO AR: NADA DO <body> DISPUTA COM ELA (C-152, 18/08) ──
   O cinto do JS: `hide()` resolve o teclado, mas o defeito e de PINTURA e
   `display:none` e imune a compositing. O overlay do montador e contexto de
   empilhamento proprio (z 9810), entao o z 9870 da `.wkb-sheet` NAO alcanca
   `#wkbKeypad` (9861), `.wkb-reps-suggest` (9862) nem `#rndOrdemPill` (9855)
   — que moram no <body>. Medido: com o teclado no ar, `elementFromPoint` no
   centro do "Enviar agora" devolvia `BUTTON.kb-k`. */
body.rnp-wkb-sheet-open #wkbKeypad,
body.rnp-wkb-sheet-open .wkb-reps-suggest,
body.rnp-wkb-sheet-open #rndOrdemPill{display:none}
/* E A BARRA DE BAIXO (C-152, mecanismo 3 — o print do dono, 18/08 21:12):
   #wkbBottomBarMobile tem backdrop-filter, e o quirk documentado em :432
   (peça com vidro pinta POR CIMA da folha no Safari, apesar do z menor)
   vale para ela também — ela ficou fora do conserto do seletor de aluno.
   No aparelho, os botões da folha (Ainda não / Enviar agora) ficavam ATRÁS
   da barra, e o "Enviar" dourado dela cai NO MESMO LUGAR do "Enviar agora":
   o professor tocava a barra achando que tocava a folha, e a folha só
   reabria. display:none é imune ao quirk — mesmo remédio de :439. */
body.rnp-wkb-sheet-open #wkbBottomBarMobile{display:none}
.kb-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1.1fr;gap:8px;max-width:430px;margin:0 auto}
.kb-k{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;height:52px;display:grid;place-items:center;background:rgba(255,255,255,.04);border:1px solid var(--line2);border-radius:11px 11px 11px 5px;font-weight:500;font-size:19px;font-variant-numeric:tabular-nums;color:var(--ink);text-align:center}
.kb-k:active{background:rgba(255,255,255,.09)}
.kb-k.sep{color:var(--gold2)}
.kb-back{grid-column:4;grid-row:1;color:var(--ink2)}
.kb-next{grid-column:4;grid-row:2/span 3;height:auto;background:var(--gold);border-color:var(--gold);color:#0a0806;font-size:15px;font-weight:500}
.kb-next:active{filter:brightness(1.1)}

/* ── FAIXA DE REPS SUGERIDAS (ancorada acima do teclado) ── */
/* 29/09 (Raphael): UMA linha de quadradinhos, colada no teclado (o JS mede o
   #wkbKeypad e põe em --wkb-sug-bottom), e acesa em ouro — apagada não se lia.
   `width:auto` vence o width:100% do .wkb-exercise-result-item (era o que
   empilhava as 5 pílulas uma sobre a outra). */
.wkb-reps-suggest{position:fixed;left:16px;right:16px;bottom:var(--wkb-sug-bottom,calc(env(safe-area-inset-bottom) + 270px));z-index:10501;display:none;gap:8px;justify-content:center;flex-wrap:nowrap}
.wkb-reps-suggest.up.open{display:flex;animation:rise .18s var(--ease) both}
.wkb-reps-suggest button.wkb-exercise-result-item{flex:0 0 auto;width:auto;min-width:52px;height:44px;min-height:44px;padding:0 12px;display:grid;place-items:center;background:#211a0c;border:1px solid rgba(201,162,39,.7);border-radius:11px 11px 11px 5px;color:var(--gold2,#e2c25e);font-size:var(--fs-lg,18px);font-weight:600;font-variant-numeric:tabular-nums;box-shadow:0 8px 22px rgba(0,0,0,.55),0 0 0 0 rgba(201,162,39,0);opacity:0;transform:translateY(10px);animation:repsSobe .22s cubic-bezier(.2,.8,.2,1) forwards,repsAcende .6s ease-out .12s both}
/* Jean Claude 29/09: entra um a um e a borda acende uma vez; o 1º (o mais usado) mais aceso, nunca sólido — o sólido é do «Próximo» */
.wkb-reps-suggest button.wkb-exercise-result-item:nth-child(2){animation-delay:.04s,.16s}
.wkb-reps-suggest button.wkb-exercise-result-item:nth-child(3){animation-delay:.08s,.20s}
.wkb-reps-suggest button.wkb-exercise-result-item:nth-child(4){animation-delay:.12s,.24s}
.wkb-reps-suggest button.wkb-exercise-result-item:nth-child(5){animation-delay:.16s,.28s}
.wkb-reps-suggest button.wkb-exercise-result-item:first-child{background:#2a200c;border-color:#c9a227;color:#f0d57a}
.wkb-reps-suggest button.wkb-exercise-result-item:active{background:#c9a227;color:#16120a}
@keyframes repsSobe{to{opacity:1;transform:none}}
@keyframes repsAcende{0%{border-color:#e2c25e;box-shadow:0 8px 22px rgba(0,0,0,.55),0 0 14px 2px rgba(201,162,39,.45)}100%{box-shadow:0 8px 22px rgba(0,0,0,.55),0 0 0 0 rgba(201,162,39,0)}}
@media (prefers-reduced-motion:reduce){.wkb-reps-suggest button.wkb-exercise-result-item{animation:none;opacity:1;transform:none}}
.wkb-reps-suggest button:hover{border-color:rgba(201,162,39,.5);color:var(--gold2)}

/* ── FOLHAS (fundo escurecido + cartão que sobe; .open é o motor).
     Os blocos 11–12 moram no <body>, fora do overlay → z acima de tudo. ── */
/* porte janelas fatia 4 (07/10): as folhas que viraram .rnj (J-006…011, J-014) saem destas regras por :not(); o resto segue igual até ser portado */
.wkb-sheet:not(.rnj-overlay){position:fixed;inset:0;z-index:9870;display:none;align-items:flex-end;justify-content:center;background:rgba(10,8,6,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.wkb-sheet.open:not(.rnj-overlay){display:flex}
/* O SELETOR DE ALUNO é OPACO (não folha translúcida): o backdrop de 72% deixava
   o header + a faixa Tempo/Volume vazarem por trás (título "De quem é este treino?"
   cortado) e a barra de rolagem do montador aparecia atrás (página fantasma). Fundo
   obsidiano cheio cobre tudo. As folhas enviar/modelo seguem translúcidas, intocadas. */
#wkbAlunoSheet:not(.rnj-overlay){background:var(--bg)}
/* Com o seletor ABERTO: o header (.rn2-mobile-top) e a faixa Tempo/Volume
   (.rnd-ministrip) têm backdrop-filter e renderizam POR CIMA do seletor —
   apesar do z-index menor (quirk de compositing do backdrop-filter). Deixar o
   seletor opaco não resolve porque eles ficam ACIMA dele. display:none é imune:
   mata o vazamento (o título do seletor era clipado/borrado por eles) e a barra
   fantasma. E trava o rolo do montador atrás (senão a lateral sobe e desce). */
body.rnp-wkb-aluno-open .rn2-mobile-top,
body.rnp-wkb-aluno-open .rnd-ministrip{display:none}
body.rnp-wkb-aluno-open .wkb-body,
body.rnp-wkb-aluno-open #wkbBody{overflow:hidden}
.wkb-sheet-card:not(.rnj){position:relative;width:100%;max-width:560px;max-height:86dvh;overflow:auto;background:rgba(24,20,14,.96);border:1px solid var(--line);border-radius:18px 18px 0 0;padding:20px 20px calc(env(safe-area-inset-bottom) + 18px);animation:rise .22s var(--ease) both}
.wkb-sheet-t:not(.rnj-title){margin:2px 0 0;font:500 var(--fs-xl,22px) 'Playfair Display',Georgia,serif;text-wrap:pretty}
.wkb-sheet-s:not(.rnj-body .wkb-sheet-s){font-size:13.5px;color:var(--ink2);margin-top:6px;text-wrap:pretty}
.wkb-sheet-actions:not(.rnj-foot){display:flex;gap:10px;margin-top:18px}
.wkb-cta:not(.rnj-btn){flex:1;display:inline-flex;align-items:center;justify-content:center;height:48px;background:var(--gold);color:#0a0806;font-weight:500;border-radius:12px 12px 12px 6px}
.wkb-ghost:not(.rnj-btn){display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 18px;border:1px solid var(--line);color:var(--ink2);border-radius:12px 12px 12px 6px}
.wkb-sheet:not(.rnj-overlay) .eb{color:var(--gold)}

/* ═══ EXCLUIR TREINO (rodada Design 18/08) — 11 regras novas ═══ */
/* ── EXCLUIR TREINO — gatilho no pé do formulário do montador.
     Mesmo DOM nas duas peles; só renderiza com _builderEditingId. ── */
/* margin-bottom generoso de propósito: `#wkbBody{padding:...40px}` (v5:134)
   tem especificidade de ID e VENCE `.wkb-body.rn-has-bottom-bar{padding-
   bottom:28px+env()}` (v5:136, duas classes < um ID) — medido em 18/08,
   a barra mobile (RN IA·Prévia·Salvar·Enviar, ~68-92px com safe-area) cobria
   os últimos ~28px do formulário e nada ali era clicável, sem erro nenhum.
   O `.rnd-excluir` é o primeiro elemento que vive exatamente nesse fim de
   documento, por isso é quem revela o buraco — não é conserto do buraco em
   si (isso é escopo maior, viraria linha na tabela se afetar mais telas). */
.rnd-excluir{margin-top:26px;padding-top:16px;border-top:1px solid var(--line2);margin-bottom:calc(env(safe-area-inset-bottom) + 76px)}
.rnd-excluir button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:48px;border:1px solid rgba(240,97,107,.22);color:var(--verm);font-size:var(--fs-sm,14.5px);border-radius:12px 12px 12px 6px}
.rnd-excluir button:hover{border-color:rgba(240,97,107,.45)}
.rnd-excluir .i{width:15px;height:15px}

/* ── o irmão vermelho do .wkb-cta: só existe DENTRO de folha de excluir.
     Tinta #0a0806 sobre #f0616b = 6.3:1 (AA). ── */
.wkb-risco:not(.rnj-btn){flex:1;display:inline-flex;align-items:center;justify-content:center;height:48px;background:var(--verm);color:#0a0806;font-weight:500;border-radius:12px 12px 12px 6px}

/* ── o degrau destrutivo da folha das duas opções: abaixo do corte,
     texto pequeno, alvo de toque de 44px ── */
.wkb-devez{margin-top:16px;padding-top:14px;border-top:1px solid var(--line2);text-align:center}
.wkb-devez button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 12px;font-size:13.5px;color:var(--verm);text-align:center}
.wkb-devez .i{width:14px;height:14px}

/* ── eyebrow vermelho SÓ nas folhas 100% destrutivas; a das duas opções
     mantém o dourado da família ── */
#sheetExcluirRascunho .eb,#sheetExcluirDeVez .eb{color:var(--verm)}

/* ── HUB: excluir modelo — irmão discreto do .wkh-apply dourado ── */
.wkh-del{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 13px;border:1px solid rgba(240,97,107,.25);color:var(--verm);font-size:13.5px;border-radius:10px 10px 10px 5px}
.wkh-del:hover{border-color:rgba(240,97,107,.5)}
.wkh-del .i{width:14px;height:14px}
.wkh-risco{flex:1;display:inline-flex;align-items:center;justify-content:center;height:48px;background:var(--verm);color:#0a0806;font-weight:500;border-radius:12px 12px 12px 6px}

/* ── PORTAR DENTRO do @media (min-width:900px) do MONTADOR (v5 :545):
     no Mac o gatilho vira largura intrínseca e entra na coluna principal
     da .wkb-cols ── */
@media(min-width:900px) and (min-height:501px), (min-width:900px) do MONTADOR (v5 :545):
     no Mac o gatilho vira largura intrínseca e entra na coluna principal
     da .wkb-cols ── */
@media(min-width:900px) and (pointer:fine){
  /* o respiro extra do mobile (a barra fixa embaixo) não existe no Mac — a
     ação fica na .wkb-head-actions do topo; sem isso, margin-bottom:76px+env()
     sobreviveria e deixaria um vão vazio enorme no fim do formulário Mac */
  .rnd-excluir{grid-column:1;margin-top:30px;margin-bottom:0}
  .rnd-excluir button{width:auto;padding:0 18px;height:44px;font-size:13.5px}
}

.wkb-sheet-card:not(.rnj) label{display:flex;flex-direction:column;gap:6px;margin-top:14px;font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.12em;color:var(--ink3);text-transform:uppercase}
.info-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line2);font-size:var(--fs-sm,14.5px);color:var(--ink2)}
.info-row:first-of-type{border-top:0;margin-top:10px}
.info-row b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.info-row.total{border-top:1px solid var(--line);color:var(--ink)}
.info-note{margin-top:10px;font-size:var(--fs-xs,13px);color:var(--ink3);text-wrap:pretty}
/* tempo estimado: o motor escreve nestas quatro linhas */
#wkbTempoEx,#wkbTempoTrans,#wkbTempoFatores,#wkbTempoDesc{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line2);font-size:var(--fs-sm,14.5px);color:var(--ink2)}
#wkbTempoEx{border-top:0;margin-top:10px}
#wkbTempoEx:empty,#wkbTempoTrans:empty,#wkbTempoFatores:empty,#wkbTempoDesc:empty{display:none}
#wkbTempoEx b,#wkbTempoTrans b,#wkbTempoFatores b,#wkbTempoDesc b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
/* fechar discreto (folha do nível) */
#wkbNivelConfirmClose{position:absolute;top:8px;right:8px;width:44px;height:44px;display:grid;place-items:center;border:1px solid transparent;border-radius:11px 11px 11px 5px;color:var(--ink3);font-size:var(--fs-lg,18px)}
#wkbNivelConfirmClose:hover{color:var(--ink);border-color:var(--line)}
/* folha do aluno: busca + recentes (lista pode ter 60 nomes de 40 caracteres) */
#wkbAlunoBusca{width:100%;margin-top:14px;min-height:46px}
#wkbAlunoRotulo{margin-top:16px}
#wkbAlunoChips{margin-top:10px}
/* estrutura da ficha */
.preset{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:12px 12px 12px 6px;margin-top:8px;transition:border-color .18s var(--ease)}
.preset:hover{border-color:var(--line)}
.preset.sel{border-color:rgba(226,194,94,.55);background:rgba(201,162,39,.06)}
.preset .pl{display:flex;gap:4px;flex-wrap:wrap}
.preset .pl b{min-width:26px;height:26px;display:grid;place-items:center;border:1px solid rgba(201,162,39,.35);border-radius:7px 7px 7px 3px;font-size:var(--fs-xs,13px);font-weight:600;color:var(--gold2);padding:0 6px}
.preset .pn{font-size:var(--fs-sm,14.5px);color:var(--ink2)}
.preset-custom{display:flex;gap:8px;margin-top:12px}
.preset-custom input{flex:1;min-width:0}
.preset-custom button{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px 10px 10px 5px;color:var(--ink2);font-size:13.5px}
.preset-custom button:hover{color:var(--gold2);border-color:rgba(201,162,39,.4)}
/* revisão da RN IA — a única área roxa do app */
#wkbRevisaoOverlay .eb{color:var(--ia)}
[data-ai-suggestion]{display:flex;gap:10px;margin-top:12px;padding:12px 14px;border:1px solid rgba(157,92,255,.28);background:rgba(157,92,255,.06);border-radius:11px 11px 11px 5px;font-size:var(--fs-sm,14.5px);color:var(--ink2);text-wrap:pretty}
[data-ai-suggestion]::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ia);box-shadow:0 0 7px rgba(157,92,255,.5);margin-top:6px;flex:none}
.rev-item{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line2);font-size:var(--fs-sm,14.5px);color:var(--ink2);text-wrap:pretty}
.rev-item:first-of-type{border-top:0;margin-top:8px}
.rev-item .i{color:var(--ia);width:14px;height:14px;margin-top:3px}
.rev-foot{margin-top:14px;font-size:var(--fs-xs,13px);color:var(--ink3)}

/* ── TOASTS E PÍLULA DE ORDEM ── */
.wkb-toast{position:fixed;left:50%;transform:translateX(-50%) translateY(8px);bottom:calc(env(safe-area-inset-bottom) + 90px);z-index:9880;background:rgba(24,20,14,.96);border:1px solid rgba(201,162,39,.4);color:var(--ink);font-size:13.5px;padding:12px 18px;border-radius:12px 12px 12px 6px;opacity:0;pointer-events:none;transition:all .22s var(--ease);max-width:86vw;text-align:center}
.wkb-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* variante maior que o motor usa em mensagens longas — host a confirmar (memo) */
.wkb-toast.big,.wkh-toast.big{font-size:15px;padding:15px 22px;border-color:rgba(226,194,94,.55)}
#rndOrdemPill{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 90px);z-index:9855;display:none;align-items:center;gap:12px;background:rgba(24,20,14,.97);border:1px solid var(--line);border-radius:12px 12px 12px 6px;padding:10px 14px;font-size:13.5px;color:var(--ink2);box-shadow:0 18px 40px rgba(0,0,0,.5)}
#rndOrdemPill.show{display:flex;animation:rise .22s var(--ease) both}
#rndOrdemPill button{color:var(--gold2);font-weight:500;min-height:34px;display:inline-flex;align-items:center}

/* ── ARRASTE — o motor cria os dois no <body> e escreve left/top no
     fantasma durante o gesto: posição NÃO se fixa aqui. ── */
.rnd-reorder-ghost{position:fixed;z-index:9860;display:none;width:min(84vw,420px);border:1px solid rgba(226,194,94,.5);background:rgba(28,23,15,.97);border-radius:14px 14px 14px 6px;padding:14px 16px;transform:rotate(-1.2deg);box-shadow:0 24px 60px rgba(0,0,0,.6);pointer-events:none;will-change:left,top}
.rnd-reorder-ghost .gname{font:500 var(--fs-lg,18px) 'Playfair Display',Georgia,serif}
.rnd-reorder-ghost .gmeta{font-size:var(--fs-xs,13px);color:var(--ink3);margin-top:2px;font-variant-numeric:tabular-nums}
/* dedo parado: o fantasma assenta (endireita e acalma a sombra) */
.rnd-reorder-ghost.parado{transform:rotate(0);border-color:rgba(226,194,94,.75);box-shadow:0 14px 36px rgba(0,0,0,.5)}
.rnd-reorder-hud{position:fixed;left:50%;top:var(--topo-seguro);transform:translateX(-50%);z-index:9859;display:none;pointer-events:none}
.rnd-reorder-hud b{display:block;font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif;color:var(--ink)}
.rnd-reorder-hud em{font-style:normal;color:var(--gold2)}
.rnd-reorder-hud-box{display:flex;align-items:baseline;gap:9px;background:rgba(24,20,14,.97);border:1px solid rgba(226,194,94,.45);border-radius:12px 12px 12px 6px;padding:10px 16px;box-shadow:0 18px 40px rgba(0,0,0,.55);animation:rise .18s var(--ease) both}
.rnd-reorder-hud-eye{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--gold2);white-space:nowrap}
/* R57: o unico porte do Montador nesta rodada. O HUD dura o gesto do dedo e
   hoje VAZA — nowrap sem ellipsis. Ganha reticencias e nada mais: o
   distintivo inteiro nao vale uma funcao de split num HUD. */
.rnd-reorder-hud-nome{font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif;color:var(--ink);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
.rnd-reorder-hud-val{font-size:var(--fs-xs,13px);color:var(--ink3);font-variant-numeric:tabular-nums;white-space:nowrap}
/* o buraco onde o cartão vai cair, e o lugar de onde ele saiu */
.rnd-reorder-alvo{border-style:dashed!important;border-color:rgba(238,231,218,.25)!important;background:rgba(0,0,0,.25)!important}
.rnd-reorder-alvo>*{opacity:.12}
.rnd-reorder-origem{opacity:.25}

/* ── arrastar a ABA de divisão (C-346-drag, 27/08) — mesmo motor de cima,
   eixo X. O fantasma clona a própria `.rn-tab` (já traz padding/tipografia
   dela); a moldura de `.rnd-reorder-ghost` (padding+cantos de CARTÃO) fica
   grande demais pra uma pílula — zera aqui, mantém só posição/sombra/giro. */
.rnd-reorder-ghost-pill{padding:0;border:none;background:none;box-shadow:0 10px 26px rgba(0,0,0,.5);border-radius:9px 9px 9px 4px}
.rnd-reorder-alvo-pill{border-radius:9px 9px 9px 4px}

/* ── MOVIMENTO ── */
@keyframes rise{from{opacity:0;transform:translateY(8px)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ── HUB ≥900 ── */
@media (min-width:900px) and (min-height:501px), (min-width:900px) and (pointer:fine){
.wkh-body{max-width:1180px;padding:0 48px 80px}
.wkh-top{padding-top:22px}
.wkh-h1{font-size:42px}
.wkh-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px 40px;align-items:start;margin-top:8px}
.wkh-colA{min-width:0}.wkh-colB{min-width:0}
.wkh-ai{margin-top:22px}
.wkh-hero{margin-top:22px;padding:26px 24px}
.wkh-hero-t{font-size:24px}
.wkh-sec,.wkh-fichas-sec{margin-top:34px}
.wkh-toast{bottom:auto;top:86px}
}

/* ── MONTADOR ≥900 (o Mac é a mesma estrutura em duas colunas) ── */
@media (min-width:900px) and (min-height:501px), (min-width:900px) and (pointer:fine){
.rn2-mobile-top{padding:14px 32px 12px}
#wkbMobileBackBtn{display:none}
#wkbCancelBtn{display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 14px 0 10px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);font-size:13.5px}
#wkbCancelBtn:hover{color:var(--ink)}
.wkb-toptitle{text-align:left;margin-left:14px}
.wkb-topname,#wkbTopName{font-size:var(--fs-lg,18px)}
.wkb-head-actions{display:flex;gap:8px;align-items:center}
.wkb-head-actions .hbtn{display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 15px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);font-size:13.5px}
.wkb-head-actions .hbtn:hover{color:var(--ink);border-color:rgba(255,255,255,.16)}
#wkbConsultAiBtn{color:var(--ia);border-color:rgba(157,92,255,.4)}
#wkbConsultAiBtn:hover{color:#b78aff;border-color:rgba(157,92,255,.6)}
.hbtn-send{background:var(--gold);border:0;color:#0a0806!important;font-weight:500}
.hbtn-send:hover{filter:brightness(1.08)}
#wkbClose{display:none}
.wkb-body,#wkbBody{padding:22px 32px 60px}
.wkb-body.rn-has-bottom-bar,body.rnp-wkb-bottombar-open .wkb-body{padding-bottom:60px}
.wkb-cols{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:0 26px;max-width:1280px;margin:0 auto;align-items:start}
.wkb-colmain{min-width:0;grid-column:1}
.rn-instruments{grid-column:2;grid-row:1/span 9;margin-top:0;position:sticky;top:0}
.rn-strip,.rn-tabs,.rn-block-label,.rn-panel,.wkb-error{grid-column:1}
.rn-tabs{max-width:520px}
.rn-metrics-rail{grid-template-columns:1fr 1fr;gap:10px}
.rn-metric .v{font-size:20px}
.wkb-vi{margin-top:12px}
.rn-cells{grid-template-columns:repeat(4,minmax(0,1fr))}
#wkbBottomBarMobile{display:none}
.wkb-reps-suggest{left:50%;right:auto;bottom:24px;transform:translateX(-50%)}
.wkb-sheet:not(.rnj-overlay){align-items:center}
.wkb-sheet-card:not(.rnj){border-radius:18px 18px 18px 8px;padding-bottom:20px;max-height:82vh}
.wkb-toast{bottom:auto;top:86px}
#rndOrdemPill{bottom:auto;top:86px}
.demo-dock{bottom:14px}
}

/* ══ DEMO — inerte no app: tudo abaixo depende de html.demo ou .demo-dock,
   que só o arquivo de demonstração cria. Pode portar junto sem efeito. ══ */
html.demo .rn-empty{display:none}
html.demo.demo-vazio .rn-empty{display:block}
html.demo.demo-vazio .rn-list,html.demo.demo-vazio .rn-model-save{display:none}
.demo-dock{position:fixed;right:12px;bottom:calc(env(safe-area-inset-bottom) + 12px);z-index:9990;width:238px;max-width:calc(100vw - 24px);background:rgba(16,13,9,.97);border:1px solid rgba(201,162,39,.3);border-radius:14px 14px 14px 7px;box-shadow:0 22px 50px rgba(0,0,0,.65);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.dd-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 14px}
.dd-head .eb{color:var(--gold)}
.dd-caret{color:var(--ink3);font-size:11px;transition:transform .18s var(--ease)}
.demo-dock.min .dd-caret{transform:rotate(180deg)}
.demo-dock.min .dd-body{display:none}
.dd-body{padding:0 12px 12px}
.dd-l{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin:10px 2px 6px}
.dd-row{display:flex;gap:6px}
.dd-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.dd-b{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:9px 9px 9px 4px;color:var(--ink2);font-size:var(--fs-xs,13px);flex:1;text-align:center;transition:all .15s var(--ease)}
.dd-b:hover{color:var(--ink);border-color:rgba(255,255,255,.16)}
.dd-b.on{background:var(--gold);border-color:var(--gold);color:#0a0806;font-weight:500}
.demo-dock select{width:100%;min-height:36px;padding:6px 30px 6px 10px;font-size:var(--fs-xs,13px);border-radius:9px 9px 9px 4px}

/* ══ COLA DO PORTE — consertos pós-auditoria · 08/08/2026 (bugs liberados
   pelo dono). O motor emite DUAS coisas que o esqueleto não trouxe (erro do
   esqueleto, veio da demo): o marcador chama .wkb-vi-bar-marker (não
   .wkb-vi-mark) e a régua tem 5 zonas (…-limite e …-excesso). Regras abaixo
   usam SÓ valores da própria entrega: o marcador é cópia do .wkb-vi-mark;
   as zonas/rótulos usam os tokens --vz-limite/--vz-excesso e as cores
   z4/z5 da "leitura antiga" declaradas nesta folha. ══ */
.wkb-vi-bar-marker{position:absolute;top:-2.5px;bottom:-2.5px;width:3px;border-radius:2px;background:var(--vz-marker);box-shadow:0 0 8px rgba(240,215,137,.75);transform:translateX(-50%)}
.wkb-vi-bar-limite{background:rgba(232,134,46,.36)}
.wkb-vi-bar-excesso{background:rgba(240,97,107,.34)}
.wkb-vi-limite .wkb-vi-valor small{color:var(--vz-limite)}
.wkb-vi-excesso .wkb-vi-valor small{color:var(--vz-excesso)}

/* ══ COLA DO PORTE 2 — folha do aluno em TELA CHEIA · 09/08/2026 (ordem do
   dono: nomes ocultos até buscar; o quadro sobe até o topo; o último nome
   ficava inalcançável atrás da barra). Escopado a #wkbAlunoSheet — as outras
   folhas seguem com o desenho da entrega, intocado. ══ */
.wkb-aluno-head:not(.rnj-head){display:flex;align-items:center;justify-content:space-between}
#wkbAlunoSheet:not(.rnj-overlay) #wkbAlunoFechar{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);margin:-6px -6px 0 0;flex:none}
#wkbAlunoSheet:not(.rnj-overlay) #wkbAlunoFechar:hover{color:var(--ink)}
/* A ‹ de VOLTAR do seletor (o canto esquerdo era uma div inerte — daí "a seta não
   funciona": o seletor cobre o header e o toque no ‹ do montador caía nesta head). */
#wkbAlunoSheet:not(.rnj-overlay) #wkbAlunoVoltar{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 12px 0 10px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);font-size:13.5px;margin:-4px 0 0 -6px;flex:none}
#wkbAlunoSheet:not(.rnj-overlay) #wkbAlunoVoltar .i{width:17px;height:17px;flex:none}
#wkbAlunoSheet:not(.rnj-overlay) #wkbAlunoVoltar:hover{color:var(--ink)}
@media (max-width:899px), (pointer:coarse) and (max-height:500px){
#wkbAlunoSheet:not(.rnj-overlay){align-items:stretch}
#wkbAlunoSheet:not(.rnj-overlay) .wkb-sheet-card{max-width:none;max-height:none;border-radius:0;display:flex;flex-direction:column;padding-top:var(--topo-seguro)}
#wkbAlunoSheet:not(.rnj-overlay) #wkbAlunoRolo{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;align-content:flex-start;padding-bottom:calc(env(safe-area-inset-bottom) + 28px)}
}

/* ══ COLA DO PORTE 3 — o "?" do volume tomava a tela · 09/08/2026 ══
   A regra de alvo-de-toque da entrega dá um ::before{position:absolute;
   inset:-6px} a sete elementos. Seis são position:relative; o
   #wkbVolumeInteligenteInfoBtn ficou sem — então o pseudo se ancorava no
   primeiro pai posicionado (.wkb-panel, 375×812) e virava uma área de toque
   de TELA INTEIRA por cima de tudo que vem antes dele no DOM: abas, cartão
   do aluno e os medidores abriam a explicação do volume.
   Defeito latente na entrega (a regra existia sem host); só ficou alcançável
   quando o motor passou a emitir o botão, no monta11. Uma linha, mesmo
   idioma dos seis irmãos. ══ */
#wkbVolumeInteligenteInfoBtn{position:relative}


/* ══════════════════════════════════════════════════════════════════════
   RODADA COCKPIT · B — daqui pra baixo é o apêndice desta proposta.
   ══════════════════════════════════════════════════════════════════════ */

/* ── módulos do trilho na linguagem chart-card do app:
     filete de acento no topo + fundo tingido. A cor segue o papel:
     dourado = o agora (medidores) · azul = tempo (assessor) · roxo = RN IA.
     A régua de volume segue a peça mais colorida — o módulo dela fica neutro. ── */
.rn-metrics-rail{position:relative;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line2);border-radius:14px 14px 14px 7px;background:linear-gradient(165deg,rgba(201,162,39,.06),rgba(255,255,255,.012) 55%);overflow:hidden}
.rn-metrics-rail::before{content:'';position:absolute;top:0;left:0;right:0;height:2.5px;background:linear-gradient(90deg,var(--gold),var(--gold2) 55%,rgba(201,162,39,.12));z-index:1}
.rn-metric{border:0;background:none;border-radius:0;padding:12px 14px 10px;min-height:66px}
.rn-metric:nth-child(odd){border-right:1px solid var(--line2)}
.rn-metric:nth-child(n+3){border-top:1px solid var(--line2)}
.rn-metric .v{font-size:20px}
.rnd-assessor,.rnd-ia{position:relative;border:1px solid var(--line2);border-radius:14px 14px 14px 7px;padding:14px 16px 12px;overflow:hidden}
.rnd-assessor{background:linear-gradient(165deg,rgba(91,141,239,.06),rgba(255,255,255,.012) 55%)}
.rnd-assessor::before{content:'';position:absolute;top:0;left:0;right:0;height:2.5px;background:linear-gradient(90deg,var(--azul),rgba(91,141,239,.12))}
.rnd-as-head{display:flex;align-items:center;gap:8px}
.rnd-as-head .eb{color:var(--azul)}
/* ── ASSESSOR TÉCNICO — os fios que o motor ainda procura, religados:
     #rndAssessorTempo e #rndTempoEx/Trans/Fatores/Desc voltam a receber
     dado sem lógica nova. Vazio não quebra (linha some por :empty). ── */
.rnd-as-tempo{display:flex;align-items:baseline;gap:9px;margin-top:10px}
#rndAssessorTempo{font:500 30px/1 'Playfair Display',Georgia,serif;font-variant-numeric:tabular-nums;color:var(--ink)}
.rnd-as-tempo span{font-size:var(--fs-xs,13px);color:var(--ink3)}
.rnd-as-rows{margin-top:6px}
#rndTempoEx,#rndTempoTrans,#rndTempoFatores,#rndTempoDesc{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line2);font-size:13.5px;color:var(--ink2)}
#rndTempoEx{border-top:0}
#rndTempoEx:empty,#rndTempoTrans:empty,#rndTempoFatores:empty,#rndTempoDesc:empty{display:none}
#rndTempoEx b,#rndTempoTrans b,#rndTempoFatores b,#rndTempoDesc b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.rnd-as-note{margin-top:9px;font-size:var(--fs-xs,13px);color:var(--ink3);text-wrap:pretty}

/* ══════════════════════════════════════════════════════════════════════
   PREVIEW DO MONTADOR — 27 regras que o workoutBundle.js injetava como
   <style id="wkPreviewStyle">. Mesmo CSS, uma regra por linha.

   ⚠️ A POSIÇÃO É O MOTIVO, e ela foi medida: `.wkb-preview-panel` (aqui) e
   `.wkb-rev-panel` (bloco RN IA, logo abaixo) têm a MESMA especificidade
   (0,1,0) e caem no MESMO elemento — o painel da proposta carrega as duas
   classes. Enquanto isto era injetado, entrava no head depois da folha e
   vencia: medido no CSSOM real, a borda em degradê da rodada virava
   rgba(255,255,255,.08) e o raio caía de 20px para 16px. A moldura sumia.
   Aqui, ordem de fonte resolve — e por isso este bloco NÃO pode descer
   para depois do RN IA.
   ══════════════════════════════════════════════════════════════════════ */
.wkb-preview-overlay{display:none;position:fixed;inset:0;z-index:10100;background:rgba(0,0,0,.6);align-items:center;justify-content:center;padding:20px;}
.wkb-preview-overlay.open{display:flex;}
.wkb-preview-panel{background:var(--bg3);border:1px solid var(--line);border-radius:16px;max-width:520px;width:100%;max-height:86vh;overflow-y:auto;color:var(--text);}
.wkb-preview-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);}
.wkb-preview-header h3{margin:0;font-size:17px;}
.wkb-preview-body{padding:16px 20px;}
.wkb-preview-label{margin:14px 0 2px;font-size:var(--fs-xs,13px);text-transform:uppercase;letter-spacing:.05em;color:var(--gold3);}
.wkb-preview-label:first-child{margin-top:0;}
.wkb-preview-body > p:not(.wkb-preview-label){margin:0;font-size:15px;color:var(--text);}
.wkb-preview-ex{padding:10px 0;border-bottom:1px solid var(--line);}
.wkb-preview-ex:last-child{border-bottom:0;}
.wkb-preview-ex strong{display:block;font-size:var(--fs-sm,14.5px);color:var(--text);}
.wkb-preview-ex span{display:block;font-size:var(--fs-xs,13px);color:var(--text3);margin-top:3px;}
.wkb-preview-ex small{display:block;font-size:var(--fs-xs,13px);color:var(--text3);margin-top:3px;font-style:italic;}
.wkb-preview-empty{font-size:var(--fs-sm,14.5px);color:var(--text3);font-style:italic;}
.wkb-preview-body a{color:var(--gold3);}
.wkb-preview-panel.wkb-preview-ficha{max-width:560px;}
.wkb-preview-ficha .wkb-preview-body{padding:16px 16px 20px;}
.wkb-preview-ficha .hero{padding:26px 22px 24px;margin-bottom:16px;}
.wkb-preview-ficha .hero-name{font-size:42px;}
.wkb-preview-ficha .restr{margin-bottom:18px;}
.wkb-preview-ficha .ex-banner{cursor:default;}
/* métricas da prévia = cópia literal das regras da ficha do aluno (ficha_v4.css, escopo body.rn-aluno) — C-1121 */
.wkb-preview-ficha .ex-metrics{flex-wrap:wrap}
.wkb-preview-ficha .em-l{font-size:var(--fs-micro);color:var(--text3)}
.wkb-preview-ficha .em-n small{color:var(--text3)}
@media (max-width:479px){
  .wkb-preview-ficha .ex-metrics{padding-left:52px}
  .wkb-preview-ficha .em{padding-right:12px;margin-right:12px}
  .wkb-preview-ficha .em-l{letter-spacing:.12em;white-space:nowrap}
}
.wkb-preview-ficha .ex-note{padding:9px 14px;font-size:var(--fs-xs,13px);color:var(--text3);font-style:italic;background:var(--bg2);border-top:1px solid var(--line);}
.wkb-preview-tec{padding:7px 14px 0;}
.wkb-preview-tec span{display:inline-block;font-size:var(--fs-micro,11.5px);font-weight:700;padding:3px 9px;border-radius:999px;background:rgba(212,175,55,.12);color:var(--gold3);text-transform:uppercase;letter-spacing:.12em;}

/* ══════════════════════════════════════════════════════════════════════
   RN IA — A PELE (rodada `rn_ia_visual`, visão C, entregue 20/08 pelo Design,
   portada 21/08). Copiada VERBATIM da seção 2 de
   docs/rodada_rn_ia_visual_2026-08-20_ENTREGA-CSS-visaoC.html — as seções 1 e 3
   daquele arquivo são palco de apresentação e não vêm.

   Substitui, além do bloco "RN IA — o copiloto" que morava aqui, os dois
   <style> que o workoutBundle.js injetava em document.head: #wkbRevisaoStyle
   (inteiro) e a PELE do #wkbMetodologiaStyle. Eles tinham de sair: style
   injetado entra no head DEPOIS da folha e, com a mesma especificidade,
   vencia — a pele nova ficaria invisível. É o mesmo mecanismo que escondeu a
   pele antiga em 08/08, e o memo da entrega pede exatamente esta mudança.
   Nenhum markup mudou; os 5 rótulos do copiloto encurtaram (custo declarado
   da visão C) e o sentido inteiro foi pro title de cada botão.
   ══════════════════════════════════════════════════════════════════════ */

/* ── tokens da identidade (todos já vivem no app hoje — nenhuma cor nova) ── */
:root{
  --rnia:#9d5cff;            /* o roxo do app — não muda */
  --rnia-tinta:#cba7ff;      /* tinta roxa legível (já vivia no wkbRevisaoStyle) */
  --rnia-eyebrow:#c7a6f5;    /* eyebrow roxo claro (idem) */
  --rnia-ouro:#c99652;       /* ouro do degradê (idem) */
  --rnia-luz:#f2d8aa;        /* a ponta de luz — só em degradê (idem) */
  --rnia-creme:#f5e7d1;      /* título (idem) */
  --rnia-areia:#d9ae83;      /* apoio quente (idem) */
  --rnia-papel-a:#151310;    /* papel da janela (idem) */
  --rnia-papel-b:#0b0a08;
}
/* o ângulo único que conduz os três estados da moldura.
   Safari 16.4+ / Chrome 85+; sem suporte, a moldura fica estática no descanso. */
@property --rnia-giro{syntax:'<angle>';inherits:false;initial-value:0deg}

/* ── A MOLDURA — as duas janelas do RN IA (revisão/proposta e metodologia).
     Anel cônico com UM ponto de luz: creme no canto inferior-direito, roxo
     dominando o superior-esquerdo (a leitura de hoje, 125deg, preservada).
     Parado o ângulo ondula 22°; ao abrir dá uma volta e assenta; pensando
     orbita contínuo. Escopo por classe (.wkb-rev-panel) e por id de overlay
     (#wkbMetodologiaOverlay) — as janelinhas de info continuam como são. ── */
.wkb-rev-panel,
#wkbMetodologiaOverlay .wkb-preview-panel{
  position:relative;overflow:hidden;border-radius:20px;
  border:1.5px solid transparent;
  background:
    radial-gradient(90% 130% at 0% 0%,rgba(157,92,255,.15),transparent 46%) padding-box,
    radial-gradient(90% 130% at 100% 100%,rgba(217,174,131,.11),transparent 48%) padding-box,
    linear-gradient(180deg,var(--rnia-papel-a),var(--rnia-papel-b)) padding-box,
    conic-gradient(from var(--rnia-giro) at 50% 50%,
      rgba(157,92,255,.55) 0deg,
      var(--rnia-ouro) 96deg,
      var(--rnia-luz) 138deg,
      var(--rnia-ouro) 184deg,
      rgba(157,92,255,.62) 262deg,
      var(--rnia) 318deg,
      rgba(157,92,255,.55) 360deg) border-box;
  box-shadow:0 0 26px rgba(157,92,255,.20),0 20px 55px rgba(0,0,0,.6);
  animation:
    rniaEntra .34s var(--ease) both,
    rniaAcende 1.05s cubic-bezier(.22,.61,.36,1) both,
    rniaRespira 7.5s ease-in-out 1.05s infinite,
    rniaOndula 11s ease-in-out 1.05s infinite;
}
/* a luz interna deriva devagar — aurora atrás do conteúdo, nunca sobre texto claro */
.wkb-rev-panel::before,
#wkbMetodologiaOverlay .wkb-preview-panel::before{
  content:'';position:absolute;inset:-40% -20%;z-index:0;pointer-events:none;
  background:
    radial-gradient(46% 38% at 22% 18%,rgba(157,92,255,.13),transparent 70%),
    radial-gradient(40% 34% at 82% 86%,rgba(217,174,131,.10),transparent 70%);
  animation:rniaDeriva 13s ease-in-out infinite alternate;
}
/* pensando: o ponto de luz orbita a moldura; a respiração acelera junto */
.wkb-rev-panel:has(.wkb-revisao-loading),
#wkbMetodologiaOverlay .wkb-preview-panel:has(.wkb-revisao-loading){
  animation:
    rniaEntra .34s var(--ease) both,
    rniaPensa 2.4s linear infinite,
    rniaRespira 2.4s ease-in-out infinite;
}
@keyframes rniaEntra{from{opacity:0;transform:scale(.965) translateY(10px)}to{opacity:1;transform:none}}
@keyframes rniaAcende{from{--rnia-giro:-300deg}to{--rnia-giro:0deg}}
@keyframes rniaOndula{0%,100%{--rnia-giro:0deg}50%{--rnia-giro:22deg}}
@keyframes rniaPensa{from{--rnia-giro:0deg}to{--rnia-giro:360deg}}
@keyframes rniaDeriva{from{transform:translate3d(-2.5%,-2%,0)}to{transform:translate3d(2.5%,2.5%,0)}}
@keyframes rniaRespira{
  0%,100%{box-shadow:0 0 26px rgba(157,92,255,.20),0 20px 55px rgba(0,0,0,.6)}
  50%{box-shadow:0 0 44px rgba(157,92,255,.32),0 0 80px rgba(201,162,39,.10),0 20px 55px rgba(0,0,0,.6)}}

/* rolagem interna das janelas RN IA: barra fina e quente, nunca a clara do
   sistema (mesmo vocabulário do .wkb-lista-rolo do app) */
.wkb-rev-body,#wkbMetodologiaOverlay .wkb-preview-body{scrollbar-width:thin;scrollbar-color:rgba(157,92,255,.28) transparent}
.wkb-rev-body::-webkit-scrollbar,#wkbMetodologiaOverlay .wkb-preview-body::-webkit-scrollbar{width:7px}
.wkb-rev-body::-webkit-scrollbar-track,#wkbMetodologiaOverlay .wkb-preview-body::-webkit-scrollbar-track{background:transparent}
.wkb-rev-body::-webkit-scrollbar-thumb,#wkbMetodologiaOverlay .wkb-preview-body::-webkit-scrollbar-thumb{background:rgba(157,92,255,.25);border-radius:4px}
.wkb-rev-body::-webkit-scrollbar-thumb:hover,#wkbMetodologiaOverlay .wkb-preview-body::-webkit-scrollbar-thumb:hover{background:rgba(157,92,255,.45)}

/* backdrop das duas janelas: obsidiana + blur (família das folhas do app).
   Se o quirk de compositing do Safari (C-152) aparecer, cair pra fundo opaco. */
/* F3-1 (07/10): só o véu vai pro v2; a moldura do RN IA (anel roxo→ouro) é desenho aprovado e fica — decisão do Claudio */
#wkbRevisaoOverlay,#wkbMetodologiaOverlay{background:var(--rnj-veu,rgba(8,6,4,.58));-webkit-backdrop-filter:blur(12px) saturate(115%);backdrop-filter:blur(12px) saturate(115%)}

/* ── O SELO — hexágono "RN" com aro em degradê roxo→ouro. Assina as três
     superfícies. Construção em pseudos: nada de markup novo. ── */
.wkb-rev-head{display:flex;align-items:center;gap:11px;padding:16px 18px 12px;position:relative;z-index:1}
.wkb-rev-mark{position:relative;z-index:0;width:36px;height:34px;flex:none;
  display:flex;align-items:center;justify-content:center;
  color:var(--rnia-luz);font:600 14px 'Playfair Display',Georgia,serif;letter-spacing:-.04em;
  filter:drop-shadow(0 0 9px rgba(157,92,255,.35))}
.wkb-rev-mark::after{content:'';position:absolute;inset:0;z-index:-2;
  clip-path:polygon(25% 2%,75% 2%,100% 50%,75% 98%,25% 98%,0 50%);
  background:linear-gradient(140deg,var(--rnia) 6%,var(--rnia-ouro) 58%,var(--rnia-luz) 94%)}
.wkb-rev-mark::before{content:'';position:absolute;inset:1.4px;z-index:-1;
  clip-path:polygon(25% 2%,75% 2%,100% 50%,75% 98%,25% 98%,0 50%);
  background:linear-gradient(155deg,#221c13,#0d0b09 70%)}

/* ── A VOZ — eyebrow roxo ACIMA, título na serifa do app em itálico.
     O HTML segue título→sub; o column-reverse inverte só no visual. ── */
.wkb-rev-titles{flex:1;min-width:0;display:flex;flex-direction:column-reverse;gap:3px}
.wkb-rev-title{color:var(--rnia-creme);font:italic 600 21px/1.08 'Playfair Display',Georgia,serif;letter-spacing:.005em}
.wkb-rev-sub{color:var(--rnia-eyebrow);font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.16em;text-transform:uppercase}

.wkb-rev-close{position:relative;width:32px;height:32px;flex:none;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(157,92,255,.30);border-radius:10px 10px 10px 5px;background:rgba(157,92,255,.07);
  color:var(--rnia-tinta);font-size:14px;cursor:pointer;transition:all .18s var(--ease)}
.wkb-rev-close:hover{color:var(--rnia-creme);border-color:rgba(157,92,255,.55);background:rgba(157,92,255,.13)}
.wkb-rev-close::before{content:'';position:absolute;inset:-7px}

/* ── corpo das janelas ── */
.wkb-rev-body{position:relative;z-index:1;padding:2px 18px 18px;max-height:64vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
.wkb-rev-section{display:flex;align-items:center;gap:8px;color:var(--rnia-eyebrow);font-size:var(--fs-micro,11.5px);font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;margin:16px 0 7px}
.wkb-rev-section::before{content:'';width:14px;height:1.5px;border-radius:1px;flex:none;
  background:linear-gradient(90deg,var(--rnia),rgba(157,92,255,0))}
.wkb-rev-section:first-child{margin-top:8px}
.wkb-rev-list{margin:0;padding:0;list-style:none}
.wkb-rev-list li{position:relative;font-size:var(--fs-sm,14.5px);line-height:1.55;color:#ede3d3;margin:7px 0;padding-left:19px}
.wkb-rev-list li::before{content:'';position:absolute;left:2px;top:8px;width:5px;height:5px;border-radius:50%;
  background:var(--rnia);box-shadow:0 0 7px rgba(157,92,255,.8)}
.wkb-rev-p{font-size:var(--fs-sm,14.5px);line-height:1.55;color:#ede3d3;margin:7px 0}
.wkb-rev-b{color:#fff;font-weight:600}

/* a nota de rascunho — itálico + fio TRACEJADO: o vocabulário de "não é
   definitivo" que o app já fala. Vale pras três superfícies. */
.wkb-revisao-note,.wkb-metod-note{margin:16px 0 0;padding:11px 0 0;border-top:1px dashed rgba(238,231,218,.17);
  font-size:var(--fs-xs,13px);font-style:italic;color:var(--ink2);line-height:1.5;text-wrap:pretty}

/* pensando: shimmer honesto no texto (espera, nunca barra falsa) */
.wkb-revisao-loading{padding:34px 6px 30px;text-align:center;font:italic 500 15px Jost,'Avenir Next',system-ui,sans-serif;
  color:transparent;background:linear-gradient(95deg,rgba(203,167,255,.45) 22%,var(--rnia-luz) 40%,var(--rnia-tinta) 52%,rgba(203,167,255,.45) 68%);
  background-size:240% 100%;-webkit-background-clip:text;background-clip:text;
  animation:rniaVarre 1.9s linear infinite}
@keyframes rniaVarre{from{background-position:220% 0}to{background-position:-120% 0}}
.wkb-revisao-err{font-size:13.5px;color:var(--verm);padding:12px 2px}

/* ── PROPOSTA — fichas e exercícios. Decisão continua dourada. ── */
.wkb-prop-topo{display:flex;justify-content:flex-end;margin:12px 0}
.wkb-prop-usar-todas{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 16px;
  border:1px solid rgba(201,162,39,.45);border-radius:10px 10px 10px 5px;background:rgba(201,162,39,.07);
  color:var(--gold2);font:inherit;font-size:var(--fs-sm,14.5px);font-weight:500;cursor:pointer;transition:all .18s var(--ease)}
.wkb-prop-usar-todas:hover{border-color:var(--gold2);background:rgba(201,162,39,.12)}
.wkb-prop-usar-todas:disabled{border-color:var(--line);color:var(--ink3);background:none;cursor:default}
.wkb-prop-ficha{border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.018);
  border-radius:13px 13px 13px 6px;padding:12px 14px;margin:12px 0}
.wkb-prop-ficha-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:9px;
  border-bottom:1px solid rgba(255,255,255,.05)}
.wkb-prop-ficha-head b{font:500 16.5px 'Playfair Display',Georgia,serif;color:var(--rnia-creme);letter-spacing:.01em}
/* O tempo estimado da divisão contra o alvo (rodada tempo_alvo_seletor,
   23/08) — dourado quando bate a faixa, âmbar-atenção quando não bate
   (o app nunca finge que bateu quando não bateu). */
.wkb-prop-tempo{font-size:var(--fs-xs,13px);font-weight:500;color:var(--gold2);white-space:nowrap;font-variant-numeric:tabular-nums}
.wkb-prop-tempo .rm{font-size:var(--fs-xs,13px);font-weight:400;color:var(--ink3)}
.wkb-prop-tempo-fora{color:var(--lemon)}
.wkb-prop-tempo-fora .rm{color:var(--ink2)}
.wkb-prop-usar{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 13px;
  background:var(--gold);border:0;border-radius:9px 9px 9px 4px;color:#0a0806;font:inherit;font-size:var(--fs-xs,13px);font-weight:600;
  cursor:pointer;white-space:nowrap;transition:filter .18s var(--ease)}
.wkb-prop-usar:hover{filter:brightness(1.1)}
.wkb-prop-usar::before{content:'';position:absolute;inset:-6px}
.wkb-prop-usar:disabled{background:rgba(255,255,255,.06);color:var(--ink3);filter:none;cursor:default}
.wkb-prop-ex{padding:9px 0;border-top:1px solid rgba(255,255,255,.05);font-size:var(--fs-sm,14.5px);color:#ede3d3}
.wkb-prop-ficha-head + .wkb-prop-ex{border-top:0}
.wkb-prop-ex b{font-weight:500;color:var(--ink)}
.wkb-prop-ex .rm{display:block;font-size:var(--fs-xs,13px);color:var(--ink3);margin-top:2px;font-variant-numeric:tabular-nums}
/* a observação da IA (o segundo .rm) fala em itálico — voz de rascunho */
.wkb-prop-ex .rm + .rm{font-style:italic;color:var(--ink2);font-variant-numeric:normal}
.wkb-preview-empty{font-size:13.5px;color:var(--ink3);margin:8px 0}

/* avisos de CATÁLOGO e SAÚDE — cores de status byte a byte, nunca roxo.
   Só ganharam o canto do app e o ponto luminoso (ícone+rótulo). */
.wkb-prop-aviso{display:inline-flex;align-items:center;gap:6px;margin:7px 6px 0 0;font-size:var(--fs-xs,13px);font-weight:500;
  letter-spacing:.03em;padding:3px 9px 3px 8px;border-radius:8px 8px 8px 4px;border:1px solid;font-style:normal}
.wkb-prop-aviso::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor;flex:none}
.wkb-prop-aviso-catalogo{color:#F0A25A;background:rgba(230,125,45,.10);border-color:rgba(230,125,45,.35)}
.wkb-prop-aviso-saude{color:#F6C65B;background:rgba(246,198,91,.08);border-color:rgba(246,198,91,.32)}

/* ── MINHA METODOLOGIA — a mesma moldura; dentro, o professor no comando:
     seleção ativa e Salvar continuam dourados. Foco de campo acende roxo
     (dentro das janelas RN IA, quem está ouvindo é a IA). ── */
#wkbMetodologiaOverlay .wkb-preview-panel{display:flex;flex-direction:column;max-height:86vh}
#wkbMetodologiaOverlay .wkb-preview-header{display:flex;align-items:center;gap:11px;padding:16px 18px 12px;border-bottom:0;position:relative;z-index:1}
#wkbMetodologiaOverlay .wkb-preview-header h3{position:relative;flex:1;margin:0;padding:1px 0 0 47px;min-height:36px;
  display:flex;flex-direction:column;justify-content:center;
  color:var(--rnia-creme);font:italic 600 20px/1.1 'Playfair Display',Georgia,serif}
#wkbMetodologiaOverlay .wkb-preview-header h3::before{content:'';position:absolute;left:0;top:calc(50% - 17px);width:36px;height:34px;
  clip-path:polygon(25% 2%,75% 2%,100% 50%,75% 98%,25% 98%,0 50%);
  background:linear-gradient(140deg,var(--rnia) 6%,var(--rnia-ouro) 58%,var(--rnia-luz) 94%);
  filter:drop-shadow(0 0 8px rgba(157,92,255,.3))}
#wkbMetodologiaOverlay .wkb-preview-header h3::after{content:'RN';position:absolute;left:1.4px;top:calc(50% - 15.6px);width:33.2px;height:31.2px;
  clip-path:polygon(25% 2%,75% 2%,100% 50%,75% 98%,25% 98%,0 50%);
  background:linear-gradient(155deg,#221c13,#0d0b09 70%);
  display:flex;align-items:center;justify-content:center;
  color:var(--rnia-luz);font:600 13.5px 'Playfair Display',Georgia,serif;letter-spacing:-.04em;font-style:normal}
#wkbMetodologiaOverlay .wkb-close{position:relative;width:32px;height:32px;flex:none;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(157,92,255,.30);border-radius:10px 10px 10px 5px;background:rgba(157,92,255,.07);
  color:var(--rnia-tinta);font-size:14px;cursor:pointer;transition:all .18s var(--ease)}
#wkbMetodologiaOverlay .wkb-close:hover{color:var(--rnia-creme);border-color:rgba(157,92,255,.55);background:rgba(157,92,255,.13)}
#wkbMetodologiaOverlay .wkb-close::before{content:'';position:absolute;inset:-7px}
#wkbMetodologiaOverlay .wkb-preview-body{position:relative;z-index:1;flex:1;min-height:0;overflow-y:auto;
  -webkit-overflow-scrolling:touch;padding:4px 18px 18px}
#wkbMetodologiaOverlay .wkb-field{margin-top:15px}
#wkbMetodologiaOverlay .wkb-field>label{display:block;font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink2);margin-bottom:7px}
#wkbMetodologiaOverlay select,
#wkbMetodologiaOverlay input[type="search"],
#wkbMetodologiaOverlay textarea{width:100%;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);
  border-radius:10px 10px 10px 5px;color:var(--ink);font-size:var(--fs-sm,14.5px);padding:10px 12px;min-height:44px;
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}
#wkbMetodologiaOverlay select:focus,
#wkbMetodologiaOverlay input[type="search"]:focus,
#wkbMetodologiaOverlay textarea:focus{outline:none;border-color:rgba(157,92,255,.55);
  box-shadow:0 0 0 1px rgba(157,92,255,.25),0 0 16px rgba(157,92,255,.12)}
#wkbMetodologiaOverlay .wkb-student-chips{display:flex;flex-wrap:wrap;gap:7px}
#wkbMetodologiaOverlay .wkb-student-chip{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:7px 13px;
  border:1px solid rgba(255,255,255,.10);border-radius:10px 10px 10px 5px;background:rgba(255,255,255,.02);
  color:var(--ink2);font:inherit;font-size:13.5px;cursor:pointer;transition:all .18s var(--ease)}
#wkbMetodologiaOverlay .wkb-student-chip:hover{color:var(--ink);border-color:rgba(255,255,255,.18)}
#wkbMetodologiaOverlay .wkb-student-chip.active{border-color:rgba(201,162,39,.55);background:rgba(201,162,39,.08);color:var(--gold2)}
#wkbMetodologiaOverlay .wkb-student-chip button{border:0;background:transparent;color:inherit;cursor:pointer;
  font-size:var(--fs-sm,14.5px);line-height:1;padding:2px;opacity:.7}
#wkbMetodologiaOverlay .wkb-student-chip button:hover{opacity:1}
.wkb-metod-busca{position:relative;margin-top:0}
.wkb-metod-resultados{position:absolute;left:0;right:0;top:100%;margin-top:5px;z-index:5;display:none;
  background:rgba(24,20,14,.97);border:1px solid rgba(157,92,255,.25);border-radius:12px 12px 12px 6px;
  max-height:220px;overflow-y:auto;padding:5px;box-shadow:0 18px 40px rgba(0,0,0,.5)}
.wkb-metod-resultados.open{display:block;animation:rise .18s var(--ease) both}
.wkb-metod-resultados button{display:block;width:100%;text-align:left;padding:9px 12px;border:0;border-radius:8px 8px 8px 4px;
  background:transparent;color:var(--ink2);font:inherit;font-size:var(--fs-sm,14.5px);cursor:pointer}
.wkb-metod-resultados button:hover{background:rgba(157,92,255,.10);color:var(--ink)}
.wkb-metod-selecionados{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
#wkbMetodologiaOverlay .wkb-metod-actions{display:flex;justify-content:flex-end;margin-top:18px}
#wkbMetodologiaOverlay .wkb-metod-save{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;
  background:var(--gold);color:#0a0806;border:0;border-radius:12px 12px 12px 6px;font:inherit;font-size:var(--fs-sm,14.5px);font-weight:600;
  cursor:pointer;transition:filter .18s var(--ease)}
#wkbMetodologiaOverlay .wkb-metod-save:hover{filter:brightness(1.08)}

/* ── O COPILOTO NA FICHA — módulo do trilho: mais quieto que as janelas.
     A vida dele é o filete (a luz viaja devagar) e o ponto da leitura. ── */
.rnd-ia{position:relative;border:1px solid rgba(157,92,255,.20);border-radius:14px 14px 14px 7px;
  padding:14px 16px 12px;overflow:hidden;
  background:
    radial-gradient(120% 90% at 0% 0%,rgba(157,92,255,.10),transparent 55%),
    radial-gradient(90% 70% at 100% 100%,rgba(201,150,82,.05),transparent 60%),
    linear-gradient(165deg,rgba(255,255,255,.015),rgba(255,255,255,.008))}
.rnd-ia::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,rgba(157,92,255,.15),var(--rnia) 22%,var(--rnia-ouro) 55%,var(--rnia-luz) 72%,rgba(201,150,82,.15));
  background-size:190% 100%;animation:rniaFilete 8.5s ease-in-out infinite}
@keyframes rniaFilete{0%,100%{background-position:0% 0}50%{background-position:100% 0}}
.rnd-ia:has(.rnd-ia-note:not(:empty)){border-color:rgba(157,92,255,.30)}
.rnd-ia-head{display:flex;align-items:center;gap:8px;position:relative;z-index:1}
.rnd-ia-head .eb{display:inline-flex;align-items:center;gap:7px;color:var(--rnia-eyebrow);font-size:var(--fs-xs,13px);letter-spacing:.17em}
.rnd-ia-head .eb::before{content:'';width:9px;height:9px;flex:none;
  clip-path:polygon(25% 2%,75% 2%,100% 50%,75% 98%,25% 98%,0 50%);
  background:linear-gradient(140deg,var(--rnia),var(--gold2))}
/* ⚙ e 📚 entram no fluxo do cabeçalho (position:static mata o right:32px
   inline) e são amansados com grayscale. O certo: trocar as duas strings
   por SVG de traço do app — uma linha de JS; fica pedido no memo. */
.rnd-ia-head .rn-metric-info{position:static;width:30px;height:30px;flex:none;display:grid;place-items:center;
  border:1px solid rgba(157,92,255,.22);border-radius:9px 9px 9px 4px;background:rgba(10,8,6,.3);
  color:var(--ink3);font-size:var(--fs-xs,13px);filter:grayscale(1);opacity:.72;transition:all .18s var(--ease)}
.rnd-ia-head .rn-metric-info:hover{opacity:1;color:var(--rnia-tinta);border-color:rgba(157,92,255,.45)}
.rnd-ia-head button.rn-metric-info:first-of-type{margin-left:auto}
.rnd-ia-note{position:relative;z-index:1;display:flex;gap:10px;margin-top:11px;font-size:13.5px;color:var(--ink2);text-wrap:pretty}
.rnd-ia-note:empty{display:none}
.rnd-ia-note::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--rnia);margin-top:6px;flex:none;
  animation:rniaPulso 3s var(--ease) infinite}
@keyframes rniaPulso{0%,100%{box-shadow:0 0 6px rgba(157,92,255,.45)}50%{box-shadow:0 0 13px rgba(157,92,255,.9)}}
.rnd-ia-note b{color:var(--ink);font-weight:500}
.rnd-ia-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px;position:relative;z-index:1}
/* grade 2×2 de larguras iguais, composta em largura cheia — família do wkb-student-chip: compacto, raio assimétrico; borda em degradê direcional */
.rnd-ia-actions button{display:flex;align-items:center;justify-content:center;text-align:center;min-height:40px;padding:8px 12px;
  border:1px solid transparent;border-radius:10px 10px 10px 5px;color:var(--ink2);font:inherit;font-size:13.5px;
  cursor:pointer;transition:color .18s var(--ease),filter .18s var(--ease);
  background:linear-gradient(180deg,rgba(12,10,8,.55),rgba(12,10,8,.35)) padding-box,
             linear-gradient(120deg,rgba(157,92,255,.34),rgba(157,92,255,.10) 55%,rgba(201,150,82,.16)) border-box}
.rnd-ia-actions button:hover{color:var(--ink);
  background:linear-gradient(180deg,rgba(14,11,9,.6),rgba(14,11,9,.4)) padding-box,
             linear-gradient(120deg,rgba(157,92,255,.75),rgba(201,150,82,.45) 60%,rgba(242,216,170,.55)) border-box}
.rnd-ia-actions button:active{filter:brightness(1.2)}
/* a ação composta (gera a ficha inteira) fala meio tom acima — mesmo roxo, nunca ouro */
.rnd-ia-actions button[data-rnd-ia="gerar-metodologia"]{grid-column:1/-1;color:var(--rnia-tinta);
  background:linear-gradient(180deg,rgba(157,92,255,.12),rgba(157,92,255,.05)) padding-box,
             linear-gradient(120deg,rgba(157,92,255,.55),rgba(157,92,255,.22) 55%,rgba(201,150,82,.3)) border-box}
.rnd-ia-actions button[data-rnd-ia="gerar-metodologia"]:hover{color:var(--rnia-creme)}
/* piso de toque do app no mobile */
@media(max-width:640px){.rnd-ia-actions button{min-height:44px}}
.rnd-ia-foot{position:relative;z-index:1;margin-top:10px;font-size:var(--fs-xs,13px);font-style:italic;color:var(--ink3)}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* ── MINI-HUD do celular — tempo e volume sempre à vista enquanto monta.
     Fios religados: #rndMiniTempo e #rndMiniVolume. ── */
.rnd-ministrip{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;padding:8px 16px 9px;background:rgba(16,13,9,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line2)}
.rnd-ministrip .seg{display:flex;align-items:baseline;gap:7px}
.rnd-ministrip .l{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.14em;color:var(--ink3);text-transform:uppercase}
.rnd-ministrip b{font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif;font-variant-numeric:tabular-nums;color:var(--ink)}
.rnd-ministrip .sep{width:1px;height:16px;background:var(--line2)}
.rnd-ministrip .tick{margin-left:auto;width:26px;height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(201,162,39,.2),#e2c25e);box-shadow:0 0 8px rgba(226,194,94,.5)}
@media (min-width:900px) and (min-height:501px), (min-width:900px) and (pointer:fine){.rnd-ministrip{display:none}}

/* ── HUB — a pergunta respondida numa frase; silêncio é um estado desenhado ── */
.rnd-hub-pulse{position:relative;margin-top:16px;border:1px solid var(--line2);background:linear-gradient(165deg,rgba(201,162,39,.05),rgba(255,255,255,.012) 55%);border-radius:14px 14px 14px 7px;padding:13px 16px 12px;overflow:hidden}
.rnd-hub-pulse::before{content:'';position:absolute;top:0;left:0;right:0;height:2.5px;background:linear-gradient(90deg,var(--gold),rgba(201,162,39,.1))}
.rnd-hub-pulse .eb{color:var(--gold);display:flex;align-items:center;gap:8px}
.rnd-hub-pulse .eb::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold2);box-shadow:0 0 8px rgba(226,194,94,.7)}
#rndHubPulse{margin:7px 0 0;font:500 17px/1.4 'Playfair Display',Georgia,serif;color:var(--ink);text-wrap:pretty}
#rndHubPulse b{color:var(--gold2);font-weight:500}
.rnd-hub-pulse .quieto{color:var(--ink2)}
/* ── ORDEM DAS PEÇAS — celular: a lista de exercícios sobe;
     os instrumentos empilham DEPOIS dela (o celular não regride:
     nada some, muda de andar). display:contents solta as peças do
     aside para a coluna, sem tocar no DOM. ── */
@media (max-width:899px), (pointer:coarse) and (max-height:500px){
.wkb-cols{display:flex;flex-direction:column}
.rn-instruments{display:contents}
.wkb-error{order:0}
.rn-strip{order:1}
.rn-tabs{order:2}
.rn-panel{order:3}
.rn-metrics-rail{order:4}
.wkb-vi{order:5}
.rnd-assessor{order:6}
.rnd-ia{order:7}
.rnd-excluir{order:8} /* último — depois do copiloto, pé de verdade do formulário */
#wkbSummaryCount,#wkbSummaryStudent{order:98}
.rn-metrics-rail,.wkb-vi,.rnd-assessor,.rnd-ia,.rnd-pico{margin-top:14px}
}

/* ── MAC ≥900 — trilho direito vira PAINEL (400px), preso na rolagem ── */
@media (min-width:900px) and (min-height:501px), (min-width:900px) and (pointer:fine){
.wkb-cols{grid-template-columns:minmax(0,1fr) 400px;gap:0 28px}
#wkbBottomBarMobile.open{display:none}   /* no Mac as ações moram no topo */
.wkb-error{grid-column:1;grid-row:1}
.rn-strip{grid-column:1;grid-row:2}
.rn-tabs{grid-column:1;grid-row:3}
.rn-panel{grid-column:1;grid-row:4}
.rn-instruments{grid-row:2/span 3}
.rn-instruments{grid-column:2;position:sticky;top:12px;align-self:start;display:flex;flex-direction:column;gap:12px;margin-top:14px}
.rn-instruments>*{margin-top:0}
.wkb-vi{margin-top:0}
}
/* ── DEMO (inerte no app: depende de html.demo) ── */
html.demo.demo-vazio .wkb-vi-row{display:none}
html.demo.demo-vazio .wkb-vi-empty{display:block}
html.demo.demo-vazio .rnd-ia-note{display:none}


/* ══════════════════════════════════════════════════════════════════════
   COLA DO PORTE — 09/08/2026. Tudo acima é a proposta B, byte a byte.
   Aqui vão só as DUAS peças que o dono pediu da proposta A, cada uma na
   mesma posição em que estava lá.
   ══════════════════════════════════════════════════════════════════════ */

/* 1 · A RÉGUA DE MEDIDORES DA A, NO CELULAR — pedido do dono.
   As quatro regras abaixo são CÓPIA LITERAL de cockpit_A_heranca.css
   (base + o par de ordem do @media dela). Na A a régua vem ANTES da lista
   (order 4 contra 5 do painel) e são quatro cartões soltos; na B ela desceu
   pra depois da lista e virou um bloco 2x2 único. Volta o layout e a posição
   da A. No Mac nada muda: lá a B já mostra o cluster com o filete, e o
   trilho é fixo — o partido dela continua valendo. */
@media (max-width:899px), (pointer:coarse) and (max-height:500px){
.rn-metrics-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.rn-metric{position:relative;border:1px solid var(--line2);background:rgba(255,255,255,.03);border-radius:11px 11px 11px 5px;padding:10px 12px 9px;min-height:64px;display:flex;flex-direction:column-reverse;gap:2px}
.rn-metric .l{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.14em;color:var(--ink3);text-transform:uppercase}
.rn-metric .v{font:500 var(--fs-lg,18px) 'Playfair Display',Georgia,serif;font-variant-numeric:tabular-nums;color:var(--ink)}
/* Estes DOIS números são os únicos que não pude copiar literal: na A a
   sequência é 4/5, mas na B a caixa de volume já ocupa o 5 — copiar os
   números da A criava EMPATE e jogava o volume por grupo pra cima da lista
   (defeito real, visto no teste do dono em 09/08). Os valores mudam; o
   resultado é o mesmo que na A: medidores ANTES da lista. */
.rn-metrics-rail{order:3}
.rn-panel{order:4}
  /* O ASSESSOR ANDA COM O PROFESSOR — ideia do dono (09/08):
     "abaixo de cada exercício a ser inserido por último… a cada novo
     exercício o assessor já vai pra baixo dele, assim o professor sempre
     tem uma visão geral do treino que está montando".
     Exercício novo entra no FIM da lista, então logo depois da lista é
     logo abaixo do que ele está preenchendo. Sobe na frente do volume
     por grupo, que passa a vir depois. */
  .rnd-assessor{order:5}
  .wkb-vi{order:6}
  /* as três abaixo são MINHAS, e só desfazem o que a B fez no mesmo alvo —
     sem elas o cluster da B (borda única + filete + divisórias internas)
     continuaria por cima da cópia acima. */
  .rn-metrics-rail{position:static;border:0;background:none;padding:0;border-radius:0}
  .rn-metrics-rail::before{display:none}
  .rn-metric:nth-child(odd),.rn-metric:nth-child(n+3){border:1px solid var(--line2)}
}

/* 2 · AS TRÊS PLACAS DE STATUS DO HUB, DA A — pedido do dono.
   Mesma posição da A: logo abaixo do subtítulo, antes da grade.
   Regras copiadas verbatim de cockpit_A_heranca.css. */
/* Os três tokens abaixo são da proposta A (fios dourados + papel quente).
   Ficam ESCOPADOS ao quadro para não vazarem na linguagem da B. */
.rnd-hub-board{--hair:rgba(201,162,39,.24);--hair2:rgba(201,162,39,.13);--paper:#0f0c08;
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}
/* ── PEÇA 1 da rodada 13/08 (Design): os 3 stats lado a lado no celular ──
   Verbatim do painel <pre> da entrega montagem-stats-e-busca-standalone.
   Antes o celular empilhava (grid 1fr); agora três botões lado a lado,
   menores, com caret dourado via ::after (HTML intocado). Desktop não
   regride — tudo vive dentro deste media query. */
@media (max-width:899px), (pointer:coarse) and (max-height:500px){
  .rnd-hub-board{grid-template-columns:repeat(3,1fr);gap:7px}
  .rnd-hub-plate{min-height:72px;padding:9px 9px 8px;gap:6px;
    flex-direction:column-reverse;
    border-color:rgba(201,162,39,.18);
    background:linear-gradient(180deg,#131009,#0d0b08)}
  .rnd-hub-plate b{font-size:23px}
  .rnd-hub-plate .l{font-size:var(--fs-xs,13px);letter-spacing:.1em;
    line-height:1.32;text-wrap:balance;min-height:21px}
  .rnd-hub-plate::after{content:'›';position:absolute;
    right:8px;bottom:6px;font:400 14px/1 Georgia,serif;
    color:rgba(201,162,39,.5)}
  .rnd-hub-plate:active{background:rgba(201,162,39,.10);
    border-color:rgba(201,162,39,.46)}
}
.rnd-hub-plate{position:relative;border:1px solid var(--hair2);background:var(--paper);border-radius:12px 12px 12px 6px;padding:11px 13px 10px;display:flex;flex-direction:column-reverse;gap:2px;min-height:64px;transition:border-color .18s var(--ease);cursor:pointer}
.rnd-hub-plate:hover{border-color:var(--hair)}
.rnd-hub-plate b{font:500 var(--fs-xl)/1 'Playfair Display',Georgia,serif;font-variant-numeric:tabular-nums;color:var(--ink)}
.rnd-hub-plate .l{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.13em;color:var(--ink3);text-transform:uppercase}
.rnd-hub-plate.atencao b{color:var(--gold2)}
.rnd-hub-plate .tag{position:absolute;top:9px;right:11px;font-size:var(--fs-micro,11.5px);letter-spacing:.12em;color:var(--gold2);text-transform:uppercase}

/* ═══════════════ NOVO v4 — A PLACA LARGA "MINHA ACADEMIA" (quarto membro do quadro) ═══════════════
   Mesmos tokens das três placas (--paper, --hair, --hair2, serifa 22px, rótulo 8.5px caixa-alta, .tag, .atencao).
   O que muda: ocupa a linha inteira do grid, deita (row), ganha ícone — a forma diz "outra entidade". */
.rnd-hub-plate--larga{grid-column:1/-1;flex-direction:row;align-items:center;gap:12px;min-height:54px;padding:9px 34px 9px 12px}
.rnd-hub-plate--larga .ic{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--hair2);border-radius:10px 10px 10px 5px;color:var(--ink2);flex:none;transition:all .18s var(--ease)}
.rnd-hub-plate--larga .ic .i{width:18px;height:18px}
.rnd-hub-plate--larga .txt{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.rnd-hub-plate--larga .n{font-size:13.5px;line-height:1.25;color:var(--ink2);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-wrap:pretty}
.rnd-hub-plate--larga .n b{font-size:17px;line-height:1;vertical-align:-1px}          /* o "212" — serifa herdada da placa, um degrau menor porque está em linha */
.rnd-hub-plate--larga .n em{font-style:normal;color:var(--ink2)}
.rnd-hub-plate--larga .n .sep{color:var(--ink3);padding:0 5px}
.rnd-hub-plate--larga::after{content:'›';position:absolute;right:12px;top:50%;transform:translateY(-50%);font:400 var(--fs-md,16px)/1 Georgia,serif;color:rgba(201,162,39,.5)}
.rnd-hub-plate--larga .tag{position:static;margin-left:auto;padding:3px 7px 2px;border:1px solid rgba(201,162,39,.3);border-radius:7px 7px 7px 3px;flex:none}
/* com pendência: o mesmo .atencao das placas, mais o fio do herói e o ícone com os tokens do .wkh-lib-ic */
.rnd-hub-plate--larga.atencao{border-color:rgba(201,162,39,.35)}
.rnd-hub-plate--larga.atencao .ic{color:var(--gold2);border-color:rgba(201,162,39,.3);background:rgba(201,162,39,.06)}
.rnd-hub-plate--larga.atencao .n em{color:var(--gold2);font-weight:500}
/* acervo vazio: o "vazio clicável" da constituição — um valor só */
.rnd-hub-plate--larga.vazio{border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26)}
.rnd-hub-plate--larga.vazio .ic{border-style:dashed;border-color:rgba(255,255,255,.16);color:var(--ink3)}
.rnd-hub-plate--larga.vazio .n{color:var(--ink3);white-space:normal;text-wrap:pretty}
.rnd-hub-plate--larga.vazio::after{color:var(--ink3)}
@media (max-width:899px), (pointer:coarse) and (max-height:500px){
  .rnd-hub-plate--larga{min-height:54px;padding:9px 30px 9px 11px;gap:11px;flex-direction:row}
  .rnd-hub-plate--larga .l{min-height:0;text-wrap:nowrap}
  .rnd-hub-plate--larga::after{right:10px;bottom:auto;top:50%;transform:translateY(-50%)}
  .rnd-hub-plate--larga.vazio{background:rgba(0,0,0,.26);border-color:rgba(255,255,255,.16)}
}

/* ── PEÇA 2 da rodada 13/08 (Design): "Buscar aluno" vira lista seletora ──
   Bloco .wkb-lista verbatim do painel <pre> da entrega; as peças internas
   (pastilha, nome, meta, pé) reinterpretadas do seletor da agenda que o
   Design referenciou. Traduções necessárias (a var não existe na Montagem):
   --gold-soft → --gold2 · --font-ui → inherit. */
.wkb-aluno-dica{font-size:var(--fs-xs,13px);color:var(--ink2);margin:6px 0 0}
.wkb-lista{border:1px solid var(--line);border-radius:16px;
  overflow:hidden;background:rgba(255,255,255,.014);margin-top:12px}
.wkb-lista-topo{display:flex;align-items:center;gap:9px;
  padding:11px 12px;border-bottom:1px solid var(--line)}
.wkb-lista-topo .lupa{width:16px;height:16px;flex:none}
.wkb-busca{flex:1;min-width:0;border:0;background:transparent;outline:none;
  color:var(--ink);font:inherit;font-size:15px;padding:2px 0}
.wkb-busca::placeholder{color:var(--ink3)}
.wkb-lista-cont{flex:none;font-size:var(--fs-micro,11.5px);letter-spacing:.12em;color:var(--ink3);text-transform:uppercase}
.wkb-lista-rolo{max-height:236px;overflow-y:auto;padding:5px}
.wkb-lista-rolo::-webkit-scrollbar{width:0}
.wkb-aluno{display:flex;align-items:center;gap:11px;
  width:100%;padding:11px 10px;border:1px solid transparent;
  background:transparent;border-radius:11px;text-align:left;cursor:pointer}
.wkb-aluno .p{width:9px;height:9px;border-radius:50%;flex:none}
.wkb-aluno .n{flex:1;min-width:0;font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wkb-aluno .meta{flex:none;font-size:var(--fs-xs,13px);color:var(--ink3)}
.wkb-aluno.on{background:rgba(201,162,39,.10);border-color:rgba(201,162,39,.34)}
.wkb-aluno.on .n{color:var(--gold2)}
.wkb-lista-vazio{padding:16px 10px;font-size:var(--fs-sm,14.5px);color:var(--ink3)}
.wkb-lista-pe{padding:6px 5px 8px;border-top:1px solid var(--line)}
.wkb-aluno-novo{display:flex;align-items:center;gap:11px;width:100%;padding:11px 10px;
  border:0;background:transparent;border-radius:11px;text-align:left;cursor:pointer;color:var(--ink2)}
.wkb-aluno-novo .ic{width:16px;height:16px;flex:none}
.wkb-aluno-novo small{color:var(--ink3);font-size:var(--fs-xs,13px);margin-left:4px}

/* ══════════════════════════════════════════════════════════════════════
   ORGANIZAÇÃO DO MONTADOR (rodada `organizacao_montador`, entregue e portada
   em 21/08). CSS copiado VERBATIM da seção 2 de
   docs/rodada_organizacao_montador_2026-08-21_ENTREGA-CSS.html — as seções 1
   e 3 daquele arquivo são palco e não vêm.

   Puramente ADITIVO: prefixo `rno-`, e nenhuma classe do app é renomeada ou
   alterada. Conferido antes de colar: zero ocorrências de `rno-` no projeto.
   ⚠️ Sozinho este bloco não pinta nada — o markup que o usa é construído pelo
   motor (workoutBundle.js) e vem no porte seguinte. CSS aqui sem markup lá é
   fio solto conhecido; está declarado no commit, não esquecido.
   ══════════════════════════════════════════════════════════════════════ */
/* ════════════════════════════════════════════════════════════════════════
   2 · CSS COLÁVEL — rodada organizacao_montador (21/08/2026). PORTAR ESTE
       BLOCO. Só acrescenta: nenhuma classe do app é renomeada ou alterada.
       Prefixo rno-. Reusa do app: .wkb-sheet-card, .wkb-aluno-head,
       .wkb-sheet-t, .wkb-aluno-dica, .wkb-lista*, .wkh-swatch, .eb, tokens.
       Pares dashed reusados como estão: rn-add (clicável) e wkh-empty
       (informativo) — nenhum valor quase-igual novo.
   ════════════════════════════════════════════════════════════════════════ */

/* ── A PORTA · passo 2 — "de onde parte?" (vive dentro do #wkbAlunoSheet,
     mesma folha do passo 1; o motor troca o miolo) ── */
.rno-op{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 14px;border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:13px 13px 13px 6px;margin-top:8px;text-align:left;transition:border-color .18s var(--ease),background .18s var(--ease)}
.rno-op:hover{border-color:var(--line)}
.rno-op:active{border-color:rgba(226,194,94,.55);background:rgba(201,162,39,.05)}
.rno-ic{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px 10px 10px 5px;color:var(--gold2);flex:none}
.rno-tx{flex:1;min-width:0}
.rno-t{display:block;font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif;color:var(--ink)}
.rno-m{display:block;font-size:var(--fs-xs,13px);color:var(--ink3);margin-top:2px;text-wrap:pretty;font-variant-numeric:tabular-nums}
.rno-op .i-arrow{color:var(--ink3);flex:none}
/* rascunho é clicável e "não definitivo": o par dashed do .rn-add, como está */
.rno-op-rasc{border-style:dashed;border-color:rgba(238,231,218,.2);background:rgba(0,0,0,.22)}
.rno-op-rasc:hover{border-color:rgba(238,231,218,.32)}
/* a etiqueta "no ar" — dourado é o agora; nunca cor de status */
.rno-tag{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:2px 8px;border:1px solid rgba(201,162,39,.4);border-radius:7px 7px 7px 3px;font:500 var(--fs-micro,11.5px) Jost,'Avenir Next',system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--gold2);vertical-align:3px;white-space:nowrap}
.rno-tag::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold2);box-shadow:0 0 6px rgba(226,194,94,.8)}
.rno-sec{display:flex;align-items:center;gap:10px;margin:18px 2px 2px}
.rno-sec span{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.16em;color:var(--ink3);text-transform:uppercase;white-space:nowrap}
.rno-sec::after{content:'';flex:1;height:1px;background:var(--line2)}
/* informativo (não clicável): o par do .wkh-empty, como está */
.rno-vazio{margin-top:8px;padding:12px 14px;border:1px dashed rgba(238,231,218,.16);background:rgba(0,0,0,.25);border-radius:10px 10px 10px 5px;font-size:var(--fs-xs,13px);color:var(--ink3);text-wrap:pretty}
.rno-foot{margin-top:18px;padding-top:12px;border-top:1px dashed rgba(238,231,218,.17);font-size:var(--fs-xs,13px);font-style:italic;color:var(--ink3);text-wrap:pretty}
/* letras da ficha de outro aluno (família do .preset .pl b) */
.rno-letras{display:flex;gap:5px;flex:none;flex-wrap:wrap;justify-content:flex-end}
.rno-letras b{min-width:24px;height:24px;display:grid;place-items:center;border:1px solid rgba(201,162,39,.35);border-radius:7px 7px 7px 3px;font-size:var(--fs-xs,13px);font-weight:600;color:var(--gold2);padding:0 5px}
.rno-letras b.off{border-color:var(--line);color:var(--ink3)}

/* ── A CASA · cartão da pessoa — ficha no ar E rascunho juntos ── */
.rno-pessoa{border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:13px 13px 13px 6px;margin-top:10px;overflow:hidden;transition:border-color .18s var(--ease)}
.rno-pessoa:hover{border-color:var(--line)}
.rno-pessoa-ficha{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:13px 16px;text-align:left}
.rno-pessoa-ficha .i-arrow{margin-left:auto;color:var(--ink3)}
.rno-pessoa-rasc{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:10px 16px 11px;border-top:1px dashed rgba(238,231,218,.17);color:var(--ink2);font-size:var(--fs-sm,14.5px);font-style:italic;text-align:left;transition:color .18s var(--ease)}
.rno-pessoa-rasc:hover{color:var(--ink2)}
.rno-pessoa-rasc b{font-style:normal;font-weight:500;color:var(--ink2)}
.rno-pessoa-rasc .i{width:13px;height:13px}
.rno-pessoa-rasc .i-arrow{margin-left:auto}
/* meta de toda peça guardada: o que o app já sabe, mostrado (nunca cobrado) */
.rno-meta{display:block;font-size:var(--fs-xs,13px);color:var(--ink3);margin-top:3px;font-variant-numeric:tabular-nums}

/* ── A FOLHA DOS RASCUNHOS — a plaquinha passa a dizer a verdade (C-206) ── */
.rno-rasc-row{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 14px;border:1px dashed rgba(238,231,218,.2);background:rgba(0,0,0,.22);border-radius:12px 12px 12px 6px;margin-top:8px;text-align:left;transition:border-color .18s var(--ease)}
.rno-rasc-row:hover{border-color:rgba(238,231,218,.32)}
.rno-rasc-row .i-arrow{margin-left:auto;color:var(--ink3)}
/* rascunho sem dono: pastilha vazada — "ainda sem dono", sem alarme */
.rno-swatch-vago{width:7px;height:26px;border-radius:4px;border:1px dashed rgba(238,231,218,.35);flex:none}

/* ── DENTRO DO MONTADOR · a linha de estado (acrescenta ao fim do .rn-strip;
     resolve "não dá pra saber o que estou editando") ── */
.rno-status{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding-top:11px;border-top:1px dashed rgba(238,231,218,.17);font-size:var(--fs-xs,13px);color:var(--ink2);text-wrap:pretty}
.rno-status::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--ink3);margin-top:6px;flex:none}
.rno-status em{font-style:italic;color:var(--ink3)}
.rno-status b{font-weight:500;color:var(--ink)}
.rno-status-noar{border-top-style:solid;border-top-color:rgba(201,162,39,.28)}
.rno-status-noar::before{background:var(--gold2);box-shadow:0 0 7px rgba(226,194,94,.7)}
.rno-status-noar b{color:var(--gold2)}

/* ── A CAPA DA FICHA (rodada a_ficha_como_coisa + complemento os_nomes,
     22/08) — envolve o #rnoStatus que já existia; o divisor dele agora mora
     aqui, um nível acima ── */
.fic-capa{margin-top:12px;padding-top:11px;border-top:1px dashed rgba(238,231,218,.17)}
.fic-capa .rno-status{margin-top:7px;padding-top:0;border-top:0}
.fic-capa-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.fic-capa-top .eb{letter-spacing:.16em}
.fic-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;min-height:20px;border:1px dashed rgba(238,231,218,.25);border-radius:7px 7px 7px 3px;font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.fic-capa.noar{border-top-style:solid;border-top-color:rgba(201,162,39,.28)}
.fic-capa.noar .fic-tag{border:1px solid rgba(201,162,39,.4);color:var(--gold2)}
.fic-capa.noar .fic-tag::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold2);box-shadow:0 0 6px rgba(226,194,94,.8)}
.fic-nome-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:5px}
.fic-nome{display:flex;align-items:center;gap:8px;min-height:32px}
.fic-nome b{font:500 var(--fs-lg,18px) 'Playfair Display',Georgia,serif;color:var(--ink);letter-spacing:.005em}
.fic-nome .i{width:13px;height:13px;color:var(--ink3)}
.fic-nome .vago{color:var(--ink3)}
/* o toque no nome vira input ali mesmo — #wkbNome já é o campo; isto só
   estiliza o estado dormente (título) e o ativo (edição) do MESMO input. */
#wkbNome.fic-nome-input{background:none;border:0;padding:0;font:500 var(--fs-lg,18px) 'Playfair Display',Georgia,serif;color:var(--ink);letter-spacing:.005em;min-height:32px;width:100%}
#wkbNome.fic-nome-input::placeholder{color:var(--ink3);font-weight:500}
#wkbNome.fic-nome-input:focus{outline:0;background:rgba(0,0,0,.25);border:1px solid rgba(201,162,39,.4);border-radius:11px 11px 11px 5px;padding:0 12px;min-height:40px}

/* ── NOME DA DIVISÃO (novo campo — o #wkbNome de ontem, descido para o
     painel da letra, com o rótulo certo) ── */
.fic-divnome{margin-top:14px}
.fic-divnome .eb{display:block;margin:0 2px 6px}
.fic-divnome-row{display:flex;flex-wrap:wrap;gap:8px}
/* 04/10 ⭐ por grupo: com 3–4 grupos o rótulo cresce — quebra pra linha de baixo em vez de esmagar o nome (min 140px) */
.fic-divnome-row input{flex-basis:140px}
.fic-grupo{max-width:100%}
.fic-grupo #rnBlockLabel{min-width:0;white-space:normal;text-align:left}
.fic-divnome-row input{flex:1;min-width:0;min-height:44px;padding:0 13px;background:rgba(0,0,0,.22);border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink);font-size:15px}
.fic-divnome-row input::placeholder{color:var(--ink3)}
.fic-grupo{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 13px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);font-size:13.5px;flex:none}
/* `#rnBlockLabel` já tinha estilo próprio (eyebrow dourado, maiúsculo) de
   quando era uma linha sozinha acima da lista; aqui vira o texto do chip —
   precisa vencer a especificidade do id, senão o texto sai gritando. */
.fic-grupo #rnBlockLabel{font-size:13.5px;font-weight:400;letter-spacing:0;color:inherit;text-transform:none}

/* ── BLOCO DA DIVISÃO (04/10) — [CÓPIA] fonte: docs/rodada_nome_divisao_2026-10-04/molde_jean.html ── */
.fic-capa-top .fic-met{margin-left:auto}
#wkBuilderOverlay .fic-met[hidden]{display:none}
.fic-div{margin-top:14px;border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:14px;background:rgba(255,255,255,.02);display:grid;gap:10px}
/* C-1470 (20/10, Raphael: «os campos saindo para fora da borda»): a grade não cresce com texto longo e o campo conta borda+padding dentro dos 100%. */
.fic-div{grid-template-columns:minmax(0,1fr)}
.fic-div>*,.fic-div .campo>*{min-width:0;box-sizing:border-box}
#wkbDivTitulo.fic-div-titulo,#wkbDivNome.fic-apelido,.fic-div .fic-grupo{box-sizing:border-box;max-width:100%}
.fic-div .fic-grupo #rnBlockLabel{min-width:0;overflow:hidden;text-overflow:ellipsis}
.fic-div .eb{font-size:var(--fs-micro,11.5px);letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);font-weight:500}
.fic-div-previa{display:flex;align-items:baseline;gap:8px;min-width:0}
.fic-div-previa .eb{flex:none}
.fic-div-previa b{font:500 var(--fs-sm,14.5px) 'Jost',system-ui,sans-serif;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fic-div .campo{display:grid;gap:4px}
.fic-div .campo>.eb{display:flex;align-items:center;gap:6px}
#wkbDivTitulo.fic-div-titulo{width:100%;min-height:44px;background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:0 12px;color:var(--ink);font:500 var(--fs-lg,18px) 'Playfair Display',Georgia,serif;transition:border-color 220ms cubic-bezier(.23,1,.32,1)}
#wkbDivTitulo.fic-div-titulo:focus{outline:none;border-color:rgba(201,162,39,.5)}
.fic-div .fic-grupo{display:flex;align-items:center;gap:8px;min-height:44px;border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:0 12px;cursor:pointer;max-width:none}
.fic-div .fic-grupo #rnBlockLabel{flex:1;text-align:left;background:none;border:0;padding:0;color:var(--ink);font:500 var(--fs-md,16px) 'Jost',system-ui,sans-serif;letter-spacing:0;text-transform:none;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fic-div .fic-grupo #rnBlockLabel.vago{color:var(--ink3)}
.fic-div .fic-grupo svg{width:16px;height:16px;flex:none;stroke:var(--ink3);fill:none;stroke-width:2}
#wkbDivNome.fic-apelido{width:100%;min-height:40px;background:rgba(0,0,0,.26);border:1px dashed rgba(255,255,255,.16);border-radius:12px;padding:0 12px;color:var(--ink2);font:400 var(--fs-sm,14.5px) 'Jost',system-ui,sans-serif}
#wkbDivNome.fic-apelido::placeholder{color:var(--ink3)}
#wkbDivNome.fic-apelido:focus{outline:none;border-style:solid;border-color:rgba(255,255,255,.28)}
.fic-div .cad{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.2}
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){
  .fic-div{grid-template-columns:1.1fr 1.3fr 1fr;column-gap:14px;padding:16px 18px}
  .fic-div-previa{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){#wkbDivTitulo.fic-div-titulo{transition:none}}

/* ── O SELETOR DE METODOLOGIA (folha leve, mesmo padrão de .wkb-sheet-*) ── */
.fic-met-op{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:11px 14px;border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:13px 13px 13px 6px;margin-top:8px}
.fic-met-op .t{flex:1;min-width:0;font-size:var(--fs-sm,14.5px);color:var(--ink)}
.fic-met-op.sel{border-color:rgba(226,194,94,.55);background:rgba(201,162,39,.05);color:var(--gold2)}

/* ── O RESTANTE DA RODADA a_ficha_como_coisa (22/08) — a estante, a leitura,
     modo limpar, confirmação em lote, tamanho do modelo. Fonte:
     ENTREGA-CSS-a_ficha_como_coisa.html (16:05), telas 04-09 e 12. Valores
     copiados, não interpretados; classes novas com o prefixo fic-. ── */

/* a linha "anteriores" no cartão da pessoa — irmã de .rno-pessoa-rasc */
.rno-pessoa-sub{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px 16px;border-top:1px dashed rgba(238,231,218,.14);font-size:var(--fs-sm,14.5px);color:var(--ink2);text-align:left}
.rno-pessoa-sub .i{width:14px;height:14px;color:var(--ink3)}
.rno-pessoa-sub b{font-weight:500;color:var(--ink)}
.rno-pessoa-sub .i-arrow{margin-left:auto;color:var(--ink3)}

/* ── A ESTANTE — linha do tempo das fichas de uma pessoa ── */
.fic-tl{position:relative;padding-left:20px;margin-top:12px}
.fic-tl::before{content:'';position:absolute;left:6px;top:18px;bottom:16px;width:1px;background:var(--line2)}
.fic-hist{position:relative;display:flex;align-items:center;gap:11px;width:100%;min-height:58px;padding:11px 13px;border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:13px 13px 13px 6px;margin-top:8px;text-align:left}
.fic-hist::before{content:'';position:absolute;left:-17.5px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--ink3)}
.fic-hist .tx{flex:1;min-width:0}
.fic-hist .t{display:block;font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif;color:var(--ink2)}
.fic-hist .t.vago{color:var(--ink3)}
.fic-hist .m{display:block;font-size:var(--fs-xs,13px);color:var(--ink3);margin-top:2px;font-variant-numeric:tabular-nums;text-wrap:pretty}
.fic-hist.noar .t{color:var(--ink)}
.fic-hist.noar{border-color:rgba(201,162,39,.28);background:linear-gradient(165deg,rgba(201,162,39,.05),rgba(255,255,255,.012) 60%)}
.fic-hist.noar::before{background:var(--gold2);box-shadow:0 0 7px rgba(226,194,94,.7)}
.fic-limpar{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:9px 9px 9px 4px;color:var(--ink3);font-size:var(--fs-xs,13px)}
/* modo limpar: seleção em ouro; o perigo mora só no botão */
.fic-check{width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px 7px 7px 3px;color:transparent;flex:none}
.fic-hist.sel{border-color:rgba(226,194,94,.55);background:rgba(201,162,39,.05)}
.fic-hist.sel .fic-check{border-color:var(--gold2);color:var(--gold2)}
.fic-hist.fora{opacity:.42}
.fic-hist .nota{font-size:var(--fs-micro,11.5px);color:var(--ink3);letter-spacing:.12em;text-transform:uppercase;flex:none}

/* ── A LEITURA — ficha antiga, só leitura; tela própria (não folha) ── */
/* ⚠️ GOTCHA medido: `.wkb-overlay` fica SEMPRE `display:flex` (o CSS inline
   de `_injectBuilderCSS` vence o `display:none` deste arquivo por ordem de
   fonte) — quem esconde o Hub/Builder fechados é o `.wkb-panel` deslocado
   com `translateY(100%)` a partir da BORDA DE BAIXO (bottom-sheet). A
   leitura tem layout próprio (tela cheia no celular, painel CENTRALIZADO no
   Mac) — `translateY` a partir do centro não sai da tela por igual nos dois
   layouts, então esconder aqui é por `display:none`, com o seletor por ID
   (mais específico que a classe) vencendo o `display:flex` genérico. */
#wkFichaLeituraOverlay{z-index:9890;display:none}
#wkFichaLeituraOverlay.open{display:flex}
.fic-le-stage{min-height:100%}
.fic-le-top{display:flex;align-items:center;gap:12px;padding:14px 16px 0}
.fic-le-top .volta{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px 11px 11px 5px;color:var(--ink2);flex:none}
.fic-le-head{padding:12px 16px 0}
.fic-le-head h2{margin:2px 0 0;font:500 24px 'Playfair Display',Georgia,serif}
.fic-le-head .m{font-size:var(--fs-xs,13px);color:var(--ink2);margin-top:4px;font-variant-numeric:tabular-nums;text-wrap:pretty}
.fic-le-aviso{display:flex;align-items:center;gap:9px;margin:14px 16px 0;padding:10px 13px;border:1px dashed rgba(238,231,218,.16);background:rgba(0,0,0,.26);border-radius:10px 10px 10px 5px;font-size:var(--fs-xs,13px);color:var(--ink2)}
.fic-le-aviso::before{content:'';width:8px;height:8px;border-radius:50%;border:1.5px solid var(--ink3);flex:none}
.fic-le-tabs{display:flex;gap:6px;margin:16px 16px 0;flex-wrap:wrap}
.fic-le-tabs b{min-width:40px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px 9px 9px 4px;font-size:13.5px;font-weight:600;color:var(--ink3);cursor:pointer}
.fic-le-tabs b.on{border-color:rgba(201,162,39,.5);color:var(--gold2);background:rgba(201,162,39,.07)}
.fic-le-div{margin:16px 16px 0;font-size:13.5px;color:var(--ink2)}
.fic-le-div b{font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif;color:var(--ink)}
.fic-lex{margin:10px 16px 0;border:1px solid var(--line2);border-radius:13px 13px 13px 6px;overflow:hidden}
.fic-lex-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:11px 14px;border-top:1px solid var(--line2);font-size:var(--fs-sm,14.5px)}
.fic-lex-row:first-child{border-top:0}
.fic-lex-row .e{min-width:0;color:var(--ink)}
.fic-lex-row .v{color:var(--ink2);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:var(--fs-xs,13px)}
.fic-le-acoes{margin:18px 16px 0}
/* ⚠️ ADAPTAÇÃO ESTRUTURAL, não de design: a entrega desenhou a leitura no Mac
   como demo estático (.mac-le-stage/.mac-le-card, sem media query — o palco
   da entrega não tem breakpoint de verdade). Aqui ela entra no MESMO
   mecanismo responsivo que .wkh-sheet/.wkb-sheet já usam (@media min-width:
   900px), com os valores da entrega copiados para dentro dele — mesmo
   resultado visual, sem inventar um segundo sistema de breakpoint. */
/* F3-1 (07/10) — [CÓPIA] fonte: css/janela_contexto_v2.css — cartão 640 no Mac: véu, placa chumbo com aro,
   fio azul (a ficha só informa); ponto de corte único do v2 (1024, era 900). */
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){
  .fic-le-stage{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--rnj-veu,rgba(8,6,4,.58));-webkit-backdrop-filter:blur(12px) saturate(115%);backdrop-filter:blur(12px) saturate(115%);padding:40px 0}
  .fic-le-card{position:relative;isolation:isolate;width:var(--rnj-w-g,640px);background:linear-gradient(160deg,var(--rnj-chumbo-1,#262421),var(--rnj-chumbo-0,#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-radius:var(--rnj-r,18px);padding:22px 4px 20px;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);max-height:86vh;overflow-y:auto}
  .fic-le-card::before{content:'';position:absolute;top:8px;left:50%;width:44px;height:3px;transform:translateX(-50%);border-radius:2px;background:#5b8def;box-shadow:0 0 2px rgba(91,141,239,.9),0 0 10px rgba(91,141,239,.5)}
}

/* ── escolha do tamanho do modelo (duas linhas-rádio) ── */
.fic-op{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 14px;border:1px solid var(--line2);background:rgba(255,255,255,.02);border-radius:13px 13px 13px 6px;margin-top:8px;text-align:left}
.fic-op .rad{width:20px;height:20px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex:none}
.fic-op .rad i{width:9px;height:9px;border-radius:50%;background:transparent}
.fic-op.sel{border-color:rgba(226,194,94,.55);background:rgba(201,162,39,.05)}
.fic-op.sel .rad{border-color:var(--gold2)}
.fic-op.sel .rad i{background:var(--gold2);box-shadow:0 0 6px rgba(226,194,94,.7)}
.fic-op .tx{flex:1;min-width:0}
.fic-op .t{display:block;font:500 var(--fs-md,16px) 'Playfair Display',Georgia,serif}
.fic-op .m{display:block;font-size:var(--fs-xs,13px);color:var(--ink3);margin-top:2px;font-variant-numeric:tabular-nums}


/* ════════════════════════════════════════════════════════════════════
   A METODOLOGIA VIRA OPÇÃO — `.rnm-*` (rodada 24/08, porte literal)
   Entrega: ~/Downloads/entrega_metodologia_do_professor_2026-08-24.html

   Cópia VERBATIM do bloco da entrega, com uma única subtração declarada:
   os três `@keyframes` (rniaOndula/rniaDeriva/rniaRespira) NÃO vieram —
   eles já existem neste arquivo, no bloco "RN IA — A PELE", e duas cópias
   da mesma animação são duas versões dela esperando divergir.

   A gramática é: `.rnm-q` = tema (`rnm-q-eb`) · pergunta (`rnm-q-ask`) ·
   opções (`rnm-opts`/`rnm-opt`) · o que muda (`rnm-muda`). Pergunta nova é
   MAIS UM `.rnm-q` — nada além disso. O `.rnm-opt.def` (tracejado) é o
   padrão que a IA usa enquanto o professor não respondeu: é por isso que
   nenhuma pergunta bloqueia e a tela nunca fica "pendente".
   ════════════════════════════════════════════════════════════════════ */
.rnm-panel{position:relative;overflow:hidden;width:100%;max-width:640px;border-radius:20px;border:1.5px solid transparent;
  background:
    radial-gradient(90% 130% at 0% 0%,rgba(157,92,255,.15),transparent 46%) padding-box,
    radial-gradient(90% 130% at 100% 100%,rgba(217,174,131,.11),transparent 48%) padding-box,
    linear-gradient(180deg,var(--rnia-papel-a),var(--rnia-papel-b)) padding-box,
    conic-gradient(from var(--rnia-giro) at 50% 50%,rgba(157,92,255,.55) 0deg,var(--rnia-ouro) 96deg,var(--rnia-luz) 138deg,var(--rnia-ouro) 184deg,rgba(157,92,255,.62) 262deg,var(--rnia) 318deg,rgba(157,92,255,.55) 360deg) border-box;
  box-shadow:0 0 26px rgba(157,92,255,.20),0 20px 55px rgba(0,0,0,.6);
  animation:rniaRespira 7.5s ease-in-out infinite,rniaOndula 11s ease-in-out infinite}
.rnm-panel::before{content:'';position:absolute;inset:-40% -20%;z-index:0;pointer-events:none;
  background:radial-gradient(46% 38% at 22% 18%,rgba(157,92,255,.13),transparent 70%),radial-gradient(40% 34% at 82% 86%,rgba(217,174,131,.10),transparent 70%);
  animation:rniaDeriva 13s ease-in-out infinite alternate}

/* cabeçalho: selo + eyebrow ACIMA do título (column-reverse, como na pele) */
.rnm-head{display:flex;align-items:center;gap:11px;padding:16px 18px 10px;position:relative;z-index:1}
.rnm-mark{position:relative;z-index:0;width:36px;height:34px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--rnia-luz);font:600 14px 'Playfair Display',Georgia,serif;letter-spacing:-.04em;filter:drop-shadow(0 0 9px rgba(157,92,255,.35))}
.rnm-mark::after{content:'';position:absolute;inset:0;z-index:-2;clip-path:polygon(25% 2%,75% 2%,100% 50%,75% 98%,25% 98%,0 50%);background:linear-gradient(140deg,var(--rnia) 6%,var(--rnia-ouro) 58%,var(--rnia-luz) 94%)}
.rnm-mark::before{content:'';position:absolute;inset:1.4px;z-index:-1;clip-path:polygon(25% 2%,75% 2%,100% 50%,75% 98%,25% 98%,0 50%);background:linear-gradient(155deg,#221c13,#0d0b09 70%)}
.rnm-titles{flex:1;min-width:0;display:flex;flex-direction:column-reverse;gap:3px}
.rnm-title{margin:0;color:var(--rnia-creme);font:italic 600 20px/1.1 'Playfair Display',Georgia,serif;letter-spacing:.005em}
.rnm-sub{color:var(--rnia-eyebrow);font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.rnm-close{position:relative;width:32px;height:32px;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid rgba(157,92,255,.30);border-radius:10px 10px 10px 5px;background:rgba(157,92,255,.07);color:var(--rnia-tinta);font-size:14px;transition:all .18s var(--ease)}
.rnm-close:hover{color:var(--rnia-creme);border-color:rgba(157,92,255,.55);background:rgba(157,92,255,.13)}
.rnm-close::before{content:'';position:absolute;inset:-7px}

/* o placar — é ele que faz a tela "terminável" e recebe as novas */
.rnm-placar{position:relative;z-index:1;padding:0 18px 2px;font-size:var(--fs-xs,13px);color:var(--ink3);font-variant-numeric:tabular-nums;line-height:1.5;text-wrap:pretty}
.rnm-placar b{color:var(--gold2);font-weight:500}
.rnm-placar .nv{color:var(--rnia-eyebrow);font-style:normal}

.rnm-body{position:relative;z-index:1;padding:2px 18px 18px}
.rnm-section{display:flex;align-items:center;gap:8px;color:var(--rnia-eyebrow);font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.16em;text-transform:uppercase;margin:16px 0 3px}
.rnm-section::before{content:'';width:14px;height:1.5px;border-radius:1px;flex:none;background:linear-gradient(90deg,var(--rnia),rgba(157,92,255,0))}
.rnm-section:first-child{margin-top:8px}

/* ── A GRAMÁTICA: tema · pergunta · opções · o que muda ──
   Pergunta nova = mais um .rnm-q. Nada além disso. */
.rnm-q{padding:12px 0 13px;border-bottom:1px solid var(--line2)}
.rnm-q:last-of-type{border-bottom:0}
.rnm-q-eb{display:flex;align-items:center;gap:8px;font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3)}
.rnm-nova{color:var(--rnia-eyebrow);border:1px solid rgba(157,92,255,.32);border-radius:5px 5px 5px 3px;padding:1px 6px;font-size:var(--fs-xs,13px);letter-spacing:.14em;background:rgba(157,92,255,.07)}
.rnm-q-ask{margin:4px 0 9px;font-size:15px;font-weight:500;color:#ede3d3;text-wrap:pretty}
.rnm-opts{display:flex;flex-wrap:wrap;gap:7px}
.rnm-opt{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:7px 13px;border:1px solid rgba(255,255,255,.10);border-radius:10px 10px 10px 5px;background:rgba(255,255,255,.02);color:var(--ink2);font-size:13.5px;transition:all .18s var(--ease)}
.rnm-opt:hover{color:var(--ink);border-color:rgba(255,255,255,.18)}
.rnm-opt.on{border-color:rgba(201,162,39,.55);background:rgba(201,162,39,.08);color:var(--gold2)}
/* o padrão da IA enquanto não há resposta: o vazio clicável canônico */
.rnm-opt.def{border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26)}
.rnm-opt.def small{font-size:var(--fs-micro,11.5px);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3)}
.rnm-opt .x{font-style:normal;font-size:var(--fs-xs,13px);opacity:.7}
.rnm-opt .x:hover{opacity:1}
/* a linha do efeito — voz da IA: itálico, 11px, nunca decide nada */
.rnm-muda{margin-top:8px;font-size:var(--fs-xs,13px);font-style:italic;color:var(--ink3);line-height:1.5;text-wrap:pretty;max-width:64ch}

/* campos que continuam campo (busca e resíduo) — valores do app */
.rnm-input,.rnm-body textarea{width:100%;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);border-radius:10px 10px 10px 5px;color:var(--ink);font:inherit;font-size:var(--fs-sm,14.5px);padding:10px 12px;min-height:44px;transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}
.rnm-input:focus,.rnm-body textarea:focus{outline:none;border-color:rgba(157,92,255,.55);box-shadow:0 0 0 1px rgba(157,92,255,.25),0 0 16px rgba(157,92,255,.12)}
.rnm-input::placeholder,.rnm-body textarea::placeholder{color:var(--ink3)}
.rnm-body textarea{resize:vertical;min-height:74px;line-height:1.55;display:block}
.rnm-sel{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.rnm-hint{font-size:var(--fs-xs,13px);color:var(--ink3);margin-top:7px;line-height:1.5;text-wrap:pretty}

/* rodapé: a nota-lei (itálico + fio tracejado) e o Salvar do professor */
.rnm-note{margin:16px 0 0;padding:11px 0 0;border-top:1px dashed rgba(238,231,218,.17);font-size:var(--fs-xs,13px);font-style:italic;color:var(--ink2);line-height:1.5;text-wrap:pretty}
.rnm-actions{display:flex;justify-content:flex-end;margin-top:14px}
.rnm-save{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;background:var(--gold);color:#0a0806;border-radius:12px 12px 12px 6px;font-size:var(--fs-sm,14.5px);font-weight:600;transition:filter .18s var(--ease)}
.rnm-save:hover{filter:brightness(1.08)}

/* celular (o app roda em iframe 375–430): mesma coluna, corpo rola por dentro */
.rnm-cel{max-width:390px}
.rnm-cel .rnm-body{max-height:560px;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(157,92,255,.28) transparent}
.rnm-cel .rnm-body::-webkit-scrollbar{width:7px}
.rnm-cel .rnm-body::-webkit-scrollbar-track{background:transparent}
.rnm-cel .rnm-body::-webkit-scrollbar-thumb{background:rgba(157,92,255,.25);border-radius:4px}

@media (prefers-reduced-motion:reduce){.rnm-panel,.rnm-panel::before{animation:none}}
@media (max-width:480px){body{padding:14px}.peca{padding:12px}.rnm-head{padding:14px 16px 10px}.rnm-placar{padding:0 16px 2px}.rnm-body{padding:2px 16px 16px}}


/* ══════════════════════════════════════════════════════════════════════
   ACABAMENTO OBSIDIAN PURO — Caminho 2 (Jean Claude, 13/09/2026)
   + RODADA 49 (tamanho/brilho de letra, item 116, aceita 12/09)
   [CÓPIA] fonte: docs/caminho2_obsidian_puro_2026-09-13-APROVADO.html
   Escolha de Raphael em 13/09 (docs/memo_tres_caminhos_relevo_2026-09-13.md).

   O QUE ESTE BLOCO É: o bloco `.pele` do arquivo aprovado + o bloco LETRA
   (Rodada 49) do MESMO arquivo, colados aqui com os nomes reais de classe
   do app. O memo é explícito: "o bloco `.pele` é o que o porte copiaria"
   — o bloco ESTRUTURA do aprovado é a re-encenação da montagem_v5.css no
   mockup, NÃO é alvo de porte (por isso nenhuma posição/forma muda aqui
   além do cluster dos medidores, que Raphael fechou como modelo A).

   SEIS DECISÕES DE PORTE, todas registradas (nenhuma silenciosa):

   D1 · ESCOPO, NÃO SUBSTITUIÇÃO DE TOKEN. O mapa de acoplamento dizia que
   `--line`/`--line2`/`--ink3` seriam SUBSTITUÍDOS, e listava 13+ seletores
   a remapear. O desenho aprovado diz o contrário, verbatim na sua ficha:
   "--line .08 / --line2 .05: intocados. Par do vazio .16/.26: intocado."
   Vale o desenho. Consequência: NENHUM seletor fica órfão, porque nenhum
   valor global muda. Os tokens novos e o brilho da 49 entram ESCOPADOS a
   #wkBuilderOverlay/#wkHubOverlay — exatamente como o aprovado manda
   ("tokens novos, escopados a #wkBuilderOverlay, #wkHubOverlay").
   Isso também mata o Risco 1 do mapa: `consultoriaUI.js` injeta o seu
   próprio `--line`/`--line2`, e `css/ficha_v4.css` declara um `:root`
   gêmeo — mexer no `:root` daqui vazaria pra ficha e pra consultoria.
   Não mexemos.

   D2 · CELULAR SÓ (@media max-width:899px). Ordem de Raphael: Mac é fase
   seguinte. Tudo abaixo — inclusive o brilho da letra — vive dentro do
   media query do celular. O Mac segue byte a byte como está hoje.

   D3 · O ANEL DO CLUSTER MORA NO `.rn-metrics-rail`, NÃO NO
   `.rn-instruments`. No mockup os dois são caixas coincidentes; no app
   real, `.rn-instruments` é `display:contents` no celular (linha ~1151) —
   não gera caixa, logo não aceita `::after` nem `position`. E ele embrulha
   também volume/assessor/RN IA, que não são o cluster. O anel foi para o
   próprio trilho: mesmo resultado visual, sem inventar caixa.
   Pelo mesmo motivo os divisores são desenhados nos FILHOS DIRETOS do
   trilho (`> *`), não em `.rn-metric`: o 2º medidor vem embrulhado em
   `.rn-metric-cell` (C-278, o "?" do Volume precisa ser irmão do botão),
   então `.rn-metric:last-child` não pegaria o 4º.

   D4 · CARD "SEM CHÃO" NO FIM DA LISTA — resolvido, não deixado em aberto.
   O memo já respondia ("o último da lista fecha no `.rn-add` tracejado") e
   a medição confirma: `workoutBundle.js` emite `.rn-add` como IRMÃO
   imediato de `.rn-list`, sempre, sem nenhum caminho que o esconda (grep:
   `wkbAddExerciseBtn` nunca recebe `hidden`). Ele é tracejado .2 sobre
   preto .22, com `margin-top:12px` — o mesmo passo do `gap:12px` da lista.
   Os três casos: 0 itens (só o `.rn-add`, que tem borda completa própria),
   1 item (fio no topo do card + `.rn-add` logo abaixo) e N itens (idem).
   Nenhum precisa de base extra. NADA foi adicionado por isso.

   D5 · ESTADOS QUE O DESENHO NÃO COBRIU, preservados no novo mecanismo
   (não são invenção, são o sinal que já existe hoje, mantido vivo):
   · `.rn2-ex-card.is-vazio` — o par tracejado .16/.26 que o próprio
     aprovado manda NÃO tocar: fica fora do fio, com a borda dele.
   · `.rn2-ex-card.editing` e `.rn-cell.focus` — hoje sinalizam em dourado
     pela borda; como a borda passa a ser transparente, o sinal migra para
     o fio de ouro (`--fio-ouro`). Sem isso a edição ficaria MUDA.
   · `.rnd-ia` (copiloto roxo) fica FORA: o memo do acabamento declara
     "RN IA fora do escopo". Ele mantém a borda `--line2` de hoje.

   D6 · `-webkit-mask-composite:xor` COM FALLBACK — e a pendência declarada.
   Ressalva do próprio Jean Claude, herdada no mapa como Risco 5. O que foi
   feito: (a) as regras do fio vivem dentro de um `@supports`; onde a
   máscara não é suportada, os cards ficam com uma borda SÓLIDA .22 (≈2:1,
   contra os 1,14:1 de hoje) — degrada para melhor que o estado atual, não
   para zero; (b) `--bisel` e `--sopro` são aplicados NOS DOIS ramos, então
   mesmo no pior caso sobra relevo; (c) a propriedade padrão `mask` foi
   escrita ao lado da `-webkit-mask` (o aprovado já trazia
   `mask-composite:exclude` sem a `mask` correspondente, o que a tornava
   inerte) — uma linha, e é o que faz o ramo padrão funcionar de verdade.
   ⚠️ O `@supports` cobre AUSÊNCIA de suporte, não BUG de renderização.
   ISTO NÃO ESTÁ FECHADO ATÉ RODAR NO IPHONE REAL DE RAPHAEL. Registrado
   na TABELA_DE_CORRECOES como item aberto, não como resolvido.

   PERGUNTA DE RISCO (regra 09/09), respondida por escrito: este porte não
   escreve dado, não cria registro, não confirma nada — é CSS. O risco é
   visual: estado que perde sinal sem ninguém ver. Os quatro estados que
   sinalizam por BORDA foram listados um a um em D5 e todos têm regra
   própria aqui. Rollback: apagar este bloco inteiro devolve a tela ao
   estado anterior, byte a byte (nada acima foi editado).
   ══════════════════════════════════════════════════════════════════════ */

@media (max-width:899px), (pointer:coarse) and (max-height:500px){

/* ── os tokens: escopados, nunca no :root (ver D1) ────────────────────── */
#wkBuilderOverlay,#wkHubOverlay{
  /* Rodada 49 — a letra sobe um degrau de brilho (item 116, aceito 12/09).
     Os nomes novos (--text*) e os nomes de casa (--ink*) apontam para o
     mesmo valor: as ~200 regras que já dizem var(--ink3) sobem juntas. */
  --text:#F0EBE0;--text2:#C8BFB0;--text3:#b1a99a;--text4:#9a9384;
  --ink:#F0EBE0;--ink2:#C8BFB0;--ink3:#b1a99a;
  --fs-micro:11px;--fs-xs:12.5px;--fs-sm:14px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;
  --lh-tight:1.15;--lh-snug:1.3;--lh-body:1.45;
  /* Caminho 2 — o relevo vem da luz, o fundo do card não sobe */
  --fio-1:linear-gradient(180deg,rgba(255,255,255,.36),rgba(255,255,255,.14) 45%,rgba(255,255,255,.06));
  --fio-1-hover:linear-gradient(180deg,rgba(255,255,255,.50),rgba(255,255,255,.20) 45%,rgba(255,255,255,.10));
  --fio-cel:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,.10));
  --fio-ouro:linear-gradient(180deg,rgba(226,194,94,.90),rgba(201,162,39,.50) 50%,rgba(201,162,39,.30));
  --bisel:inset 0 1px 0 rgba(255,255,255,.07);
  --sopro:linear-gradient(180deg,rgba(255,255,255,.04),transparent 40%);
  --sopro-ouro:linear-gradient(180deg,rgba(201,162,39,.11),transparent 46%);
  --sopro-azul:linear-gradient(180deg,rgba(91,141,239,.12),transparent 46%);
  --brasa:0 14px 34px -18px rgba(201,162,39,.65);
  --fantasma:rgba(255,255,255,.25);
  /* o fallback do ramo sem máscara (D6): aresta sólida, ≈2:1 */
  --fio-solido:rgba(255,255,255,.22);
  --fio-solido-ouro:rgba(226,194,94,.62);
}

/* ── as sete superfícies: fundo ZERO, sopro no topo, bisel sob a aresta ── */
#wkBuilderOverlay .rn-strip,
#wkBuilderOverlay .rn-tabs,
#wkBuilderOverlay .rn2-ex-card,
#wkBuilderOverlay .rn-cell,
#wkBuilderOverlay .wkb-vi,
#wkBuilderOverlay .rnd-assessor{
  position:relative;
  border:1px solid var(--fio-solido);
  background:var(--sopro);
  box-shadow:var(--bisel);
}
#wkBuilderOverlay .rn-cell{background:none}
#wkBuilderOverlay .rnd-assessor{background:var(--sopro-azul);overflow:visible}
/* o filete azul deixa de ser recortado pela caixa: vira fio pousado na aresta */
#wkBuilderOverlay .rnd-assessor::before{left:12px;right:12px;border-radius:2px;z-index:1}

/* o par do vazio clicável é intocado — ordem do próprio desenho (D5) */
#wkBuilderOverlay .rn2-ex-card.is-vazio{
  border:1px dashed rgba(255,255,255,.16);
  background:rgba(0,0,0,.26);
  box-shadow:none;
}
/* o aberto EMITE: sopro de ouro por dentro, brasa por baixo.
   4ª EXCEÇÃO CONSTITUCIONAL ao "glow só em ação dourada / moldura da IA",
   aprovada por Raphael em 13/09 (pauta, item 128) — não é decisão do porte. */
#wkBuilderOverlay .rn2-ex-card.is-open{
  border-color:var(--fio-solido-ouro);
  background:var(--sopro-ouro);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),var(--brasa);
}
#wkBuilderOverlay .rn2-ex-card.editing{border-color:var(--fio-solido-ouro)}
#wkBuilderOverlay .rn-cell.focus,
#wkBuilderOverlay .rn-cell:has(.rn2-tap-input:focus){
  border-color:var(--fio-solido-ouro);
  box-shadow:var(--bisel),0 0 0 1px rgba(201,162,39,.25);
}

/* ── o cluster dos medidores (modelo A, fechado por Raphael em 13/09):
      quatro caixas viram UMA, com a linha dourada de ponta a ponta ────── */
#wkBuilderOverlay .rn-metrics-rail{
  position:relative;
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border:1px solid var(--fio-solido);border-radius:11px 11px 11px 5px;
  background:var(--sopro-ouro);box-shadow:var(--bisel);
  padding:0;overflow:visible;
}
#wkBuilderOverlay .rn-metrics-rail::before{
  content:'';display:block;position:absolute;top:0;left:10px;right:10px;
  height:2.5px;border-radius:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold2) 55%,rgba(201,162,39,.12));
  z-index:1;
}
#wkBuilderOverlay .rn-metrics-rail .rn-metric{
  border:0;border-radius:0;background:none;box-shadow:none;padding:12px 10px 9px;
}
/* divisores nos FILHOS DIRETOS do trilho (D3): pegam luz no alto e se apagam */
#wkBuilderOverlay .rn-metrics-rail>*{position:relative}
#wkBuilderOverlay .rn-metrics-rail>*::after{
  content:'';position:absolute;top:0;right:0;bottom:0;width:1px;
  background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,.04));
  pointer-events:none;
}
#wkBuilderOverlay .rn-metrics-rail>*:last-child::after{display:none}

/* ── botões fantasma: a aresta que só existe pra dizer "aqui se toca" ── */
#wkBuilderOverlay #rnEditToggle,
#wkBuilderOverlay .fic-grupo,
#wkBuilderOverlay .rn-ex-abrirtudo,
#wkBuilderOverlay .wkb-mais-usados-btn,
#wkBuilderOverlay .rn-metric-info,
#wkBuilderOverlay .wkb-tec-info,
#wkBuilderOverlay .wkb-saude-info{
  border-color:var(--fantasma);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
}
/* o "?" do Volume vive DENTRO do cluster: sem caixa própria, senão volta a
   ser caixa dentro de caixa — que é justamente o que o modelo A desfez */
#wkBuilderOverlay .rn-metrics-rail .rn-metric-info{border-color:transparent;box-shadow:none}
#wkBuilderOverlay .fic-divnome-row input{border-color:rgba(255,255,255,.16);background:rgba(0,0,0,.26)}
/* ⚠️ ACHADO DA PASSADA ADVERSARIAL (1ª rodada): o escopo por ID sobe a
   especificidade pra (1,1,0) e passa por cima dos estados que hoje são
   (0,2,0) — `.wkb-mais-usados-btn.active` (ATIVO, sinal de estado, não de
   hover) e os `:hover` dourados dos "?" ficariam mudos. Devolvidos aqui. */
#wkBuilderOverlay .wkb-mais-usados-btn.active,
#wkBuilderOverlay .wkb-mais-usados-btn:hover,
#wkBuilderOverlay .rn-metric-info:hover,
#wkBuilderOverlay .wkb-tec-info:hover{border-color:rgba(201,162,39,.45)}

/* ── O FIO DE LUZ (D6) — só onde a máscara existe; sem ela vale a borda
      sólida declarada acima, que já é melhor que o 1,14:1 de hoje ─────── */
@supports ((-webkit-mask-composite:xor) or (mask-composite:exclude)){
  #wkBuilderOverlay .rn-strip,
  #wkBuilderOverlay .rn-tabs,
  #wkBuilderOverlay .rn2-ex-card,
  #wkBuilderOverlay .rn-cell,
  #wkBuilderOverlay .wkb-vi,
  #wkBuilderOverlay .rnd-assessor,
  #wkBuilderOverlay .rn-metrics-rail{border-color:transparent}
  /* ⚠️ ACHADO DA PASSADA ADVERSARIAL (1ª rodada): os estados são (1,2,0) e
     venciam o transparent (1,1,0) acima — a borda sólida do FALLBACK ficava
     acesa por baixo do fio, e a base do card aberto ganhava um "chão" de
     ouro .62 que o desenho não tem (o fio de ouro morre em .30 embaixo). */
  #wkBuilderOverlay .rn2-ex-card.is-open,
  #wkBuilderOverlay .rn2-ex-card.editing,
  #wkBuilderOverlay .rn-cell.focus,
  #wkBuilderOverlay .rn-cell:has(.rn2-tap-input:focus){border-color:transparent}

  #wkBuilderOverlay .rn-strip::after,
  #wkBuilderOverlay .rn-tabs::after,
  #wkBuilderOverlay .rn2-ex-card::after,
  #wkBuilderOverlay .rn-cell::after,
  #wkBuilderOverlay .wkb-vi::after,
  #wkBuilderOverlay .rnd-assessor::after,
  #wkBuilderOverlay .rn-metrics-rail::after{
    content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1px;
    background:var(--fio-1);
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;
    pointer-events:none;
    transition:background 160ms var(--ease);
  }
  #wkBuilderOverlay .rn-cell::after{background:var(--fio-cel)}
  #wkBuilderOverlay .rn2-ex-card:not(.is-open):not(.is-vazio):hover::after{background:var(--fio-1-hover)}
  /* o aberto, a edição e a célula em foco falam em ouro (D5) */
  #wkBuilderOverlay .rn2-ex-card.is-open::after,
  #wkBuilderOverlay .rn2-ex-card.editing::after,
  #wkBuilderOverlay .rn-cell.focus::after,
  #wkBuilderOverlay .rn-cell:has(.rn2-tap-input:focus)::after{background:var(--fio-ouro)}
  /* o vazio clicável continua sendo o tracejado, sem fio (D5) */
  #wkBuilderOverlay .rn2-ex-card.is-vazio{border-color:rgba(255,255,255,.16)}
  #wkBuilderOverlay .rn2-ex-card.is-vazio::after{display:none}
}

/* ══ RODADA 49 — a letra (item 116, aceita por Raphael em 12/09, nunca
      portada até aqui). Copiada do bloco LETRA do mesmo arquivo aprovado. ══ */
#wkBuilderOverlay{font-size:var(--fs-md);line-height:var(--lh-body)}
/* pedido de Raphael (15/09): painel "Prescrição" liam pequeno — os 6
   seletores abaixo sobem de valor, sem tocar nos tokens --fs-* (usados por
   ~200 outras regras desta mesma tela). */
#wkBuilderOverlay .eb{font-size:var(--fs-xs,13px);font-weight:600;letter-spacing:.17em}
#wkBuilderOverlay .wkb-topname,#wkBuilderOverlay #wkbTopName{font-size:var(--fs-lg)}
#wkBuilderOverlay .rnd-ministrip .l{font-size:var(--fs-micro);font-weight:600;letter-spacing:.14em}
#wkBuilderOverlay .rnd-ministrip b{font-size:var(--fs-lg)}
#wkBuilderOverlay #rnStripName{font-size:var(--fs-xl)}
#wkBuilderOverlay #rnStripBio{font-size:var(--fs-sm)}
#wkBuilderOverlay #rnEditToggle{font-size:var(--fs-md,16px);font-weight:500}
#wkBuilderOverlay #rnEditFields label{font-size:var(--fs-xs,13px);font-weight:600;letter-spacing:.12em}
/* pedido de Raphael (16/09): o VALOR dentro do campo (select/input/
   textarea) continuava herdando --fs-md (15px) sem override nenhum —
   sobe pra --fs-lg (17px), mesmo token que .rn-cell input já usa. */
#wkBuilderOverlay #rnEditFields select,
#wkBuilderOverlay #rnEditFields input,
#wkBuilderOverlay #rnEditFields textarea{font-size:var(--fs-lg)}
#wkBuilderOverlay .fic-tag{font-size:var(--fs-xs,13px);font-weight:600}
#wkBuilderOverlay .fic-nome b{font-size:var(--fs-lg)}
#wkBuilderOverlay .rno-status{font-size:var(--fs-md,16px)}
#wkBuilderOverlay .rn-tab{font-size:var(--fs-md)}
#wkBuilderOverlay .rn-tab i{font-size:var(--fs-xs);font-weight:600}
#wkBuilderOverlay .rn-metric .l{font-size:var(--fs-micro);font-weight:600;letter-spacing:.12em;line-height:var(--lh-tight);text-wrap:balance}
#wkBuilderOverlay .rn-metric .v{font-size:var(--fs-lg)}
#wkBuilderOverlay .rn-metric .v small{font-size:var(--fs-xs)}
#wkBuilderOverlay .fic-divnome-row input{font-size:var(--fs-md)}
#wkBuilderOverlay .fic-grupo,#wkBuilderOverlay .fic-grupo #rnBlockLabel{font-size:var(--fs-sm);font-weight:500}
#wkBuilderOverlay .rn-ex-barra .cont{font-size:var(--fs-sm)}
#wkBuilderOverlay .rn-ex-abrirtudo{font-size:var(--fs-sm);font-weight:500}
#wkBuilderOverlay .rn-num{font-family:Jost,'Avenir Next',system-ui,sans-serif;font-size:var(--fs-sm);font-weight:600}
/* resumo do card fechado — papel "valor de prescrição em linha densa"
   (rodada tipografia_montador_vs_ficha, 18/09): um degrau abaixo da célula
   aberta (.rn-cell .v = 17/600), mesmo peso, mesma tinta. A linha continua
   nowrap+ellipsis: só os números sobem; separador e tags ficam no chão. */
/* antes: #wkBuilderOverlay .rn-ex-resumo{font-size:var(--fs-sm);color:var(--text2);letter-spacing:0} */
#wkBuilderOverlay .rn-ex-resumo{font-family:Jost,'Avenir Next',system-ui,sans-serif;font-size:var(--fs-md);font-weight:600;color:var(--text);letter-spacing:0}

/* antes: #wkBuilderOverlay .rn-ex-resumo .sep{margin:0} */
#wkBuilderOverlay .rn-ex-resumo .sep{margin:0;font-weight:400;color:var(--text3)}
#wkBuilderOverlay .rn-ex-resumo .falta{font-size:var(--fs-micro);font-weight:600;letter-spacing:.12em;color:var(--text3)}
#wkBuilderOverlay .rn-ex-resumo .tec{font-size:var(--fs-micro);font-weight:600;letter-spacing:.12em}
#wkBuilderOverlay .wkb-mais-usados-btn{font-size:var(--fs-sm);font-weight:500}
#wkBuilderOverlay .rn-cell{padding:8px 8px}
#wkBuilderOverlay .rn-cell .v{font-size:var(--fs-lg);font-weight:600}
#wkBuilderOverlay .rn-cell .v.empty{color:var(--text4);font-weight:400}
#wkBuilderOverlay .rn-cell .l{font-size:var(--fs-micro);font-weight:600;letter-spacing:.12em}
#wkBuilderOverlay .rn-cell input{font-size:var(--fs-lg);font-weight:600}
#wkBuilderOverlay .wkb-prop-aviso{font-size:var(--fs-sm)}
#wkBuilderOverlay .rn-more{font-size:var(--fs-sm)}
#wkBuilderOverlay .wkb-tec-pill{font-size:var(--fs-sm);font-weight:500}
#wkBuilderOverlay .rn-metric-info,#wkBuilderOverlay .wkb-tec-info,#wkBuilderOverlay .wkb-saude-info{font-size:var(--fs-sm)}
#wkBuilderOverlay #rndAssessorTempo{font-size:var(--fs-2xl);font-weight:600}
#wkBuilderOverlay .rnd-as-tempo span{font-size:var(--fs-sm);color:var(--text2)}
#wkBuilderOverlay #rndTempoEx,#wkBuilderOverlay #rndTempoTrans,
#wkBuilderOverlay #rndTempoFatores,#wkBuilderOverlay #rndTempoDesc{font-size:var(--fs-md);border-top-color:var(--line)}
#wkBuilderOverlay .rnd-as-note{font-size:var(--fs-sm)}
#wkBuilderOverlay .wkb-vi-row{border-top-color:var(--line)}
#wkBuilderOverlay .wkb-vi-grupo{font-size:var(--fs-md)}
#wkBuilderOverlay .wkb-vi-valor{font-size:var(--fs-lg);font-weight:600}
#wkBuilderOverlay .wkb-vi-valor small{font-size:var(--fs-xs);font-weight:500}
#wkBuilderOverlay .wkb-vi-note{font-size:var(--fs-sm)}
#wkBuilderOverlay .rn-add{font-size:var(--fs-md)}

}
/* ═══════════ fim do ACABAMENTO OBSIDIAN PURO + RODADA 49 ═══════════ */

/* ══ LEGIBILIDADE DO MONTADOR (27/09) — frente de legibilidade, painel em
   docs/frente_legibilidade/PAINEL.md. Queixa de Raphael: «a tela do montador
   de treinos está toda fora dos padrões dos tamanhos de fonte e brilho».
   A escala oficial (CLAUDE.md, emenda de 23/09; topo de equipmentBundle.js)
   entra ESCOPADA aos contêineres do Montador — nunca no :root, pelo mesmo
   motivo do D1 acima (o :root daqui vazaria pra ficha e pra consultoria).
   · Celular: os tokens da Rodada 49 estavam meio degrau abaixo da escala
     (--fs-micro 11 · --fs-xs 12,5 · --fs-sm 14); aqui sobem pro oficial.
   · Mac: não tinha token nenhum e o --ink3 era o #7a7060 do :root; recebe a
     mesma escada de brilho que o celular já tem desde a Rodada 49.
   · Os overlays próprios do Montador (prévia, revisão, «?» dos medidores,
     metodologia, teclado, editor de séries, resultados da busca) vivem fora
     do #wkBuilderOverlay no DOM, por isso entram na lista por id.
   · #wkHubOverlay e .rnj-overlay (genérico da janela de contexto) ficam de
     fora: são outras telas.
   Rollback: apagar este bloco. ══ */
#wkBuilderOverlay,#wkOverlay,#wkbPreviewOverlay,#wkbRevisaoOverlay,#wkbMetSeloOverlay,
#wkbMetodologiaOverlay,#wkbTempoInfoOverlay,#wkbVolumeInfoOverlay,#wkbTecInfoOverlay,
#wkbVolumeInteligenteOverlay,#wkbNivelConfirmOverlay,#wkbKeypad,#sedOv,
.rnd-reorder-hud,.rnd-reorder-ghost,[id^="wkbResults-"]{
  --text:#F0EBE0;--text2:#C8BFB0;--text3:#b1a99a;--text4:#9a9384;
  --ink:#F0EBE0;--ink2:#C8BFB0;--ink3:#b1a99a;
  --fs-micro:11.5px;--fs-xs:13px;--fs-sm:14.5px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;
}
/* ═══════════ fim da LEGIBILIDADE DO MONTADOR (27/09) ═══════════ */

/* ── rn-ajuda NO MONTADOR (27/09) — migração dos 4 «?» vivos pelo id/classe própria,
   nunca trocando .rn-metric-info em massa (📚 e ⚙ usam a mesma classe).
   O componente (css/rn_ajuda_v1.css) carrega ANTES deste arquivo, então as regras
   de posição daqui (absolute do .rn-metric-info, margin-left:auto do .wkb-tec-info)
   continuam valendo; este bloco devolve ao «?» o DESENHO do molde, que as regras
   escopadas em #wkBuilderOverlay (borda fantasma, sombra, 22px, --ink3) cobririam.
   Conversa pré-porte com o Jean Claude: docs/rodada_botao_ajuda_2026-09-27/conversa_preporte_montador.md */
#wkBuilderOverlay .rn-ajuda,.rn-ajuda#wkbVolumeInteligenteInfoBtn{width:24px;height:24px;display:inline-flex;padding:0;
  border:1px solid var(--card-line-1);border-radius:7px 7px 7px 3px;background:rgba(255,255,255,.02);box-shadow:none;color:var(--text3)}
#wkBuilderOverlay .rn-ajuda::before,.rn-ajuda#wkbVolumeInteligenteInfoBtn::before{inset:-10px}
@media(hover:hover){#wkBuilderOverlay .rn-ajuda:hover,.rn-ajuda#wkbVolumeInteligenteInfoBtn:hover{color:var(--gold);border-color:var(--card-line-ouro)}}
#wkBuilderOverlay .rn-ajuda:active,.rn-ajuda#wkbVolumeInteligenteInfoBtn:active{color:var(--gold);border-color:var(--card-line-ouro);background:rgba(201,162,39,.06)}
/* modelo A (Jean Claude, 27/09): dentro da trilha de métricas o «?» do Volume fica
   SEM borda — nada de caixa dentro de caixa; forma, glifo, cor e estado ficam */
#wkBuilderOverlay .rn-metrics-rail .rn-ajuda{border-color:transparent}
/* o «?» do Volume senta no canto do botão de Volume: do lado esquerdo o toque de 44
   invadia ~10px do toggle (medido com elementFromPoint, 27/09). Esse lado volta ao
   alcance antigo (-6px); o botão não encolhe (orientação do Jean Claude). */
#wkBuilderOverlay #rnVolumeInfoBtn.rn-ajuda::before{inset:-10px -10px -10px -6px}

/* ══ INTENSIDADE NO MONTADOR (27/09) — CÓPIA LITERAL do bloco «rn-int · MONTADOR» de
   docs/rodada_intensidade_2026-09-27/intensidade.html (Jean Claude). Fora do
   porte: as regras .rn-int-ult (Peça 5, «o que o aluno respondeu») — são da frente
   da resposta do aluno. Acréscimos da conversa pré-porte (27/09,
   conversa_preporte_prescricao_2026-09-27.md): .rn-int-onde (onde vai a falha) e
   a tag sem «·» quando o exercício não tem grupo no acervo. ══ */
#wkBuilderOverlay .rn-int{margin-top:12px;padding-top:12px;border-top:1px solid var(--line2)}
#wkBuilderOverlay .rn-int-eb{display:block;margin:0 0 8px;font:400 var(--fs-micro)/1 Jost,'Avenir Next',system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);white-space:nowrap}  /* = .rn-per .param span (periodizacao_v1.css:216) */
#wkBuilderOverlay .rn-int-sel{display:grid;grid-template-columns:repeat(3,44px) minmax(0,1fr) minmax(0,1fr);gap:6px;align-items:stretch}  /* gap 6 = .wkb-tec-strip */
#wkBuilderOverlay .rn-int-op{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:34px;margin:0;padding:6px 11px;
  border:1px solid var(--line);background:rgba(255,255,255,.02);border-radius:9px 9px 9px 4px;
  color:var(--ink2);font:500 var(--fs-sm)/1.15 Jost,'Avenir Next',system-ui,sans-serif;font-variant-numeric:tabular-nums;text-align:center;text-wrap:balance;
  cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;transition:all .18s var(--ease)}
#wkBuilderOverlay .rn-int-op::before{content:"";position:absolute;inset:-6px}                              /* alvo de toque, como montagem_v5.css:363 */
#wkBuilderOverlay .rn-int-op:hover{border-color:rgba(255,255,255,.16);color:var(--ink)}                   /* = .wkb-tec-pill:hover */
#wkBuilderOverlay .rn-int-op[aria-pressed="true"]{border-color:rgba(201,162,39,.4);background:rgba(201,162,39,.07);color:var(--gold2)}  /* = .wkb-tec-pill.on */
#wkBuilderOverlay .rn-int-op:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#wkBuilderOverlay .rn-int-op[aria-disabled="true"]{color:var(--text3);pointer-events:none}                 /* = .piram .m-seg (periodizacao_v1.css:323) */
#wkBuilderOverlay .rn-int-leg{margin:8px 0 0;min-height:19px;font-size:var(--fs-xs);line-height:1.45;color:var(--text2);text-wrap:pretty}   /* = .dg-legenda */
#wkBuilderOverlay .rn-int-leg b{color:var(--text);font-weight:500}
#wkBuilderOverlay .rn-int-aviso{display:block;color:var(--text2)}
/* cartão fechado: a meta mora na linha do grupo (.rn-ex-grupo: 13/400/--per-text2), nunca nos números */
#wkBuilderOverlay .rn-int-tag{white-space:nowrap}
#wkBuilderOverlay .rn-int-tag::before{content:"·";margin:0 6px}
/* Mac: o mesmo corte que o porte da periodização usa (`.mac X` → 1024) */
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){
  #wkBuilderOverlay .rn-int-sel{grid-template-columns:repeat(3,44px) max-content max-content}
  #wkBuilderOverlay .rn-int-op{padding:0 11px}
  #wkBuilderOverlay .rn-int-leg{margin-top:10px}
}
@media(prefers-reduced-motion:reduce){#wkBuilderOverlay .rn-int-op{transition:none}}
/* ═══════════════════════ fim do rn-int · MONTADOR ═══════════════════════ */

/* rn-int · Peça 5, «o que o aluno respondeu» (27/09, frente do motor) — CÓPIA LITERAL do
   bloco «rn-int · MONTADOR» de docs/rodada_intensidade_2026-09-27/intensidade.html */
#wkBuilderOverlay .rn-int-ult{margin-top:10px;padding:10px 12px;border:1px dashed rgba(238,231,218,.16);background:rgba(0,0,0,.25);border-radius:10px 10px 10px 5px;font-size:var(--fs-xs);color:var(--ink2);text-wrap:pretty}
#wkBuilderOverlay .rn-int-ult p{margin:0;line-height:1.45}
#wkBuilderOverlay .rn-int-ult p+p{margin-top:2px}
#wkBuilderOverlay .rn-int-ult .rn-int-eb{margin-bottom:6px}
#wkBuilderOverlay .rn-int-ult b{font-weight:500;color:var(--ink)}

/* rn-int · onde vai a falha (conversa pré-porte com o Jean Claude, 27/09) */
#wkBuilderOverlay .rn-int-onde{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.1fr) minmax(0,1.1fr) minmax(0,.8fr);gap:6px;margin-top:8px}
#wkBuilderOverlay .rn-int-onde[hidden]{display:none}
#wkBuilderOverlay .rn-int-onde .rn-int-op{padding:6px}
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){
  #wkBuilderOverlay .rn-int-onde{grid-template-columns:repeat(4,max-content)}
  #wkBuilderOverlay .rn-int-onde .rn-int-op{padding:0 11px}
}
/* 2º ciclo com o Jean Claude (27/09), sobre medida: a 375 o texto útil da pílula de
   palavra era 53,5px e «Perto do» mede 57,3px — quebrava em 3 linhas e a fileira ia a
   64px. Padding 6px em todas as pílulas do seletor (o mesmo do .rn-int-onde); o Mac
   continua 0 11px (o @media impede esta regra, mais específica, de vencer lá). */
@media(max-width:1023.98px){#wkBuilderOverlay .rn-int-sel .rn-int-op{padding:6px}}
/* sem grupo no acervo a tag vem sozinha (classe própria, posta pelo JS): sem o «·» da
   frente. NÃO usar :first-child — o nome do grupo é nó de texto e não conta, e a regra
   apagaria o «·» em todo cartão (achado do verificador adversarial, 27/09). */
#wkBuilderOverlay .rn-int-tag.so::before{content:none}
/* ═══════════ fim da INTENSIDADE NO MONTADOR (27/09) ═══════════ */

/* ══ MONTADOR · TRÊS AJUSTES (Jean Claude, 27/09/2026) — cópia literal ══
   Peça A: #wkbMetBtn (.fic-met / .fic-met.vago) — botão dedicado de metodologia.
   Peça B: .rn-liga (button[aria-pressed] com data-replicar-params / data-sugestao-carga).
   SUBSTITUI v5:1487–1488 e :1959 (.fic-met) · REMOVE v5:170–172 (.rn-replicar*).
   Ícones "+" e chevron em pseudo-elemento: `_gravarMetodologiaSelo` faz
   textContent= e apagaria filhos — pseudo sobrevive. */

/*[comum]*/
/* ── PEÇA A · metodologia ─────────────────────────────────────────────── */
#wkBuilderOverlay .fic-met{
  position:relative;display:inline-flex;align-items:center;gap:8px;
  max-width:100%;min-height:44px;padding:9px 14px 9px 12px;
  border:1px solid var(--fio-solido);border-radius:11px 11px 11px 5px;
  background:var(--sopro);box-shadow:var(--bisel);
  font-family:Jost,'Avenir Next',system-ui,sans-serif;
  font-size:var(--fs-md,16px);font-weight:600;letter-spacing:.01em;line-height:var(--lh-snug,1.3);
  color:var(--text,#F0EBE0);text-align:left;white-space:normal;flex:none;
  transition:border-color 160ms var(--ease),background 160ms var(--ease),box-shadow 160ms var(--ease);
}
/* escolhida: chevron à direita — "isto abre um seletor" (mesma gramática do Prescrição ˅) */
#wkBuilderOverlay .fic-met::after{
  content:'';flex:none;width:14px;height:14px;margin-left:2px;background:var(--text3,#b1a99a);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
#wkBuilderOverlay .fic-met:hover{border-color:rgba(255,255,255,.34)}
#wkBuilderOverlay .fic-met:active{transform:translateY(1px)}
/* vazia: o convite — fio de ouro, sopro de ouro, brasa (o mesmo "aceso" do card aberto) */
#wkBuilderOverlay .fic-met.vago{
  border-color:var(--fio-solido-ouro);background:var(--sopro-ouro);color:var(--gold2,#e2c25e);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),var(--brasa);
}
#wkBuilderOverlay .fic-met.vago::before{
  content:'';flex:none;width:16px;height:16px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
#wkBuilderOverlay .fic-met.vago::after{display:none}
#wkBuilderOverlay .fic-met.vago:hover{border-color:rgba(226,194,94,.85)}

/* ── 04/10 (Raphael): o seletor que FUNCIONA (#wkbDivisao) herda a estética
   do selo #wkbMetBtn (que saiu). [CÓPIA] fonte: Peça A acima. <select> não tem
   ::before/::after — chevron e «+» vão como background. `.vago` = sem divisão. */
#wkBuilderOverlay select#wkbDivisao{
  -webkit-appearance:none;appearance:none;width:100%;min-height:44px;padding:9px 38px 9px 14px;
  border:1px solid var(--fio-solido);border-radius:11px 11px 11px 5px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23b1a99a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 14px center/14px no-repeat,var(--sopro);
  box-shadow:var(--bisel);
  font-family:Jost,'Avenir Next',system-ui,sans-serif;font-size:var(--fs-md,16px);font-weight:600;letter-spacing:.01em;line-height:var(--lh-snug,1.3);
  color:var(--text,#F0EBE0);
  transition:border-color 160ms var(--ease),background-color 160ms var(--ease),box-shadow 160ms var(--ease);
}
#wkBuilderOverlay select#wkbDivisao:hover{border-color:rgba(255,255,255,.34)}
#wkBuilderOverlay select#wkbDivisao.vago{
  padding-left:38px;border-color:var(--fio-solido-ouro);color:var(--gold2,#e2c25e);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='%23e2c25e' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") left 13px center/16px no-repeat,var(--sopro-ouro);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),var(--brasa);
}
#wkBuilderOverlay select#wkbDivisao.vago:hover{border-color:rgba(226,194,94,.85)}
#wkBuilderOverlay select#wkbDivisao option{color:#F0EBE0;background:#141210}
@media(prefers-reduced-motion:reduce){#wkBuilderOverlay select#wkbDivisao{transition:none}}

/* ── PEÇA B · os toggles (.rn-liga) ───────────────────────────────────── */
#wkBuilderOverlay .rn-liga{
  grid-column:1/-1;position:relative;display:flex;align-items:flex-start;gap:12px;
  width:100%;min-height:44px;padding:11px 14px 11px 12px;
  border:1px solid var(--fio-solido);border-radius:11px 11px 11px 5px;
  background:var(--sopro);box-shadow:var(--bisel);
  color:var(--text,#F0EBE0);text-align:left;cursor:pointer;
  transition:border-color 160ms var(--ease),background 160ms var(--ease),box-shadow 160ms var(--ease);
}
#wkBuilderOverlay .rn-liga:hover{border-color:rgba(255,255,255,.34)}
#wkBuilderOverlay .rn-liga:active{transform:translateY(1px)}
/* a marca: o quadradinho de cantos assimétricos da casa; vazio = aresta fantasma */
#wkBuilderOverlay .rn-liga-marca{
  flex:none;width:22px;height:22px;margin-top:1px;display:grid;place-items:center;
  border:1.5px solid var(--fantasma);border-radius:7px 7px 7px 3px;color:transparent;
  transition:background 160ms var(--ease),border-color 160ms var(--ease),color 160ms var(--ease);
}
#wkBuilderOverlay .rn-liga-marca svg{width:14px;height:14px;display:block}
#wkBuilderOverlay .rn-liga-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
#wkBuilderOverlay .rn-liga-t{font-family:Jost,'Avenir Next',system-ui,sans-serif;font-size:var(--fs-md,16px);font-weight:600;line-height:var(--lh-snug,1.3);color:var(--text,#F0EBE0);text-transform:none;letter-spacing:0}
#wkBuilderOverlay .rn-liga-s{font-family:Jost,'Avenir Next',system-ui,sans-serif;font-size:var(--fs-sm,14px);font-weight:400;line-height:var(--lh-snug,1.3);color:var(--text2,#C8BFB0);text-transform:none;letter-spacing:0;text-wrap:pretty}
/* ligado: o dourado cheio da aba ativa (estado que FICA), com brasa por baixo */
/* ligado — v2 do Jean (27/09): o dourado chapado ficou forte demais com os dois ligados (Raphael: «tá chamando muita
   atenção pra esse lugar»); cheia só a marca, o card ganha o «aceso» do card aberto */
#wkBuilderOverlay .rn-liga[aria-pressed="true"]{background:linear-gradient(180deg,rgba(201,162,39,.10),rgba(201,162,39,.03));border-color:rgba(201,162,39,.62);box-shadow:0 0 0 1px rgba(201,162,39,.10),0 6px 18px -10px rgba(201,162,39,.35)}
#wkBuilderOverlay .rn-liga[aria-pressed="true"]:hover{border-color:rgba(226,194,94,.8)}
#wkBuilderOverlay .rn-liga[aria-pressed="true"] .rn-liga-t{color:var(--text,#F0EBE0)}
#wkBuilderOverlay .rn-liga[aria-pressed="true"] .rn-liga-s{color:var(--text2,#C8BFB0)}
#wkBuilderOverlay .rn-liga[aria-pressed="true"] .rn-liga-marca{background:var(--gold,#c9a227);border-color:var(--gold,#c9a227);color:#0a0806}
/* foco: a língua do card aberto (fio ouro), nunca o azul do navegador */
#wkBuilderOverlay .fic-met:focus-visible,
#wkBuilderOverlay .rn-liga:focus-visible{outline:2px solid rgba(226,194,94,.6);outline-offset:2px}
@media(prefers-reduced-motion:reduce){
  #wkBuilderOverlay .fic-met,
  #wkBuilderOverlay .rn-liga,
  #wkBuilderOverlay .rn-liga-marca{transition:none}
}
/*[/comum]*/

/*[mac]*/
/* ── MAC (≥900): o card de lá ainda está na pele antiga (SEGURADO por
   Raphael, 27/09). As peças carregam os valores do Caminho 2 NELAS MESMAS,
   com os mesmos nomes — no dia em que o card do Mac subir, este bloco é
   apagado inteiro e elas herdam do overlay. ──────────────────────────── */
@media (min-width:900px) and (min-height:501px), (min-width:900px) and (pointer:fine){
  #wkBuilderOverlay .fic-met,
  #wkBuilderOverlay .rn-liga{
    --fio-solido:rgba(255,255,255,.22);--fio-solido-ouro:rgba(226,194,94,.62);
    --bisel:inset 0 1px 0 rgba(255,255,255,.07);
    --sopro:linear-gradient(180deg,rgba(255,255,255,.04),transparent 40%);
    --sopro-ouro:linear-gradient(180deg,rgba(201,162,39,.11),transparent 46%);
    --brasa:0 14px 34px -18px rgba(201,162,39,.65);
    --fantasma:rgba(255,255,255,.25);
    --text:#F0EBE0;--text2:#C8BFB0;--text3:#b1a99a;
    --fs-sm:14px;--fs-md:16px;--lh-snug:1.3;
  }
  /* os dois toggles ficam em largura cheia também no Mac (largura da coluna não medida — ver MEMO) */
  #wkBuilderOverlay .rn-liga{grid-column:1/-1}
}
/*[/mac]*/

/* «!» exercício/volume não conferido (Raphael 29/09): é BOTÃO — abre a explicação
   e o caminho pro acervo. Limão = status «atenção»; o rótulo é o aria-label. */
.rn-nrev{position:relative;flex:0 0 auto;width:24px;height:24px;display:inline-grid;place-items:center;margin-left:6px;border-radius:12px;border:1.5px solid #fde047;background:rgba(253,224,71,.12);color:#fde047;font:700 var(--fs-sm,14.5px)/1 inherit;cursor:pointer;align-self:center}
.rn-nrev::after{content:"";position:absolute;inset:-10px}
.rn-nrev[hidden]{display:none}
.rn-nrev-abrir{min-height:44px;padding:0 18px;border-radius:11px 11px 11px 5px;border:1px solid var(--gold);background:var(--gold);color:#0a0806;font:600 var(--fs-md,16px)/1 inherit;cursor:pointer}

/* ══ ARRASTAR v3 (29/09, aprovado por Raphael) — [CÓPIA] arrastar_jean_v3.html ══
   Pega só pela alça; o item pego levanta com sombra e borda ouro; nada de
   seleção de texto nem menu de toque longo no iPhone enquanto arrasta. */
.rn-tab-alca{display:inline-flex;align-items:center;justify-content:center;align-self:stretch;min-width:22px;margin:0 -2px 0 -6px;color:inherit;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.rn-tab.rn-arr-pego{position:relative;z-index:5;box-shadow:0 10px 24px rgba(0,0,0,.5)}
[data-block-id].rn-arr-pego{position:relative;z-index:5;box-shadow:0 12px 28px rgba(0,0,0,.55);border-color:rgba(201,162,39,.5)}
.rnd-alca{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
/* «peguei» (05/10, Raphael+Jean): ao tocar na alça ela acende em ouro e cresce; volta em 160ms */
.rnd-alca,.rn-tab-alca{transition:color 160ms cubic-bezier(.23,1,.32,1),transform 160ms cubic-bezier(.23,1,.32,1)}
.rnd-alca.rn-alca-pega,.rn-tab-alca.rn-alca-pega{color:var(--gold2,#e2c25e);transform:scale(1.15);transition-duration:120ms}
body.rn-arrastando,body.rn-arrastando *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}

/* ══ C-1058 (30/09) — [Mais usados] [Carga|Corporal] lado a lado ══
   [CÓPIA] fonte: docs/rodada_card_carga_2026-09-30/molde_jean.html (contraproposta
   de Raphael, aprovada pelo Jean). Mesmo estilo, 44px, carga 1.25×, Corporal
   encostado na carga (uma peça só). Mac: a linha fica compacta. */
.rn2-ex-card .rn-trio{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 10px}
.rn2-ex-card .rn-trio > *{position:relative;height:44px;min-width:0;border:1px solid rgba(240,235,224,.10);background:rgba(0,0,0,.26);color:var(--text2,#C8BFB0);font:500 var(--fs-xs,13px)/1 inherit;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;padding:0 8px;border-radius:11px 11px 11px 5px;box-sizing:border-box;transition:background 220ms,color 220ms,border-color 220ms}
.rn2-ex-card .rn-trio .rn-mais{margin:0;width:auto}
.rn2-ex-card .rn-trio .rn-mais svg{color:var(--gold,#c9a227);fill:currentColor}
.rn2-ex-card .rn-trio .rn-carga{cursor:pointer;border-color:rgba(240,235,224,.18);margin-right:-4px;border-radius:11px 4px 4px 5px;justify-content:space-between;padding:0 10px}
.rn2-ex-card .rn-trio .rn-corp{border-radius:4px 11px 11px 4px;cursor:pointer}
.rn2-ex-card .rn-trio .rn-corp svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rn2-ex-card .rn-trio .rn-carga > span{font-size:var(--fs-micro,11.5px);letter-spacing:.12em;text-transform:uppercase;color:var(--text3,#b1a99a)}
.rn2-ex-card .rn-trio .rn-carga b{font:500 var(--fs-sm,14.5px)/1 inherit;color:var(--text,#F0EBE0);font-variant-numeric:tabular-nums;cursor:pointer}
.rn2-ex-card .rn-trio .rn-carga b.empty{color:var(--text3,#b1a99a)}
/* 30/09 (Raphael no iPhone): o campo da carga nascia com a largura padrão do
   <input> e vazava pra cima do botão Corporal — parecia que o Corporal abria.
   Agora o campo cabe dentro da própria caixa Carga. */
.rn2-ex-card .rn-trio .rn-carga{gap:8px}
.rn2-ex-card .rn-trio .rn-carga b:has(input){flex:1 1 auto;min-width:0;display:flex;justify-content:flex-end}
.rn2-ex-card .rn-trio .rn-carga b input{width:100%;min-width:0;text-align:right}
.rn2-ex-card .rn-trio .rn-carga.corporal b{color:var(--text3,#b1a99a);cursor:default}
.rn2-ex-card .rn-trio .rn-corp[aria-pressed="true"]{background:rgba(201,162,39,.14);border-color:rgba(201,162,39,.4);color:var(--gold,#c9a227)}
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){.rn2-ex-card .rn-trio{grid-template-columns:132px auto;justify-content:start}.rn2-ex-card .rn-trio > *{height:40px;padding:0 12px}}

/* 30/09: o trilho ficou com 1 ou 2 medidores (Restrições só com condição no
   cadastro + Volume) — as colunas seguem quantos estão visíveis */
#wkBuilderOverlay .rn-metrics-rail,.rn-metrics-rail{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}
#wkBuilderOverlay .rn-metrics-rail>[hidden],.rn-metrics-rail>[hidden]{display:none}
/* o ícone de modo do Volume encavalava no «?» (os dois no canto de cima) */
#wkBuilderOverlay .rn-metric .modo,.rn-metric .modo{top:auto;bottom:10px}

/* C-1086 (30/09, Jean Claude) — Divisão do treino (#wkbMetSeloOverlay): cabeçalho e rodapé fixos, só a lista rola. */
#wkbMetSeloOverlay{padding:calc(env(safe-area-inset-top,0px) + 32px) 12px calc(env(safe-area-inset-bottom,0px) + 24px)}
#wkbMetSeloOverlay .rnj{max-height:100%;min-height:0}
#wkbMetSeloOverlay .rnj-head{padding-bottom:12px;border-bottom:1px solid var(--line2,rgba(255,255,255,.05))}
#wkbMetSeloOverlay .rnj-close{width:44px;height:44px;margin:-6px -6px -6px 0}
#wkbMetSeloOverlay .rnj-close::before{inset:0}
#wkbMetSeloOverlay .rnj-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-top:8px;padding-bottom:14px}
#wkbMetSeloOverlay .rnj-foot{border-top:1px solid var(--line2,rgba(255,255,255,.05));padding-top:12px}
#wkbMetSeloOverlay .fic-met-op{min-height:48px;padding:10px 14px;text-align:left;font:inherit;cursor:pointer}
#wkbMetSeloOverlay .fic-met-op .t{font-size:var(--fs-sm,14.5px);color:var(--text,#eee7da)}
#wkbMetSeloOverlay .fic-met-op .t small{font-size:var(--fs-xs,13px);color:var(--text3,#b1a99a);margin-left:6px}
#wkbMetSeloOverlay .fic-met-op .ck{width:18px;height:18px;flex:none;color:var(--gold2,#e2c25e);opacity:0}
#wkbMetSeloOverlay .fic-met-op.sel .t{color:var(--gold2,#e2c25e);font-weight:500}
#wkbMetSeloOverlay .fic-met-op.sel .ck{opacity:1}
#wkbMetSeloOverlay .rnj-field{margin-top:18px}
#wkbMetSeloOverlay .rnj-field>label{color:var(--text3,#b1a99a)}
#wkbMetSeloOverlay .rnj-field input{min-height:44px;font-size:var(--fs-md,16px)}
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){
  #wkbMetSeloOverlay{padding:40px 20px}
  #wkbMetSeloOverlay .rnj{max-height:min(640px,100%)}
}
#wkbMetSeloOverlay .rnj-btn[hidden]{display:none}
/* C-1094 (30/09, Raphael: «abre outro quadrado dentro do botão»): editando a carga, o campo não tem caixa
   própria — quem acende é a borda da caixa Carga, e só o cursor pisca dentro */
.rn2-ex-card .rn-trio .rn-carga input.rn2-tap-input{all:unset;box-sizing:border-box;width:100%;min-width:0;height:100%;text-align:right;font:500 var(--fs-sm,14.5px)/1 inherit;color:var(--text,#F0EBE0);caret-color:var(--gold,#c9a227);font-variant-numeric:tabular-nums}
.rn2-ex-card .rn-trio .rn-carga:focus-within{border-color:rgba(201,162,39,.6);background:rgba(201,162,39,.05)}
.rn2-ex-card .rn-trio .rn-carga b:has(input){flex:1;min-width:0;height:100%;display:flex;align-items:center}
/* ══ C-1096 (30/09) — card «Revisar aparelho» do Montador ══
   [CÓPIA] fonte: docs/rodada_revisar_aparelho_2026-09-30/molde_jean.html (Jean Claude, 30/09).
   Emenda aprovada por Raphael: a grade tem os 3 níveis que o editor já usa (1 · ½ · ¼). */
#wkbRevAparelho[hidden]{display:none}
/* porte janelas F2-2 (07/10): J-029 revisar aparelho — véu e placa do v2; cartão 480 no Mac */
#wkbRevAparelho .rva-scrim{position:fixed;inset:0;z-index:9879;background:rgba(8,6,4,.58);-webkit-backdrop-filter:blur(12px) saturate(115%);backdrop-filter:blur(12px) saturate(115%)}
#wkbRevAparelho .rva-card{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-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);position:fixed;z-index:9880;left:10px;right:10px;top:50%;translate:0 -50%;max-width:540px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;
  max-height:calc(100dvh - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px) - 32px - 96px);
  animation:rva-sobe .22s var(--ease) both;color:var(--text);font-family:var(--ui)}
@keyframes rva-sobe{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){#wkbRevAparelho .rva-card{width:480px;left:50%;right:auto;translate:-50% -50%;max-height:min(640px,calc(100vh - 64px))}}
#wkbRevAparelho .rva-cab{flex:0 0 auto;padding:16px 20px 12px;border-bottom:1px solid var(--line)}
#wkbRevAparelho .rva-eb{margin:0 0 2px;font:600 var(--fs-micro)/1.2 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--text3)}
#wkbRevAparelho .rva-tit{margin:0;font:500 var(--fs-lg)/1.25 var(--ui);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#wkbRevAparelho .rva-corpo{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px 20px 8px}
#wkbRevAparelho .rva-rot{display:block;margin:0 0 6px;font:600 var(--fs-micro)/1.2 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--text3)}
#wkbRevAparelho .rva-in{box-sizing:border-box;width:100%;min-height:48px;padding:0 14px;border-radius:11px 11px 11px 5px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text);font:500 var(--fs-md)/1.2 var(--ui)}
#wkbRevAparelho .rva-in:focus{outline:none;border-color:var(--gold)}
#wkbRevAparelho .rva-tec{margin:6px 0 18px;font:400 var(--fs-xs)/1.3 var(--ui);color:var(--text3)}
#wkbRevAparelho .rva-leg{margin:0 0 8px;font:400 var(--fs-xs)/1.3 var(--ui);color:var(--text3)}
#wkbRevAparelho .rva-grade{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
#wkbRevAparelho .rva-mu{min-height:44px;padding:0 12px;border-radius:11px 11px 11px 5px;border:1px solid var(--line);background:transparent;color:var(--text2);font:500 var(--fs-sm)/1 var(--ui);display:inline-flex;align-items:center;gap:6px;cursor:pointer}
#wkbRevAparelho .rva-mu b{font:700 var(--fs-micro)/1 var(--ui);letter-spacing:.06em}
#wkbRevAparelho .rva-mu[data-papel="p"]{background:var(--gold);border-color:var(--gold);color:#0a0806}
#wkbRevAparelho .rva-mu[data-papel="s"]{border-color:var(--gold);color:var(--text)}
#wkbRevAparelho .rva-mu[data-papel="e"]{border-color:rgba(201,162,39,.45);border-style:dashed;color:var(--text2)}
#wkbRevAparelho .rva-acad{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:0 4px 0 14px;border-radius:11px 11px 11px 5px;border:1px solid var(--line);cursor:pointer}
#wkbRevAparelho .rva-acad span{font:500 var(--fs-md)/1.2 var(--ui);color:var(--text)}
#wkbRevAparelho .rva-sw{position:relative;flex:0 0 auto;width:52px;height:44px;border:0;background:none;padding:0;cursor:pointer}
#wkbRevAparelho .rva-sw::before{content:"";position:absolute;left:4px;top:11px;width:44px;height:22px;border-radius:11px;background:rgba(255,255,255,.14);transition:background .18s}
#wkbRevAparelho .rva-sw::after{content:"";position:absolute;left:7px;top:14px;width:16px;height:16px;border-radius:50%;background:var(--text2);transition:transform .18s var(--ease),background .18s}
#wkbRevAparelho .rva-sw[aria-checked="true"]::before{background:var(--gold)}
#wkbRevAparelho .rva-sw[aria-checked="true"]::after{transform:translateX(22px);background:#0a0806}
#wkbRevAparelho .rva-ja{display:flex;align-items:center;gap:8px;min-height:44px;font:500 var(--fs-sm)/1.2 var(--ui);color:#3ddc97}
#wkbRevAparelho .rva-rod{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}
@media (min-width:1024px) and (min-height:501px), (min-width:1024px) and (pointer:fine){#wkbRevAparelho .rva-rod{padding-bottom:14px}}
#wkbRevAparelho .rva-linha{display:flex;gap:10px;align-items:center}
#wkbRevAparelho .rva-aviso{margin:0;font:400 var(--fs-xs)/1.3 var(--ui);color:var(--text3)}
#wkbRevAparelho .rva-aviso:empty{display:none}
#wkbRevAparelho .rva-voltar{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px 0 10px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;background:rgba(255,255,255,.03);color:var(--text2);font:500 var(--fs-sm)/1 var(--ui);cursor:pointer}
#wkbRevAparelho .rva-voltar:disabled{opacity:.4}
#wkbRevAparelho .rva-ok{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 16px;border:1px solid var(--gold);border-radius:11px 11px 11px 5px;background:var(--gold);color:#0a0806;font:600 var(--fs-md)/1 var(--ui);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
#wkbRevAparelho .rva-ok:disabled{cursor:default}
#wkbRevAparelho .rva-ok[data-st="bloq"]{background:transparent;color:var(--text3);border-color:var(--line)}
#wkbRevAparelho .rva-ok[data-st="salvando"],#wkbRevAparelho .rva-ok[data-st="enviando"]{background:transparent;color:var(--text);border-color:var(--gold)}
#wkbRevAparelho .rva-ok[data-st="verde"]{background:#3ddc97;border-color:#3ddc97;color:#0a0806}
#wkbRevAparelho .rva-ok[data-st="local"]{background:transparent;color:var(--text2);border-color:var(--line)}
#wkbRevAparelho .rva-gira{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:var(--gold);animation:rva-g .8s linear infinite}
@keyframes rva-g{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){#wkbRevAparelho .rva-card{animation:none}#wkbRevAparelho .rva-gira{animation-duration:2s}}
/* ✎ na sugestão da busca */
.wkb-exercise-result-item[data-equip-id]{position:relative;padding-right:52px}
.wkb-exercise-result-item .wkb-rev-lapis{position:absolute;right:4px;top:50%;translate:0 -50%;width:44px;height:44px;display:grid;place-items:center;border:0;background:none;color:var(--text3);cursor:pointer}
.wkb-exercise-result-item .wkb-rev-lapis:active{color:var(--gold)}
#wkbRevAparelho{--fs-micro:11.5px;--fs-xs:13px;--fs-sm:14.5px;--fs-md:16px;--fs-lg:18px;--text:#F0EBE0;--text2:#C8BFB0;--text3:#b1a99a;--line:rgba(255,255,255,.12);--gold:#c9a227;--ui:'Jost','Avenir Next',system-ui,-apple-system,sans-serif;--ease:cubic-bezier(.2,.8,.2,1)}
/* C-1097: marcador «não revisado» no card do Montador (só aqui; o aluno não vê) */
.rn-ex-grupo .rn-sem-rev{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;margin-right:6px;border:1px dashed rgba(253,224,71,.45);border-radius:8px 8px 8px 4px;color:#fde047;font-size:var(--fs-xs,13px);cursor:pointer;position:relative}
.rn-ex-grupo .rn-sem-rev::before{content:'';position:absolute;inset:-10px -4px}
/* Folha dos grupos da divisão (04/10) — [CÓPIA] fonte: docs/rodada_estrela_por_grupo_2026-10-04/PRA_O_JEAN/lista_estrela_por_grupo.html (.folha/.ordem/.grade/.balao) */
.wkb-fg{z-index:10300}   /* casca = janela v2: celular .rnj-overlay (encostada) + .rnj--cheia; Mac --flutua (14/10); aqui só o miolo */
/* porte janelas F2-2 (07/10): J-028 grupos no padrão v2 ([CÓPIA] janela_contexto_v2.css §1/§2/§3/§7/§11) — véu, placa chumbo, fio ouro, cartão 480 no Mac */
.wkb-fg .vazio{margin:0 0 12px;font-size:var(--fs-sm,14.5px);color:var(--text2,#C8BFB0)}
.wkb-fg .ordem{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.wkb-fg .ord{display:flex;align-items:center;gap:10px;height:44px;padding:0 4px 0 10px;border:1px solid rgba(201,162,39,.5);border-radius:11px 11px 11px 5px;background:rgba(201,162,39,.06)}
.wkb-fg .ord i{font-style:normal;color:var(--gold,#c9a227);font-weight:600;font-size:var(--fs-sm,14.5px);width:16px}
.wkb-fg .ord span{flex:1;font-weight:500;font-size:var(--fs-md,16px)}
.wkb-fg .ord .rnd-alca{height:40px;min-height:40px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.wkb-fg .ord.rn-arr-pego{position:relative;z-index:5;box-shadow:0 10px 24px rgba(0,0,0,.5)}
.wkb-fg .grade{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.wkb-fg.mac .grade{grid-template-columns:1fr 1fr 1fr}
.wkb-fg .grade button{height:44px;border:1px solid rgba(255,255,255,.18);border-radius:11px 11px 11px 5px;background:rgba(0,0,0,.26);color:var(--text2,#C8BFB0);font-weight:500;font-size:var(--fs-sm,14.5px);text-align:left;padding:0 12px;cursor:pointer;display:flex;align-items:center;justify-content:space-between}
.wkb-fg .grade button.on{border-color:rgba(201,162,39,.5);color:var(--text,#F0EBE0);background:rgba(201,162,39,.08)}
.wkb-fg .grade button.on::after{content:"✓";color:var(--gold,#c9a227)}
/* 12/10 · grupo já marcado noutra letra da ficha: dito, sem bloquear (tocar marca de novo nesta) */
.wkb-fg .grade button.ja{border-color:rgba(255,255,255,.28)}
.wkb-fg .grade button.ja small{font-size:var(--fs-xs,13px);font-weight:400;color:var(--text3,#9a9184);letter-spacing:.02em}
.wkb-fg .previa{margin:12px 0 0;font-size:var(--fs-xs,13px);color:var(--text2,#C8BFB0)}
.wkb-fg .previa b{color:var(--text,#F0EBE0);font-weight:500}

/* ── CADÊNCIA GUIADA (rodada técnicas, Jean 04/10) — cópia literal de rn_tecnicas_montador.css §1 ── */
.rn-cad-guia{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px 6px;margin-top:10px}
.rn-cad-campo{display:grid;gap:5px;justify-items:center}
.rn-cad-campo .l{font:400 var(--fs-xs)/1 var(--ui);color:var(--text3)}
.rn-cad-in{width:56px;height:44px;margin:0;text-align:center;border:1px solid var(--card-line-1);border-radius:10px 10px 10px 5px;
  background:rgba(0,0,0,.26);color:var(--text);font:500 var(--fs-lg)/1 var(--ui);font-variant-numeric:tabular-nums;
  -webkit-appearance:none;appearance:none;outline:0;transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}
.rn-cad-in::placeholder{color:var(--text3)}
.rn-cad-in:focus-visible,.rn-cad-in.foco{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.rn-cad-sep{align-self:flex-start;height:44px;display:grid;place-items:center;color:var(--text3);font:400 var(--fs-lg)/1 var(--ui)}
.rn-cad-dica{flex-basis:100%;margin:0;font:400 var(--fs-xs)/1.35 var(--ui);color:var(--text2);text-wrap:pretty}
.rn-cad-dica i{font-style:italic}
.rn-cell .v.livre{font-style:italic;font-weight:400}                 /* texto fora do formato: mostra cru, em itálico */
.rn-cad-livre{margin:6px 0 0;font:400 var(--fs-xs)/1.35 var(--ui);color:var(--text2);text-wrap:pretty}

/* ── TREINO BASE (rodada técnicas, Jean 04/10) — [CÓPIA] fonte: rn_tecnicas_montador.css §3 (+ .wkb-tec-nota da l.31-32) ── */
.wkb-tec-nota{flex-basis:100%;margin:2px 0 0;font:400 var(--fs-xs)/1.35 var(--ui);color:var(--text2);text-wrap:pretty}
.wkb-tec-nota b{font-weight:500;color:var(--text)}
.tb-eco{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:6px 10px;min-height:56px;margin:0 0 12px;padding:10px 14px;
  border:1px dashed rgba(255,255,255,.16);border-radius:14px 14px 14px 7px;background:rgba(0,0,0,.26)}
.tb-eco-nome{display:grid;gap:2px;min-width:0}
.tb-eco-nome b{font:500 var(--fs-md)/1.2 var(--serif);color:var(--text);overflow-wrap:anywhere}
.tb-eco-nome span{font:400 var(--fs-xs)/1.3 var(--ui);color:var(--text2)}
.tb-eco-dose{display:grid;justify-items:end;gap:3px;font:500 var(--fs-sm)/1 var(--ui);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.tb-eco-dose i{font:400 var(--fs-xs)/1 var(--ui);color:var(--text3);font-style:normal}
.tb-eco.ajustado .tb-eco-dose i{color:var(--gold)}
.tb-eco-ajustar{grid-column:2/-1;justify-self:start;height:32px;padding:0 10px;border:1px solid var(--card-line-1);border-radius:9px 9px 9px 4px;
  background:rgba(255,255,255,.02);color:var(--text2);font:500 var(--fs-xs)/1 var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent}
.tb-eco-ajustar:active,.tb-eco.ajustado .tb-eco-ajustar{border-color:var(--card-line-ouro);color:var(--gold)}
.tb-eco-ajustar:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.tb-mais{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;margin:0 0 12px;padding:10px 14px;
  border:1px dashed rgba(255,255,255,.16);border-radius:11px 11px 11px 5px;background:rgba(0,0,0,.26);color:var(--text);
  font:500 var(--fs-sm)/1.25 var(--ui);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;text-wrap:pretty}
.tb-mais span{flex:none;color:var(--text3);font-variant-numeric:tabular-nums}
.tb-mais[disabled]{color:var(--text2);cursor:default}
.tb-mais:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.wkb-tec-nivel{display:block;margin-top:3px;font:400 var(--fs-xs)/1.3 var(--ui);color:var(--text2);text-wrap:pretty}   /* nota de nível no item do menu: aviso, não bloqueio */
/* [CONSTRUÇÃO] (pré-porte com o Jean, itens 5 e 6): toque de 44px sem mudar o desenho · hover = tinta do :active · campos do «ajustar esta vez» ocupam a linha do eco */
.tb-eco-ajustar{position:relative}
.tb-eco-ajustar::before{content:'';position:absolute;inset:-6px 0}
@media(hover:hover){.tb-eco-ajustar:hover,.tb-mais:not([disabled]):hover{border-color:var(--card-line-ouro);color:var(--gold)}}
.tb-eco .tb-aj{grid-column:1/-1;margin-top:4px}
/* [CONSTRUÇÃO] o eco não é .rn2-ex-card: o selo do número é o MESMO do card (cópia de periodizacao_v1.css .rn2-ex-card .stamp) · o cabeçalho do grupo tem texto maior que o do par e quebra a 375: a altura acompanha */
.tb-eco{--per-ouro:#c9a227;--per-fs-xs:13px;--per-serif:'Playfair Display',Georgia,serif}   /* os tokens do selo moram no .rn2-ex-card (periodizacao_v1.css:225); os demais vêm do .rn-per */
.tb-eco .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}
.rn2-ex-card.tb-primeiro .par-cab.rn-per{height:auto;min-height:30px;padding-top:6px;padding-bottom:6px;flex-wrap:wrap;row-gap:2px}
.rn2-ex-card.tb-primeiro .par-cab.rn-per b{white-space:nowrap}
.tb-eco.rn-per .tb-eco-ajustar{padding:0 10px}   /* .rn-per button (periodizacao_v1.css:307) zera o padding do molde: devolve o do Jean */

/* ══ «MONTAR DO MEU JEITO» (04/10) — [CÓPIA] fonte: docs/rodada_gerar_algoritmo_2026-10-04/entrega_jean_v1/rn_gerar.css,
   colado VERBATIM abaixo (do primeiro ao último caractere). A cola com o app vem DEPOIS, em bloco próprio. ══ */
/* ══════════════════════════════════════════════════════════════════
   RN Personal · MONTADOR — «Montar do meu jeito»: a seção «Meu cérebro» no aside, a folha do pedido e as linhas novas da proposta
   Rodada 04/10/2026 · Jean Claude · DESTINO: css/montagem_v5.css (acrescentar no fim; nada aqui renomeia nem remove).
   Ouro decide, roxo NÃO entra: nenhuma linha usa #9d5cff. Azul (#5b8def) também não — é do Assessor, no mesmo aside.
   Esqueleto intocado: .rnd-ia, #wkbDivBloco, .wkb-fg e .wkb-rev-panel continuam com a pele do app; tudo aqui é ACRÉSCIMO
   (seção nova .rnd-cerebro · folha nova #wkbFolhaPedido.wkb-pd · classe de origem .origem-cerebro no raiz da proposta · linhas .wkb-prop-*).
   Depende dos tokens do :root (--bg --gold --gold2 --text --text2 --text3 --fs-* --ui --serif --ease --line --line2 --card-line-* --topo-seguro).
   ══════════════════════════════════════════════════════════════════ */

/* ── 1 · A SEÇÃO «MEU CÉREBRO» — irmã da .rnd-ia dentro de <aside class="rn-instruments">, entre o Assessor e a RN IA.
      Superfície do SISTEMA (ouro): filete superior 2.5px, como os chart cards. Nunca a moldura cônica da IA. ── */
.rnd-cerebro{position:relative;margin:0 0 12px;padding:12px 14px 12px;border:1px solid var(--card-line-1);border-top:2.5px solid var(--gold);border-radius:18px 18px 18px 9px;
  background:linear-gradient(180deg,rgba(201,162,39,.07),rgba(201,162,39,0) 62%),rgba(255,255,255,.02)}
.rnd-cerebro-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:24px}
.rnd-cerebro-head .eb{font:500 var(--fs-micro)/1 var(--ui);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.rnd-cerebro-leitura{margin:10px 0 0;font:400 var(--fs-sm)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
.rnd-cerebro-leitura b{font-weight:500;color:var(--text);letter-spacing:.04em;font-variant-numeric:tabular-nums}
.rnd-cerebro-montar{display:flex;align-items:center;justify-content:center;width:100%;height:44px;margin:12px 0 0;padding:0 14px;
  border:1px solid var(--card-line-ouro);border-radius:11px 11px 11px 5px;background:rgba(201,162,39,.1);color:var(--gold2);
  font:500 var(--fs-md)/1 var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;
  transition:background-color .16s var(--ease),border-color .16s var(--ease)}
.rnd-cerebro-montar:active{background:rgba(201,162,39,.18)}
@media(hover:hover){.rnd-cerebro-montar:not([aria-disabled="true"]):hover{background:rgba(201,162,39,.16);border-color:var(--gold)}}
.rnd-cerebro-montar:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* sem aluno: o botão fica, apagado, e a leitura explica — sem toast */
.rnd-cerebro-montar[aria-disabled="true"]{border-color:var(--card-line-1);background:rgba(255,255,255,.02);color:var(--text2);cursor:default}

/* ── 2 · A FOLHA DO PEDIDO — #wkbFolhaPedido.wkb-pd, família da folha dos grupos (.wkb-fg).
      Celular: folha de baixo com rolagem PRÓPRIA no miolo (cabeça da letra grudada, «Montar» sempre à vista).
      Mac (.mac): painel ancorado à coluna do aside, 460px, sem scrim — a ficha continua visível à esquerda. ── */
.wkb-pd{position:fixed;inset:0;z-index:9860;display:none}
.wkb-pd.aberta{display:block}
.wkb-pd .scrim{position:absolute;inset:0;background:rgba(10,8,6,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.wkb-pd .folha{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;max-height:calc(100dvh - var(--topo-seguro));
  background:rgba(24,20,14,.98);border:1px solid var(--card-line-2);border-bottom:0;border-radius:18px 18px 0 0;animation:wkb-pd-sobe .22s var(--ease) both}
.wkb-pd .alca{flex:none;width:40px;height:4px;margin:8px auto 0;border-radius:2px;background:var(--card-line-2)}
.wkb-pd-topo{position:relative;flex:none;padding:12px 56px 10px 16px}
.wkb-pd-topo .eb{margin:0;font:500 var(--fs-micro)/1 var(--ui);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.wkb-pd-topo h3{margin:8px 0 0;font:500 var(--fs-xl)/1.15 var(--serif);color:var(--text);text-wrap:pretty}
.wkb-pd-fechar{position:absolute;top:10px;right:12px;display:grid;place-items:center;width:32px;height:32px;margin:0;padding:0;border:1px solid var(--card-line-1);border-radius:9px 9px 9px 4px;
  background:rgba(255,255,255,.02);color:var(--text2);font:400 var(--fs-md)/1 var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent}
.wkb-pd-fechar::before{content:"";position:absolute;inset:-6px}
.wkb-pd-fechar:active{border-color:var(--card-line-ouro);color:var(--gold)}
.wkb-pd-fechar:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* o que o app LEU (não perguntou): nível · objetivo · periodização · sexo. .falta = o cadastro não tem — vazio da casa (tracejado + escuro), não erro */
.wkb-pd-fatos{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none}
.wkb-pd-fatos li{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid var(--card-line-1);border-radius:8px 8px 8px 4px;
  font:400 var(--fs-xs)/1 var(--ui);color:var(--text2);white-space:nowrap}
.wkb-pd-fatos li.falta{border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26);color:var(--text)}
/* variante (iii-b): o nível vira botão e abre os subníveis das fichas dele — só pro pedido, o cadastro não muda */
.wkb-pd-fatos li.escolhe{padding:0;border:0}
.wkb-pd-fatos li.escolhe>button{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 8px 0 10px;border:1px solid var(--card-line-1);border-radius:8px 8px 8px 4px;
  background:rgba(255,255,255,.02);color:var(--text2);font:400 var(--fs-xs)/1 var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent}
.wkb-pd-fatos li.escolhe>button i{font-style:normal;color:var(--text3)}
.wkb-pd-fatos li.escolhe>button[aria-expanded="true"]{border-color:var(--card-line-ouro);color:var(--text)}
.wkb-pd-sub{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 0}
.wkb-pd-sub .eb{margin:0 4px 0 0;font:500 var(--fs-micro)/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--text3)}
.wkb-pd-sub button{min-width:44px;height:36px;padding:0 10px;border:1px solid var(--card-line-1);border-radius:9px 9px 9px 4px;background:rgba(0,0,0,.26);color:var(--text2);
  font:500 var(--fs-sm)/1 var(--ui);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wkb-pd-sub button[aria-pressed="true"]{border-color:var(--card-line-ouro);color:var(--gold);background:rgba(201,162,39,.1)}
.wkb-pd-falta,.wkb-pd-dica{margin:8px 0 0;font:400 var(--fs-xs)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
.wkb-pd-dica b,.wkb-pd-falta b{font-weight:500;color:var(--text)}
.wkb-pd-corpo{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 16px 6px;scrollbar-width:thin}
/* a letra: cabeça grudada no topo da rolagem (sempre se sabe em que treino se está), linhas por músculo, «+ músculo» e a grade dos 13 */
.wkb-pd-letra{padding:0 0 8px}
.wkb-pd-letra-head{position:sticky;top:0;z-index:1;display:flex;align-items:baseline;gap:8px;padding:12px 0 7px;background:rgba(24,20,14,.98);border-bottom:1px solid var(--card-line-1)}
.wkb-pd-letra-head b{flex:none;font:500 var(--fs-lg)/1 var(--serif);color:var(--text)}
.wkb-pd-letra-head .grupos{flex:1 1 auto;min-width:0;font:400 var(--fs-sm)/1.25 var(--ui);color:var(--text2);text-wrap:pretty}
.wkb-pd-letra-head .grupos i{font-style:normal;color:var(--text3)}
.wkb-pd-letra-head .soma{flex:none;font:500 var(--fs-xs)/1 var(--ui);color:var(--text2);font-variant-numeric:tabular-nums;white-space:nowrap}
/* nota da letra: «Quais músculos vão no A?» · texto antigo que não bate · «Corpo inteiro» não é músculo · «saiu do pedido também» */
.wkb-pd-nota{margin:10px 0 2px;font:400 var(--fs-sm)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
.wkb-pd-nota b{font-weight:500;color:var(--text)}
.wkb-pd-nota q{quotes:"«" "»";color:var(--text)}
/* a linha do músculo: nome (é botão: toque tira/põe) + 1·2·3·4·+ (44×44 cada; 5 pílulas = 236px, sobra ≥97px pro nome a 375) */
.wkb-pd-m{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;row-gap:4px;padding:5px 0;border-top:1px solid var(--line)}
.wkb-pd-letra-head+.wkb-pd-m,.wkb-pd-nota+.wkb-pd-m{border-top:0}
.wkb-pd-m .nome{display:flex;align-items:center;min-height:44px;margin:0;padding:0;border:0;background:none;text-align:left;color:var(--text);
  font:500 var(--fs-sm)/1.2 var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;text-wrap:pretty}
.wkb-pd-m .qtd{display:flex;gap:4px;justify-self:end}
.wkb-pd-m .qtd button{width:44px;height:44px;margin:0;padding:0;border:1px solid var(--card-line-1);border-radius:10px 10px 10px 5px;background:rgba(0,0,0,.26);
  color:var(--text2);font:500 var(--fs-md)/1 var(--ui);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;
  transition:border-color .16s var(--ease),color .16s var(--ease),background-color .16s var(--ease)}
.wkb-pd-m .qtd button[aria-pressed="true"]{border-color:var(--card-line-ouro);color:var(--gold);background:rgba(201,162,39,.1)}
.wkb-pd-m .qtd button[data-pd-mais][aria-expanded="true"]{border-color:var(--card-line-2);color:var(--text)}
.wkb-pd-m .qtd button[data-pd-mais][aria-pressed="true"]{border-color:var(--card-line-ouro);color:var(--gold);background:rgba(201,162,39,.1)}   /* o «+» com um 5+ escolhido mostra o número */
.wkb-pd-m .qtd button:focus-visible,.wkb-pd-m .nome:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.wkb-pd-m .qtd.mais{grid-column:2}                                      /* 5 · 6 · 7 · 8 — abre pelo «+»; 5+ é 6% dos casos dele */
.wkb-pd-m .qtd.mais[hidden]{display:none}
.wkb-pd-m.fora .nome{color:var(--text3);text-decoration:line-through}
.wkb-pd-m.fora .qtd{display:none}
.wkb-pd-m.fora::after{content:"fora deste treino";grid-column:2;justify-self:end;padding-right:2px;font:400 var(--fs-xs)/1 var(--ui);color:var(--text2)}
/* grão (a): grupo com porções (glúteo · ombro · abdômen) mostra COMO o app reparte, pela média dele; um toque abre as porções pra mexer */
.wkb-pd-m .porcoes{grid-column:1/-1;display:inline-flex;align-items:center;gap:6px;justify-self:start;min-height:32px;margin:-4px 0 0;padding:0 8px 0 0;border:0;background:none;
  color:var(--text2);font:400 var(--fs-xs)/1 var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none}
.wkb-pd-m .porcoes i{font-style:normal;color:var(--text3)}
.wkb-pd-m .porcoes[aria-expanded="true"]{color:var(--text)}
.wkb-pd-m .porcoes:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.wkb-pd-porcoes{grid-column:1/-1;display:grid;margin:0 0 4px;padding:0 0 2px 12px;border-left:2px solid rgba(201,162,39,.35)}
.wkb-pd-porcoes[hidden]{display:none}
.wkb-pd-porcoes .wkb-pd-m{border-top:1px solid var(--line2)}
.wkb-pd-porcoes .wkb-pd-m:first-child{border-top:0}
.wkb-pd-porcoes .wkb-pd-m .nome{font-weight:400;color:var(--text2)}
.wkb-pd-porcoes .wkb-pd-m.fora .nome{color:var(--text3)}
/* grão (b): porção sempre à vista — a linha do grupo some e o nome do grupo vira eyebrow acima das porções */
.wkb-pd-grupo-eb{margin:10px 0 0;font:500 var(--fs-micro)/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--text3)}
.wkb-pd-grupo-eb+.wkb-pd-m{border-top:0}
/* pôr um músculo: «+ músculo» abre a grade (o MESMO vocabulário da folha dos grupos: 13 dos 14 — «Corpo inteiro» não é músculo) */
.wkb-pd-add{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:2px 0 0;padding:0 4px 0 2px;border:0;background:none;color:var(--text2);
  font:500 var(--fs-sm)/1 var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none}
.wkb-pd-add::before{content:"+";font:500 var(--fs-lg)/1 var(--ui);color:var(--gold)}
.wkb-pd-add[aria-expanded="true"]{color:var(--text)}
.wkb-pd-add[aria-expanded="true"]::before{content:"✓"}
.wkb-pd-add:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.wkb-pd-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:4px 0 6px}
.wkb-pd-grade[hidden]{display:none}
.wkb-pd-grade button{min-height:44px;margin:0;padding:8px 10px;border:1px solid var(--card-line-1);border-radius:10px 10px 10px 5px;background:rgba(255,255,255,.02);color:var(--text2);
  font:500 var(--fs-sm)/1.2 var(--ui);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;text-wrap:pretty}
.wkb-pd-grade button.on{border-color:var(--card-line-ouro);color:var(--gold);background:rgba(201,162,39,.08)}
.wkb-pd-grade button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* o pé: «Montar» sempre à vista (ouro cheio = decide). O lugar à esquerda é RESERVADO ao botão da Ênfase (passo 6) — hoje vazio, sem elemento. */
.wkb-pd-pe{flex:none;display:flex;gap:10px;padding:12px 16px calc(env(safe-area-inset-bottom,0px) + 14px);border-top:1px solid var(--card-line-1);background:rgba(24,20,14,.98)}
.wkb-pd-pe .montar{flex:1 1 auto;display:flex;align-items:center;justify-content:center;height:46px;margin:0;padding:0 16px;border:0;border-radius:12px 12px 12px 6px;
  background:var(--gold);color:var(--bg);font:500 var(--fs-md)/1 var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;
  transition:background-color .16s var(--ease)}
.wkb-pd-pe .montar:active{background:var(--gold2)}
.wkb-pd-pe .montar:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wkb-pd-pe .montar[aria-disabled="true"]{background:rgba(255,255,255,.06);color:var(--text2);cursor:default}   /* nenhuma letra com músculo: nada a montar */
/* Mac: painel ancorado à coluna do aside (direita), 460 como a .wkb-fg.mac; sem scrim nem alça; fecha no ✕ ou no Esc */
.wkb-pd.mac{inset:auto;top:var(--topo-seguro);right:16px;bottom:16px;width:460px}
.wkb-pd.mac.aberta{display:flex;flex-direction:column}
.wkb-pd.mac .scrim,.wkb-pd.mac .alca{display:none}
.wkb-pd.mac .folha{position:static;max-height:100%;border-bottom:1px solid var(--card-line-2);border-radius:18px 18px 18px 9px;box-shadow:0 24px 54px -28px rgba(0,0,0,.8);animation-name:wkb-pd-chega}
.wkb-pd.mac .wkb-pd-topo{padding-top:16px}
.wkb-pd.mac .wkb-pd-grade{grid-template-columns:repeat(3,minmax(0,1fr))}
.wkb-pd.mac .wkb-pd-pe{padding-bottom:14px}

/* ── 3 · A PROPOSTA — desde 12/10 (rodada identidade) mora na peça própria .mcj (cerebro_movimento_v1.css, bloco 14); .origem-cerebro morreu e o escopo é .mcj.
      Sem roxo, sem itálico (itálico é a voz da IA); o tracejado do rodapé fica — rascunho continua não sendo definitivo. ── */
/* etapa 6 (05/10): a banda da ênfase entra na proposta do algoritmo — sem roxo (o algoritmo não é IA), o ouro da casa */
.mcj .enf-eb-ia{color:var(--gold)}
.mcj .wkb-revisao-note{font-style:normal}
/* linhas de topo (uma vez por proposta): poucas fichas · «segue o bloco» */
.wkb-prop-poucas,.wkb-prop-plano{margin:0 0 12px;font:400 var(--fs-sm)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
.wkb-prop-poucas b,.wkb-prop-plano b{font-weight:500;color:var(--text)}
/* linhas da divisão (sob o cabeçalho): o que a SUA regra tirou · a letra já tem exercícios no rascunho — informação, tinta de texto, sem cor de status */
.wkb-prop-regra,.wkb-prop-tem{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:4px 0 6px;font:400 var(--fs-xs)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
.wkb-prop-regra .eb,.wkb-prop-tem .eb{font:500 var(--fs-micro)/1.4 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);white-space:nowrap}
.wkb-prop-regra b,.wkb-prop-tem b{font-weight:500;color:var(--text)}
/* o exercício que segue o bloco: no lugar de «N séries · reps» — a mesma expressão do .em-modo da ficha do aluno */
.wkb-prop-bloco{display:inline-flex;align-items:center;gap:6px}
.wkb-prop-bloco small{font-size:inherit}   /* «· bloco 1»: o <small> do navegador caía a 10,8px, abaixo do chão --fs-xs (bancada pedido_biset, 23/10) */
.wkb-prop-ex .rm.wkb-prop-bloco{display:flex;align-items:center;gap:6px}
.wkb-prop-ex .rm.wkb-prop-bloco::before{margin-right:0}
.wkb-prop-bloco::before{content:"";display:inline-block;vertical-align:middle;width:8px;height:8px;margin-right:6px;border:1.5px solid var(--text2);border-radius:2px 2px 2px 1px}
/* a vaga que ficou vazia: o «vazio clicável» da casa (1px dashed .16 + rgba(0,0,0,.26)) — é um lugar, não um exercício nem um erro */
.wkb-prop-vaga{display:grid;gap:3px;margin:8px 0 2px;padding:10px 12px;border:1px dashed rgba(255,255,255,.16);border-radius:12px 12px 12px 6px;background:rgba(0,0,0,.26)}
.wkb-prop-vaga b{font:500 var(--fs-sm)/1.25 var(--ui);color:var(--text)}
.wkb-prop-vaga span{font:400 var(--fs-xs)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
/* (o «montando» .wkb-cerebro-montando saiu em 12/10 — o «calculando» agora é .mcc--pensando, em cerebro_calculando_v1.css) */

@keyframes wkb-pd-sobe{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes wkb-pd-chega{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.wkb-pd .folha{animation:none}.wkb-pd-m .qtd button,.rnd-cerebro-montar,.wkb-pd-pe .montar{transition:none}}

/* ══ «MONTAR DO MEU JEITO» — COLA COM O APP (não é desenho; declarada no ENTREGA_PASSO1.md, seção do porte).
   1) Tokens: o rn_gerar.css lê do :root do molde (prancha/demo_prancha.css) tokens que o app não
      declara nesses escopos (--card-line-*, --ui, --serif; e a folha mora no <body>, fora de
      #wkBuilderOverlay, sem a escala --fs-* nem o brilho --text*). Valores IDÊNTICOS aos do :root
      do molde — o mesmo precedente do css/rn_ajuda_v1.css.
   2) Lugar no aside: no celular o aside é display:contents e as peças se ordenam por `order`
      (Assessor 5 · Volume inteligente 6 · RN IA 7, acima; order 5 + o DOM põe a seção logo depois do Assessor) — sem isto a seção subiria pro topo do Montador; a margem
      segue as irmãs (14px em cima no celular; no Mac o gap 12 da coluna já é o vão). ══ */
.rnd-cerebro,.wkb-pd{
  --bg:#0a0806;
  --text:#F0EBE0;--text2:#C8BFB0;--text3:#b1a99a;
  --gold:#c9a227;--gold2:#e2c25e;
  --line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.05);
  --fs-micro:11.5px;--fs-xs:13px;--fs-sm:14.5px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;
  --ease:cubic-bezier(.23,1,.32,1);
}
.rnd-cerebro,.wkb-pd,.mcj{
  --card-line-1:rgba(255,255,255,.18);--card-line-2:rgba(255,255,255,.28);--card-line-ouro:rgba(201,162,39,.5);
  --ui:'Jost','Avenir Next',system-ui,-apple-system,'Segoe UI',sans-serif;
  --serif:'Playfair Display',Georgia,serif;
}
@media (max-width:899px), (pointer:coarse) and (max-height:500px){.rnd-cerebro{order:5;margin:14px 0 0}}
@media (min-width:900px) and (min-height:501px), (min-width:900px) and (pointer:fine){.rn-instruments>.rnd-cerebro{margin:0}}
/* 3) O que o app já impõe por cima e o molde não tinha (medido: tools/bancada_cerebro_montar, molde × app,
      estilo computado): o reset global `button{text-align:left}` (o molde conta com o centro do navegador
      — o número das pílulas ia pra esquerda); `header::before` (o fio dourado de css/styles.css desenhava
      em cima da cabeça da letra, que é <header>); `#wkBuilderOverlay .eb` (13px/600) e
      `#wkbRevisaoOverlay .eb` (roxo) vencem pela especificidade — aqui o MESMO valor do molde, só com
      seletor mais forte. ══ */
.rnd-cerebro button,.wkb-pd button:not(.nome):not([data-pd-g]){text-align:center}
.wkb-pd-letra-head::before{content:none}
#wkBuilderOverlay .rnd-cerebro-head .eb{font:500 var(--fs-micro)/1 var(--ui);letter-spacing:.16em}
#wkbRevisaoOverlay .wkb-prop-regra .eb,#wkbRevisaoOverlay .wkb-prop-tem .eb{color:var(--gold)}

/* [CÓPIA] fonte: docs/rodada_seletor_metodos_2026-10-06/DO_JEAN/seletor_metodos_v2_jean.html:85-125 (Jean, 06/10) */

/* ══════════════════════════════════════════════════════════════════
   PORTÁVEL · RN Personal · MONTADOR — SELETOR DE MÉTODOS na folha do pedido · v2 (7 métodos)
   Rodada 06/10/2026 · Jean Claude · DESTINO: css/montagem_v5.css (acrescentar no fim; nada aqui renomeia nem remove).
   Uma linha a mais por letra, irmã da .wkb-pd-m, em três andares: nome «Métodos» (botão: toque risca = nenhum) · duas
   fileiras de pílulas de largura inteira — Drop set · Rest-pause · Cluster · FST-7 / Muscle round · Ponto Zero · Oclusão
   (quebra explícita <i class="quebra">; forma, raio, borda e fundo dos 1·2·3·4·+; fonte --fs-sm porque é palavra, não dígito)
   · legenda de aviso quando fora do padrão.
   Brilho por nível: [data-pd-cerebro="1"] = o Cérebro usaria neste nível → tinta --text, borda --card-line-2;
   as outras → --text2, --card-line-1 (os dois tons que a folha já usa). Acesa (ouro) vence o brilho.
   Zero pílulas acesas = o padrão «Cérebro escolhe», dito em palavras na linha pequena sob o nome.
   Aviso fora do padrão = .tec-legenda.rn-per (já no ar). Nunca cor de status: fora do padrão não é erro.
   Aviso de SAÚDE (oclusão) = o chip .wkb-prop-aviso.wkb-prop-aviso-saude que a proposta já usa, dentro da legenda.
   Sem roxo: isto não é IA. Depende dos tokens do :root (--text --text2 --text3 --gold --line --card-line-1/2 --card-line-ouro --fs-* --ui --ease).
   Medidas a 375 (343 úteis): fileira 1 ≈ 301px · fileira 2 ≈ 273px · linha = 5+44+4+44+4+44+5 = 150px por letra com músculo.
   ══════════════════════════════════════════════════════════════════ */
.wkb-pd-met{display:grid;grid-template-columns:minmax(0,1fr);row-gap:4px;padding:5px 0;border-top:1px solid var(--line)}
.wkb-pd-met .nome{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-height:44px;margin:0;padding:0;border:0;background:none;text-align:left;color:var(--text);
  font:500 var(--fs-sm)/1.2 var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;text-wrap:pretty}
.wkb-pd-met .nome b{font-weight:500}
.wkb-pd-met .nome small{font:400 var(--fs-xs)/1.25 var(--ui);color:var(--text2)}           /* «Cérebro escolhe» — o padrão, em palavras; some quando ele acende uma pílula */
.wkb-pd-met .tipos{display:flex;flex-wrap:wrap;gap:4px;justify-self:stretch}
.wkb-pd-met .tipos .quebra{flex:1 0 100%;height:0;margin:0;padding:0;border:0}             /* fecha a 1ª fileira depois da 4ª pílula: 4 + 3, sempre */
.wkb-pd-met .tipos button{min-width:44px;height:44px;margin:0;padding:0 9px;border:1px solid var(--card-line-1);border-radius:10px 10px 10px 5px;background:rgba(0,0,0,.26);
  color:var(--text2);font:500 var(--fs-sm)/1 var(--ui);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;
  transition:border-color .16s var(--ease),color .16s var(--ease),background-color .16s var(--ease)}
.wkb-pd-met .tipos button[data-pd-cerebro="1"]{color:var(--text);border-color:var(--card-line-2)}   /* o Cérebro usaria neste nível */
.wkb-pd-met .tipos button[aria-pressed="true"]{border-color:var(--card-line-ouro);color:var(--gold);background:rgba(201,162,39,.1)}
.wkb-pd-met .tipos button:focus-visible,.wkb-pd-met .nome:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* nenhum neste treino: o mesmo gesto e a mesma cara do músculo tirado (.wkb-pd-m.fora) */
.wkb-pd-met.fora{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px}
.wkb-pd-met.fora .nome b{color:var(--text3);text-decoration:line-through}
.wkb-pd-met.fora .nome small,.wkb-pd-met.fora .tipos{display:none}
.wkb-pd-met.fora::after{content:"nenhum neste treino";grid-column:2;justify-self:end;padding-right:2px;font:400 var(--fs-xs)/1 var(--ui);color:var(--text2)}
/* a ficha segue o bloco da periodização: o Cérebro não põe método (séries e reps vêm do bloco); as pílulas ficam — ele pode pôr por cima, e a legenda avisa */
.wkb-pd-met.bloco .nome small{color:var(--text2)}
/* o aviso: fora do padrão, nunca proibido — a legenda da casa, largura toda, sob as pílulas */
.wkb-pd-met .tec-legenda.rn-per{grid-column:1/-1;margin:2px 0 4px}
.wkb-pd-met .tec-legenda.rn-per .wkb-prop-aviso{margin:0 0 6px;vertical-align:middle}              /* chip de saúde da proposta, reaproveitado: ponto + rótulo */
@media(prefers-reduced-motion:reduce){.wkb-pd-met .tipos button{transition:none}}
/* ══════════════ fim do bloco PORTÁVEL ══════════════ */

/* ══ EDITOR ÚNICO DO MEU CÉREBRO (06/10 noite) — cópia literal (tokens que não existem fora do .rn-per viraram o valor do molde: roxo #9d5cff/#c7a6f5, ouro → --gold) de docs/rodada_cerebro_periodizacao_2026-10-06/DO_JEAN/editor_unico_rodada7.html ══ */
/* (o disco roxo .mcr-disco saiu em 08/10 — o símbolo agora é .mcb-ico, em cerebro_pedido_v1.css) */

/* ══ NOVO · O SELETOR DE PERIODIZAÇÃO — .wkb-pd-per, irmão do .wkb-pd-met: nome + pílulas + nota. Mora no TOPO (é da ficha inteira, não da letra),
      no lugar do chip «Sem periodização»/«Segue o bloco» dos fatos. Ouro decide (pílula acesa), o cérebro é o disco roxo só no nome. ══ */
.wkb-pd-per{display:grid;grid-template-columns:minmax(0,1fr);row-gap:4px;margin:10px 0 0;padding:6px 0 4px;border-top:1px solid var(--line)}
.wkb-pd-per .nome{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;padding:0;border:0;background:none;text-align:left;color:var(--text);font:500 var(--fs-sm)/1.2 var(--ui)}
.wkb-pd-per .nome .mcb-ico{--d:22px}
.wkb-pd-per .nome .tx{display:flex;flex-direction:column;gap:3px}
.wkb-pd-per .nome small{font:400 var(--fs-xs)/1.25 var(--ui);color:var(--text2);text-wrap:pretty}
.wkb-pd-per .tipos{display:flex;flex-wrap:wrap;gap:4px}
.wkb-pd-per .tipos button{min-width:44px;height:44px;margin:0;padding:0 12px;border:1px solid var(--card-line-1);border-radius:10px 10px 10px 5px;background:rgba(0,0,0,.26);color:var(--text2);font:500 var(--fs-sm)/1 var(--ui)}
.wkb-pd-per .tipos button[aria-pressed="true"]{border-color:var(--card-line-ouro);color:var(--gold);background:rgba(201,162,39,.1)}
.wkb-pd-per .tipos button[aria-disabled="true"]{border-style:dashed;border-color:rgba(255,255,255,.16);color:var(--text3);cursor:default}  /* «o cérebro monta» indisponível: vazio da casa, não erro */
.wkb-pd-per .tipos button:focus-visible,.wkb-pd-per .nome:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.wkb-pd-per .nota{margin:4px 0 0;font:400 var(--fs-xs)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
.wkb-pd-per .nota b{font-weight:500;color:var(--text)}
/* a fita do plano, resumida, dentro do seletor (só quando «O cérebro monta» está aceso): 6 blocos × 2 semanas */
.per-fita{display:flex;gap:3px;height:10px;margin:8px 0 0}
.per-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)}
.per-fita-n{display:flex;gap:3px;margin-top:5px}
.per-fita-n span{flex:var(--w) 1 0;min-width:8px;text-align:center;white-space:nowrap;overflow:hidden;font:500 var(--fs-xs)/1 var(--ui);color:var(--text2);font-variant-numeric:tabular-nums}
.per-fita-n span i{display:block;margin-top:3px;font:400 var(--fs-micro)/1 var(--ui);font-style:normal;letter-spacing:.06em;color:var(--text3)}
/* NOVO · .wkb-prop-per — o plano como fita: um bloco por segmento, largura = semanas; séries×reps embaixo; intervalo em micro */
.wkb-prop-per{margin:0 0 14px;padding:12px 12px 10px;border:1px solid var(--card-line-1);border-radius:12px 12px 12px 6px;background:rgba(91,141,239,.05)}
.wkb-prop-per .cab{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.wkb-prop-per .cab b{font:500 var(--fs-sm)/1.2 var(--ui);color:var(--text)}
.wkb-prop-per .cab span{font:400 var(--fs-xs)/1 var(--ui);color:var(--text2);white-space:nowrap;font-variant-numeric:tabular-nums}
.wkb-prop-per .fita{display:flex;gap:3px;height:14px;margin-top:10px}
.wkb-prop-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)}
.wkb-prop-per .fita span.hoje{background:rgba(201,162,39,.32);border-color:var(--gold);box-shadow:0 0 8px rgba(201,162,39,.45)}   /* o bloco em que ela entra (bloco 1) */
.wkb-prop-per .fita-n{display:flex;gap:3px;margin-top:6px}
.wkb-prop-per .fita-n span{flex:var(--w) 1 0;min-width:10px;text-align:center;white-space:nowrap;overflow:hidden;font:500 var(--fs-xs)/1 var(--ui);color:var(--text);font-variant-numeric:tabular-nums}
.wkb-prop-per .fita-n span i{display:block;margin-top:3px;font:400 var(--fs-micro)/1 var(--ui);font-style:normal;letter-spacing:.06em;color:var(--text2)}
.wkb-prop-per .nota{margin:10px 0 0;font:400 var(--fs-xs)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
.wkb-prop-per .nota b{font-weight:500;color:var(--text)}
.wkb-prop-fixo{display:inline-flex;align-items:center;gap:6px;color:var(--gold)}
.wkb-prop-fixo .i{width:12px;height:12px;fill:rgba(201,162,39,.28)}
/* C-1335 (Raphael 14/10 + Jean): o método aplicado vira selo jade — a cor do cérebro — antes do regime */
.wkb-prop-metodo{display:inline-flex;align-items:center;gap:5px;margin-right:8px;padding:2px 8px 2px 6px;border:1px solid rgba(var(--cer-rgb,168,247,214),.42);border-radius:8px 8px 8px 3px;background:rgba(var(--cer-rgb,168,247,214),.10);color:var(--cer,#a8f7d6);font:600 var(--fs-xs)/1.3 var(--ui);letter-spacing:.01em;white-space:nowrap;vertical-align:middle}
.wkb-prop-metodo svg{width:13px;height:13px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.wkb-prop-ex .rm.wkb-prop-bloco:has(.wkb-prop-metodo)::before{display:none}
/* NOVO · o pé da proposta: UMA aprovação. «Ajustar» volta pra folha do pedido. Rodapé com fio tracejado = rascunho (vocabulário da casa). */
.wkb-rev-foot{display:flex;flex-direction:column;gap:10px;padding:12px 18px 16px;border-top:1px dashed rgba(255,255,255,.16)}
.wkb-rev-foot .btns{display:flex;gap:10px}
.wkb-rev-foot .aprovar{flex:1 1 auto;height:46px;border:0;border-radius:12px 12px 12px 6px;background:var(--gold);color:var(--bg);font:500 var(--fs-md)/1 var(--ui)}
.wkb-rev-foot .ajustar{flex:0 0 auto;height:46px;padding:0 16px;border:1px solid var(--card-line-1);border-radius:12px 12px 12px 6px;background:rgba(255,255,255,.02);color:var(--text);font:500 var(--fs-md)/1 var(--ui)}
.wkb-rev-foot p{margin:0;font:400 var(--fs-xs)/1.4 var(--ui);color:var(--text2);text-wrap:pretty}
.wkb-rev-foot p b{font-weight:500;color:var(--text)}


/* ══ COLA — porte janelas fatia 4b (07/10): o seletor de aluno (#wkbAlunoSheet) e a
   Estante viraram .rnj--cheia. A lista de alunos ocupa o corpo e só o rolo rola —
   a busca fica parada em cima (era o que o «porte 2» de 09/08 garantia no celular). ══ */
#wkbAlunoSheet.rnj-overlay .rnj-body{display:flex;flex-direction:column}
#wkbAlunoSheet.rnj-overlay .wkb-lista:not([hidden]){flex:1;min-height:0;display:flex;flex-direction:column}
#wkbAlunoSheet.rnj-overlay .wkb-lista-rolo{flex:1;min-height:0;max-height:none;overflow:auto;-webkit-overflow-scrolling:touch}
/* exercício por tempo (Jean campo_tempo_v1, 14/10): o rótulo Reps/Tempo é a troca; toque 44px sem crescer a linha */
.p-troca-tempo{position:relative;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;display:inline-flex;gap:4px;align-items:center}
.p-troca-tempo::after{content:"";position:absolute;inset:-14px -12px}
.p-troca-tempo i{font-style:normal;color:var(--text3)}


/* [CÓPIA] fonte: docs/rodada_ordem_topo_montador_2026-10-14/DO_JEAN/DO_JEAN_ordem_topo_2026-10-14/ordem_topo_montador_2026-10-14.css
   Única troca (autorizada no próprio molde, item 0 do PATCH): .rn-per → #wkbPlanoHost e .pe → #wkbPerPe —
   no app o raiz do pé é <div class="rn-per" id="wkbPerPe"><section class="pe">, então .rn-per casaria os dois. */
/* ══════════════════════════════════════════════════════════════════
   RN Personal · MONTADOR — A ORDEM DO TOPO (Raphael, 14/10/2026) · Jean
   DESTINO: css/montagem_v5.css — ACRESCENTAR NO FIM (depois do bloco «cola com o app» do cérebro).
   Só ordem + respiro. Nada renomeia, nada remove, nenhum DOM, nenhum texto. Vence as regras de
   ~1305-1360 pela cascata (mesmas @media, mesmos seletores, declarado depois).
   Ordem-alvo: 1 .rn-strip · 2 .rn-per · 3 .rn-tabs/.rn-panel · 4 .rnd-cerebro · 5 .pe
   Guia e prova: docs/rodada_ordem_topo_montador_2026-10-14/DO_JEAN/PATCH_ordem_topo_montador_2026-10-14.md
   ⚠ `.pe` = nó raiz de _perPeHtml. Confirmar a classe no Inspetor antes de colar; se divergir, trocar SÓ aqui.
   ══════════════════════════════════════════════════════════════════ */

/* ── CELULAR — a mesma @media do bloco de ordem (~1313) ── */
@media (max-width:899px), (pointer:coarse) and (max-height:500px){
  .wkb-error{order:0}
  .rn-strip{order:1}
  #wkbPlanoHost{order:2}            /* NOVO — hoje sem order (0) = subia pro topo */
  .rn-tabs{order:3}           /* era 2 */
  .rn-panel{order:4}          /* era 3 */
  .rnd-cerebro{order:5}       /* igual ao já declarado na cola do cérebro — repetido só pra leitura */
  .rn-metrics-rail{order:6}   /* era 4 */
  .wkb-vi{order:7}            /* era 5 */
  .rnd-assessor{order:8}      /* era 6 */
  .rnd-pico{order:8}          /* só se ainda existir como filha de .wkb-cols; senão, inerte */
  .rnd-ia{order:9}            /* era 7 */
  #wkbPerPe{order:10}               /* NOVO — hoje sem order (0) = subia pro topo */
  .rnd-excluir{order:11}      /* era 8 */
}

/* ── MAC — a mesma @media do painel direito (~1337) ── */
@media (min-width:900px) and (min-height:501px), (min-width:900px) and (pointer:fine){
  .wkb-error{grid-column:1;grid-row:1}
  .rn-strip{grid-column:1;grid-row:2}
  #wkbPlanoHost{grid-column:1;grid-row:3}       /* NOVO */
  .rn-tabs{grid-column:1;grid-row:4}      /* era 3 */
  .rn-panel{grid-column:1;grid-row:5}     /* era 4 */
  #wkbPerPe{grid-column:1;grid-row:6}           /* NOVO */
  .rnd-excluir{grid-column:1;grid-row:7}  /* NOVO — hoje por auto-placement */
  .rn-instruments{grid-row:2/span 6}      /* era 2/span 3; o resto da regra (sticky, flex, gap) fica como está */
  .rn-instruments>.rnd-cerebro{order:-1}  /* NOVO — o cérebro abre a coluna da direita */
}

/* ── RESPIRO (os dois aparelhos) ── */
/* a Periodização encosta nas abas: lê como cabeçalho dos exercícios. Vão TOTAL = 10px. */
#wkbPlanoHost+.rn-tabs{margin-top:10px}
/* o pé da ficha fecha a montagem: ar + fio + ar. Se .pe já tiver margin/padding/border-top, ajustar pra este TOTAL, não somar. */
/* o .pe já tem fio e ar (periodizacao_v1.css:113: 24/18 + border) — o TOTAL do Jean vai nele, sem somar */
#wkbPerPe>.pe{margin-top:16px;padding-top:22px;border-top:1px solid var(--line)}

/* C-1392 · PRÉVIA EM TELA CHEIA (Raphael 16/10) — sem faixa no topo nem no rodapé; a ficha real ocupa tudo.
   PROVISÓRIO até o Jean desenhar Voltar/Enviar (docs/rodada_previa_cheia_2026-10-16/). */
.wkb-previa-veu{position:fixed;inset:0;z-index:9900;display:none;background:#0a0806}
.wkb-previa-veu.open{display:block}
.wkb-previa-cheia{position:absolute;inset:0}
.wkb-previa-cheia iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#0a0806}
/* [CÓPIA] fonte: css/acordo_aluno.css #wkhVoltar — só a posição muda (fixa sobre a ficha) e o fundo ganha corpo pra ler por cima dela */
.wkb-previa-voltar{position:absolute;z-index:2;top:calc(env(safe-area-inset-top,0px) + 12px);left:14px;display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px 0 10px;border:1px solid var(--line,rgba(255,255,255,.08));border-radius:11px 11px 11px 5px;background:rgba(10,8,6,.82);color:var(--text2,#C8BFB0);font:400 var(--fs-xs,13px)/1 Jost,'Avenir Next',system-ui,sans-serif;letter-spacing:.02em;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.wkb-previa-voltar svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wkb-previa-voltar:active{transform:scale(.985)}
.wkb-previa-enviar{position:absolute;z-index:2;right:14px;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);height:40px;padding:0 16px;border:1px solid rgba(201,162,39,.5);border-radius:11px 11px 11px 5px;background:rgba(10,8,6,.82);color:#c9a227;font:500 var(--fs-xs,13px)/1 Jost,'Avenir Next',system-ui,sans-serif;letter-spacing:.02em;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.wkb-previa-enviar{transition:transform .32s cubic-bezier(.23,1,.32,1),opacity .32s cubic-bezier(.23,1,.32,1)}
/* Jean 16/10: «meio escondido» — some ao rolar pra baixo, volta parado 600 ms / rolando pra cima / no fim da ficha */
.wkb-previa-enviar.some{transform:translateY(64px);opacity:0;pointer-events:none}
.wkb-previa-enviar.pulso{animation:wkbPreviaPulso .6s cubic-bezier(.23,1,.32,1) 1}
@keyframes wkbPreviaPulso{50%{border-color:rgba(201,162,39,1)}}
@media (min-width:1024px){.wkb-previa-voltar{left:24px;top:20px}}

/* ══ CROMO DO MONTADOR NO CELULAR (16/10, Jean — aprovado por Raphael) ══
   [CÓPIA] fonte: docs/rodada_montador_cromo_2026-10-16/DO_JEAN/cromo_montador_celular.html
   Tradução do porte: `.wkc-cel` (classe que o JS põe em #wkbPanel fora da régua do Mac);
   `.wkc-topo` = #wkbPanel > .rn2-mobile-top · `.wkc-pe` = #wkbBottomBarMobile · `.wkc-body` = #wkbBody;
   --inset-t/b = env(safe-area-inset-*). As barras vivem DENTRO do painel (absolute, nunca fixed). */
.wkc-titulo,#wkcMais{display:none}
#wkbPanel.wkc-cel{position:relative;--wkc-topo-h:calc(var(--topo-seguro) + 55px);--wkc-pe-h:calc(56px + env(safe-area-inset-bottom,0px))}
#wkbPanel.wkc-cel>.rn2-mobile-top{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;gap:12px;padding:var(--topo-seguro) 16px 10px;border-bottom:1px solid var(--line);
  background:rgba(10,8,6,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:background .32s var(--casa,cubic-bezier(.23,1,.32,1)),border-color .32s,transform .32s var(--casa,cubic-bezier(.23,1,.32,1))}
#wkbPanel.wkc-cel>.rn2-mobile-top::before{content:"";position:absolute;left:0;right:0;top:0;height:var(--topo-seguro);pointer-events:none;background:linear-gradient(180deg,rgba(10,8,6,.9),rgba(10,8,6,0));opacity:0;transition:opacity .32s}
#wkbPanel.wkc-cel #wkbMobileBackBtn{position:relative;z-index:1;flex:none;display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 12px 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,'Jost',system-ui,sans-serif);letter-spacing:.04em;transition:background .32s,border-color .32s}
#wkbPanel.wkc-cel #wkbMobileBackBtn .i{width:18px;height:18px}
#wkbPanel.wkc-cel .wkb-toptitle,#wkbPanel.wkc-cel #wkbClose{display:none}
#wkbPanel.wkc-cel .wkc-titulo{flex:1;min-width:0;display:flex;align-items:baseline;gap:7px;transition:opacity .22s var(--casa,cubic-bezier(.23,1,.32,1)),transform .22s var(--casa,cubic-bezier(.23,1,.32,1))}
.wkc-titulo .nome{flex:none;max-width:58%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 var(--fs-md)/1.2 'Playfair Display',Georgia,serif;color:var(--text)}
.wkc-titulo .sep{flex:none;color:var(--text3);font-size:var(--fs-sm)}
.wkc-titulo .prog{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:400 var(--fs-sm)/1.2 var(--ui,'Jost',system-ui,sans-serif);color:var(--text2)}
#wkbPanel.wkc-cel #wkbBody{padding-top:calc(var(--wkc-topo-h) + 12px)}
body.rnp-wkb-bottombar-open #wkbPanel.wkc-cel #wkbBody{padding-bottom:var(--wkc-pe-h)}
body.rnp-wkb-bottombar-open #wkbPanel.wkc-cel.com-teclado #wkbBody{padding-bottom:32px}
body.wkb-kb-open.rnp-wkb-bottombar-open #wkbPanel.wkc-cel #wkbBody{padding-bottom:300px}   /* o pad próprio segue com a folga de sempre (:133) */
.wkc-titulo:has(#wkcSep[hidden]) .nome{max-width:none}
#wkbPanel.wkc-cel.recolhido>.rn2-mobile-top{background:transparent;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none}
#wkbPanel.wkc-cel.recolhido>.rn2-mobile-top::before{opacity:1}
#wkbPanel.wkc-cel.recolhido .wkc-titulo{opacity:0;transform:translateY(-6px)}
#wkbPanel.wkc-cel.recolhido #wkbMobileBackBtn{pointer-events:auto;background:rgba(10,8,6,.86);border-color:var(--card-line-1,rgba(255,255,255,.18));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
/* RODAPÉ: uma barra, 56 + área segura. «+» · Salvar (pílula de estado) · Enviar (único herói). */
#wkbPanel.wkc-cel #wkbBottomBarMobile{position:absolute;left:0;right:0;bottom:0;z-index:5;align-items:center;gap:8px;padding:6px 16px calc(env(safe-area-inset-bottom,0px) + 6px);border-top:1px solid var(--line);
  background:rgba(18,15,10,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .32s var(--casa,cubic-bezier(.23,1,.32,1))}
#wkbPanel.wkc-cel.recolhido #wkbBottomBarMobile{transform:translateY(100%)}
#wkbPanel.wkc-cel #wkbRevisarBtnMobile,#wkbPanel.wkc-cel #wkbPreviewBtnMobile,#wkbPanel.wkc-cel #wkbSalvarModeloBtnMobile{display:none}
#wkbPanel.wkc-cel #wkcMais{flex:none;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--card-line-1,rgba(255,255,255,.18));border-radius:11px 11px 11px 5px;background:rgba(255,255,255,.02);color:var(--text2);transition:border-color .18s,color .18s,transform .32s var(--casa,cubic-bezier(.23,1,.32,1))}
#wkcMais .i{width:20px;height:20px}
#wkcMais[aria-expanded="true"]{border-color:var(--card-line-ouro,rgba(201,162,39,.5));color:var(--text);transform:rotate(45deg)}
#wkbPanel.wkc-cel #wkbSaveBtnMobile{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;height:44px;padding:0 10px;border:1px solid var(--card-line-1,rgba(255,255,255,.18));border-radius:11px 11px 11px 5px;background:rgba(255,255,255,.02);color:var(--text2);font:500 var(--fs-xs)/1 var(--ui,'Jost',system-ui,sans-serif);white-space:nowrap;font-variant-numeric:tabular-nums}
.wkc-salvar .i{width:16px;height:16px}
.wkc-salvar .s-resumo{color:var(--text)}
.wkc-salvar .s-resumo b{font-weight:600}
.wkc-salvar .s-sep{color:var(--text3)}
.wkc-salvar.nuvem .i,.wkc-salvar.nuvem .s-status{color:#3ddc97}
.wkc-salvar.local .i,.wkc-salvar.local .s-status{color:#fde047}
.wkc-salvar.sinal .i,.wkc-salvar.sinal .s-status{color:var(--text2)}
.wkc-salvar.ciclo .s-resumo,.wkc-salvar.ciclo .s-sep,.wkc-salvar.so .s-resumo,.wkc-salvar.so .s-sep,.wkc-salvar.local .s-resumo,.wkc-salvar.local .s-sep,.wkc-salvar.sinal .s-resumo,.wkc-salvar.sinal .s-sep{display:none}
.wkc-salvar.ciclo .s-status{background:linear-gradient(90deg,var(--text2) 30%,var(--text) 50%,var(--text2) 70%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:wkcShimmer 1.9s linear infinite}
.wkc-salvar.ciclo .i{animation:wkcSobe 1.2s var(--casa,cubic-bezier(.23,1,.32,1)) infinite}
#wkbPanel.wkc-cel #wkbSendBtnMobile{flex:none;height:44px;padding:0 18px;border:0;border-radius:12px 12px 6px 12px;background:#c9a227;color:#0a0806;font:500 var(--fs-md)/1 var(--ui,'Jost',system-ui,sans-serif);box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
@keyframes wkcShimmer{from{background-position:120% 0}to{background-position:-80% 0}}
@keyframes wkcSobe{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
/* TECLADO ABERTO: as duas barras somem inteiras (Voltar junto) */
#wkbPanel.wkc-cel.com-teclado>.rn2-mobile-top{transform:translateY(-100%)}
#wkbPanel.wkc-cel.com-teclado #wkbBottomBarMobile{transform:translateY(100%)}
/* ARRASTO PELA ALÇA: as barras congelam */
#wkbPanel.wkc-cel.arrastando>.rn2-mobile-top,#wkbPanel.wkc-cel.arrastando #wkbBottomBarMobile{transition:none}
/* miolo do «+» (a moldura é a v2) */
.wkc-mais-folha .rnj-linha .l-ico{flex:none;width:22px;height:22px;color:var(--text2)}
.wkc-mais-folha .rnj-linha .l-ico.ia{color:#9d5cff}
.wkc-mais-folha .rnj-linha .l-t>span{color:var(--rnj-text)}
@media (prefers-reduced-motion:reduce){
  #wkbPanel.wkc-cel>.rn2-mobile-top,#wkbPanel.wkc-cel #wkbBottomBarMobile,.wkc-titulo,#wkbMobileBackBtn,#wkcMais{transition:opacity .2s}
  .wkc-salvar.ciclo .s-status,.wkc-salvar.ciclo .i{animation:none;color:var(--text)}
}
.wkb-previa-enviar.ciclo{pointer-events:none;opacity:.85}
.wkb-previa-enviar.nuvem{color:#3ddc97;border-color:rgba(61,220,151,.5)}
.wkb-previa-enviar.local{color:#fde047;border-color:rgba(253,224,71,.45)}
/* ══ C-1478 · COMPARADOR DE FICHAS (20/10, Claudemir) ══
   [CÓPIA] fonte: docs/rodada_comparador_deitado_2026-10-20/DO_JEAN/comparador_fichas_jean_2026-10-20.dc.html (bloco COLÁVEL),
   escopo #wkComparaFichas (o .rn2-ex-card/.rn-tab do Montador vivem em #wkBuilderOverlay). Desvios declarados: tokens --bg-app/--line
   definidos aqui; o «?» é o rn-ajuda do app (sai o .cf-ajuda placeholder); giro e área segura por CSS (memo, «Notas de porte»). */
#wkComparaFichas{position:fixed;inset:0;z-index:10000;background:#0a0806;--bg-app:#0a0806;--line:rgba(255,255,255,.08)}
#wkComparaFichas{--fs-micro:11.5px;--fs-xs:13px;--fs-sm:14.5px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;--text:#F0EBE0;--text2:#C8BFB0;--text3:#b1a99a;--card-line-1:rgba(255,255,255,.18);--card-line-2:rgba(255,255,255,.28);--card-line-ouro:rgba(201,162,39,.5);--champ:236,214,170;--ouro:#c9a227;--ouro-txt:#e2c25e;--verde:#3ddc97;--limao:#fde047;--verm:#f0616b;--azul:#5b8def;--ui:'Jost','Avenir Next',system-ui,-apple-system,'Segoe UI',sans-serif;--serif:'Playfair Display',Georgia,serif;--topo-seguro:calc(env(safe-area-inset-top,0px) + 32px);--ease:cubic-bezier(.23,1,.32,1)}
#wkComparaFichas{--line2:rgba(255,255,255,.05);--ink2:var(--text2);--ink3:var(--text3);--gold2:#e2c25e;--ciano:#22d3ee;--fio-solido:rgba(255,255,255,.18);--fio-solido-ouro:rgba(201,162,39,.5);--sopro:rgba(255,255,255,.02);--sopro-ouro:rgba(201,162,39,.04);--bisel:inset 0 1px 0 rgba(255,255,255,.06);--brasa:0 0 0 1px rgba(201,162,39,.10);--fantasma:rgba(255,255,255,.18)}
/* abas de letra — cópia (.rn-tab.active: o extrato diz ouro sólido; o print 05 mostra ouro baixo + texto ouro — vale o print) */
#wkComparaFichas .rn-tabs{display:flex;gap:4px;background:rgba(255,255,255,.03);border:1px solid var(--fio-solido);border-radius:13px 13px 13px 6px;padding:4px;position:relative;touch-action:pan-y;box-shadow:var(--bisel)}
#wkComparaFichas .rn-tab{flex:1;min-width:0;min-height:46px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 10px;border:0;background:none;border-radius:9px 9px 9px 4px;color:var(--ink2);font-weight:600;font-size:var(--fs-md);letter-spacing:.05em;white-space:nowrap;overflow:hidden;transition:background .18s var(--ease);-webkit-user-select:none;user-select:none;touch-action:pan-y}
#wkComparaFichas .rn-tab i{font-style:normal;font-size:var(--fs-xs);font-weight:600;color:var(--ink3);font-variant-numeric:tabular-nums}
#wkComparaFichas .rn-tab:hover{background:rgba(255,255,255,.04)}
#wkComparaFichas .rn-tab.active{background:rgba(201,162,39,.14);color:var(--gold2)}
#wkComparaFichas .rn-tab.active i{color:var(--gold2)}
/* card do exercício — cópia */
#wkComparaFichas .rn2-ex-card{position:relative;border:1px solid var(--fio-solido);background:var(--sopro);border-radius:14px 14px 14px 6px;padding:12px 14px;box-shadow:var(--bisel);transition:border-color .18s var(--ease),transform .18s var(--ease),opacity .18s var(--ease)}
#wkComparaFichas .rn2-ex-card.is-open{border-color:var(--fio-solido-ouro);background:var(--sopro-ouro);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),var(--brasa)}
#wkComparaFichas .rn2-ex-card.editing{border-color:var(--fio-solido-ouro)}
#wkComparaFichas .rn2-ex-card.is-vazio{border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26);box-shadow:none}
#wkComparaFichas .rn2-ex-card.is-open .rn-num{color:var(--gold2)}
#wkComparaFichas .rn-ex-head{display:flex;align-items:center;gap:10px}
#wkComparaFichas .rn-ex-resumo{display:block;font:600 var(--fs-md)/1.3 var(--ui);color:var(--text);letter-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
#wkComparaFichas .rn-ex-resumo .sep{margin:0;font-weight:400;color:var(--text3)}
#wkComparaFichas .rn-ex-resumo .tec{color:var(--ciano);border:1px solid rgba(34,211,238,.28);border-radius:7px;padding:1px 6px;font-size:var(--fs-micro);font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin-left:4px}
#wkComparaFichas .rn-ex-resumo .falta{color:var(--text3);border:1px dashed rgba(255,255,255,.16);background:rgba(0,0,0,.26);border-radius:7px;padding:1px 7px;font-size:var(--fs-micro);font-weight:600;letter-spacing:.12em;text-transform:uppercase}
#wkComparaFichas .rn-ex-drop{display:grid;grid-template-rows:0fr}
#wkComparaFichas .rn2-ex-card.is-open .rn-ex-drop{grid-template-rows:1fr}
#wkComparaFichas .rn-ex-drop-in{overflow:hidden;min-height:0}
#wkComparaFichas .rn-ex-drop-pad{opacity:0;transform:translateY(-6px)}
#wkComparaFichas .rn2-ex-card.is-open .rn-ex-drop-pad{opacity:1;transform:none;padding-top:8px}
#wkComparaFichas .rnd-alca{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;align-self:stretch;margin:-6px -8px -6px 0;color:var(--ink3);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:color 160ms cubic-bezier(.23,1,.32,1),transform 160ms cubic-bezier(.23,1,.32,1)}
#wkComparaFichas .rnd-alca svg{width:12px;height:16px;fill:currentColor}
#wkComparaFichas .rnd-alca.rn-alca-pega{color:var(--gold2,#e2c25e);transform:scale(1.15)}
/* pílula interna do card — valores de .rn-trio > * (cópia); aqui serve a dose e as ações do card aberto */
#wkComparaFichas .cf-pill{position:relative;height:40px;min-width:0;border:1px solid rgba(240,235,224,.10);background:rgba(0,0,0,.26);color:var(--text2,#C8BFB0);font:500 var(--fs-xs,13px)/1 var(--ui);display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;padding:0 12px;border-radius:11px 11px 11px 5px;box-sizing:border-box}
#wkComparaFichas .cf-pill svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#wkComparaFichas .cf-pill--ico{width:40px;padding:0}
#wkComparaFichas .cf-pill b{font:500 var(--fs-sm)/1 var(--ui);color:var(--text)}
/* peças do card que o extrato não traz (medidas minhas, a conferir no porte): nº da ordem, nome em serifa + complemento, grupo embaixo */
#wkComparaFichas .rn-num{flex:none;min-width:18px;text-align:right;font:500 var(--fs-xs)/1 var(--ui);color:var(--text3);font-variant-numeric:tabular-nums}
#wkComparaFichas .rn-ex-nome{flex:1;min-width:0;font:500 var(--fs-md)/1.25 var(--serif);color:var(--text);text-wrap:pretty}
#wkComparaFichas .rn-ex-nome small{font:400 var(--fs-xs)/1 var(--ui);color:var(--text2);margin-left:5px;white-space:nowrap}
#wkComparaFichas .rn-ex-nome.semnome{font:italic 400 var(--fs-sm)/1.25 var(--ui);color:var(--text2)}
#wkComparaFichas .rn-ex-grupo{display:flex;align-items:center;gap:6px;margin-top:4px;padding-left:28px;font:400 var(--fs-xs)/1.3 var(--ui);color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ── NOVO · .cf-* ── */
#wkComparaFichas .cf{position:relative;display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;background:var(--bg-app);color:var(--text);font:400 var(--fs-sm)/1.35 var(--ui);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
#wkComparaFichas .cf *{box-sizing:border-box}
#wkComparaFichas .cf button{font:inherit;color:inherit;cursor:pointer}
#wkComparaFichas .cf :focus-visible{outline:2px solid rgba(var(--champ),.6);outline-offset:2px}
#wkComparaFichas .cf--deitado{padding-left:calc(var(--safe-entalhe,47px) + 32px);padding-right:var(--safe-pe,34px)}
#wkComparaFichas .cf--deitado .cf-dose{display:none}
#wkComparaFichas .cf-top{flex:none;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center;height:44px;border-bottom:1px solid var(--line)}
#wkComparaFichas .cf-top>div{display:flex;align-items:center;gap:12px;min-width:0}
#wkComparaFichas .cf-voltar{position:relative;flex:none;display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px 0 10px;border:1px solid var(--card-line-1);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:.04em}
#wkComparaFichas .cf-voltar::before{content:"";position:absolute;inset:-2px}
#wkComparaFichas .cf-voltar svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#wkComparaFichas .cf-eyebrow{display:flex;align-items:center;gap:8px;min-width:0;font:500 var(--fs-micro)/1.2 var(--ui);letter-spacing:.16em;text-transform:uppercase;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#wkComparaFichas .cf-eyebrow::before{content:"";flex:none;width:14px;height:1px;border-radius:1px;background:rgba(var(--champ),.7)}
#wkComparaFichas .cf-eyebrow b{color:var(--text2);font-weight:500}
#wkComparaFichas .cf-ajuda{position:relative;flex:none;width:24px;height:24px;display:inline-grid;place-items:center;border:1px solid var(--card-line-1);border-radius:8px 8px 8px 3px;background:rgba(255,255,255,.02);color:var(--text3)}
#wkComparaFichas .cf-ajuda::before{content:"";position:absolute;inset:-10px}
#wkComparaFichas .cf-ajuda svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#wkComparaFichas .cf-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:6px 0 8px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}
#wkComparaFichas .cf-par{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;align-items:stretch}
#wkComparaFichas .cf-par+.cf-par{margin-top:6px}
/* a coluna de hoje: o mesmo card, só leitura — sem alça; recolhido em --text2; aberto fica preto (borda nível 2), nunca dourado */
#wkComparaFichas .cf-hoje .rn-ex-nome{color:var(--text2)}
#wkComparaFichas .cf-hoje.is-open{border-color:var(--card-line-2);background:var(--sopro);box-shadow:var(--bisel)}
#wkComparaFichas .cf-hoje.is-open .rn-num{color:var(--text3)}
#wkComparaFichas .cf-vazio{display:flex;align-items:center;gap:8px;min-height:60px;padding:0 14px}
#wkComparaFichas .cf-colvazia{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding-top:26px;text-align:center;color:var(--text2);font-size:var(--fs-sm)}
#wkComparaFichas .cf-colvazia b{font-weight:500;color:var(--text)}
#wkComparaFichas .cf-lift{z-index:3;border-color:var(--fio-solido-ouro);background:#120e09;box-shadow:0 14px 28px -12px rgba(0,0,0,.85);transform:translate(6px,-2px) rotate(-.4deg)}
/* as quatro marcas — sempre ícone + rótulo; vivem na coluna de hoje */
#wkComparaFichas .cf-mk{flex:none;display:inline-flex;align-items:center;gap:5px;font:500 var(--fs-xs)/1 var(--ui);color:var(--text3);white-space:nowrap}
#wkComparaFichas .cf-mk svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#wkComparaFichas .cf-mk small{font:400 var(--fs-xs)/1 var(--ui);color:var(--text2)}
#wkComparaFichas .cf-mk--in{color:var(--verde)}
#wkComparaFichas .cf-mk--out{color:var(--verm)}
#wkComparaFichas .cf-mk--mv{color:var(--limao)}
#wkComparaFichas .cf-dose{color:var(--text3)}
#wkComparaFichas .cf-mud{display:inline-flex;align-items:center;gap:6px;font:500 var(--fs-xs)/1 var(--ui);color:var(--text)}
#wkComparaFichas .cf-mud::before{content:"";width:5px;height:5px;border-radius:50%;background:rgb(var(--champ))}
#wkComparaFichas .cf-acoes{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:10px}
#wkComparaFichas .cf-gesto{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 12px;border:1px dashed rgba(var(--champ),.32);border-radius:11px 11px 11px 5px;background:transparent;color:var(--text);font:400 var(--fs-xs)/1 var(--ui);white-space:nowrap}
#wkComparaFichas .cf-gesto svg{width:14px;height:14px;stroke:rgb(var(--champ));fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#wkComparaFichas .cf-nada{padding:14px 12px 4px;text-align:center;font:italic 400 var(--fs-xs)/1.5 var(--ui);color:var(--text2)}
/* o pé = a barra de baixo do Montador: [+] [pílula de estado] [botão ouro] — e as abas de letra, no deitado, moram aqui */
#wkComparaFichas .cf-foot{flex:none;display:flex;align-items:center;gap:8px;height:64px;border-top:1px solid var(--line)}
#wkComparaFichas .cf-foot .rn-tabs{flex:none;width:296px}
#wkComparaFichas .cf-mais{flex:none;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--fio-solido);border-radius:12px 12px 12px 6px;background:var(--sopro);box-shadow:var(--bisel);color:var(--text)}
#wkComparaFichas .cf-mais svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round}
#wkComparaFichas .cf-status{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;height:44px;padding:0 12px;border:1px solid var(--fio-solido);border-radius:12px 12px 12px 6px;background:var(--sopro);box-shadow:var(--bisel);font:500 var(--fs-sm)/1 var(--ui);color:var(--text);white-space:nowrap;overflow:hidden}
#wkComparaFichas .cf-status svg{flex:none;width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#wkComparaFichas .cf-status .sep{color:var(--text3);font-weight:400}
#wkComparaFichas .cf-status .mex{display:inline-flex;align-items:center;gap:6px}
#wkComparaFichas .cf-status .mex::before{content:"";width:5px;height:5px;border-radius:50%;background:rgb(var(--champ))}
#wkComparaFichas .cf-cta{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:168px;height:44px;padding:0 20px;border:1px solid transparent;border-radius:14px 14px 14px 6px;background:var(--ouro);color:#0a0806;font:600 var(--fs-md)/1 var(--ui);box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
#wkComparaFichas .cf-cta svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
#wkComparaFichas .cf-cta[disabled]{opacity:.45;pointer-events:none}
#wkComparaFichas .cf-cta--ghost{background:var(--sopro);border-color:var(--fio-solido);color:var(--text);box-shadow:var(--bisel);font-weight:500}
#wkComparaFichas .cf-cta--nuvem{box-shadow:0 0 0 1.5px var(--verde),inset 0 1px 0 rgba(255,255,255,.22)}
#wkComparaFichas .cf-cta .shim{background:linear-gradient(90deg,#0a0806 30%,rgba(10,8,6,.35) 50%,#0a0806 70%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:cfShimmer 1.9s linear infinite}
@property --cfA{syntax:'<angle>';inherits:false;initial-value:0deg}
#wkComparaFichas .cf-sobe{position:relative;display:inline-flex;border-radius:14px 14px 14px 6px;padding:1.5px;background:conic-gradient(from var(--cfA),transparent 0 70%,var(--azul) 88%,transparent 100%);animation:cfGira 1.6s linear infinite}
@keyframes cfGira{to{--cfA:360deg}}
@keyframes cfShimmer{from{background-position:120% 0}to{background-position:-80% 0}}
/* Mac ≥1024: abas acima da lista (ordem do Montador), pé só com a barra */
#wkComparaFichas .cf--mac{padding:0 40px 18px}
#wkComparaFichas .cf--mac .cf-top{height:76px;grid-template-columns:1fr auto}
#wkComparaFichas .cf--mac .cf-par{gap:8px 12px}
#wkComparaFichas .cf--mac .cf-par+.cf-par{margin-top:8px}
#wkComparaFichas .cf--mac .rn-tabs{width:420px}
#wkComparaFichas .cf--mac .cf-foot{height:72px;gap:12px}
/* prancheta: os overlays v2 ficam presos na moldura, não na janela */

@media (prefers-reduced-motion:reduce){#wkComparaFichas .cf-sobe,#wkComparaFichas .cf-cta .shim{animation:none}}
/* giro: celular em pé → deitado por CSS; o topo seguro vira margem esquerda, o inset do pé vira a direita */
#wkComparaFichas .cf--deitado{--safe-entalhe:env(safe-area-inset-top,0px);--safe-pe:max(env(safe-area-inset-bottom,0px),16px)}
@media (max-width:1023px) and (orientation:portrait){
  #wkComparaFichas>.cf{position:absolute;top:0;left:0;width:100vh;width:100dvh;height:100vw;transform:rotate(90deg) translateY(-100%);transform-origin:top left}
  body.cf-aberto .rnj-overlay{inset:auto;top:0;left:0;width:100vh;width:100dvh;height:100vw;transform:rotate(90deg) translateY(-100%);transform-origin:top left}
}
@media (max-width:1023px) and (orientation:landscape){
  #wkComparaFichas .cf--deitado{--safe-entalhe:max(env(safe-area-inset-left,0px) - 32px,0px);--safe-pe:max(env(safe-area-inset-right,0px),16px)}
}
#wkComparaFichas .rn2-ex-card[data-cf="abrir"]{cursor:pointer}
#wkComparaFichas .rn-ex-head .rn-ajuda{flex:none}
.wkb-previa-comparar{position:absolute;z-index:2;left:14px;right:14px;bottom:calc(env(safe-area-inset-bottom,0px) + 66px);width:auto;min-height:44px;justify-content:center;font-size:var(--fs-sm,14.5px);background:rgba(10,8,6,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
/* a porta na Prévia: a pílula de gesto do molde (P1), fora do escopo do comparador */
.wkb-previa-comparar{display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:1px dashed rgba(236,214,170,.32);border-radius:11px 11px 11px 5px;color:var(--text,#F0EBE0);font:400 var(--fs-sm,14.5px)/1 'Jost','Avenir Next',system-ui,sans-serif;white-space:nowrap;overflow:hidden;cursor:pointer}
.wkb-previa-comparar svg{flex:none;width:14px;height:14px;stroke:rgb(236,214,170);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wkb-previa-comparar span{overflow:hidden;text-overflow:ellipsis}
#wkComparaFichas .rn-tabs{margin:0;max-width:none;order:0;grid-column:auto;grid-row:auto}

/* ── C-1545 (22/10, Raphael): QUADRO ÚNICO DE VOLUME — total + grupos, um «?» só.
   [CÓPIA] fonte: docs/rodada_quadro_volume_2026-10-22/DO_JEAN/quadro_volume.html (Jean).
   Tokens do molde → do app: --text → --ink, --text2 → --ink2, --text3 → --ink3. */
.wkb-vi-head{display:grid;grid-template-columns:1fr auto;column-gap:10px;align-items:start}
.wkb-vi-head .eb{font:500 var(--fs-micro)/1 Jost,'Avenir Next',system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.wkb-vi-total{grid-column:1;margin-top:6px;display:flex;align-items:baseline;gap:8px;background:none;border:0;padding:0;color:inherit;cursor:pointer;text-align:left}
.wkb-vi-total b{font:500 var(--fs-xl,22px)/1 'Playfair Display',Georgia,serif;color:var(--ink);font-variant-numeric:tabular-nums}
.wkb-vi-total span{font-size:var(--fs-xs);color:var(--ink3)}
.wkb-vi-total svg{width:12px;height:12px;stroke:var(--ink3);fill:none;stroke-width:2}
.wkb-vi-leitura{grid-column:1/-1;margin:6px 0 0;font-size:var(--fs-xs);color:var(--ink2);text-wrap:pretty}
.wkb-vi-leitura b{color:var(--ink);font-weight:500}
.wkb-vi-row{padding:8px 0 9px;border-top:1px solid var(--line2)}
.wkb-vi-head + .wkb-vi-row{border-top:1px solid var(--line2);margin-top:8px}
.wkb-vi-grupo{flex:1;min-width:0;font-size:var(--fs-sm);color:var(--ink2)}
.wkb-vi-head + .wkb-vi-empty{display:block;margin:10px 0 2px;padding:12px 14px;border:1px dashed rgba(238,231,218,.16);background:rgba(0,0,0,.25);border-radius:10px 10px 10px 5px;font-size:var(--fs-xs);color:var(--ink3);text-wrap:wrap}
/* Exceções declaradas (PROCESSO.md): família por nome (o app não tem --ui/--serif); a borda em .wkb-vi-head + .wkb-vi-row
   desfaz o border-top:0 antigo; #wkBuilderOverlay .wkb-vi-grupo/-row (legibilidade, fonte nunca encolhe) seguem valendo. */

/* C-1569: trilho sem medidor visível (só «Restrições» escondida) não mostra caixa vazia */
.rn-metrics-rail:not(:has(.rn-metric:not([hidden]))){display:none}

/* C-1576 (Jean 24/10, «faça do jeito dele» — Raphael) · cartão em dois tempos
   tempo 1: buscando o nome → só o campo + a lista do acervo; o resto espera (volta sozinho quando o input sai) */
.rn2-ex-card.is-buscando:has([data-tap="nome"] input) .rn-sel,
.rn2-ex-card.is-buscando:has([data-tap="nome"] input) .rn-per,
.rn2-ex-card.is-buscando:has([data-tap="nome"] input) .rn-ex-drop-pad > :not(.wkb-exercise-results){display:none!important}
