/* Camada de tokens — unica fonte de verdade de cor, tipografia, espaco e forma.
   Contraste WCAG verificado: ver spec 2026-07-25-redesign-plataforma-design.md.
   Nao adicionar seletor de elemento aqui. Apenas custom properties. */

:root {
  /* superficie */
  --bg: #0A0C0F;
  --surface-1: #111418;
  --surface-2: #171B21;
  --surface-3: #1E242C;
  --border: #232A33;
  --border-strong: #303945;

  /* texto — os tres niveis passam AA sobre bg, surface-1 e surface-2 nos dois
     temas. --text-3 deixou de ser "so para desabilitado": ver nota abaixo. */
  --text-1: #E7EAEE;
  --text-2: #9BA5B2;
  /* Escurecido para passar AA. O valor anterior (#6B7684) dava 4,24:1 sobre --bg
     e 3,74:1 sobre --surface-2 — e o token e usado como cor de TEXTO em 88 lugares,
     nao apenas em estado desabilitado como a spec previa. Agora 5,32:1 e 4,69:1.
     O custo e menos distancia visual de --text-2 (1,48 em vez de 1,85), aceito:
     texto legivel importa mais que hierarquia de cinza num produto de dados. */
  --text-3: #7C8695;

  /* acento — matiz ~192deg da logo, rebaixada para virar cor de interface */
  --accent: #0A7E94;
  --accent-hover: #0C93AC;
  --accent-text: #4FC3DC;
  --accent-subtle: #0B2A33;
  --accent-rgb: 10, 126, 148;

  /* estado */
  --success: #3FB27F;
  --warning: #D9A23D;
  --danger: #E5646A;

  /* fundo tenue de estado — para badge e faixa de status. Sem estes, sucesso,
     aviso e erro colapsam todos em --surface-2 e o estado deixa de se ler. */
  --success-subtle: #10261E;
  --warning-subtle: #2B2313;
  --danger-subtle: #2E1A1C;

  /* preenchimento SOLIDO de estado, para botao ou badge com texto branco.
     --success/--warning/--danger sao calibrados para TEXTO sobre fundo escuro e
     reprovam AA quando usados como fundo com branco por cima (2,66 / 2,29 / 3,30).
     Estes sao o mesmo hex nos dois temas, como --accent, e passam AA com branco. */
  --success-solid: #10784F;
  --warning-solid: #8A5D00;
  --danger-solid: #B4232A;

  /* estagios do funil (kanban): 5 matizes distintas, todas verificadas AA com
     --stage-text por cima. Nao reutilizar --success/--warning/--danger aqui:
     aqueles sao calibrados para texto, nao para fundo de header. */
  --stage-1: #5BB8CC;
  --stage-2: #D9A23D;
  --stage-3: #A79BD9;
  --stage-4: #E5646A;
  --stage-5: #3FB27F;
  --stage-text: #14181D;

  /* Funil do dashboard — ORDINAL, nao categorico. Etapa de funil e o exemplo
     canonico de dado ordinal: trocar a ordem muda o significado. A regra e uma
     matiz so com passos monotonos de luminosidade, para o leitor VER a ordem na
     cor. Os --stage-* acima sao 5 matizes distintas (tratamento categorico) e
     por isso NAO servem aqui — foi o erro que deixava os dois cards parecidos.
     No tema escuro a ancora inverte: etapa avancada fica mais CLARA, para seguir
     sendo a mais destacada contra a superficie.
     Validada com --ordinal: L monotona, ΔL >= 0.06 por passo, ponta clara >= 2:1,
     matiz unica (dispersao 8 graus). */
  --fun-1: #1C6E82;
  --fun-2: #248CA3;
  --fun-3: #3FA8BE;
  --fun-4: #63C1D3;
  --fun-5: #8AD6E4;

  /* Categorico para grafico — identidade, nao ordem. Ordem FIXA das matizes
     (teal, vermelho, violeta, verde, ambar): a ordem E o mecanismo de seguranca
     para daltonismo, e nao muda entre temas. Validada pelos seis checks:
     faixa de luminosidade, piso de croma, separacao sob protanopia e
     deuteranopia (Machado-Oliveira-Fernandes, severidade 1.0), piso de visao
     normal e contraste com a superficie. NAO reutilizar --stage-* aqui: o
     funil e ordinal, categoria de lead e nominal. */
  --cat-1: #2599B2;
  --cat-2: #C04A55;
  --cat-3: #8570CC;
  --cat-4: #3FAB7C;
  --cat-5: #BC8B2E;
  --cat-outras: #6B7480;

  /* tipografia */
  --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
  --fs-meta: 12px;
  --fs-body: 13px;
  --fs-section: 15px;
  --fs-page: 19px;
  --fs-kpi: 28px;
  --lh-body: 1.45;
  --lh-title: 1.25;

  /* espaco, base 4 */
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px;

  /* forma */
  --r-sm: 4px;
  --r: 6px;
  --r-lg: 8px;
  --h-control: 32px;

  /* sombra — permitida apenas em dropdown e modal */
  --shadow-pop: 0 8px 24px -6px rgba(0, 0, 0, 0.45);
  --transition: 0.15s cubic-bezier(0.4, 0, 0.2, 1);

  /* veu de modal. Antes eram 18 rgba(0,0,0,*) espalhados entre 0.3 e 0.7, sem
     criterio e sem reagir ao tema. Um valor so, e mais fraco no tema claro
     porque sobre fundo claro o mesmo alfa escurece demais. */
  --overlay: rgba(0, 0, 0, 0.6);
}

:root.light-theme {
  --bg: #F7F8FA;
  --surface-1: #FFFFFF;
  --surface-2: #F1F3F6;
  --surface-3: #E6E9EE;
  --border: #DFE3E9;
  --border-strong: #C4CBD4;
  --text-1: #14181D;
  --text-2: #5A6472;
  /* Mesmo motivo: #8A94A2 dava 2,89:1 sobre --bg. Agora 4,71:1 e 5,01:1. */
  --text-3: #667080;
  --accent: #0A7E94;          /* mesmo hex nos dois temas, de proposito */
  --accent-hover: #086A7D;
  --accent-text: #076B7E;
  --accent-subtle: #E4F4F8;
  --success: #10784F;
  --warning: #8A5D00;
  --danger: #B4232A;
  --success-subtle: #E6F4EE;
  --warning-subtle: #FBF2DF;
  --danger-subtle: #FBEAEB;
  --stage-1: #3FA3B8;
  --stage-2: #C98F28;
  --stage-3: #8B7DC9;
  --stage-4: #D9525A;
  --stage-5: #2E9E6B;
  --stage-text: #14181D;
  /* Passo proprio para o tema claro, nao um espelho do escuro: cada valor foi
     escolhido e revalidado contra a superficie clara. */
  --cat-1: #0F93AD;
  --cat-2: #A8323C;
  --cat-3: #7255C0;
  --cat-4: #38A071;
  --cat-5: #B0731F;
  --cat-outras: #667080;
  /* No claro a rampa corre no sentido oposto: etapa avancada fica mais ESCURA,
     que e o que se destaca sobre fundo claro. Mesmo significado, ancora virada. */
  --fun-1: #6FBFD1;
  --fun-2: #48A9BF;
  --fun-3: #2A8FA7;
  --fun-4: #12738D;
  --fun-5: #08566A;
  --shadow-pop: 0 8px 24px -6px rgba(0, 0, 0, 0.18);
  --overlay: rgba(0, 0, 0, 0.4);
}

/* ── Aliases de compatibilidade ──────────────────────────────────────────
   Os nomes antigos continuam resolvendo, para que styles.css, app.html e os
   arquivos JS sigam funcionando antes das tarefas 3 e 4. Cada alias sai
   quando o ultimo consumidor dele for migrado. Nao usar em codigo novo. */
:root, :root.light-theme {
  --surface: var(--surface-1);
  --surface2: var(--surface-2);
  --surface3: var(--surface-3);
  --text: var(--text-1);
  --text2: var(--text-2);
  --text-muted: var(--text-3);
  --border-hover: var(--border-strong);
  --accent2: var(--accent-text);
  --radius: var(--r);
  --radius-sm: var(--r-sm);
  --green: var(--success);
  --red: var(--danger);
  --blue: var(--accent-text);
  --yellow: var(--warning);
  --pink: var(--accent-text);
  --glass: var(--surface-1);
  --glass-border: var(--border);
  /* glow e sombra de card sao removidos do design: neutralizados, nao apagados */
  --accent-glow: transparent;
  --green-glow: transparent;
  --shadow-card: none;
}
