/* ============ Platform deck — app-shell & screen-recreation components ============ */
/* Layered on top of styles.css. Reuses --brand and slate tokens. */

:root{
  /* DISC methodology colors — NOT brand-linked (like risk colors) */
  --disc-d:#e8473a;  /* Dominância — vermelho */
  --disc-i:#f5a623;  /* Influência — amarelo/âmbar */
  --disc-s:#2faa57;  /* Estabilidade — verde */
  --disc-c:#2f6fde;  /* Conformidade — azul */
  --heat-hi:#1f9d4d; --heat-mid:#f3c40f; --heat-lo:#e8473a;
}

/* ---------- app shell (recreated product UI inside a browser frame) ---------- */
.bwin{display:flex; flex-direction:column; min-width:0;}
.app{display:flex; flex-direction:column; background:#eef1f4; flex:1; min-height:0;}
.app-top{
  display:flex; align-items:center; justify-content:space-between;
  height:66px; padding:0 26px; background:#fff; border-bottom:1px solid var(--slate-200); flex:none;
}
.app-top .wl-logo-img{max-height:34px; max-width:180px;}
.app-top .wl-logo-ph{gap:10px;}
.app-top .wl-logo-ph .mk{width:32px; height:32px;}
.app-top .wl-logo-ph .nm{font-size:20px;}
.app-top .wl-logo-ph .nm small{font-size:9px; letter-spacing:.16em;}
.app-userpill{display:flex; align-items:center; gap:11px;}
.app-userpill .av{width:36px; height:36px; border-radius:50%; background:var(--brand); color:#fff;
  display:grid; place-items:center; font-family:var(--font-display); font-weight:700; font-size:15px; border:2px solid var(--brand-line);}
.app-userpill .un{font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--ink);}
.app-userpill svg{width:16px; height:16px; stroke:var(--slate-400);}

.app-main{display:flex; flex:1; min-height:0;}
.app-nav{
  width:226px; flex:none; background:var(--brand-deep); color:#fff;
  padding:18px 0; display:flex; flex-direction:column; gap:2px; overflow:hidden;
}
.app-nav .nav-i{
  display:flex; align-items:center; gap:13px; padding:11px 22px;
  font-size:15px; font-weight:500; color:rgba(255,255,255,.72); white-space:nowrap;
}
.app-nav .nav-i svg{width:18px; height:18px; flex:none; stroke-width:2.1;}
.app-nav .nav-i.active{background:rgba(255,255,255,.13); color:#fff; font-weight:600;
  box-shadow:inset 3px 0 0 #fff;}
.app-body{flex:1; padding:26px 30px; overflow:hidden; min-width:0;}
.app-h{font-family:var(--font-display); font-weight:700; font-size:25px; color:var(--ink); margin:0 0 18px;}
.app-h .sub{font-family:var(--font-sans); font-weight:400; font-size:16px; color:var(--slate-500);}

/* small app buttons */
.ab{display:inline-flex; align-items:center; gap:7px; height:38px; padding:0 18px; border-radius:9px;
  font-family:var(--font-sans); font-size:14px; font-weight:600; border:1px solid transparent;}
.ab-primary{background:var(--brand); color:#fff;}
.ab-ghost{background:#fff; color:var(--slate-600); border-color:var(--slate-200);}
.ab-soft{background:var(--brand-soft); color:var(--brand);}

/* ---------- DISC dimension sliders (cargo mapping screen) ---------- */
.disc-grp{background:#fff; border:1px solid var(--slate-200); border-radius:12px; padding:20px 24px;
  display:grid; gap:18px; box-shadow:var(--shadow-card);}
.disc-row{display:grid; grid-template-columns:236px 1fr 52px; align-items:center; gap:16px;}
.disc-tag{display:flex; align-items:center; gap:10px; height:40px; padding:0 16px; border-radius:8px;
  color:#fff; font-weight:700; font-size:15px;}
.disc-tag .dot{width:22px; height:22px; border-radius:6px; background:rgba(255,255,255,.28); flex:none;
  display:grid; place-items:center;}
.disc-tag .dot svg{width:13px; height:13px; stroke:#fff;}
.disc-d{background:var(--disc-d);} .disc-i{background:var(--disc-i);}
.disc-s{background:var(--disc-s);} .disc-c{background:var(--disc-c);}
.disc-track{position:relative; height:14px; border-radius:7px; background:var(--slate-200);}
.disc-fill{position:absolute; left:0; top:0; bottom:0; border-radius:7px;}
.disc-fill.d{background:var(--disc-d);} .disc-fill.i{background:var(--disc-i);}
.disc-fill.s{background:var(--disc-s);} .disc-fill.c{background:var(--disc-c);}
.disc-mark{position:absolute; top:-6px; bottom:-6px; width:2px; background:var(--slate-500);}
.disc-mark::after{content:attr(data-v); position:absolute; top:-22px; left:50%; transform:translateX(-50%);
  font-family:var(--font-mono); font-size:12px; color:var(--slate-500); white-space:nowrap;}
.disc-knob{position:absolute; top:50%; transform:translate(-50%,-50%);
  background:#475569; color:#fff; font-family:var(--font-mono); font-size:12px; font-weight:700;
  padding:3px 7px; border-radius:6px;}
.disc-val{font-family:var(--font-mono); font-size:14px; color:var(--slate-500); text-align:right; font-variant-numeric:tabular-nums;}

/* ---------- heatmap table (ranking) ---------- */
.heat{width:100%; border-collapse:separate; border-spacing:0; background:#fff; border-radius:12px; overflow:hidden;
  border:1px solid var(--slate-200); box-shadow:var(--shadow-card); font-variant-numeric:tabular-nums;}
.heat th{font-family:var(--font-display); font-weight:600; font-size:15px; color:var(--slate-600);
  padding:16px 10px; text-align:center; border-bottom:1px solid var(--slate-200); background:var(--slate-50);}
.heat th.name{text-align:left; padding-left:22px;}
.heat td{padding:0; text-align:center; border-bottom:1px solid #fff; font-size:15px; font-weight:700; color:#fff; height:62px;}
.heat td.name{color:var(--brand); font-weight:600; text-align:left; padding-left:22px; background:#fff;
  font-family:var(--font-sans); font-size:16px;}
.heat td.prof{color:var(--slate-600); font-weight:500; background:#fff; font-size:14px;}
.heat .av-sm{width:30px; height:30px; border-radius:50%; background:var(--brand-soft); color:var(--brand);
  display:inline-grid; place-items:center; font-weight:700; font-size:12px; margin-right:10px; vertical-align:middle;}
.hi{background:var(--heat-hi);} .mid{background:var(--heat-mid); color:#5a4a00;} .lo{background:var(--heat-lo);}

/* ---------- dashboard (painel) ---------- */
.kpi{display:flex; align-items:center; justify-content:space-between; gap:14px;
  background:var(--brand-deep); color:#fff; border-radius:11px; padding:18px 22px;}
.kpi .lbl{font-size:16px; font-weight:600; display:flex; align-items:center; gap:11px;}
.kpi .lbl svg{width:20px; height:20px; opacity:.85;}
.kpi .num{font-family:var(--font-display); font-weight:700; font-size:30px;}
.dcard{background:#fff; border:1px solid var(--slate-200); border-radius:12px; padding:20px 22px; box-shadow:var(--shadow-card);}
.dcard .dt{font-size:14px; color:var(--slate-500); line-height:1.3; max-width:24ch;}
.dcard .dn{font-family:var(--font-display); font-weight:700; font-size:34px; color:var(--ink); margin:4px 0 10px;}
.bar{height:12px; border-radius:6px; background:var(--slate-200); overflow:hidden;}
.bar > i{display:block; height:100%; border-radius:6px; background:var(--heat-hi);}
.bar.warn > i{background:var(--heat-mid);}
.dept{background:#fff; border:1px solid var(--slate-200); border-radius:12px; overflow:hidden; box-shadow:var(--shadow-card);}
.dept-h{background:var(--brand-deep); color:#fff; padding:16px 22px; display:flex; align-items:center; justify-content:space-between;}
.dept-h .nm{font-family:var(--font-display); font-weight:700; font-size:20px;}
.dept-h .meta{font-size:14px; color:rgba(255,255,255,.78); display:flex; gap:20px;}
.dept-b{padding:22px; display:grid; grid-template-columns:1fr 1fr; gap:18px 26px; align-items:center;}
.legrow{display:flex; align-items:center; gap:10px; font-size:14px; color:var(--slate-600); margin-bottom:7px;}
.legrow .sq{width:20px; height:20px; border-radius:5px; color:#fff; display:grid; place-items:center; font-size:12px; font-weight:700;}

/* ---------- assessment cards ---------- */
.assess{background:#fff; border:1px solid var(--slate-200); border-radius:14px; padding:26px 28px;
  display:flex; flex-direction:column; gap:14px; box-shadow:var(--shadow-card);}
.assess .ahd{display:flex; align-items:center; gap:14px;}
.assess h3{font-family:var(--font-display); font-weight:600; font-size:23px; color:var(--ink); margin:0; line-height:1.18;}
.assess p{font-size:19px; color:var(--slate-600); line-height:1.36; margin:0;}

/* ---------- CRM client cards ---------- */
.clientcard{background:#fff; border:1px solid var(--slate-200); border-radius:12px; overflow:hidden; box-shadow:var(--shadow-card); text-align:center;}
.clientcard .cc-top{height:90px; background:var(--brand); position:relative;}
.clientcard .cc-av{position:absolute; left:50%; bottom:-44px; transform:translateX(-50%);
  width:92px; height:92px; border-radius:50%; background:var(--brand-soft); color:var(--brand);
  display:grid; place-items:center; font-family:var(--font-display); font-weight:700; font-size:34px; border:5px solid #fff;}
.clientcard .cc-body{padding:58px 20px 22px;}
.clientcard .cc-name{font-family:var(--font-display); font-weight:700; font-size:21px; color:var(--ink);}
.clientcard .cc-meta{font-size:15px; color:var(--slate-500); margin-top:6px; line-height:1.5;}

/* ---------- candidate ranking table ---------- */
.cand{width:100%; border-collapse:separate; border-spacing:0; background:#fff; border-radius:12px; overflow:hidden;
  border:1px solid var(--slate-200); box-shadow:var(--shadow-card);}
.cand th{font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.05em; font-size:13px;
  color:var(--slate-500); font-weight:700; padding:14px 18px; text-align:left; background:var(--slate-50); border-bottom:1px solid var(--slate-200);}
.cand td{padding:14px 18px; font-size:16px; color:var(--slate-700); border-bottom:1px solid var(--slate-100);}
.cand tr:last-child td{border-bottom:none;}
.cand .rk{font-family:var(--font-display); font-weight:700; color:var(--brand); width:42px;}
.cand .em{color:var(--slate-500); font-size:15px;}

/* ---------- radar (SVG) wrapper + donut ---------- */
.radar-card{background:#fff; border:1px solid var(--slate-200); border-radius:14px; padding:26px; box-shadow:var(--shadow-card);}
.radar-card h3{font-family:var(--font-display); font-weight:700; font-size:22px; color:var(--brand); margin:0 0 8px; text-align:center;}
.donut{width:200px; height:200px; border-radius:50%; flex:none;}
.dlg{display:grid; gap:10px;}
.dlg .it{display:flex; align-items:center; gap:11px; font-size:17px; color:var(--slate-700);}
.dlg .it .sw{width:16px; height:16px; border-radius:4px; flex:none;}
.dlg .it b{font-family:var(--font-mono); margin-left:auto; color:var(--ink);}

/* strengths list */
.strength{display:flex; align-items:flex-start; gap:14px; background:#fff; border:1px solid var(--slate-200);
  border-radius:12px; padding:18px 22px; box-shadow:var(--shadow-card);}
.strength .chk{flex:none; width:34px; height:34px; border-radius:50%; background:var(--brand); color:#fff; display:grid; place-items:center; margin-top:2px;}
.strength .chk svg{width:20px; height:20px; stroke-width:3;}
.strength .st-t{font-family:var(--font-display); font-weight:700; font-size:20px; color:var(--ink);}
.strength .st-t .pts{font-family:var(--font-mono); color:var(--brand); font-size:16px; margin-left:8px;}
.strength p{font-size:17px; color:var(--slate-600); line-height:1.36; margin:6px 0 0;}

/* ---------- licensing flow diagram ---------- */
.flow{display:grid; gap:20px;}
.flow-node{background:#fff; border:1px solid var(--slate-200); border-radius:14px; padding:22px 26px; box-shadow:var(--shadow-card);}
.flow-node.brand{background:var(--brand-deep); color:#fff; border-color:transparent;}
.flow-node .role{font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.08em; font-size:14px; color:var(--brand);}
.flow-node.brand .role{color:rgba(255,255,255,.7);}
.flow-node h3{font-family:var(--font-display); font-weight:700; font-size:24px; margin:6px 0 0;}
.flow-node p{font-size:17px; color:var(--slate-600); line-height:1.38; margin:8px 0 0;}
.flow-node.brand p{color:rgba(255,255,255,.82);}
.flow-arrow{display:grid; place-items:center; color:var(--brand);}
.flow-arrow svg{width:34px; height:34px;}
.rev-badge{display:inline-flex; align-items:center; gap:12px; background:var(--success-bg); color:var(--success-fg);
  border-radius:12px; padding:16px 24px; font-family:var(--font-display); font-weight:700; font-size:24px;}
.rev-badge svg{width:28px; height:28px;}

/* pill list (revenue streams) */
.pill-stream{display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--slate-200);
  border-radius:11px; padding:16px 22px; box-shadow:var(--shadow-card);}
.pill-stream .ic{width:48px; height:48px;}
.pill-stream .ps-t{font-family:var(--font-display); font-weight:600; font-size:20px; color:var(--ink);}
.pill-stream .ps-s{font-size:15px; color:var(--slate-500);}

/* multilingual flags row */
.lang{display:inline-flex; align-items:center; gap:8px; background:var(--slate-50); border:1px solid var(--slate-200);
  border-radius:999px; padding:8px 16px; font-size:17px; font-weight:600; color:var(--slate-700);}

/* generic "screen caption" under browser frame */
.screencap{font-family:var(--font-mono); font-size:16px; color:var(--slate-400); text-transform:uppercase; letter-spacing:.1em; margin-top:18px; text-align:center;}

/* ---------- skill-map comparison (cargo × colaborador, slide 10) ---------- */
.cmp{display:grid; grid-template-columns:180px 1fr; align-items:center; gap:18px;}
.cmp-l{font-size:18px; font-weight:600; color:var(--slate-700);}
.cmp-bars{position:relative; height:34px;}
.cmp-target{position:absolute; top:3px; height:12px; border-radius:6px; background:var(--brand-line);}
.cmp-actual{position:absolute; bottom:3px; height:12px; border-radius:6px; background:var(--brand);}

/* ---------- PDIC progress rows (slide 12) ---------- */
.pdic{display:grid; grid-template-columns:230px 1fr 56px; align-items:center; gap:16px;}
.pdic-l{font-size:18px; font-weight:600; color:var(--slate-700);}
.pdic-pc{font-family:var(--font-mono); font-size:17px; font-weight:700; color:var(--ink); text-align:right; font-variant-numeric:tabular-nums;}

/* ---------- fake login inputs (slide 19) ---------- */
.finput{height:46px; border:1px solid var(--slate-200); border-radius:9px; background:var(--slate-50);
  display:flex; align-items:center; padding:0 16px; font-size:16px; color:var(--slate-400);}

/* ---------- video rows (slide 16) ---------- */
.vrow{display:flex; align-items:center; gap:16px;}
.vthumb{flex:none; width:64px; height:44px; border-radius:8px; background:var(--brand); display:grid; place-items:center;}
.vtt{font-family:var(--font-display); font-weight:600; font-size:19px; color:var(--ink); line-height:1.2;}
.vts{font-family:var(--font-mono); font-size:14px; color:var(--slate-400); margin-top:3px;}

/* ---------- section divider (v4) ---------- */
.divider{position:absolute; inset:0; background:var(--brand-deep); color:#fff; padding:var(--pad-top) var(--pad-x);
  display:flex; flex-direction:column; justify-content:center; overflow:hidden;}
.divider__lead{position:relative; display:flex; align-items:center; gap:60px;}
.divider .deco{position:absolute; inset:0; overflow:hidden; pointer-events:none;}
.divider .deco span{position:absolute; border-radius:50%; border:1.5px solid rgba(255,255,255,.10);}
.divider .dnum{font-family:var(--font-mono); font-size:200px; font-weight:700; line-height:.9; color:rgba(255,255,255,.13); letter-spacing:-.02em;}
.divider .dkick{font-family:var(--font-mono); font-size:24px; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.7); margin-bottom:22px; display:flex; align-items:center; gap:18px;}
.divider .dkick::before{content:""; width:54px; height:3px; background:#fff; border-radius:2px;}
.divider .dtitle{font-family:var(--font-display); font-weight:700; font-size:80px; line-height:1.04; letter-spacing:-.025em; margin:0; max-width:22ch;}
.divider .dsub{font-size:30px; color:rgba(255,255,255,.78); margin:28px 0 0; max-width:46ch; line-height:1.4;}

/* ---------- resultado INTERATIVO embutido (iframe) ---------- */
/* A tela de resultado do kit V3 é autocontida, então em vez de print ela entra
   como documento vivo: o licenciado rola e vê o resultado inteiro. O iframe abre
   já posicionado no bloco que o slide promete (script dentro do próprio embed).
   Ver .shot logo abaixo — é o mesmo enquadramento visual, para os slides que
   seguem com imagem não destoarem. */
.live{
  position:relative; width:100%; aspect-ratio:4/3;
  border-radius:14px; overflow:hidden; background:#fff;
  border:1px solid var(--slate-200); box-shadow:var(--shadow-pop);
}
.live iframe{width:100%; height:100%; border:0; display:block;}

/* tela de produto viva DENTRO da moldura de navegador — mantém a barra de URL
   com o domínio do licenciado e troca o print pelo documento rolável */
.bwin{position:relative;}
.bwin iframe{
  width:100%; aspect-ratio:1400/900; border:0; display:block; background:#fff;
}
.bwin .live__hint{position:absolute; right:16px; bottom:16px;}

/* ---------- moldura do embed de tela de produto (.snap-wrap) ---------- */
/* A tela é capturada NA LARGURA EM QUE SERÁ EXIBIDA (924px, a coluna do slide),
   então o layout já nasce certo e não precisa de escala.
   Cheguei a reduzir por transform (capturando a 1400px) para forçar o layout
   desktop, mas o texto ficava pequeno demais — o Lucas preferiu o 924 nativo. */
.snap-wrap{position:relative; width:100%; overflow:hidden;}
.snap-wrap iframe{
  width:100%; border:0; display:block; background:#fff;
}
.bwin .snap-wrap{aspect-ratio:1400/900;}
.bwin .snap-wrap iframe{height:100%;}
.live .snap-wrap{position:absolute; inset:0;}
.live .snap-wrap iframe{height:100%;}

/* Exceção: Processo Seletivo. A tabela de classificação não cabe em 924 nem sem
   a coluna Mapeamentos, então essa tela é capturada a 1020px e reduzida aqui.
   1020 e não mais: o shell V3 colapsa a sidebar num rail entre 768 e 1023px —
   dentro dessa faixa a tabela ganha ~230px e a redução é só 0,91. */
/* transform NÃO muda o tamanho de layout: o iframe continua ocupando a altura
   inteira e empurrava a moldura para baixo. A altura do quadro precisa ser travada. */
.bwin .snap-wrap--1020{height:594px; flex:none;}
/* `.bwin .snap-wrap iframe` tem specificity maior e forçava height:100% (= 594),
   que escalado deixava faixa branca. Daí o seletor completo. */
.bwin .snap-wrap--1020 iframe,
.snap-wrap--1020 iframe{
  width:1020px; height:656px;              /* 656 × 0,906 ≈ 594, a altura do quadro */
  transform:scale(0.906); transform-origin:top left;
}
/* dica de affordance: sem ela ninguém descobre que dá pra rolar */
.live__hint{
  position:absolute; right:14px; bottom:14px; z-index:2; pointer-events:none;
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px; border-radius:999px;
  background:rgba(11,18,32,.78); color:#fff;
  font-family:var(--font-mono); font-size:14px; letter-spacing:.06em; text-transform:uppercase;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.live__hint svg{width:15px; height:15px;}
/* na impressão/PDF o iframe vira uma imagem estática do topo — a dica de rolagem
   perde o sentido e sairia como sujeira no papel */
@media print{ .live__hint{display:none !important;} }

/* ---------- captura de tela solta (gráficos e relatórios) ---------- */
/* Telas de produto vão dentro de .bwin; gráfico de assessment e relatório
   entram direto, sem moldura de navegador. */
.shot{
  display:block; width:100%; height:auto; border-radius:14px;
  border:1px solid var(--slate-200); box-shadow:var(--shadow-pop); background:#fff;
}

/* ---------- esconder um bloco sem apagá-lo ---------- */
/* Hoje só o bloco de telefone/e-mail/site do slide de contato, que ainda está
   com dados de exemplo. Para trazer de volta, é só tirar o `data-oculto` do
   HTML — o conteúdo continua lá.
   NÃO usar o atributo `hidden` do HTML aqui: aquele bloco tem `display:flex`
   inline, e `display` de autor vence o `[hidden]` do navegador. */
[data-oculto]{display:none !important;}

/* ---------- IMG-01: mural de logos de clientes ---------- */
/* Grade em HTML, não um PNG montado: cada marca fica nítida em qualquer zoom e
   o slide não passa a carregar texto dentro de imagem. Logo é o único tipo de
   imagem que o deck aceita.
   AS MARCAS FICAM COLORIDAS, como o Lucas pediu. Elas brigam um pouco com a cor
   do licenciado, mas o slide é sobre a credibilidade dessas empresas e marca
   reconhecível vale mais que uniformidade cromática. */
.cmural{
  display:grid; grid-template-columns:repeat(7, 1fr); gap:38px 44px;
  align-items:center; justify-items:center; min-height:420px;
  align-content:center;
}
.cmural img{
  max-width:100%; max-height:74px; width:auto; height:auto;
  object-fit:contain;
  /* Sem filtro e sem opacidade: cor original da marca.
     As "caixas" que aparecem atrás de algumas (Unimed, Banco do Brasil, Ibmec,
     SENAI…) são placas de cor DO PRÓPRIO LOGOTIPO, não fundo opaco do arquivo —
     os cantos dessas imagens são transparentes. Não adianta `multiply` nem
     remoção de fundo: não há o que remover. Coloridas elas param de parecer
     defeito e voltam a ser o que são. */
}
/* Exceção: esta logo veio numa tela de 3840×2160 com muita margem transparente
   em volta. No `contain` normal ela fica minúscula, porque o que cabe na caixa
   é a tela inteira, não a marca. */
.cmural img[data-folga]{max-height:150px; margin:-38px 0;}

/* ---------- capa de relatório V3 (CoverDivisaoVertical) montada em HTML ---------- */
/* Réplica fiel de assets/reports/v3/cover.css + views/reports/v3/partial_cover.php:
   painel escuro vertical de 380px à esquerda + coluna de conteúdo à direita.
   NÃO é um desenho novo — as medidas abaixo são as do relatório real, convertidas
   de px para cqw sobre a largura A4 de 794px (1px = 0.12594cqw).

   Por que HTML e não PNG: a capa é o argumento do slide "sua logomarca na capa dos
   relatórios". Um PNG mostraria a marca de UM licenciado nos 155; montada aqui, ela
   herda a marca de cada owner.

   container-type + cqw: a mesma folha serve a capa sozinha (slide 6) e as três do
   trio (slide 27). font-size em % não serviria — é relativo ao pai, não à largura. */
.rcover{
  position:relative; aspect-ratio:794/1123; background:#fff; overflow:hidden;
  container-type:inline-size;
  font-family:var(--font-sans); color:#111a2c;
  border-radius:6px; box-shadow:0 18px 40px -12px rgba(11,18,32,.28), 0 0 0 1px var(--slate-200);
  flex:none;
}
.rcover *{box-sizing:border-box;}

/* === painel esquerdo (380px) === */
/* --cover-panel é injetado por owner pelo gerador, usando o MESMO
   report_cover_panel_bg() do relatório (matiz preservado, sat ≤.62, lum .19).
   --cover-fg vem junto: branco, ou escuro quando a marca é clara (ex. #ffb119,
   em que o painel fica na cor real) — os translúcidos derivam dele, como no
   cover.css do relatório. */
.rcover__panel{
  position:absolute; top:0; left:0; bottom:0; width:47.86cqw;
  padding:7.05cqw 5.54cqw 7.05cqw 7.05cqw;
  display:flex; flex-direction:column; overflow:hidden; color:var(--cover-fg, #fff);
  background:var(--cover-panel, var(--brand-deep));
}
.rcover__slab{
  position:absolute; top:-12.59cqw; right:-10.08cqw; width:20.15cqw; height:60.45cqw;
  transform:skewX(-18deg); background:color-mix(in srgb, var(--cover-fg, #fff) 6%, transparent);
}
.rcover__panel-top{position:relative;}
.rcover__panel-top .wl-logo-img{max-height:5.04cqw; max-width:33cqw;}
.rcover__panel-top .wl-logo-ph .mk{width:5.04cqw; height:5.04cqw;}
.rcover__panel-top .wl-logo-ph .nm{font-size:2.02cqw; color:var(--cover-fg, #fff); letter-spacing:.06em;}
.rcover__panel-top .wl-logo-ph .nm small{font-size:1.2cqw; letter-spacing:.32em; color:color-mix(in srgb, var(--cover-fg, #fff) 75%, transparent);}

.rcover__panel-mid{
  position:relative; flex:1; display:flex; flex-direction:column;
  justify-content:center; padding-bottom:5.04cqw;
}
.rcover__kicker{display:flex; align-items:center; gap:1.51cqw; margin-bottom:2.52cqw;}
.rcover__kicker-dash{width:3.53cqw; height:.38cqw; background:color-mix(in srgb, var(--cover-fg, #fff) 90%, transparent); border-radius:2px;}
.rcover__kicker-txt{
  font-family:var(--font-mono); font-size:1.32cqw; font-weight:600;
  color:color-mix(in srgb, var(--cover-fg, #fff) 78%, transparent); letter-spacing:.22em; text-transform:uppercase;
}
.rcover__title{
  font-family:var(--font-sans); font-weight:700; font-size:4.28cqw; line-height:1.12;
  letter-spacing:-.03em; color:var(--cover-fg, #fff); margin:0;
}
.rcover__panel-desc{
  margin:3.02cqw 0 0; font-size:1.7cqw; line-height:1.6; color:color-mix(in srgb, var(--cover-fg, #fff) 75%, transparent);
}
.rcover__panel-foot{
  position:relative; font-family:var(--font-mono); font-size:1.2cqw; font-weight:500;
  color:color-mix(in srgb, var(--cover-fg, #fff) 60%, transparent); letter-spacing:.2em; text-transform:uppercase; line-height:1.9;
}

/* === coluna direita === */
.rcover__main{
  position:absolute; top:0; left:47.86cqw; right:0; bottom:0;
  padding:7.05cqw 7.05cqw 7.05cqw 6.05cqw;
  display:flex; flex-direction:column;
}
.rcover__glyph-row{display:flex; justify-content:flex-end;}
.rcover__glyph svg{display:block; width:20.15cqw; height:20.15cqw;}
.rcover__fatores{
  margin-top:2.27cqw; font-family:var(--font-mono); font-size:1.26cqw; font-weight:600;
  color:#64748b; letter-spacing:.2em; text-transform:uppercase; text-align:right; line-height:2;
}
.rcover__spacer{flex:1;}
.rcover__owner-mid .wl-logo-img{max-height:10.08cqw; max-width:100%;}
.rcover__owner-mid .wl-logo-ph .mk{width:7cqw; height:7cqw;}
.rcover__owner-mid .wl-logo-ph .nm{font-size:2.6cqw;}
.rcover__owner-mid .wl-logo-ph .nm small{font-size:1.2cqw;}

.rcover__meta{margin-top:3.02cqw; padding-top:2.27cqw; border-top:.252cqw solid var(--brand);}
.rcover__meta-item + .rcover__meta-item{margin-top:1.76cqw;}
.rcover__meta-lbl{
  display:block; font-family:var(--font-mono); font-size:1.2cqw; font-weight:600;
  text-transform:uppercase; letter-spacing:.2em; color:#94a3b8; margin-bottom:.5cqw;
}
.rcover__meta-val{display:block; font-size:1.64cqw; font-weight:600; color:#0a0f1a; line-height:1.35;}
.rcover__meta-sub{display:block; font-size:1.32cqw; color:#64748b; margin-top:.25cqw;}
/* protocolo ao lado da data: peso normal e cinza, como no cover.css do
   relatório real — sem esta regra ele saía em negrito, igual à data */
.rcover__meta-proto{font-weight:400; color:#64748b; font-size:1.32cqw;}

/* trio de capas do slide "sua logomarca" — a do meio à frente e maior */
.rcover-trio{display:flex; align-items:center; justify-content:center; width:100%;}
.rcover-trio .rcover{width:31%;}
.rcover-trio .rcover:nth-child(1){transform:rotate(-5deg) translateX(9%); z-index:1;}
.rcover-trio .rcover:nth-child(2){width:35%; z-index:3;}
.rcover-trio .rcover:nth-child(3){transform:rotate(5deg) translateX(-9%); z-index:2;}

/* sub-feature block (combined slides) */
.subfeat{display:flex; gap:18px; align-items:flex-start;}
.subfeat .ic{margin-top:2px;}
.subfeat h3{font-family:var(--font-display); font-weight:600; font-size:28px; color:var(--ink); margin:0 0 6px; line-height:1.18;}
.subfeat p{font-size:23px; color:var(--slate-600); line-height:1.36; margin:0;}


/* ---------- validação científica: as duas instituições lado a lado ----------
   Estava tudo em atributo style; virou classe para o retrato.css poder
   empilhar sem !important. A altura de cada logo continua sendo decisão do
   slide, agora por --h. */
.valid-orgs{display:flex; align-items:center; gap:64px; margin-top:56px;}
.valid-orgs img{height:var(--h, 190px); width:auto;}
.valid-orgs__sep{width:1px; height:124px; background:var(--slate-200);}
