/* =========================================================================
   ConfiAI.adv — Product Design System · TOKENS
   Light premium · dense · derived from ConfiAI brand (navy + red)
   ========================================================================= */
/* AMD-2 (3.0.10): dependência de fonte EXTERNA removida — zero acesso de rede em runtime (CSP-safe, offline PASS).
   As famílias são resolvidas por local() (usadas se instaladas no host, sem rede) com fallback de sistema.
   Para restaurar a tipografia exata, o CC pode dropar woff2 em adv/fonts/ e acrescentar src url() same-origin. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:500 700;font-display:swap;src:local('Archivo'),local('Archivo SemiBold'),local('Archivo Medium');}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:local('DM Sans'),local('DMSans-Regular');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 600;font-display:swap;src:local('JetBrains Mono'),local('JetBrainsMono-Regular');}

:root {
  /* ---- Brand anchors ---- */
  --navy:   #233255;
  --red:    #cc263c;
  --rose:   #db6c7b;
  --pink:   #eab3ba;

  /* ---- Navy scale ---- */
  --navy-950:#111a2e; --navy-900:#16203a; --navy-800:#1c2843; --navy-700:#233255;
  --navy-600:#2d3e66; --navy-500:#3b4f7d; --navy-400:#5b6c95; --navy-300:#8794b3;
  --navy-200:#bcc5d8; --navy-100:#dde3ee; --navy-50:#eef1f7;

  /* ---- Red scale ---- */
  --red-700:#931525; --red-600:#b11f31; --red-500:#cc263c; --red-400:#db5061;
  --red-300:#e88592; --red-200:#f3b6bd; --red-100:#fadfe2; --red-50:#fdf1f3;

  /* ---- Cool neutrals (UI greys, navy-tinted) ---- */
  --c-0:#ffffff;  --c-25:#fbfcfe; --c-50:#f6f8fb; --c-75:#f1f4f9;
  --c-100:#e9edf4; --c-150:#dfe5ef; --c-200:#d3dae7; --c-300:#bcc5d6;
  --c-400:#97a2b8; --c-500:#6e798f; --c-600:#525c70; --c-700:#3c4456;
  --c-800:#283044; --c-900:#161d2c;

  /* ---- Semantic ---- */
  --ok:#1f8a5b;     --ok-bg:#e8f4ee;   --ok-bd:#bfe3d2;
  --warn:#b87914;   --warn-bg:#fbf1da;  --warn-bd:#ecd5a3;
  --crit:#cc263c;   --crit-bg:#fdecee;  --crit-bd:#f4c5cb;
  --info:#2a6fdb;   --info-bg:#e9f1fd;  --info-bd:#c2d8f7;
  --ai:#6b4fd1;     --ai-bg:#efebfb;    --ai-bd:#d4c8f3;   /* governed-AI accent (violet, distinct from brand) */

  /* ---- Funções sem token até 1.0.5 — decididas em 19/09/2026 ----
     A revisão de literais encontrou 4 cores fora da paleta que NÃO eram drift: eram FUNÇÕES
     sem valor nomeado. Três expõem a mesma lacuna estrutural — o DS não tinha a dimensão
     "sobre superfície escura", e o token claro correspondente não alcança contraste.
     Decisão por componente, fundo e estado, com contraste medido (WCAG 2.1). */

  /* SELECIONADO / VENCEDOR — passo atual da esteira, proposta vencedora, faixa do medidor.
     Componente: .sp-stp .s.cur · .qt2 .c.win · .sp-gauge .band .dot   Fundo: surface/sunken
     Uso: SUPERFÍCIE ou marcador, nunca cor de texto (2.14:1 sobre branco).
     Texto sobre ele usa --sel-ink: 6.83:1 (AA).
     Por que não --warn #b87914: "atenção" e "selecionado" são estados distintos. */
  --sel:#d3ab67;     --sel-ink:#1c2843;

  /* SUCESSO sobre fundo escuro — check do toast navy.
     Componente: .toast svg   Fundo: navy-800 #1c2843   Estado: confirmação
     9.30:1 (AAA). --ok #1f8a5b no mesmo fundo dá 3.38:1 — insuficiente. */
  --ok-on-dark:#7ee2a8;

  /* ACCENT DE IA sobre fundo escuro — chip de plano na entband.
     Componente: .entband .plano   Fundo: navy-800   Estado: informativo persistente
     3.76:1 (AA para não-texto). --ai #6b4fd1 no mesmo fundo dá 2.56:1. */
  --ai-on-dark:#8a6ee0;

  /* MARCADOR DE SEÇÃO — barra decorativa antes do sobretítulo.
     Componente: .*-eyebrow::before   Fundo: surface   Estado: decorativo, NÃO textual
     2.45:1 — aceitável por não ser texto. --info #2a6fdb (4.78:1) foi descartado:
     promoveria o marcador a destaque e mudaria a hierarquia da seção. */
  --mark:#7ea8e2;

  /* ---- Pipeline stage hues (harmonic) ---- */
  --st-lead:#6e798f; --st-qual:#2a6fdb; --st-meet:#0f9b8e;
  --st-prop:#cc263c; --st-contract:#b87914; --st-doc:#6b4fd1; --st-ops:#1f8a5b;

  /* ---- Roles ---- */
  --app-bg:    #e9edf4;
  --canvas:    #e9edf4;
  --surface:   #ffffff;
  --surface-2: #fafbfe;
  --sunken:    #f1f4f9;
  --line:      #e4e9f1;
  --line-2:    #d3dae7;
  --ink:       #1c2843;   /* primary text */
  --ink-2:     #525c70;   /* secondary */
  --ink-3:     #6e798f;   /* muted */
  --ink-4:     #97a2b8;   /* faint / placeholder */
  --primary:   #233255;   /* primary action */
  --accent:    #cc263c;   /* high-emphasis / brand pop */
  --focus:     rgba(204,38,60,.18);

  /* ---- Type ---- */
  --f-head: 'Archivo', 'Helvetica Neue', 'Segoe UI', system-ui, sans-serif;
  --f-ui:   'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --f-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  /* ---- Dense spacing (4px base) ---- */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px; --s10:40px; --s12:48px;

  /* ---- Radius (tight, premium) ---- */
  --r1:4px; --r2:6px; --r3:8px; --r4:10px; --r5:14px; --rp:999px;

  /* ---- Elevation (navy-tinted, subtle) ---- */
  --e1:0 1px 2px rgba(17,26,46,.06), 0 1px 1px rgba(17,26,46,.04);
  --e2:0 1px 3px rgba(17,26,46,.08), 0 4px 10px rgba(17,26,46,.06);
  --e3:0 6px 16px rgba(17,26,46,.10), 0 2px 6px rgba(17,26,46,.06);
  --e4:0 18px 48px rgba(17,26,46,.20);
  --ring:0 0 0 3px var(--focus);

  /* ---- Workspace accents (real product: Vender·Operar·Entregar·Governar) ---- */
  --ws-vender:#cc263c;   /* comercial — energia da marca */
  --ws-operar:#2a6fdb;   /* operação jurídica */
  --ws-entregar:#6b4fd1; /* entrega documental */
  --ws-governar:#0f9b8e; /* governança & finanças */

  /* ---- Layout metrics ---- */
  --nav-w:240px;
  --top-h:56px;
  --rail-w:336px;
  --rail-min:60px;
}

/* base */
*,*::before,*::after{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0; background:var(--app-bg); color:var(--ink);
  font-family:var(--f-ui); font-size:14px; line-height:1.5;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5{font-family:var(--f-head); font-weight:600; color:var(--ink); margin:0; line-height:1.2; letter-spacing:-.01em;}
p{margin:0;}
a{color:var(--accent); text-decoration:none;}
button{font-family:inherit;}
::selection{background:var(--red-100);}
.mono{font-family:var(--f-mono); font-variant-numeric:tabular-nums;}
.num{font-family:var(--f-mono); font-variant-numeric:tabular-nums;}

/* scrollbars */
*{scrollbar-width:thin; scrollbar-color:var(--c-300) transparent;}
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-thumb{background:var(--c-300); border-radius:99px; border:3px solid var(--surface);}
*::-webkit-scrollbar-thumb:hover{background:var(--c-400);}
