/* GERADO por ds/scripts/build.mjs a partir de src/app/globals.css, do commit a7ae40a.
   Não edite aqui: edite a fonte e rode o script de novo. */
/* Os tokens do CRM da Encore Data. Uma folha, sem dependência de framework:
   importe esta antes de qualquer outra e nenhum componente precisa inventar valor. */

:root {
  /* base */
  --ink-900: #1A1A1A;
  --ink-800: #1C1C1C;
  --ink-700: #333333;
  --ink-500: #4A4A4A;
  --ink-400: #5E5E5E;
  --ink-300: #5E5E5E;
  --ink-250: #646464;
  --ink-200: #646464;
  --ink-150: #C9C9C9;
  /* ⭐ A escala neutra é QUENTE desde 24/09/2026 (opção A do `cores-claras-v01`, e o conserto da
     mesma noite: *"você não ajustou o design system de forma que considerasse as consequências de
     deixar os boxes brancos"*). O cinza frio de antes, ao lado do card branco e da página areia, fazia
     cada uso direto de `--gray-*` parecer de outro sistema. Uma escala só, monotônica, do mais escuro
     ao mais claro; os degraus que a tela usa estão na escada de superfície logo abaixo. */
  --gray-400: #D4D4D0;
  --gray-300: #DDDDD9;
  --gray-250: #E3E3E0;
  --gray-200: #EAEAE7;
  --gray-150: #ECECE8;
  --gray-100: #F2F2EF;
  --gray-50: #F7F7F5;
  --gray-25: #FAFAF9;
  --white: #FFFFFF;
  --lime-500: #CDF56A;
  --lime-400: #DDFF85;

  /* ── Espectro (21/09/2026) ────────────────────────────────────────────────
     ⛔ Antes daqui a tela tinha DUAS cores — tinta e lime — e tudo o mais era cinza: o estado,
     a série do gráfico, o que espera você e o que espera o mundo liam igual. O espectro nasce
     com a disciplina do Riff: cada família tem TRÊS papéis e não se usa fora deles.

       ·  `soft` é fundo de etiqueta e de superfície pequena;
       ·  `ink` é texto e glifo — sobre `soft`, sobre o card e sobre a página;
       ·  `forte` é barra, curva e trilho, e é o único que precisa se separar do fundo.

     Os pares de TEXTO passam 4,5:1 nos quatro fundos do produto e os `forte` passam 3:1 contra
     o card (medido em 21/09/2026). O lime `#CDF56A` continua sendo o acento da marca: ele não
     passa 3:1 contra o card, e por isso barra lime SEMPRE carrega o valor escrito.

     ⛔ Cor codifica ESTADO e SÉRIE. Canal não tem cor — quem diz o canal é o glifo. */
  --lime-soft: #E7FBBE;
  --lime-ink: #3F5410;
  --lime-forte: #6E8C14;

  --azul-500: #58B9FF;
  --azul-soft: #D8EBFA;
  --azul-ink: #0F5687;
  --azul-forte: #1476BE;

  --ambar-500: #F7A55E;
  --ambar-soft: #FAE3CB;
  --ambar-ink: #7A4310;
  --ambar-forte: #C86A12;

  --coral-500: #FF8F8F;
  --coral-soft: #FADADA;
  --coral-ink: #8E2B2B;
  --coral-forte: #CE3E3E;

  --violeta-500: #B9A6E8;
  --violeta-soft: #E4DDF8;
  --violeta-ink: #4C3596;
  --violeta-forte: #6F52B8;

  /* semântico
     ⭐ A ESCADA DE SUPERFÍCIE (24/09/2026). Cada degrau se separa do vizinho, e é essa a regra que o
     card branco quebrou quando só os degraus de cima mudaram:
       0 · página ............ `--bg-page`        #ECECE8
       1 · card .............. `--surface-card`   #FFFFFF
       2 · dentro do card .... `--surface-inset` (área) e `--surface-control` (controle, campo)
       3 · dentro do degrau 2  `--surface-control-on-card`, e o ponteiro sobre o controle
     ⛔ Controle que mora sobre a PÁGINA (a casca) não é degrau 2: a casca troca o token para o
     branco do card (`.topo`, `.pe`). E card clicável responde subindo um degrau, nunca ficando igual. */
  --bg-page: var(--gray-150);
  --surface-card: var(--white);
  --surface-inset: var(--gray-50);
  --surface-control: var(--gray-100);
  --surface-control-hover: var(--gray-200);
  --surface-control-on-card: var(--gray-200);
  --surface-dark: var(--ink-800);
  /* ⛔ 21/09/2026 (Alex): "hover em botão preto não está fazendo nada visível". Ele ia de
     #1C1C1C para #000000 — 28 pontos de luminância que a régua aprovava e o olho não via, porque
     escurecer o que já é quase preto não muda a leitura. Superfície escura CLAREIA no ponteiro. */
  --surface-dark-hover: var(--ink-700);
  --surface-dark-elevated: var(--ink-700);
  /* ⭐ 21/09/2026 (Alex): *"use o verde como cor característica e presente, ao invés de só
     detalhe — é um diferencial nosso"*. O lime vira CAMPO na tela que não tem dado para ler: a
     entrada, a recompensa, a tela de boas-vindas. ⛔ Não vale em tela de dado, onde ele continua
     sendo acento e disputaria com o significado das cinco famílias do espectro.
     Sobre o campo lime o texto é TINTA: `--ink-800` dá 9,7:1 e `--ink-700` dá 8,0:1. */
  --surface-brand: var(--lime-500);
  --text-on-brand: var(--ink-800);
  --text-on-brand-muted: var(--ink-700);
  --accent: var(--lime-500);
  --accent-hover: var(--lime-400);

  /* Estado: o que a etiqueta quer dizer, e não a cor que alguém escolheu na hora.
     espera-voce = a decisão é sua · programado = já tem hora · espera-mundo = depende de fora
     risco = caiu, falhou ou saiu · automatico = roda sozinho · guardado = não está em jogo */
  --estado-espera-voce-bg: var(--accent);
  --estado-espera-voce-ink: var(--ink-900);
  --estado-programado-bg: var(--azul-soft);
  --estado-programado-ink: var(--azul-ink);
  --estado-espera-mundo-bg: var(--ambar-soft);
  --estado-espera-mundo-ink: var(--ambar-ink);
  --estado-risco-bg: var(--coral-soft);
  --estado-risco-ink: var(--coral-ink);
  --estado-automatico-bg: var(--violeta-soft);
  --estado-automatico-ink: var(--violeta-ink);
  --estado-guardado-bg: var(--surface-control-on-card);
  --estado-guardado-ink: var(--text-secondary);

  /* Escolhido e recomendado: os dois estados que o cinza não sabia dizer. */
  --sel-anel: var(--ink-900);
  --sel-bg: var(--lime-soft);
  /* O visto é TINTA sobre lime: disco de acento em cima de fundo de acento não se separa. */
  --sel-selo-bg: var(--ink-900);
  --sel-selo-ink: var(--accent);
  --rec-ink: var(--lime-ink);
  --rec-bg: var(--lime-soft);
  --rec-borda: #BCDE86;

  /* Série de gráfico, na ordem em que entra. Os cinco passam 3:1 contra o card. */
  --serie-1: var(--ink-800);
  --serie-2: var(--azul-forte);
  --serie-3: var(--violeta-forte);
  --serie-4: var(--ambar-forte);
  --serie-5: var(--coral-forte);
  --serie-6: var(--lime-forte);

  /* ⛔ Três tons, e os três passam 4,5:1 sobre o card (medido contra #F1F1F1 em 21/09/2026, e o card branco de 24/09 só sobe a razão: a escala
     anterior ia de 2,49 a 3,80 e era exatamente onde moravam a régua, a fonte e a unidade —
     o texto que sustenta a credibilidade do número). O quaternário não existe mais: se o texto
     merece estar na tela, merece ser lido. */
  --text-primary: var(--ink-900);
  --text-secondary: var(--ink-300);
  --text-tertiary: var(--ink-250);
  --text-quaternary: var(--ink-250);
  --text-nav: var(--ink-500);
  --text-on-dark: var(--white);
  --text-on-dark-muted: var(--ink-150);
  --text-on-accent: var(--ink-900);

  --border-divider: var(--gray-200);
  --border-outline: var(--gray-400);
  --track: var(--gray-250);
  --bar-neutral: var(--gray-250);
  --bar-hatch: #8A8A8A;
  --hatch: repeating-linear-gradient(135deg, rgba(138,138,138,.35) 0 1px, transparent 1px 5px);

  /* tipografia */
  --font-sans: var(--font-onest), -apple-system, "Helvetica Neue", sans-serif;
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;

  --text-display: 38px;
  --text-stat-xl: 28px;
  --text-stat-lg: 26px;
  --text-stat-md: 22px;
  --text-title: 18px;
  --text-card-title: 17px;
  --text-body: 14px;
  --text-ui: 13px;
  --text-caption: 12px;
  --text-micro: 11px;

  --tracking-tight: -0.02em;

  /* espaço */
  --space-1: 4px;  --space-2: 6px;  --space-3: 8px;  --space-4: 10px;
  --space-5: 12px; --space-6: 14px; --space-7: 16px; --space-8: 18px;
  --space-9: 20px; --space-10: 24px; --space-12: 32px;

  --radius-pill: 999px;
  --radius-card: 24px;
  --radius-card-sm: 22px;
  --radius-inset: 18px;
  --radius-tile: 14px;
  --radius-bar: 12px;
  /* A célula de dia do seletor de período: 30 px de lado, e 12 já a deixaria redonda demais. */
  --radius-celula: 8px;
  --radius-track: 3px;

  --control-h: 40px;
  --control-h-sm: 36px;
  --control-h-xs: 28px;

  /* ── Movimento (21/09/2026) ───────────────────────────────────────────────
     ⛔ Gatilho (Alex): *"vários botões não estão reagindo ao hover ou ao clique, ou o hover é tão
     discreto que não aparece. Faltam motions, animações e reações."* A casa não tem sombra, então
     a resposta ao ponteiro é COR e DESLOCAMENTO, e a resposta ao clique é o afundar de 1 px.
     Duas curvas e nada mais: entrada desacelera, saída acelera. Nada infinito. */
  --dur-toque: 110ms;
  --dur-cor: 140ms;
  --dur-mover: 200ms;
  --dur-gaveta: 180ms;
  --dur-entrada: 260ms;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --ease-saida: cubic-bezier(.4, 0, 1, 1);

  --page-max: 1520px;
  --page-pad-x: 28px;
  --grid-gap: 12px;
  --card-pad: 24px;

  /* ── Camada (21/09/2026) ──────────────────────────────────────────────────
     ⛔ A casa não tem sombra, então a CAMADA é o único recurso para dizer o que está por cima —
     e era justamente ela que não estava declarada: quatro `z-index` soltos (2, 40, 50, 60) em
     quatro arquivos, cada um escolhido na hora. Quatro degraus, e o nome diz o papel:

       acima   → o que sobe dentro do próprio bloco (a etiqueta sobre a capa)
       gaveta  → menu, seleção, balão do "i": abre e fecha com o registro de gavetas
       sobre   → o que cobre a gaveta (o calendário do período, que nasce dentro de uma)
       fixo    → a barra do topo, que fica enquanto a página rola  */
  --z-acima: 2;
  --z-gaveta: 40;
  --z-sobre: 50;
  --z-fixo: 60;
}
