/* ToDash — tokens
 *
 * Copiados de "NotaLytics.dc.html" (o objeto `t` do renderVals), que é o
 * desenho de referência do Lucas. Os valores NÃO foram reinterpretados:
 * são os mesmos, transpostos de objeto JS para custom properties.
 *
 * Única adição: `--erro` / `--erro-tint`. O desenho original tem verde,
 * laranja e teal, mas nenhum vermelho — e o painel precisa distinguir
 * `erro` (permanente, sem botão que conserte) de `retido` (resolvível).
 * Construído pela mesma fórmula das outras: L 0.5 / C 0.13-0.16 no claro,
 * tint L 0.94 C 0.05; no escuro L 0.76 / tint L 0.32 C 0.06.
 */

:root {
  color-scheme: light;

  --bg:              oklch(0.98 0.005 250);
  --surface:         #ffffff;
  --surface-alt:     oklch(0.965 0.005 250);

  --text:            oklch(0.22 0.01 250);
  --text2:           oklch(0.45 0.01 250);
  --muted:           oklch(0.52 0.01 250);

  --border:          oklch(0.90 0.006 250);
  --border-soft:     oklch(0.94 0.006 250);
  --track:           oklch(0.95 0.006 250);

  --accent:          oklch(0.55 0.16 260);
  --accent-strong:   oklch(0.45 0.16 260);
  --accent-tint:     oklch(0.94 0.03 260);
  --accent-tint-soft:oklch(0.95 0.01 260);
  --accent-border:   oklch(0.90 0.03 260);
  --dash-border:     oklch(0.85 0.02 260);
  --dropzone-bg:     oklch(0.97 0.008 260);

  --inverse:         oklch(0.16 0.02 260);
  --inverse-text2:   oklch(0.82 0.02 260);
  --inverse-muted:   oklch(0.75 0.02 260);
  --inverse-border:  oklch(0.28 0.02 260);

  --green:           oklch(0.5 0.15 150);
  --green-tint:      oklch(0.93 0.05 150);
  --orange:          oklch(0.5 0.13 30);
  --orange-tint:     oklch(0.94 0.05 30);
  --teal:            oklch(0.5 0.13 195);
  --teal-tint:       oklch(0.93 0.05 195);
  --erro:            oklch(0.5 0.16 25);
  --erro-tint:       oklch(0.94 0.05 25);

  --logo-tile:       oklch(0.18 0.025 260);
  --logo-bar:        #ffffff;

  --sombra-aba:      0 1px 3px oklch(0.2 0.01 250 / 0.12);
  --sombra-cartao:   0 30px 70px -24px oklch(0.2 0.01 250 / 0.16);

  --fonte-display: 'Space Grotesk', sans-serif;
  --fonte-texto:   'IBM Plex Sans', sans-serif;

  /* ---- 2026-09-24, redesenho do painel (F0) — SÓ acréscimos; nenhum valor acima mudou.
     Espaço, raio e tipo viram token porque hoje estão escritos 30+ vezes em todash.css e a
     densidade escolhida pelo Lucas ("Médio": 18px de borda interna, título 14px) só é uma
     decisão se morar num lugar. As fatias F1–F5 aplicam; F0 só declara. */
  --esp-1: 4px; --esp-2: 8px; --esp-3: 12px; --esp-4: 16px;
  --esp-5: 20px; --esp-6: 24px; --esp-8: 32px;
  --raio-cartao:   14px;
  --raio-controle: 8px;
  --raio-marca:    4px;
  --tipo-hero:           28px;
  --tipo-kpi:            28px;   /* decisão 1: número do cartão 23 → 28px */
  --tipo-titulo-cartao:  14px;   /* decisão 3, "Médio" (era 15.5px) */
  --tipo-corpo:          13px;
  --tipo-eixo:           11px;
  --cartao-pad:          18px;   /* decisão 3, "Médio" (era 24px) */
  --movimento-entrada: 400ms cubic-bezier(0.05, 0.7, 0.1, 1);

  /* Paleta categórica de rosca/empilhado (as ESPÉCIES de imposto), por POSIÇÃO (corDaFatia em
     js/grafico.js). 6º item em diante vira "Outros" (--serie-resto): nunca se gera uma 6ª cor.
     ⚠️ 2026-10-27: trocada para NÃO usar o azul das Saídas nem o âmbar das Entradas (--cor-saidas,
     --cor-entradas, abaixo) — antes o verde-água era "Entradas" E a 3ª fatia E "Notas por dia".
     Verde-água, roxo, vermelho, verde, magenta, nesta ordem; validada com
     dataviz/scripts/validate_palette.js contra #ffffff: PASS nos cinco testes, sem aviso. */
  --serie-1:     oklch(0.64 0.11 192);
  --serie-2:     oklch(0.48 0.16 305);
  --serie-3:     oklch(0.48 0.17 20);
  --serie-4:     oklch(0.60 0.14 145);
  --serie-5:     oklch(0.48 0.16 350);
  --serie-resto: oklch(0.80 0.01 250);

  /* As cores dos DOIS LADOS (2026-10-27): Saídas no azul da marca, Entradas em âmbar — o par azul ×
     laranja é o que mais se separa para quem não distingue vermelho de verde. Validadas como par com
     dataviz/scripts/validate_palette.js (claro contra #ffffff, escuro contra #15181f): PASS. */
  --cor-saidas:   oklch(0.55 0.16 260);
  --cor-entradas: oklch(0.62 0.14 60);

  /* Escala SEQUENCIAL do mapa do Brasil (aba Empresas): uma matiz só, a do --accent (260), cinco
     faixas do fraco ao forte — decisão do Lucas, 2026-10-26 (azul, "mapa de verdade + lista").
     Validada como escala ordinal com dataviz/scripts/validate_palette.js --ordinal contra #ffffff:
     claridade monótona, folga ≥ 0,06 entre faixas, e a faixa mais fraca a 2,18:1 do fundo — a
     primeira versão (L 0.80) ficava a 1,82:1 e sumia no branco. --seq-vazio é UF SEM nota: lacuna,
     não zero, e por isso não é a faixa mais fraca. */
  --seq-1:     oklch(0.755 0.085 260);
  --seq-2:     oklch(0.665 0.115 260);
  --seq-3:     oklch(0.57 0.135 260);
  --seq-4:     oklch(0.475 0.14 260);
  --seq-5:     oklch(0.38 0.125 260);
  --seq-vazio: var(--track);
  /* A mesma escala nas ENTRADAS, no âmbar do lado (--cor-entradas, matiz ~60) — 2026-10-27: o mapa
     das entradas saía no azul das saídas. Mesmas claridades da azul; a matiz desce de 62 a 52 no
     escuro porque o âmbar de baixa claridade só cabe no sRGB puxado para o laranja. Validada com
     dataviz/scripts/validate_palette.js --ordinal --mode light contra #ffffff: monótona, folga ≥ 0,06,
     faixa mais fraca a 2,24:1 do fundo, matiz espalhada em 13°. (Sem --ordinal o validador a reprova
     por ser categórico — a azul de cima também reprova lá; não é a régua de escala sequencial.) */
  --seq-entrada-1: oklch(0.755 0.10 62);
  --seq-entrada-2: oklch(0.665 0.125 60);
  --seq-entrada-3: oklch(0.57 0.135 58);
  --seq-entrada-4: oklch(0.475 0.125 55);
  --seq-entrada-5: oklch(0.38 0.105 52);

  /* Radar (2026-11-03). IDENTIDADE de cada aviso: A1 verde-água (--serie-1), A2 roxo-magenta e A3
     o azul das vendas (--cor-saidas, porque o A3 fala de venda). O A2 não usa --serie-2 (roxo 305):
     ao lado do azul ele reprovou no validador (ΔE normal 14,2 < 15). Com a matiz em 320, o trio
     passou em dataviz/scripts/validate_palette.js --pairs all: claro contra #fcfcfb sem aviso;
     escuro contra #15181f com um aviso de daltonismo (ΔE 6,5, faixa permitida com codificação
     secundária: cada cartão tem ícone e nome do tipo). GRAVIDADE (alta, média) é estado, não série:
     vermelho = --erro e um âmbar próprio, sempre com forma e texto no selo. */
  --radar-a1: var(--serie-1);
  --radar-a2: oklch(0.48 0.16 320);
  --radar-a3: var(--cor-saidas);
  --radar-alta: var(--erro);
  --radar-alta-tint: var(--erro-tint);
  --radar-media: oklch(0.52 0.12 65);
  --radar-media-tint: oklch(0.95 0.05 80);
}

/* O desenho de referência tem tema escuro completo e um botão de alternância
   na barra. Estes são os valores dele, não uma versão minha. */
:root[data-tema="escuro"] {
  color-scheme: dark;

  --bg:              oklch(0.17 0.012 260);
  --surface:         oklch(0.21 0.014 260);
  --surface-alt:     oklch(0.245 0.015 260);

  --text:            oklch(0.96 0.004 250);
  --text2:           oklch(0.82 0.008 250);
  --muted:           oklch(0.66 0.01 250);

  --border:          oklch(0.31 0.014 260);
  --border-soft:     oklch(0.27 0.014 260);
  --track:           oklch(0.29 0.014 260);

  --accent:          oklch(0.70 0.15 260);
  --accent-strong:   oklch(0.80 0.12 260);
  --accent-tint:     oklch(0.31 0.05 260);
  --accent-tint-soft:oklch(0.28 0.03 260);
  --accent-border:   oklch(0.36 0.06 260);
  --dash-border:     oklch(0.38 0.04 260);
  --dropzone-bg:     oklch(0.24 0.02 260);

  --inverse:         oklch(0.13 0.015 260);
  --inverse-text2:   oklch(0.86 0.02 260);
  --inverse-muted:   oklch(0.72 0.02 260);
  --inverse-border:  oklch(0.30 0.02 260);

  --green:           oklch(0.74 0.15 150);
  --green-tint:      oklch(0.30 0.06 150);
  --orange:          oklch(0.76 0.14 40);
  --orange-tint:     oklch(0.32 0.06 40);
  --teal:            oklch(0.72 0.12 195);
  --teal-tint:       oklch(0.30 0.06 195);
  --erro:            oklch(0.76 0.15 25);
  --erro-tint:       oklch(0.32 0.06 25);

  --sombra-aba:      0 1px 3px oklch(0 0 0 / 0.4);
  --sombra-cartao:   0 30px 70px -24px oklch(0 0 0 / 0.5);

  /* Paleta categórica no escuro — passos próprios, validados contra a superfície escura (#15181f);
     não é inversão automática do claro. 2026-10-27: PASS, com um aviso de daltonismo entre verde e
     vermelho vizinhos (ΔE 7,8, faixa permitida com legenda) — a rosca e o empilhado têm legenda com
     nome, dica e a tabela do leitor de tela. */
  --serie-1:     oklch(0.60 0.10 192);
  --serie-2:     oklch(0.55 0.15 305);
  --serie-3:     oklch(0.55 0.16 20);
  --serie-4:     oklch(0.64 0.13 145);
  --serie-5:     oklch(0.55 0.15 350);
  --serie-resto: oklch(0.45 0.01 250);

  --cor-saidas:   oklch(0.66 0.14 260);
  --cor-entradas: oklch(0.66 0.13 60);

  /* Escala do mapa no escuro: a ÂNCORA INVERTE — valor baixo encosta no fundo, valor alto acende.
     Passos próprios, não inversão do claro. Validada com --ordinal contra #15181f: a faixa mais
     fraca a 2,09:1 do fundo (com --seq-1 em L 0.42).
     2026-10-26: --seq-1 subiu de L 0.42 para 0.47 (e --seq-2 de 0.52 para 0.55) — a 0.42 o estado
     de pouco movimento mal se distinguia de --seq-vazio (--track, L 0.29), e "pouco" parecia
     "nada". Mesma matiz azul (260). O contraste NÃO foi re-medido com o validador nesta troca. */
  --seq-1:     oklch(0.47 0.10 260);
  --seq-2:     oklch(0.55 0.115 260);
  --seq-3:     oklch(0.63 0.13 260);
  --seq-4:     oklch(0.74 0.13 260);
  --seq-5:     oklch(0.86 0.10 260);
  --seq-vazio: var(--track);
  /* Âmbar das entradas no escuro, âncora invertida como a azul. Validada com --ordinal --mode dark
     contra #15181f (a superfície escura): monótona, folga ≥ 0,06, faixa mais fraca a 2,51:1. */
  --seq-entrada-1: oklch(0.47 0.10 55);
  --seq-entrada-2: oklch(0.55 0.115 58);
  --seq-entrada-3: oklch(0.63 0.13 60);
  --seq-entrada-4: oklch(0.74 0.13 63);
  --seq-entrada-5: oklch(0.86 0.10 68);
  --radar-a2: oklch(0.58 0.15 320);
  --radar-media: oklch(0.82 0.13 78);
  --radar-media-tint: oklch(0.32 0.06 72);
}
