/* Diagnóstico AI-First — engine de assessment (B2AI Academy) */
/* Tokens mapeados para o Sistema Visual Único (b2ai-system.css).
   Linkar b2ai-system.css ANTES deste arquivo. O dark (#080C14 canônico) vem do
   sistema via html[data-theme="noturno"]; aqui só MAPEAMOS os nomes locais que o
   engine (diagnostico.js: radar SVG) e o layout consomem. As cores resolvidas
   permanecem equivalentes às originais para não quebrar o radar. */
:root{
  --background:var(--bg);          /* #FAFAFA */
  --card:var(--bg2);               /* #FFFFFF */
  --raised:var(--panel);
  --border:var(--line);
  --foreground:var(--ink);
  --heading:var(--ink);
  --muted-foreground:var(--mut);
  --primary:var(--link);
  --accent:var(--lime);            /* #A8F04B — fill/CTA/borda, nunca texto no claro */
  --on-accent:var(--cta-ink);
  /* eixos do radar / acentos cromáticos do engine.
     --green é lido pelo radar (stroke do polígono + pontos): mantido nos valores
     ORIGINAIS para não alterar a leitura visual do gráfico. */
  --blue:var(--link);
  --green:#3F8E5B;
  --orange:var(--warn);
  --purple:#6B4FA0;
}
/* fontes: o sistema já define --font-display/body/mono em :root; não redeclaramos
   aqui para evitar self-reference. O engine usa --font-display (Archivo), --font-body
   (Inter) e --font-mono (JetBrains Mono) herdados do b2ai-system.css. */
/* Overrides cosméticos de escuro (o resto do dark vem do sistema). Preserva os
   valores ORIGINAIS dos eixos cromáticos do radar/engine no tema noturno —
   especialmente --green (stroke/pontos do radar), que precisa de verde claro
   para ler bem sobre #080C14. */
html[data-theme="noturno"]{
  --green:#86D6A0;
  --blue:#7FB0EE;
  --purple:#B79FE0;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--background);color:var(--foreground);font-family:var(--font-body);font-size:calc(16px * var(--fs-scale,1));-webkit-font-smoothing:antialiased;transition:background .2s,color .2s;line-height:1.6}
::selection{background:var(--accent);color:var(--on-accent)}
a{color:inherit}
.top-nav{position:fixed;top:14px;left:16px;z-index:40}
.top-nav a{font-family:var(--font-mono);font-size:.62rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);text-decoration:none;background:var(--card);border:1px solid var(--border);border-radius:7px;padding:7px 12px}
.top-nav a:hover{border-color:var(--accent)}
.theme-toggle{position:fixed;top:14px;right:16px;z-index:40;font-family:var(--font-mono);font-size:.6rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);background:var(--card);border:1px solid var(--border);border-radius:7px;padding:7px 11px;cursor:pointer}
/* cluster de controles (A−/A+ + tema) — quando agrupados, o tema sai do fixed */
.dg-ctl{position:fixed;top:14px;right:16px;z-index:40;display:flex;align-items:center;gap:8px}
.dg-ctl .theme-toggle{position:static;top:auto;right:auto}
.dg-ctl .b2-fontctl button{font-family:var(--font-mono);background:var(--card);border:1px solid var(--border);color:var(--primary);border-radius:7px;width:30px;height:30px;cursor:pointer;font-size:.7rem}
.dg-ctl .b2-fontctl button:hover{border-color:var(--accent)}
main{max-width:680px;margin:0 auto;padding:5rem 1.4rem 5rem;min-height:100vh}
.kicker{font-family:var(--font-mono);font-size:.66rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:.9rem}
h1{font-family:var(--font-display);font-weight:700;color:var(--heading);font-size:clamp(1.8rem,4.5vw,2.6rem);letter-spacing:-.03em;line-height:1.1;margin-bottom:1rem}
.lead{font-size:1.1rem;color:var(--foreground);margin-bottom:1.4rem}
.lead b{color:var(--heading);font-weight:600}
.warn{border:1px solid var(--border);border-left:3px solid var(--orange);border-radius:12px;background:var(--card);padding:16px 18px;margin:1.4rem 0;font-size:.96rem;color:var(--foreground)}
.warn b{color:var(--heading)}
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);border:none;border-radius:10px;padding:14px 22px;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(.97)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn.ghost{color:var(--primary);background:transparent;border:1px solid var(--border)}
.btn.sm{padding:9px 14px;font-size:.64rem}
.btnrow{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:1.6rem}

/* progress */
.prog{display:flex;align-items:center;gap:12px;margin-bottom:2rem}
.prog .bar{flex:1;height:5px;border-radius:99px;background:var(--raised);overflow:hidden}
.prog .bar i{display:block;height:100%;background:var(--accent);transition:width .3s}
.prog .pc{font-family:var(--font-mono);font-size:.66rem;color:var(--muted-foreground);white-space:nowrap}

/* caso */
.field{margin-bottom:1.4rem}
.field label{display:block;font-family:var(--font-display);font-weight:600;color:var(--heading);font-size:1rem;margin-bottom:.6rem}
.areas{display:flex;flex-wrap:wrap;gap:9px}
.area{font-family:var(--font-body);font-size:.92rem;color:var(--foreground);background:var(--card);border:1px solid var(--border);border-radius:9px;padding:9px 14px;cursor:pointer}
.area.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);color:var(--heading)}
textarea,input[type=text],input[type=email]{width:100%;font-family:var(--font-body);font-size:1rem;color:var(--foreground);background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;resize:vertical}
textarea:focus,input:focus{outline:none;border-color:var(--accent)}

/* question */
.qnum{font-family:var(--font-mono);font-size:.66rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-bottom:.7rem}
.qtext{font-family:var(--font-display);font-weight:600;color:var(--heading);font-size:1.3rem;letter-spacing:-.01em;line-height:1.3;margin-bottom:1.5rem}
.opts{display:flex;flex-direction:column;gap:10px}
.opt{text-align:left;font-family:var(--font-body);font-size:1rem;color:var(--foreground);background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer;transition:border-color .12s,transform .06s;line-height:1.45}
.opt:hover{border-color:var(--accent);transform:translateY(-1px)}
.opt.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}

/* gate */
.consent{display:flex;align-items:flex-start;gap:9px;margin-top:1rem;font-size:.86rem;color:var(--muted-foreground)}
.consent input{margin-top:3px}

/* result */
.arch-card{border:1px solid var(--accent);border-radius:18px;background:linear-gradient(135deg,var(--raised),var(--card));padding:28px;margin-bottom:1.8rem;box-shadow:0 0 0 1px var(--accent)}
.arch-card .pre{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin-bottom:.6rem}
.arch-card .nm{font-family:var(--font-display);font-weight:700;color:var(--heading);font-size:2rem;letter-spacing:-.02em;line-height:1.05}
.arch-card .pat{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);margin-top:.4rem}
.arch-card .desc{font-size:1.02rem;color:var(--foreground);margin-top:1rem}
.radar-wrap{display:flex;justify-content:center;margin:1.4rem 0}
.radar-wrap svg{width:100%;max-width:380px;height:auto}
.rcard{border:1px solid var(--border);border-radius:14px;background:var(--card);padding:20px 22px;margin-bottom:1.2rem}
.rcard h3{font-family:var(--font-display);font-weight:600;color:var(--heading);font-size:1.1rem;margin-bottom:.5rem;display:flex;align-items:center;gap:9px}
.rcard p{font-size:1rem;color:var(--foreground)}
.rcard p b{color:var(--heading)}
.rcard .route-cta{display:inline-flex;gap:8px;margin-top:1rem;font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);border-radius:8px;padding:10px 15px;text-decoration:none}
.dimlist{display:flex;flex-direction:column;gap:8px;margin-top:.4rem}
.dimrow{display:grid;grid-template-columns:160px 1fr 28px;align-items:center;gap:12px;font-size:.9rem}
.dimrow .dn{color:var(--foreground)}
.dimrow .dt{height:7px;border-radius:99px;background:var(--raised);overflow:hidden}
.dimrow .dt i{display:block;height:100%;background:var(--primary)}
.dimrow .dv{font-family:var(--font-mono);font-size:.78rem;color:var(--muted-foreground);text-align:right}
.fomo .fintro{font-size:1rem;color:var(--foreground);margin-bottom:1.1rem}
.fomo .fintro b{color:var(--heading);font-weight:600}
.flad{display:flex;flex-direction:column;gap:9px}
.frow{border:1px solid var(--border);border-radius:12px;padding:13px 16px;background:var(--card)}
.frow .ftop{display:flex;align-items:center;justify-content:space-between;gap:10px}
.frow .fnm{font-family:var(--font-display);font-weight:600;color:var(--heading);font-size:1.02rem}
.frow .fbadge{font-family:var(--font-mono);font-size:.56rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:99px;border:1px solid var(--border);color:var(--muted-foreground);white-space:nowrap}
.frow .funlock{font-size:.93rem;color:var(--foreground);margin-top:.5rem}
.frow .fblind{font-size:.88rem;color:var(--muted-foreground);margin-top:.35rem}
.frow .fblind b{color:var(--orange);font-weight:500}
.frow.now{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.frow.now .fbadge{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.frow.next{background:linear-gradient(120deg,rgba(168,240,75,.07),transparent 70%)}
.frow.next .fbadge{color:var(--primary);border-color:var(--primary)}
.frow.done{opacity:.5;padding:10px 16px}
.frow.done .fnm{font-weight:500}
.fclose{font-size:1.02rem;color:var(--foreground);margin-top:1.2rem;line-height:1.55}
.fclose b{color:var(--heading)}
.share{font-family:var(--font-mono);font-size:.72rem;color:var(--muted-foreground);margin-top:1.4rem;text-align:center}
footer{max-width:680px;margin:3rem auto 0;padding:1.4rem;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:.72rem;color:var(--muted-foreground);text-align:center}
.fade{animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
