/* ============================================================
   COLETIVA_ · Formação — área de aulas "modo palco"
   Derivado do handoff Aulas v3 (_dev/design/aulas-v3/) com UMA
   inversão deliberada: o player é o palco (coluna única, largura
   toda — é nele que passam os slides), e o PROGRAMA vira gaveta
   off-canvas. Padrão theater-mode: a sidebar fixa do protótipo
   roubava ~340px exatamente da superfície que o aluno assiste.
   Paleta estritamente paper/ink/accent (README do handoff).
   ============================================================ */

:root{
  --paper:#f5f2e8; --paper-2:#ede9d8; --paper-3:#fffdf6; --paper-4:#faf6e6;
  --ink:#0f0e0a; --ink-2:#3a3631; --ink-3:#6a635a; --ink-4:#928a7d;
  --line:rgba(15,14,10,.85); --line-2:rgba(15,14,10,.22); --line-3:rgba(15,14,10,.08);
  --accent:#e8d84a; --accent-deep:#c9b62e;
  --accent-soft:rgba(232,216,74,.30); --accent-glow:rgba(232,216,74,.50);
  --shadow-hit:4px 4px 0 rgba(15,14,10,.85);
  --shadow-hit-hover:6px 6px 0 rgba(15,14,10,.85);
  --shadow-soft:2px 2px 0 rgba(15,14,10,.14);
  --shadow-glass:0 24px 60px -20px rgba(15,14,10,.16),0 6px 18px -6px rgba(15,14,10,.06);
  --ease-out:cubic-bezier(.16,1,.3,1);
}
.fp *{box-sizing:border-box}
.fp{background:var(--paper);color:var(--ink);font-family:Inter,-apple-system,sans-serif}
.fp .mono{font-family:"Space Mono",ui-monospace,monospace}
.fp a{color:inherit}
.fp button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.fp :focus-visible{outline:2px solid var(--ink);outline-offset:2px}

/* ── tags (assinatura mono) ─────────────────────────────────── */
/* ⚠ `color` É OBRIGATÓRIO AQUI, e faltava. A classe pinta o PRÓPRIO fundo
   (--paper-3, quase branco) mas não declarava cor de texto — então herdava a do
   contexto. No placeholder do player (.pp) o contexto é escuro e declara
   `color:var(--paper)`: o resultado era texto #f5f2e8 sobre fundo #fffdf6,
   contraste 1,05:1. O botão "abrir a apresentação" existia e não se via — só a
   borda. Achado por ela em 13/08, na tela da aula 0, na semana da estreia.
   As variantes .dark e .acc abaixo já declaravam a sua cor; só a base esquecia.
   REGRA: quem pinta o próprio fundo declara a própria cor. Elemento que herda
   cor do contexto só é legível por sorte — e a sorte acaba quando alguém o põe
   num fundo escuro. */
.fp .tagx{display:inline-flex;align-items:center;gap:6px;font-family:"Space Mono",monospace;
  font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid var(--line);background:var(--paper-3);color:var(--ink);
  padding:4px 9px;white-space:nowrap}
.fp .tagx.dark{background:var(--ink);color:var(--accent)}
.fp .tagx.acc{background:var(--accent);color:#0f0e0a}

/* ── resumo da aula (painel expansível na ficha) ──────────────
   Abre embaixo dos botões, no palco, sem tirar o aluno do vídeo. Medida de
   leitura curta de propósito: é texto para reler antes da prova, não wiki. */
.fp .ficha-resumo{margin-top:12px;border:1px solid var(--line);background:var(--paper-2);
  padding:16px 18px}
.fp .ficha-resumo .resumo-corpo{max-width:68ch}
.fp .ficha-resumo h4{font-family:"Space Mono",monospace;font-size:10px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
  margin:18px 0 7px;padding-bottom:5px;border-bottom:1px solid var(--line)}
.fp .ficha-resumo h4:first-child{margin-top:0}
.fp .ficha-resumo p{font-size:14.5px;line-height:1.65;color:var(--ink);margin:0 0 10px}
.fp .ficha-resumo ul{margin:0 0 12px;padding-left:18px}
.fp .ficha-resumo li{font-size:14.5px;line-height:1.6;color:var(--ink);margin-bottom:5px}
.fp .ficha-resumo strong{font-weight:600}
.fp [data-ac="f-res-btn"][aria-expanded="true"]{background:var(--ink);color:var(--accent)}

/* ── faixa do curso (course head comprimido) ────────────────── */
.fp .curso-head{border-bottom:1px solid var(--line);padding:18px 22px;position:relative;overflow:hidden}
.fp .curso-head::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--accent)}
.fp .ch-row{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.fp .ch-title{font-family:Inter,sans-serif;font-weight:800;font-size:clamp(19px,2.4vw,26px);
  letter-spacing:-.02em;margin:0}
.fp .ch-title .u{color:var(--accent-deep)}
.fp .ch-stats{display:flex;gap:16px;margin-left:auto;align-items:center}
.fp .ch-stat{text-align:right}
.fp .ch-stat b{font-family:Inter,sans-serif;font-weight:800;font-size:19px;display:block;line-height:1}
.fp .ch-stat span{font-family:"Space Mono",monospace;font-size:8.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.fp .ch-prog{max-width:1240px;margin:12px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fp .seg{height:10px;border:1px solid var(--line-2);background:
  repeating-linear-gradient(45deg,transparent 0 6px,rgba(15,14,10,.05) 6px 12px)}
.fp .seg i{display:block;height:100%;background:var(--accent);transition:width .5s var(--ease-out)}
.fp .seg-lbl{display:flex;justify-content:space-between;font-family:"Space Mono",monospace;
  font-size:8.5px;font-weight:700;letter-spacing:.1em;color:var(--ink-3);margin-top:3px;text-transform:uppercase}

/* ── strip de orientação (nunca se perder com a gaveta fechada) */
.fp .orient{position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line-2);
  background:rgba(251,247,232,.85);backdrop-filter:blur(14px) saturate(1.4)}
.fp .orient-in{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:8px 22px}
.fp .orient .crumb{font-family:"Space Mono",monospace;font-size:10px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase}
.fp .orient .crumb.blk{background:var(--accent-soft);padding:3px 8px}
.fp .orient .sep{color:var(--ink-4)}
.fp .orient .spacer{flex:1}

/* botões mono compartilhados (player-bar + orient) */
.fp .btn-mini{position:relative;overflow:hidden;padding:8px 13px;border:1px solid var(--line);
  background:var(--paper-3);font-family:"Space Mono",monospace;font-size:10.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;
  transition:transform .15s var(--ease-out),box-shadow .15s,
    background .2s var(--ease-out),color .2s var(--ease-out)}
/* troca de rótulo (Concluir ⇄ Concluída): o texto é quem conta o estado,
   então a chegada dele ganha um respiro — sem isso a inversão preto/branco
   era um flip instantâneo ilegível */
.fp .btn-mini .troca{display:inline-block;animation:fp-troca .28s var(--ease-out)}
@keyframes fp-troca{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.fp .btn-mini::before{content:"";position:absolute;inset:0;background:var(--accent);
  transform:translateY(100%);transition:transform .2s var(--ease-out);z-index:-0}
.fp .btn-mini>*{position:relative;z-index:1}
.fp .btn-mini:hover{transform:translate(-1px,-1px);box-shadow:var(--shadow-soft)}
.fp .btn-mini:hover::before{transform:translateY(0)}
.fp .btn-mini.primario{background:var(--ink);color:var(--accent)}
.fp .btn-mini.primario:hover{color:var(--ink)}
.fp .btn-mini[disabled]{opacity:.4;pointer-events:none}

/* ── palco ──────────────────────────────────────────────────── */
.fp .palco{max-width:1240px;margin:0 auto;padding:22px 22px 70px}
.fp .player-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.fp .player-head .ph-id{margin-left:auto;font-family:"Space Mono",monospace;font-size:9.5px;
  letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase}

.fp .player{position:relative;aspect-ratio:16/9;border:1px solid var(--line);background:var(--ink);
  box-shadow:var(--shadow-hit),0 30px 60px -20px rgba(15,14,10,.32)}
.fp .player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* placeholder cinematográfico (bloqueio com play para iniciar aula) */
.fp .pp{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:space-between;
  padding:18px 20px;color:var(--paper);cursor:pointer;background:
  radial-gradient(60% 50% at 85% 10%,rgba(232,216,74,.14),transparent 60%),
  linear-gradient(135deg,#1a1811,#0f0e0a)}
.fp .pp.hidden{display:none}
.fp .pp-top{display:flex;justify-content:space-between;align-items:center}
.fp .pp-mid{text-align:center}
.fp .pp-play{width:82px;height:82px;margin:0 auto 14px;background:var(--accent);color:var(--ink);
  display:flex;align-items:center;justify-content:center;border:1px solid var(--line);
  box-shadow:0 0 0 0 var(--accent-glow);animation:fp-halo 2.4s ease-out infinite;
  transition:transform .2s var(--ease-out)}
.fp .pp-play:hover{transform:rotate(3deg) scale(1.04)}
@keyframes fp-halo{0%{box-shadow:0 0 0 0 var(--accent-glow)}70%{box-shadow:0 0 0 22px rgba(232,216,74,0)}100%{box-shadow:0 0 0 0 rgba(232,216,74,0)}}
.fp .pp-title{font-family:Inter,sans-serif;font-weight:700;font-size:22px;color:var(--paper-3)}
.fp .pp-sub{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);opacity:.85;margin-top:6px}
.fp .pp-bot{display:flex;align-items:center;gap:12px}
.fp .pp-bar{flex:1;height:3px;background:rgba(255,253,246,.18)}
.fp .pp-bar i{display:block;height:100%;background:var(--accent);width:0}
.fp .pp-time{font-family:"Space Mono",monospace;font-size:10px;color:var(--paper-2)}

.fp .player-bar{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.fp .player-bar .direita{margin-left:auto;display:flex;gap:8px}

/* ── ficha da aula (glass) ──────────────────────────────────── */
.fp .ficha{position:relative;margin-top:22px;border:1px solid var(--line);padding:24px 26px;
  background:rgba(255,253,246,.72);backdrop-filter:blur(10px);box-shadow:var(--shadow-glass);
  display:grid;grid-template-columns:1fr 280px;gap:26px}
.fp .ficha::before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent)}
.fp .ficha-head{display:flex;gap:16px;align-items:flex-start}
.fp .ficha-num{font-family:Inter,sans-serif;font-weight:800;font-size:44px;line-height:1;
  letter-spacing:-.03em;background:var(--accent);border:1px solid var(--line);
  box-shadow:2px 2px 0 var(--line),0 8px 24px -6px var(--accent-glow);padding:12px 16px 8px}
.fp .ficha-title{font-family:Inter,sans-serif;font-weight:700;font-size:26px;
  letter-spacing:-.015em;margin:0;text-wrap:pretty}
.fp .ficha-meta{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.fp .ficha-meta .pill{font-family:"Space Mono",monospace;font-size:9.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;background:var(--paper-2);
  border:1px solid var(--line-2);padding:3px 8px}
.fp .ficha-desc{font-size:14.5px;line-height:1.7;color:var(--ink-2);margin-top:14px}
.fp .ficha-desc em{background:var(--accent-soft);font-style:normal;font-weight:600;padding:0 3px}
.fp .ficha-side{border-left:1px solid var(--line-2);padding-left:22px}
.fp .ficha-side .lbl{font-family:"Space Mono",monospace;font-size:9px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);display:flex;
  align-items:center;gap:7px;margin:0 0 7px}
.fp .ficha-side .lbl::before{content:"";width:12px;height:2px;background:var(--ink)}
.fp .ficha-side .lbl.trac::before{background:repeating-linear-gradient(90deg,var(--ink) 0 3px,transparent 3px 5px)}
.fp .ficha-side .val{font-family:"Space Mono",monospace;font-size:11px;line-height:1.6;
  background:var(--paper-2);border:1px solid var(--line-3);padding:9px 11px;margin-bottom:16px}

/* ── conteúdo conexo (abas) ─────────────────────────────────── */
.fp .conexo{margin-top:22px;border:1px solid var(--line);background:rgba(255,253,246,.72);
  backdrop-filter:blur(10px);box-shadow:var(--shadow-glass)}
.fp .conexo-head{display:flex;align-items:center;gap:10px;padding:14px 18px;
  border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.fp .conexo-title{font-family:Inter,sans-serif;font-weight:800;font-size:13px;
  letter-spacing:.08em;text-transform:uppercase;display:flex;align-items:center;gap:8px;margin-right:auto}
.fp .conexo-title::before{content:"";width:16px;height:2px;background:var(--accent)}
.fp .ctab{position:relative;overflow:hidden;padding:8px 14px;border:1px solid var(--line);
  background:var(--paper-3);font-family:"Space Mono",monospace;font-size:10.5px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;transition:transform .15s,box-shadow .15s}
.fp .ctab::before{content:"";position:absolute;inset:0;background:var(--accent-soft);
  transform:translateY(100%);transition:transform .2s var(--ease-out)}
.fp .ctab>*{position:relative}
.fp .ctab:hover::before{transform:translateY(0)}
.fp .ctab.active{background:var(--ink);color:var(--accent);transform:translate(-1px,-1px);box-shadow:var(--shadow-soft)}
.fp .ctab-count{font-size:9px;background:var(--paper);color:var(--ink-3);
  border:1px solid var(--line-3);padding:1px 5px;margin-left:6px}
.fp .ctab.active .ctab-count{background:transparent;color:var(--accent);border-color:rgba(232,216,74,.4)}
/* Selo de camada na aba Doutrina. Accent SINALIZA — o chip tem ~26px, longe de
   preencher área; é o mesmo papel que a marca cumpre no resto da casa. */
.fp .ctab-pro{font-size:8px;background:var(--accent);color:var(--ink);
  border:1px solid var(--line);padding:1px 4px;margin-left:6px;letter-spacing:.1em}
.fp .ctab.active .ctab-pro{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.fp .cbody{padding:22px}
.fp .cpanel[hidden]{display:none}
.fp .panel-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;
  margin-bottom:16px;flex-wrap:wrap}
.fp .panel-intro-title{font-family:Inter,sans-serif;font-weight:700;font-size:14px}
.fp .panel-intro-desc{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);margin-top:3px}
.fp .panel-intro-source{font-family:"Space Mono",monospace;font-size:9px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;background:var(--paper-2);
  border:1px solid var(--line-2);padding:4px 9px}
.fp .empty{font-size:13px;color:var(--ink-3);padding:10px 0}

/* cards das abas */
.fp .wikis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.fp .wiki-card{position:relative;display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);
  background:var(--paper-3);padding:14px 16px;text-decoration:none;
  transition:transform .18s var(--ease-out),box-shadow .18s}
.fp .wiki-card::before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease-out)}
.fp .wiki-card:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow-hit-hover)}
.fp .wiki-card:hover::before{transform:scaleX(1)}
.fp .wiki-num{font-family:"Space Mono",monospace;font-size:11px;font-weight:700;background:var(--ink);
  color:var(--accent);padding:4px 8px;flex:none}
.fp .wiki-title{font-family:Inter,sans-serif;font-weight:600;font-size:13.5px;display:block}
.fp .wiki-meta{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3);display:block;margin-top:4px}
.fp .wiki-arrow{margin-left:auto;flex:none;color:var(--ink-3)}
/* wiki com passo concluído no FLUXO_ (cfg.lidos): o número vira ✓, mesmo
   padrão do .aula-item.done da gaveta — uma linguagem de "feito" na casa */
.fp .wiki-card.lida .wiki-num::after{content:"✓"}
.fp .wiki-card.lida .wiki-num span{display:none}
.fp .wiki-card.lida .wiki-title{opacity:.75}

.fp .leis-list{display:flex;flex-direction:column;gap:8px}
.fp .lei-row{position:relative;display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;
  align-items:center;border:1px solid var(--line-2);background:var(--paper-3);padding:11px 14px;
  text-decoration:none;transition:background .15s,transform .15s}
.fp .lei-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink);
  transform:scaleY(0);transition:transform .2s var(--ease-out)}
.fp .lei-row:hover{background:var(--paper-2);transform:translateX(2px)}
.fp .lei-row:hover::before{transform:scaleY(1)}
.fp .lei-ref{font-family:"Space Mono",monospace;font-size:12px;font-weight:700;
  background:var(--paper-2);border:1px solid var(--line);padding:5px 9px;white-space:nowrap}
.fp .lei-name{font-size:13.5px;font-weight:500}
.fp .lei-disp{font-family:"Space Mono",monospace;font-size:10.5px;color:var(--ink-2);display:block;margin-top:2px}
.fp .lei-disc{font-family:"Space Mono",monospace;font-size:9px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line-3);padding:3px 7px;white-space:nowrap}
.fp .lei-cta{font-family:"Space Mono",monospace;font-size:10px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;border:1px solid var(--line);padding:5px 10px;white-space:nowrap}

.fp .juris-group{margin-bottom:20px}
.fp .juris-group-head{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line-2);
  padding-bottom:8px;margin-bottom:10px}
.fp .juris-group-tag{font-family:"Space Mono",monospace;font-size:10px;font-weight:700;
  background:var(--ink);color:var(--accent);padding:3px 8px;letter-spacing:.08em}
.fp .juris-group-name{font-family:Inter,sans-serif;font-weight:700;font-size:13.5px}
.fp .juris-group-count{margin-left:auto;font-family:"Space Mono",monospace;font-size:9.5px;color:var(--ink-3)}
.fp .juris-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.fp .tese-card{position:relative;display:block;border:1px solid var(--line);background:var(--paper-3);
  padding:14px 16px;text-decoration:none;transition:transform .18s var(--ease-out),box-shadow .18s}
.fp .tese-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink);
  transform:scaleY(0);transition:transform .2s var(--ease-out)}
.fp .tese-card:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow-hit-hover)}
.fp .tese-card:hover::before{transform:scaleY(1)}
.fp .tese-ref{font-family:"Space Mono",monospace;font-size:13px;font-weight:700}
.fp .tese-status{font-family:"Space Mono",monospace;font-size:8.5px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;background:var(--paper-4);border:1px solid rgba(146,113,41,.45);
  color:#6a5410;padding:2px 6px;margin-left:8px;vertical-align:2px}
.fp .tese-nome{font-size:12.5px;line-height:1.55;color:var(--ink-2);margin-top:6px}
.fp .tese-ctx{font-size:11.5px;color:var(--ink-3);border-left:2px solid var(--accent);
  padding-left:8px;margin-top:8px}

.fp .dout-list{display:flex;flex-direction:column;gap:12px}
.fp .dout-card{border:1px solid var(--line-2);background:var(--paper-3);padding:16px 18px;position:relative}
.fp .dout-card::before{content:"“";position:absolute;top:2px;left:10px;
  font-family:Inter,sans-serif;font-weight:800;font-size:34px;color:var(--accent)}
.fp .dout-cit{font-size:13.5px;line-height:1.7;color:var(--ink-2);padding-left:26px;font-style:italic}
.fp .dout-autor{font-family:"Space Mono",monospace;font-size:10px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;margin-top:10px;padding-left:26px}
.fp .dout-obra{font-size:11px;color:var(--ink-3);padding-left:26px;margin-top:2px}

/* ── GAVETA · programa ──────────────────────────────────────── */
.fp .gaveta-alca{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:60;
  writing-mode:vertical-rl;text-orientation:mixed;rotate:180deg;
  font-family:"Space Mono",monospace;font-size:10px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;background:var(--ink);color:var(--accent);border:1px solid var(--line);
  border-left:0;padding:16px 8px;cursor:pointer;box-shadow:var(--shadow-soft)}
.fp .gaveta-alca:hover{background:#1a1811}
.fp .gaveta-veu{position:fixed;inset:0;z-index:70;background:rgba(15,14,10,.45);
  opacity:0;pointer-events:none;transition:opacity .25s}
.fp .gaveta-veu.aberta{opacity:1;pointer-events:auto}
.fp .gaveta{position:fixed;left:0;top:0;bottom:0;z-index:80;width:min(400px,92vw);
  background:var(--paper-3);border-right:1px solid var(--line);box-shadow:var(--shadow-glass);
  transform:translateX(-102%);transition:transform .28s var(--ease-out);
  display:flex;flex-direction:column}
.fp .gaveta.aberta{transform:translateX(0)}
.fp .gaveta-head{display:flex;align-items:center;gap:10px;padding:14px 16px;
  border-bottom:1px solid var(--line)}
.fp .gaveta-head h2{font-family:Inter,sans-serif;font-weight:800;font-size:12px;
  letter-spacing:.1em;text-transform:uppercase;margin:0;display:flex;align-items:center;gap:8px}
.fp .gaveta-head h2::before{content:"";width:16px;height:2px;background:var(--accent)}
.fp .gaveta-fechar{margin-left:auto;width:28px;height:28px;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-size:14px}
/* 4 colunas: o eixo 0 (ABERTURA) entrou no programa em 13/08 — com 3 a
   quarta aba quebrava linha */
.fp .eixo-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.fp .eixo-tab{position:relative;padding:9px 3px 11px;text-align:center;border-right:1px solid var(--line-2);min-width:0}
.fp .eixo-tab:last-child{border-right:0}
.fp .eixo-tab-num{font-family:Inter,sans-serif;font-weight:800;font-size:14px;display:block}
.fp .eixo-tab-label{font-family:"Space Mono",monospace;font-size:8px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fp .eixo-tab-progress{position:absolute;left:0;bottom:0;height:3px;background:var(--accent)}
.fp .eixo-tab.active{background:var(--ink);color:var(--accent)}
.fp .eixo-tab.active .eixo-tab-label{color:var(--accent)}
.fp .gaveta-scroll{flex:1;overflow-y:auto;padding:14px}
.fp .eixo-head{border:1px solid var(--line);border-left:4px solid var(--accent);
  padding:12px 14px;margin-bottom:12px;background:
  radial-gradient(80% 100% at 100% 0,rgba(232,216,74,.10),transparent 55%)}
.fp .eixo-head-num{font-family:"Space Mono",monospace;font-size:9px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.fp .eixo-head-title{font-family:Inter,sans-serif;font-weight:700;font-size:15px;margin:4px 0}
.fp .eixo-head-desc{font-size:11.5px;line-height:1.55;color:var(--ink-3)}
.fp .aulas-list{display:flex;flex-direction:column}
.fp .aula-item{position:relative;display:flex;gap:10px;align-items:flex-start;text-align:left;
  padding:10px 8px;border-bottom:1px solid var(--line-3);transition:background .15s,padding-left .15s}
.fp .aula-item:hover{background:var(--accent-soft);padding-left:14px}
.fp .aula-item.active{background:var(--accent)}
.fp .aula-item.active::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink)}
.fp .aula-num-mini{font-family:"Space Mono",monospace;font-size:10.5px;font-weight:700;
  width:30px;height:30px;flex:none;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);background:var(--paper-3)}
.fp .aula-item.active .aula-num-mini{background:var(--ink);color:var(--accent);rotate:-3deg}
.fp .aula-item.done .aula-num-mini{background:var(--ink);color:var(--accent)}
.fp .aula-item.done .aula-num-mini::after{content:"✓"}
.fp .aula-item.done .aula-num-mini span{display:none}
.fp .aula-item-title{font-size:12.5px;font-weight:500;line-height:1.4;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fp .aula-item-meta{display:flex;gap:6px;margin-top:3px;font-family:"Space Mono",monospace;
  font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.fp .aula-item-flag{border:1px solid var(--line-2);padding:0 4px}
.fp .aula-item-flag.flag-key{background:var(--accent);border-color:var(--line);color:var(--ink)}

/* ── responsivo + reduced motion ────────────────────────────── */
@media (max-width:900px){
  .fp .ficha{grid-template-columns:1fr}
  .fp .ficha-side{border-left:0;padding-left:0;border-top:1px solid var(--line-2);padding-top:16px}
  .fp .ch-stats{width:100%;justify-content:flex-start}
}
@media (max-width:640px){
  .fp .palco{padding:14px 12px 60px}
  .fp .curso-head{padding:14px 12px}
  .fp .ficha-num{font-size:30px;padding:9px 12px 6px}
  .fp .ficha-title{font-size:20px}
  .fp .gaveta-alca{padding:12px 6px;font-size:9px}
  /* strip: crumbs numa linha, botões noutra — sem clipar texto */
  .fp .orient-in{flex-wrap:wrap;row-gap:6px;padding:8px 12px}
  .fp .btn-mini{padding:7px 10px;font-size:9.5px;letter-spacing:.06em}
  .fp .orient .crumb{font-size:9px;white-space:nowrap}
  .fp .eixo-tab{padding:8px 2px 10px}
  .fp .eixo-tab-label{font-size:7.5px;letter-spacing:.02em}
}
@media (prefers-reduced-motion:reduce){
  .fp *,.fp *::before,.fp *::after{animation:none!important;transition:none!important}
}

/* ═══ "esta aula aborda" — a síntese do conteúdo conexo (27/07) ═══
   O que existia só atrás das abas vira declaração direta na ficha. */
.fp .ficha-aborda{font-family:'Inter',sans-serif;font-size:12.5px;line-height:1.75;color:#3a3631;margin:10px 0 0;padding-top:10px;border-top:1px solid rgba(15,14,10,.12)}
.fp .ficha-aborda b{font-family:'Space Mono',monospace;font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#6b6657;margin-right:5px}
/* fórum da aula */
.fp .forum-intro{font-family:'Inter',sans-serif;font-size:12.5px;color:#6b6657;line-height:1.6;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid rgba(15,14,10,.12)}

/* ═══ MAPA DA CASA — só a ABERTURA (eixo 0) mostra; o player alterna ═══
   Nó estático no hospedeiro (aluno/formacao/index.html), sem corrida. */
.fp .mapa-casa{margin-top:26px;border:1px solid var(--line);background:var(--paper-3);padding:18px 16px 16px}
.fp .mc-kick{font-family:"Space Mono",monospace;font-size:9px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 4px;
  display:flex;align-items:center;gap:8px}
.fp .mc-kick::before{content:"";width:16px;height:2px;background:var(--accent)}
.fp .mc-sub{font-size:12.5px;color:var(--ink-2);margin:0 0 14px}
.fp .mc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.fp .mc-item{display:block;border:1px solid var(--line);background:var(--paper);
  padding:12px 12px 11px;text-decoration:none;color:var(--ink);
  border-left:3px solid var(--accent);transition:background .15s}
.fp .mc-item:hover{background:var(--paper-2)}
.fp .mc-item b{display:block;font-family:Inter,sans-serif;font-weight:800;
  font-size:13px;letter-spacing:.04em;margin-bottom:3px}
.fp .mc-item span{display:block;font-size:11.5px;line-height:1.45;color:var(--ink-3)}
@media (max-width:900px){.fp .mc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.fp .mc-grid{grid-template-columns:1fr}}
