/* @koryz/tokens — a linguagem visual comum da Koryz (Koryz Ops e koryz.com).
 *
 * Só variáveis CSS. Nada de seletor de página aqui: cada app escreve o próprio CSS usando estes nomes.
 * Os mesmos valores existem em JS (index.js); o teste do pacote confere que os dois dizem igual.
 *
 * Regras:
 * - Noite primeiro: fundo quase preto, texto claro. Cor só onde carrega sentido (papel, estado, classe).
 * - Contraste AA: todo token de texto passa 4,5:1 sobre --preto, --preto-1, --preto-2 e --preto-3
 *   (o teste mede). Linha de foco passa 3:1.
 * - Fontes do sistema. "Instrument Sans", "Jost" e "Instrument Serif" (as do site) entram primeiro na
 *   lista: se o aparelho ou a página já tiver, usa; senão cai na fonte do sistema. Nenhum arquivo de
 *   fonte é baixado daqui (ver README, "Fontes").
 * - Movimento: com prefers-reduced-motion: reduce, toda duração vira 0 e --movimento vira 0.
 *   As animações contínuas ficam nos apps, sempre dentro de (prefers-reduced-motion: no-preference).
 */

:root {
  color-scheme: dark;

  /* ---------- Fundo e camadas (a noite) ---------- */
  --preto: #0a0a0b;
  --preto-1: #111113;
  --preto-2: #18181b;
  --preto-3: #202023;
  --grafite: #2b2b2f;
  --vidro: rgba(17, 17, 19, 0.72);
  --vidro-forte: rgba(10, 10, 11, 0.9);
  --brilho-noite: rgba(210, 210, 220, 0.08);
  --superficie: linear-gradient(180deg, rgba(14, 15, 17, 0.94), rgba(6, 7, 9, 0.94));
  --superficie-borda: rgba(255, 255, 255, 0.09);

  /* ---------- Texto ---------- */
  --branco: #ededef;
  --branco-puro: #ffffff;
  --prata-clara: #a6a6ad;
  --prata: #9c9ca3;
  --rotulo: #8a8a91;

  /* ---------- Linhas e foco ---------- */
  --linha-fina: rgba(255, 255, 255, 0.06);
  --linha: rgba(255, 255, 255, 0.14);
  --linha-forte: rgba(255, 255, 255, 0.32);
  --linha-foco: #c9c9cf;

  /* ---------- Nomes do site (mesmos valores) ---------- */
  --fundo: var(--preto);
  --camada: var(--preto-1);
  --camada-2: var(--preto-2);
  --texto: var(--branco);
  --linha-fraca: var(--linha-fina);

  /* ---------- Acento: a luz fria das cidades à noite ---------- */
  --acento: #e8f6ff;

  /* ---------- Os 7 papéis (o papel é o nome) ---------- */
  --papel-orchestrator: #7fe7ff;
  --papel-orchestrator-2: #ffffff;
  --papel-dev: #3d8bff;
  --papel-reviewer: #a26bff;
  --papel-architect: #2ed3c0;
  --papel-finance: #f5b544;
  --papel-design: #ff3fa4;
  --papel-scrible: #f0564f;
  --papel-scrible-2: #d8b25a;

  /* ---------- Os 9 estados e o "sem fonte" (sempre com rótulo em texto ao lado) ---------- */
  --estado-idle: #9c9ca3;
  --estado-working: #5af18c;
  --estado-thinking: #b9a6ff;
  --estado-discussing: #ff9ecf;
  --estado-reviewing: #85c0ec;
  --estado-alert: #fccd66;
  --estado-blocked: #ff6b6b;
  --estado-celebrating: #fff1b8;
  --estado-walking: #d0d6e0;
  --estado-sem_fonte: #8a8a91;

  /* Famílias de tom (INFO_ESTADOS[estado].tom em @koryz/agentes). O tom "papel" usa a cor do papel. */
  --tom-neutro: var(--prata);
  --tom-atencao: var(--estado-alert);
  --tom-perigo: var(--estado-blocked);
  --tom-sucesso: var(--estado-celebrating);

  /* ---------- Saúde de sistema ---------- */
  --saude-ok: var(--estado-working);
  --saude-atencao: var(--estado-alert);
  --saude-fora: var(--estado-blocked);
  --saude-sem_fonte: var(--estado-sem_fonte);

  /* ---------- Classe do dado e nível de quem vê ---------- */
  --classe-operational: var(--rotulo);
  --classe-confidential: #e6b98a;
  --nivel-dono: #ededef;
  --nivel-socia: #ffd9a8;
  --nivel-operacao: #8fd8ff;
  --nivel-agente: #9ff0c8;

  /* ---------- Tipografia ---------- */
  --fonte-texto: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --fonte-rotulo: "Jost", "Futura PT", Futura, "Century Gothic", "Avenir Next", ui-sans-serif, system-ui, sans-serif;
  --fonte-serifa: "Instrument Serif", "Iowan Old Style", Charter, "Bitstream Charter", "Palatino Linotype", Palatino, Georgia, serif;
  --fonte-mono: "DM Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
  --fonte-sans: var(--fonte-texto);
  --texto-xs: 11px;
  --texto-s: 12.5px;
  --texto-m: 14px;
  --texto-base: 15px;
  --texto-l: 17px;
  --texto-xl: 22px;
  --titulo: clamp(30px, 6.4vw, 46px);
  --altura-linha: 1.45;
  --altura-linha-titulo: 1.05;
  --espaco-rotulo: 0.28em;
  --espaco-chip: 0.14em;

  /* ---------- Espaços ---------- */
  --espaco-1: 4px;
  --espaco-2: 8px;
  --espaco-3: 12px;
  --espaco-4: 16px;
  --espaco-5: 20px;
  --espaco-6: 24px;
  --espaco-7: 32px;
  --espaco-8: 48px;
  --espaco: 16px;
  --margem: clamp(16px, 3.9vw, 56px);
  --alvo-toque: 44px;

  /* ---------- Raios ---------- */
  --raio-p: 6px;
  --raio: 8px;
  --raio-g: 12px;
  --raio-pilula: 999px;

  /* ---------- Sombras ---------- */
  --sombra-cartao: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 16px 32px -24px rgba(0, 0, 0, 0.9);
  --sombra-flutuante: 0 18px 40px rgba(0, 0, 0, 0.6);
  --sombra-destaque: 0 0 0 1px rgba(255, 255, 255, 0.08), 0 0 22px -6px rgba(255, 255, 255, 0.3);

  /* ---------- Movimento ---------- */
  --curva: cubic-bezier(0.2, 0.7, 0.2, 1);
  --curva-saida: cubic-bezier(0.4, 0, 0.6, 1);
  --curva-entrada: cubic-bezier(0.16, 1, 0.3, 1);
  --curva-respira: cubic-bezier(0.45, 0, 0.55, 1);
  --dur-rapida: 120ms;
  --dur: 240ms;
  --dur-lenta: 480ms;
  --dur-brilho: 1200ms;
  --dur-passo: 1600ms;
  --dur-balanco: 1800ms;
  --dur-piscar: 2000ms;
  --dur-pensar: 2400ms;
  --dur-pulso: 3200ms;
  --tempo: var(--dur);
  --movimento: 1;

  /* ---------- Camadas ---------- */
  --z-topo: 20;
  --z-busca: 40;
  --z-pular: 50;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-rapida: 0ms;
    --dur: 0ms;
    --dur-lenta: 0ms;
    --dur-brilho: 0ms;
    --dur-passo: 0ms;
    --dur-balanco: 0ms;
    --dur-piscar: 0ms;
    --dur-pensar: 0ms;
    --dur-pulso: 0ms;
    --movimento: 0;
  }
}
