/* ═══════════════════════════════════════════════════════════════════════
   painel_fundador_v3.css — PAINEL DO FUNDADOR (o cockpit) · Jean · v3 · 23/10/2026
   v3: a GAVETA (.pf-gaveta) substitui o «cresce no lugar» — o card não muda de tamanho, o conteúdo aberto é uma linha 1/-1 logo abaixo da fileira, com dente de 8 px;
   durações 380/480; brilho do brasão a 600 (700); pulso acende na abertura; anel de «cheguei aqui» em champanhe (sem ouro fora do herói).
   Peça nova, prefixo .pf-. Carregar DEPOIS de css/janela_contexto_v2.css (zoom de gráfico e ajuda usam .rnj-* verbatim).
   Fonte só por token (--fs-*); três tamanhos acima da escala declarados como token (--pf-fs-heroi 56 · --pf-fs-valor 30 · --pf-fs-zoom 44).
   Brilho só --text/--text2/--text3. Sem text-shadow. Sem font-size cru. SEM filter, SEM drop-shadow, SEM sombra decorativa (v2):
   destaque por forma — opacidade 1 × .78, traço 1,6 × 1,1, tinta. A única luz da tela é o brilho do brasão ao abrir (gradiente por posição).
   Herói ÚNICO = ouro no nº de professores ativos. Roxo não entra. Dinheiro em --text. Status sempre ícone + rótulo.
   Celular 375 (prioridade) e Mac 1440 (.pf--mac). Topo seguro: --topo-seguro. Curva da casa: cubic-bezier(.23,1,.32,1).
   CASCA (não portar): o bloco :root abaixo, exceto --pf-fs-* — o app já declara os tokens.
   ═══════════════════════════════════════════════════════════════════════ */
.pf-tela{
  --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;
  --line:rgba(255,255,255,.08);--card-line-1:rgba(255,255,255,.18);--card-line-2:rgba(255,255,255,.28);--card-line-ouro:rgba(201,162,39,.5);
  --gold:#c9a227;--gold-hi:#e2c25e;--teal:#22d3ee;--blue:#5b8def;--green:#3ddc97;--yellow:#fde047;--red:#f0616b;
  --champ:236,214,170;
  --font-display:'Playfair Display',Georgia,serif;--font-ui:'Jost','Avenir Next',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.23,1,.32,1);
  --topo-seguro:calc(env(safe-area-inset-top,0px) + 32px);
  --surface-card:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.012));
  --ui:var(--font-ui);--serif:var(--font-display);--gold2:#e2c25e;--bg:#0a0806;
  --pf-fs-heroi:56px;--pf-fs-valor:30px;--pf-fs-zoom:44px;
}

/* ── 0 · a tela ───────────────────────────────────────────────────────── */
.pf{position:relative;display:flex;flex-direction:column;gap:12px;min-height:100%;padding:var(--topo-seguro) 16px calc(env(safe-area-inset-bottom,0px) + 28px);background:#0a0806;color:var(--text);font:400 var(--fs-sm)/1.45 var(--font-ui);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
.pf *{box-sizing:border-box}
.pf button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pf :focus-visible{outline:2px solid rgba(226,194,94,.75);outline-offset:2px}
.pf .i{display:block;flex:none;width:16px;height:16px}
.pf [data-conta]{display:inline-block;text-align:right}            /* E7: a caixa nasce no tamanho final (min-width medida no JS) */

/* ── 1 · a barra do topo: UMA linha de 48 — Voltar · brasão em linha · Semana·Mês · «?» ── */
.pf-topo{display:flex;align-items:center;gap:10px;height:48px}
/* o Voltar padrão (#wkhVoltar), geometria literal: 44, cantos 11 11 11 5, seta + «Voltar» */
.pf-voltar{flex:none;display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 15px 0 11px;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-sm)/1 var(--font-ui);letter-spacing:.02em}
.pf-voltar .i{width:14px;height:14px}
.pf-voltar:active{border-color:var(--card-line-2);color:var(--text)}
/* o brasão em linha dourada: MARCA, não herói; nasce pequeno (32) e, se a barra não couber, cede pra 24 */
.pf-brasao{position:relative;display:grid;place-items:center;flex:none;width:32px;height:32px;margin:0 auto;color:var(--gold)}
.pf-brasao svg{display:block;width:100%;height:100%;color:var(--gold);fill:currentColor}
.pf-brasao__brilho{position:absolute;inset:0;border-radius:50%;pointer-events:none;opacity:0;
  background:linear-gradient(112deg,transparent 38%,rgba(255,244,214,.92) 50%,transparent 62%);background-size:320% 100%;background-position:120% 0;
  -webkit-mask:radial-gradient(circle at 50% 50%,transparent 0 56%,#000 58% 100%);mask:radial-gradient(circle at 50% 50%,transparent 0 56%,#000 58% 100%)}
.pf.is-abrindo .pf-brasao__brilho{animation:pfBrilho 700ms var(--ease) 600ms 1 both}   /* a única luz da tela: corre UMA vez, depois de os cards assentarem (590) e do pulso */
@keyframes pfBrilho{0%{opacity:0;background-position:120% 0}15%{opacity:1}85%{opacity:1}100%{opacity:0;background-position:-20% 0}}
@media (max-width:359px){.pf-brasao{width:24px;height:24px}}
.pf-sel{display:inline-flex;flex:none;padding:3px;border:1px solid var(--card-line-1);border-radius:11px 11px 11px 5px;background:rgba(0,0,0,.26)}
.pf-sel button{position:relative;min-width:64px;height:38px;padding:0 10px;border:0;border-radius:9px 9px 9px 4px;background:none;color:var(--text2);font-size:var(--fs-xs);letter-spacing:.04em;transition:background .16s var(--ease),color .16s}
.pf-sel button::before{content:"";position:absolute;inset:-4px 0}                  /* E4: toque 46 */
.pf-sel button[aria-pressed="true"]{background:rgba(255,255,255,.08);color:var(--text)}
.pf-sel button:active{background:rgba(255,255,255,.12)}
/* coreografia de abertura (M3): herói 0 · fala 60 · mostradores 120/170/220/270 · grupos sem animação */
@keyframes pfEntra{from{opacity:0;transform:translateY(8px)}}
.pf.is-abrindo .pf-heroi{animation:pfEntra 380ms var(--ease) both}
.pf.is-abrindo .pf-fala{animation:pfEntra 380ms var(--ease) 60ms both}
.pf.is-abrindo .pf-most>.pf-card:nth-child(1){animation:pfEntra 380ms var(--ease) 120ms both}
.pf.is-abrindo .pf-most>.pf-card:nth-child(2){animation:pfEntra 380ms var(--ease) 170ms both}
.pf.is-abrindo .pf-most>.pf-card:nth-child(3){animation:pfEntra 380ms var(--ease) 220ms both}
.pf.is-abrindo .pf-most>.pf-card:nth-child(4){animation:pfEntra 380ms var(--ease) 270ms both}
/* DEGRAU 1: o pulso acende na abertura, seg→hoje, 40 ms entre os pontos (320…560), antes do brilho */
.pf.is-abrindo .pf-pulso__d i{animation:pfAcende 200ms var(--ease) var(--atraso,320ms) both}
@keyframes pfAcende{from{opacity:0;transform:scale(.6)}}
/* MELHORIA 4: na troca de período, os rótulos trocam em crossfade (160) enquanto os números contam (320) */
.pf.is-trocando .pf-delta,.pf.is-trocando .pf-card__v small,.pf.is-trocando .pf-card__sub .pf-comp{animation:pfCross 160ms var(--ease) both}
@keyframes pfCross{from{opacity:0}}

/* ── 2 · a linha que fala: UM recado (≤2 linhas, ≤44 px), tocável; some sem nada a dizer ── */
.pf-fala{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:4px 10px 4px 12px;border:1px solid var(--card-line-1);border-radius:13px 13px 13px 6px;background:rgba(0,0,0,.22);color:var(--text);font-size:var(--fs-xs);line-height:1.3;text-align:left;text-wrap:pretty}
.pf-fala:active{background:rgba(255,255,255,.04)}
.pf-fala .i{width:16px;height:16px}
.pf-fala--risco .i{color:var(--red)}
.pf-fala--atencao .i{color:var(--yellow)}
.pf-fala--marco .i{color:rgb(var(--champ))}
.pf-fala--neutro .i{color:var(--text3)}
.pf-fala span{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pf-fala .chev{width:14px;height:14px;color:var(--text3)}

/* ── 3 · o herói (ouro) ≤150 ─────────────────────────────────────────── */
.pf-heroi{position:relative;border:1px solid var(--card-line-2);border-radius:18px;background:var(--surface-card);overflow:hidden}
.pf-heroi::before{content:"";position:absolute;left:0;right:0;top:0;height:2.5px;background:linear-gradient(90deg,var(--gold),var(--gold-hi) 60%,rgba(226,194,94,.2));pointer-events:none}
.pf-heroi__bt{position:relative;z-index:1;display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;padding:12px 16px 12px;border:0;background:none;text-align:left}
.pf-heroi__bt:active{background:rgba(255,255,255,.03)}
.pf-eyebrow{font:500 var(--fs-micro)/1.2 var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--text3)}
.pf-eyebrow b{color:var(--text2);font-weight:500}
.pf-heroi__v{display:block}
.pf-heroi__n{display:inline-block;font:600 var(--pf-fs-heroi)/1 var(--font-display);color:var(--gold);letter-spacing:-.01em;font-variant-numeric:tabular-nums;vertical-align:baseline}
.pf-heroi__de{display:inline;margin-left:10px;font-size:var(--fs-sm);color:var(--text2)}
.pf-delta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:var(--fs-xs);color:var(--text2);line-height:1.3;align-self:stretch;max-width:100%}
.pf-delta>span{flex:1 1 auto;min-width:0}
.pf-card__sub .pf-delta+.pf-delta{margin-top:2px}
.pf-delta .i{width:14px;height:14px;color:var(--text3)}
.pf-delta b{color:var(--text);font-weight:500;white-space:nowrap}
/* D1 (v2): o traço de direção mora na linha do delta — 7 períodos, último ponto aceso; eixo do zero */
.pf-tend{display:block;flex:none;width:36px;height:14px;color:var(--text3);overflow:visible}
.pf-tend .ult{fill:var(--text)}
/* degrau v2: o pulso da semana — 7 dias, quantos professores abriram em cada um (intensidade ouro) */
.pf-pulso{display:flex;align-items:center;gap:10px;margin-top:2px;font-size:var(--fs-xs);color:var(--text2);white-space:nowrap;overflow:hidden}
.pf-pulso__d{display:inline-flex;gap:4px}
.pf-pulso__d i{display:block;width:10px;height:10px;border-radius:50%;background:rgba(201,162,39,calc(var(--k,0)*.85 + .08));border:1px solid rgba(201,162,39,calc(var(--k,0)*.5 + .18))}
.pf-pulso__d i.hoje{outline:1px solid rgba(226,194,94,.6);outline-offset:1px}

/* ── 4 · os mostradores: 2×2 no celular (≤96 cada); o aberto cresce no lugar e os vizinhos se acomodam (FLIP no JS) ── */
.pf-most{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pf-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--card-line-1);border-radius:16px;background:var(--surface-card);overflow:hidden;transition:border-color .2s var(--ease)}
.pf-card.is-aberto{border-color:var(--card-line-2)}                                    /* o card tocado NÃO muda de tamanho: só a borda sobe um nível */
/* a GAVETA: linha 1/-1 logo abaixo da fileira do card tocado; o dente de 8 px aponta pra ele (--dente-x = centro do card) */
.pf-gaveta{position:relative;grid-column:1/-1;display:grid;grid-template-rows:1fr;margin-top:2px}
.pf-gaveta>div{min-height:0;overflow:hidden;border:1px solid var(--card-line-2);border-radius:16px;background:var(--surface-card)}
.pf-gaveta::before{content:"";position:absolute;left:var(--dente-x,50%);top:-4px;width:8px;height:8px;margin-left:-4px;transform:rotate(45deg);background:#141008;border-left:1px solid var(--card-line-2);border-top:1px solid var(--card-line-2);z-index:1}
.pf-gaveta__c{display:flex;flex-direction:column;gap:12px;padding:14px 14px 16px}
.pf-gaveta.is-abrindo{animation:pfAbre 380ms var(--ease) both}
.pf-gaveta.is-abrindo .pf-gaveta__c{animation:pfEntra 260ms var(--ease) 200ms both}        /* o conteúdo entra em seguida, quando a altura já abriu */
.pf-gaveta.is-fechando{animation:pfFecha 260ms var(--ease) 120ms both;pointer-events:none}
.pf-gaveta.is-fechando .pf-gaveta__c{animation:pfSome 120ms var(--ease) both}               /* o conteúdo sai primeiro (120), a altura fecha depois (260): total 380 */
@keyframes pfSome{to{opacity:0}}
.pf-heroi+.pf-gaveta{margin-top:-2px}
.pf-card--solto{padding:14px;display:flex;flex-direction:column;gap:10px}
.pf-card__bt{display:flex;flex-direction:column;align-items:stretch;gap:2px;width:100%;min-height:92px;padding:10px 12px 10px;border:0;background:none;text-align:left}
.pf-card__bt:active{background:rgba(255,255,255,.04)}
.pf-card__lb{font:500 var(--fs-micro)/1.25 var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--text3);text-wrap:balance}
.pf-card__v{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-top:4px;font:600 var(--pf-fs-valor)/1.05 var(--font-display);color:var(--text);font-variant-numeric:tabular-nums}
.pf-card__v small{font:400 var(--fs-xs)/1.2 var(--font-ui);color:var(--text2)}
.pf-card__v .pf-dot{display:inline-block;width:5px;height:14px;border-radius:2px;vertical-align:baseline;align-self:center}
.pf-card__v .sep{color:var(--text3);font-weight:400}
.pf-card__sub{display:flex;flex-direction:column;align-items:stretch;gap:2px;margin-top:auto;padding-top:6px;font-size:var(--fs-xs);color:var(--text2);line-height:1.3;text-wrap:pretty}
.pf-card__sub .pf-st{vertical-align:middle}
@keyframes pfAbre{from{grid-template-rows:0fr;margin-top:0}}
@keyframes pfFecha{to{grid-template-rows:0fr;margin-top:0}}

/* ── 5 · gráficos: tocar = zoom Obsidian. Destaque por opacidade e traço, nunca por brilho ── */
.pf-grafbt{display:flex;flex-direction:column;width:100%;padding:0;border:0;background:none;border-radius:10px;text-align:left;position:relative}
.pf-grafbt:active{background:rgba(255,255,255,.03)}
.pf-grafbt .pf-zoomdica{display:flex;justify-content:flex-end;align-items:center;gap:5px;margin-bottom:4px;font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--text3)}
.pf-grafbt .pf-zoomdica .i{width:13px;height:13px}
.pf-graf{display:block;width:100%;height:auto;overflow:visible}
.pf-graf text{font-family:var(--font-ui);font-size:var(--fs-xs);fill:var(--text3)}
.pf-graf .pf-graf__x text{fill:var(--text2)}
.pf-graf .pf-graf__grade line{stroke:rgba(238,231,218,.08)}
.pf-graf .pf-graf__chao{stroke:rgba(238,231,218,.22)}
.pf-graf .pf-graf__janela{fill:rgba(255,255,255,.035)}
.pf-graf .pf-graf__cursor{stroke:var(--text2);stroke-width:1;stroke-dasharray:3 3;opacity:0;transition:opacity .16s}
.pf-graf.is-lendo .pf-graf__cursor{opacity:1}
.pf-graf .pf-graf__ponto{opacity:0}
.pf-graf.is-lendo .pf-graf__ponto{opacity:1}
.pf-leg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--fs-xs);color:var(--text2)}
.pf-leg span{display:inline-flex;align-items:center;gap:6px}
.pf-leg i{display:inline-block;width:5px;height:14px;border-radius:2px;background:var(--text2)}
.pf-leg i.linha{width:14px;height:0;border-top:1.5px solid var(--text2);border-radius:0;background:none}
.pf-leg i.vazio{background:none;border:1px solid var(--text3)}
.pf-comp{font-size:var(--fs-xs);color:var(--text2);line-height:1.45;text-wrap:pretty}
.pf-comp b{color:var(--text);font-weight:500}
.pf-sem{font:italic 400 var(--fs-xs)/1.45 var(--font-ui);color:var(--text2)}

/* ── 6 · status (sempre ícone + rótulo), vazio, listas, barras ──────── */
.pf-st{display:inline-flex;align-items:flex-start;gap:6px;font:500 var(--fs-xs)/1.3 var(--font-ui);text-wrap:pretty}
.pf-st .i{width:15px;height:15px;margin-top:1px}
.pf-st--risco{color:var(--red)}
.pf-st--atencao{color:var(--yellow)}
.pf-st--ok{color:var(--green)}
.pf-st--neutro{color:var(--text2)}
.pf-vazio{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border:1px dashed rgba(255,255,255,.16);border-radius:11px 11px 11px 5px;background:rgba(0,0,0,.26);color:var(--text2);font:italic 400 var(--fs-sm)/1.4 var(--font-ui);text-wrap:pretty}
.pf-vazio .i{width:16px;height:16px;color:var(--text3)}
.pf-vazio .pf-st{font-style:normal}
.pf-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.pf-lista li{display:flex;align-items:center;gap:10px;min-height:44px;padding:5px 0;border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--text)}
.pf-lista li:first-child{border-top:0}
.pf-lista .nm{flex:1;min-width:0;line-height:1.3}
.pf-lista .nm small{display:block;font-size:var(--fs-xs);color:var(--text2)}
.pf-lista .n{flex:none;font-variant-numeric:tabular-nums;text-align:right;line-height:1.3;white-space:nowrap}
.pf-lista .n small{display:block;font-size:var(--fs-xs);color:var(--text2)}
.pf-lista .pf-st{flex:none}
.pf-lista button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0;border:0;background:none;text-align:left;border-radius:8px}
.pf-lista button:active{background:rgba(255,255,255,.04)}
.pf-sub{display:flex;align-items:center;gap:8px;margin-top:6px;font:500 var(--fs-micro)/1.2 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--text3)}
.pf-sub::after{content:"";flex:1;height:1px;background:var(--line)}
.pf-mais{position:relative;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px dashed rgba(var(--champ),.32);border-radius:10px 10px 10px 5px;background:transparent;color:var(--text);font-size:var(--fs-xs);white-space:nowrap}
.pf-mais::before{content:"";position:absolute;inset:-2px}                           /* E4: toque 44 */
.pf-mais .i{width:14px;height:14px;color:rgb(var(--champ))}
.pf-mais:active{border-style:solid;border-color:rgba(var(--champ),.5);background:rgba(255,255,255,.05)}
.pf-hbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;align-items:baseline}
.pf-hbar__lb{font-size:var(--fs-sm);color:var(--text);line-height:1.3}
.pf-hbar__lb small{color:var(--text2);font-size:var(--fs-xs);margin-left:6px}
.pf-hbar__n{font-size:var(--fs-sm);color:var(--text);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.pf-hbar__n small{color:var(--text2);font-size:var(--fs-xs)}
.pf-hbar__t{grid-column:1/-1;height:8px;border-radius:4px;background:rgba(255,255,255,.06);margin-bottom:8px;overflow:hidden}
.pf-hbar__t i{display:block;height:100%;border-radius:4px;background:var(--teal);transition:width 480ms var(--ease)}
.pf-hbar__t i.tinta{background:var(--text2)}
.pf-hbar__t i.azul{background:var(--blue)}
.pf-prop{display:flex;gap:2px;height:10px;border-radius:5px;overflow:hidden}
.pf-prop i{display:block;height:100%;background:var(--text2);border-radius:2px}
.pf-prop i.azul{background:var(--blue)}
.pf-prop i.vazio{background:none;border:1px solid var(--text3)}

/* ── 7 · grupos recolhíveis, instrumentos ───────────────────────────── */
.pf-grupos{display:flex;flex-direction:column;gap:12px;will-change:transform}
.pf-grupo{border:1px solid var(--card-line-1);border-radius:18px;background:var(--surface-card);overflow:hidden}
.pf-grupo__hd{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 14px 10px 16px;border:0;background:none;text-align:left}
.pf-grupo__hd:active{background:rgba(255,255,255,.03)}
.pf-grupo__t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pf-grupo__nm{font:600 var(--fs-md)/1.2 var(--font-display);color:var(--text)}
.pf-grupo__sum{font-size:var(--fs-xs);color:var(--text2);line-height:1.35;white-space:normal;text-wrap:pretty;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}   /* M7: 2 linhas, sem reticências */
.pf-grupo__chev{width:18px;height:18px;color:var(--text3);transition:transform 220ms var(--ease)}
.pf-grupo.is-aberto .pf-grupo__chev{transform:rotate(180deg)}
.pf-grupo__c{display:none;flex-direction:column;gap:10px;padding:0 10px 10px}
.pf-grupo.is-aberto .pf-grupo__c{display:flex}
.pf-grupo.is-abrindo .pf-grupo__c{animation:pfEntra 380ms var(--ease) both}
.pf-inst{display:flex;flex-direction:column;gap:10px;padding:12px 12px 14px;border:1px solid var(--line);border-radius:14px 14px 14px 7px;background:rgba(0,0,0,.22);scroll-margin-top:12px;transition:border-color .3s}
.pf-inst.is-alvo{animation:pfAlvo 1.6s var(--ease) both}
@keyframes pfAlvo{0%,45%{outline:1px solid rgba(var(--champ),.5);outline-offset:-1px}100%{outline:1px solid rgba(var(--champ),0);outline-offset:-1px}}   /* «cheguei aqui»: contorno champanhe, sem ouro, sem sombra */
.pf-inst__hd{display:flex;flex-direction:column;gap:3px}
.pf-inst__t{font:500 var(--fs-md)/1.25 var(--font-display);color:var(--text)}
.pf-inst__sub{font-size:var(--fs-xs);color:var(--text2);line-height:1.35}
.pf-inst__num{display:block;font:600 var(--fs-xl)/1.1 var(--font-display);color:var(--text);font-variant-numeric:tabular-nums}
.pf-inst__num small{display:block;margin-top:3px;font:400 var(--fs-xs)/1.3 var(--font-ui);color:var(--text2)}
.pf-inst__linha{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text)}
.pf-inst__linha small{color:var(--text2);font-size:var(--fs-xs)}
.pf-linhas{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);color:var(--text2)}
.pf-linhas b{color:var(--text);font-weight:500}
.pf-duas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pf-par{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:11px 11px 11px 5px;background:rgba(255,255,255,.02)}
.pf-par__lb{font:500 var(--fs-micro)/1.2 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--text3)}
.pf-par__v{font:600 var(--fs-lg)/1.15 var(--font-display);color:var(--text);font-variant-numeric:tabular-nums}
.pf-par__v small{font:400 var(--fs-xs)/1.2 var(--font-ui);color:var(--text2);margin-left:5px}
.pf-par__s{font-size:var(--fs-xs);color:var(--text2)}
/* tabela (assinaturas) — M7: cabe em 343 sem rolagem lateral; a data de cancelamento vai embaixo da de entrada */
.pf-tab{width:100%;border-collapse:collapse;font-size:var(--fs-xs);table-layout:fixed}
.pf-tab th{text-align:left;font:500 var(--fs-micro)/1.2 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--text3);padding:0 6px 8px 0;border-bottom:1px solid var(--line)}
.pf-tab td{padding:9px 6px 9px 0;border-bottom:1px solid var(--line);color:var(--text);vertical-align:middle;font-size:var(--fs-sm);line-height:1.3;overflow-wrap:anywhere}
.pf-tab td.mut,.pf-tab td small{color:var(--text2);font-size:var(--fs-xs)}
.pf-tab td small{display:block}
.pf-tab td:last-child,.pf-tab th:last-child{padding-right:0;text-align:right}
.pf-tab tr.vazia td{font:italic 400 var(--fs-sm)/1.4 var(--font-ui);color:var(--text2);text-align:left;white-space:normal}
.pf-safra{display:grid;gap:4px;font-size:var(--fs-xs)}
.pf-safra__r{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:4px;align-items:center}
.pf-safra__h{color:var(--text3);font:500 var(--fs-micro)/1.2 var(--font-ui);letter-spacing:.12em;text-transform:uppercase;text-align:center}
.pf-safra__m{color:var(--text);font-size:var(--fs-sm)}
.pf-safra__m small{display:block;color:var(--text2);font-size:var(--fs-xs)}
.pf-safra__c{display:grid;place-items:center;min-height:38px;border-radius:7px;background:rgba(34,211,238,calc(var(--k,0)*.38 + .03));color:var(--text);font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}
.pf-safra__c.sem{color:var(--text3);background:rgba(255,255,255,.03)}

/* ── 8 · o mapa: pequeno, ciano por intensidade; a lista é o alvo principal ── */
.pf-mapa{display:grid;grid-template-columns:124px minmax(0,1fr);gap:12px;align-items:start}
.pf-mapa.is-zoom{grid-template-columns:minmax(0,1fr)}
.pf-mapa__svg{display:block;width:100%;height:auto;border-radius:12px;background:rgba(0,0,0,.2);overflow:hidden;touch-action:manipulation}
.pf-mapa__g{transition:transform 480ms var(--ease);transform-origin:0 0}
.pf-mapa__uf{fill:rgba(255,255,255,.03);stroke:rgba(255,255,255,.2);stroke-width:1.1;vector-effect:non-scaling-stroke;cursor:pointer;transition:opacity 320ms var(--ease),fill 320ms var(--ease)}
.pf-mapa__uf.tem{fill:rgba(34,211,238,var(--k));stroke:rgba(34,211,238,.55)}
.pf-mapa__uf.tem:hover{fill:rgba(34,211,238,calc(var(--k) + .12))}
.pf-mapa.is-zoom .pf-mapa__uf:not(.sel){opacity:.18}
.pf-mapa.is-zoom .pf-mapa__col{animation:pfEntra 380ms var(--ease) 120ms both}
.pf-mapa__uf.sel{stroke:rgba(34,211,238,.95);stroke-width:1.6}                          /* destaque por traço, não por brilho */
/* as cidades acordam por tamanho (D2): cada uma com o seu atraso (JS), escala .9→1 */
.pf-mapa__c1{opacity:0;transform:scale(.9);transform-box:fill-box;transform-origin:center;animation:pfAcorda 380ms var(--ease) var(--atraso,220ms) both}
@keyframes pfAcorda{to{opacity:1;transform:scale(1)}}
.pf-mapa__c1 .al{fill:none;stroke:var(--teal);stroke-width:1.4;vector-effect:non-scaling-stroke}   /* alunos dos professores daqui = ciano vazado */
.pf-mapa__c1 .prof{fill:var(--text)}                                                              /* professores = ponto cheio em --text */
.pf-mapa__c1 text{fill:var(--text);font-family:var(--font-ui);font-weight:500;paint-order:stroke;stroke:#0a0806;stroke-width:3px;stroke-linejoin:round}
.pf-mapa__rot{position:absolute;left:10px;bottom:8px;font:500 var(--fs-micro)/1.2 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--text3);pointer-events:none}
.pf-mapa__col{display:flex;flex-direction:column;gap:6px;min-width:0}
.pf-mapa__li{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:4px 8px 4px 6px;border:1px solid transparent;border-radius:10px 10px 10px 5px;background:none;text-align:left;color:var(--text)}
.pf-mapa__li:active,.pf-mapa__li:hover{background:rgba(255,255,255,.04)}
.pf-mapa__li.sel{border-color:rgba(34,211,238,.45);background:rgba(34,211,238,.07)}
.pf-mapa__uf-ch{display:grid;place-items:center;min-width:34px;height:26px;padding:0 6px;border-radius:6px;background:rgba(34,211,238,calc(var(--k,0)*.6 + .06));color:var(--text);font:600 var(--fs-xs)/1 var(--font-ui);letter-spacing:.06em}
.pf-mapa__nm{flex:1;min-width:0;font-size:var(--fs-sm);line-height:1.25;text-wrap:balance}
.pf-mapa__nm small{display:block;font-size:var(--fs-xs);color:var(--text2);margin-top:2px;text-wrap:pretty}
.pf-mapa__pt{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--text);margin-right:4px;vertical-align:middle}
.pf-mapa__pt.al{background:none;border:1.4px solid var(--teal)}
.pf-mapa__cidades{position:relative}
.pf-mapa__hd{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px}
.pf-volta{position:relative;display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 12px 0 8px;border:1px dashed rgba(var(--champ),.32);border-radius:10px 10px 10px 5px;background:transparent;color:var(--text);font-size:var(--fs-xs)}
.pf-volta::before{content:"";position:absolute;inset:-2px}
.pf-volta .i{width:14px;height:14px;color:rgb(var(--champ))}
.pf-volta:active{border-style:solid;border-color:rgba(var(--champ),.5);background:rgba(255,255,255,.05)}

/* ── 9 · o zoom Obsidian: só o miolo (a moldura é a .rnj--obsidian, verbatim) ── */
.pf-zoom__topo{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.pf-zoom__v{font:600 var(--pf-fs-zoom)/1 var(--font-display);color:var(--text);font-variant-numeric:tabular-nums;min-height:1em}
.pf-zoom__v small{display:block;margin-top:8px;font:400 var(--fs-sm)/1.3 var(--font-ui);color:var(--text2);white-space:nowrap}
.pf-zoom__d{flex:none;font-size:var(--fs-xs);color:var(--text2);text-align:right;line-height:1.4;padding-top:6px;white-space:nowrap}
.pf-zoom__ref{color:var(--text);font-size:var(--fs-sm);font-weight:500}
.pf-zoom__f{margin-top:6px;font-size:var(--fs-xs);color:var(--text3);font-variant-numeric:tabular-nums}   /* DEGRAU 2: o mesmo ponto, um período antes */
.pf-zoom__dica{display:flex;align-items:center;gap:8px;margin-top:4px;font:italic 400 var(--fs-xs)/1.4 var(--font-ui);color:var(--text2)}
.pf-zoom__dica .i{width:15px;height:15px;color:var(--text3)}
.pf-zoom__graf{margin-top:10px;touch-action:none;cursor:ew-resize;border-radius:10px}
.pf-zoom__graf:focus-visible{outline:2px solid rgba(226,194,94,.75);outline-offset:4px}

/* ── 10 · carregando (pulso, nunca barra) · erro ───────────────────── */
.pf-skel{display:block;border-radius:8px;background:rgba(255,255,255,.08);min-height:14px;animation:pfPulso 1.2s ease-in-out infinite alternate}
.pf-skel--n{height:52px;width:2.2ch;border-radius:10px}
.pf-skel--v{height:30px;width:60%;border-radius:8px}
.pf-skel--l{height:13px;width:80%}
.pf-skel--g{height:120px;width:100%;border-radius:12px}
.pf-pulso-t{color:var(--text);animation:pfPulso 1.2s ease-in-out infinite alternate}
@keyframes pfPulso{from{opacity:.55}to{opacity:1}}
.pf.is-erro .pf-corpo{opacity:.55;pointer-events:none}
.pf-traco{display:inline-block;color:var(--text3)}

/* ── 11 · Mac 1440 (.pf--mac): herói | linha que fala · 4 mostradores em fila · grupos em 2 colunas (Uso com mapa + lista lado a lado) ── */
.pf--mac{padding:28px 32px 48px;gap:16px;min-height:100%}
.pf--mac .pf-cima{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:stretch}
.pf--mac .pf-cima--so{grid-template-columns:minmax(0,1fr)}
.pf--mac .pf-gaveta__c{padding:16px 18px 18px}
.pf--mac .pf-gaveta__c .pf-duas{grid-template-columns:repeat(4,minmax(0,1fr))}
.pf--mac .pf-fala{align-self:stretch;min-height:0;font-size:var(--fs-md);padding:14px 18px 14px 20px;gap:14px}
.pf--mac .pf-fala span{-webkit-line-clamp:3}
.pf--mac .pf-fala .i{width:20px;height:20px}
.pf--mac .pf-most{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.pf--mac .pf-card__bt{min-height:116px;padding:14px 16px}
.pf--mac .pf-grupos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.pf--mac .pf-mapa{grid-template-columns:minmax(0,1fr) 260px;gap:16px}
.pf--mac .pf-mapa.is-zoom{grid-template-columns:minmax(0,1fr) 260px}
.pf--mac .pf-grupo__c{padding:0 12px 12px}


/* ── 12 · movimento reduzido (CSS e JS: o JS também olha matchMedia e escuta a troca) ── */
@media (prefers-reduced-motion:reduce){
  .pf *,.pf *::before,.pf *::after{animation:none!important;transition:none!important}
  .pf-mapa__c1{opacity:1;transform:none}
  .pf-pulso__d i,.pf-gaveta__c{opacity:1;transform:none}
}
.pf.reduz *,.pf.reduz *::before,.pf.reduz *::after{animation:none!important;transition:none!important}
.pf.reduz .pf-mapa__c1{opacity:1;transform:none}
.pf.reduz .pf-pulso__d i,.pf.reduz .pf-gaveta__c{opacity:1;transform:none}

/* ═══ PORTE (Claudemir, 23/10/2026) ═══════════════════════════════════════════════════════════════════
   [CÓPIA] fonte: docs/rodada_painel_fundador_2026-10-22/DO_JEAN_v3/painel_fundador_v3.css (inteiro, acima).
   [CONSTRUÇÃO] autorizada por Raphael («pode», 23/10) — os 4 ERROS do PARECER_DIRETOR_ARTE_v3.md:
   · o :root do molde vira .pf-tela (escopo da tela; não vaza pro app — o app tem --bg/--gold2 com outros valores no tema claro);
   · ERRO 1: .pf-corpo sem regra → espaçamento entre herói, recado, mostradores e grupos;
   · .pf-tela = a tela cheia que hospeda o painel (casca do app, não do desenho). z-index 10600: acima de toda camada de tela do app
     (C-1560, 23/10: com 9850 a .rn-ev fixa de 9997 — ficha_v4.css:821 — e outras até 10501 apareciam por cima, «duas telas misturadas»). */
.pf-tela{position:fixed;inset:0;z-index:10600;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background:#0a0806;overscroll-behavior:contain}
.pf-tela[hidden]{display:none}
/* C-1561 (23/10): sem o gesto de toque duplo do iOS — medido no Simulador (app instalado), um 2º toque rápido virava clique
   no botão do 1º toque (abrir Treinos e tocar «Ampliar» fechava a gaveta). Cada toque é um toque. */
.pf-tela{touch-action:manipulation}   /* vale pros descendentes (o efetivo é a interseção com os ancestrais); o arraste do zoom (.pf-zoom__graf: none) segue */
.pf-corpo{display:flex;flex-direction:column;gap:12px}
.pf--mac .pf-corpo{gap:16px}

/* [CÓPIA] fonte: DO_JEAN_v3/painel_fundador_v3_2026-10-23.html:806-810 — o Brasão-botão na Home */
.pf-brasao-btn{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;background:none;border-radius:50%;color:var(--gold);cursor:pointer;-webkit-tap-highlight-color:transparent}
.pf-brasao-btn::before{content:"";position:absolute;inset:-2px}
.pf-brasao-btn svg{display:block;width:48px;height:48px}
.pf-brasao-btn:active{color:var(--gold-hi)}
.pf-brasao-btn:focus-visible{outline:1px solid rgba(226,194,94,.6);outline-offset:4px}
/* [CONSTRUÇÃO] a saudação não passa por baixo do botão */
.hv-greet-wrap:has(.pf-brasao-btn){padding-right:56px}
.hv-greet-wrap .pf-brasao-btn{right:0;top:-6px}
