/* ============================================================
   GC AUTOMATIONS · DESIGN TOKENS · v5 "Folha de especificação"
   Espelho exato de tokens.json (formato W3C). Fonte de justificativa:
   DNA-MARCA.md (Etapas 3, 9, 10, 13) e design-system.md.
   Decidido pelo Designer de Sistemas por delegação do Gabriel, 09/09/2026.

   Substitui o tokens.css v4 (jun/2026) no repositório do site: os nomes
   --gc-* sobrevivem onde o conceito sobrevive; conceito novo ganha nome
   novo; nome antigo de conceito reaproveitado vira alias (marcado).
   Nunca hardcode hex ou medida: sempre var(--gc-*).

   Não existe @media (prefers-color-scheme: dark): dark nunca é base na GC.
   A âncora escura é um contexto (a tela vista à noite) e entra por escopo:
   [data-gc-surface="ink"] ou .gc-anchor, no fim deste arquivo.
   ============================================================ */

:root {
  /* ---------- COR · o papel (base clara, intocável) ---------- */
  --gc-paper:        #FBFAF8;  /* a folha do caderno de regras e da especificação */
  --gc-paper-2:      #F2F0EA;  /* faixa, card leve; fundo do estado "recusado" */
  --gc-paper-3:      #EAE7DF;  /* bloco vazio, thumb; texto faint não entra aqui */

  /* ---------- COR · a tinta e o chrome (âncora, nunca base) ---------- */
  --gc-ink:          #15171C;  /* a tela vista à noite; fundo do símbolo quando é tela */
  --gc-ink-2:        #1E222B;  /* tile dentro da âncora */
  --gc-ink-chrome:   #101216;  /* barra de topo do chrome de app */

  /* ---------- COR · texto sobre claro ---------- */
  --gc-text:         #191B21;  /* a palavra escrita; 16.50:1 no papel */
  --gc-text-soft:    #4C515C;  /* lead, descrição; 7.63:1 */
  --gc-text-faint:   #666C79;  /* caption, carimbo em repouso; 5.05:1 (era #787E8B, 3.90:1, reprovava) */

  /* ---------- COR · texto sobre a âncora escura ---------- */
  --gc-on-dark:      #F5F5F8;  /* 16.48:1 sobre ink */
  --gc-on-dark-soft: #BFC3CE;  /* 10.17:1 sobre ink */

  /* ---------- COR · o pulso (azul, intocável; a regra é nova) ---------- */
  --gc-pulse:        #2742E0;  /* só onde algo roda ou aconteceu; link; um botão por tela */
  --gc-pulse-deep:   #1B30B8;  /* hover/active do único botão azul */
  --gc-pulse-bright: #6E8AFF;  /* o pulso sobre a tinta; nunca sobre o papel (2.99:1) */
  --gc-pulse-wash:   #EEF1FD;  /* fundo da linha "avisado" e do foco */
  --gc-accent:        var(--gc-pulse);        /* alias v4: o site continua funcionando */
  --gc-accent-deep:   var(--gc-pulse-deep);   /* alias v4 */
  --gc-accent-bright: var(--gc-pulse-bright); /* alias v4 */
  --gc-accent-wash:   var(--gc-pulse-wash);   /* alias v4; "coluna vencedora" morreu, o nome fica */

  /* ---------- COR · linguagem de estado (confirmado, recusado, avisado) ---------- */
  --gc-success:          #157347;  /* confirmado: verde funcional, sinal, nunca cor de marca */
  --gc-success-bright:   #34D399;  /* confirmado sobre a tinta */
  --gc-success-wash:     #E9F3EC;  /* fundo da linha "confirmado" */
  --gc-state-confirmado: var(--gc-success);
  --gc-state-recusado:   #191B21;  /* NOVO: quase-preto com o traço; nunca vermelho */
  --gc-state-recusado-wash: var(--gc-paper-2);
  --gc-state-avisado:    var(--gc-pulse);     /* o sistema falou com alguém */
  --gc-warn:             #C2410C;  /* só prazo (a data que se aproxima); 4.96:1 */
  --gc-warn-wash:        #FBEFE8;
  --gc-prazo:            var(--gc-warn);      /* alias com o nome da regra */
  --gc-danger:           #B91C1C;  /* só erro real do sistema, o que a casa conserta; 6.20:1 (era #DC2626) */
  --gc-danger-wash:      #FBEAEA;
  --gc-erro:             var(--gc-danger);    /* alias com o nome da regra */

  /* ---------- COR · o slot do cliente (a instância veste o cliente) ---------- */
  --gc-client-accent:    #191B21;  /* a instância sobrescreve com a cor do cliente (4.5:1 no papel, ou só área) */
  --gc-client-on-accent: #FFFFFF;
  --gc-client-wash:      var(--gc-paper-2);

  /* ---------- COR · linhas de 1 px (a pena do registrador) ---------- */
  --gc-line:        rgba(21,23,28,.12);   /* divisor, borda de card */
  --gc-line-2:      rgba(21,23,28,.22);   /* input, botão secundário */
  --gc-line-strong: #191B21;              /* NOVO: a linha que separa; a linha de assinatura */
  --gc-line-dark:   rgba(255,255,255,.14);/* dentro da âncora e do chrome */

  /* ---------- TIPOGRAFIA · IBM Plex Sans (SIL OFL); a Inter saiu ---------- */
  --gc-font: 'IBM Plex Sans', 'Segoe UI', system-ui, -apple-system, Roboto, sans-serif;
  --gc-weight-display: 700;  /* era 800; a Plex vai até 700 e o registro não grita */
  --gc-weight-strong:  600;
  --gc-weight-medium:  500;  /* a camada registro */
  --gc-weight-body:    400;

  --gc-fs-hero:     clamp(36px, 5.6vw, 72px); /* título de documento, não de outdoor */
  --gc-fs-h2:       clamp(28px, 4vw, 44px);
  --gc-fs-h3:       clamp(22px, 2.6vw, 28px);
  --gc-fs-title:    20px;
  --gc-fs-lead:     20px;
  --gc-fs-body:     17px;   /* 16px abaixo de 600px */
  --gc-fs-sm:       15px;
  --gc-fs-caption:  14px;
  --gc-fs-registro: 13px;   /* NOVO: carimbo, cláusula em linha, status, fonte de tabela */
  --gc-fs-micro:    12.5px;
  --gc-fs-clausula: clamp(28px, 4vw, 40px); /* NOVO: a data e o preço da cláusula assinada */

  --gc-lh-tight:    1.1;
  --gc-lh-snug:     1.3;
  --gc-lh-body:     1.6;
  --gc-lh-registro: 1.45;

  --gc-ls-display:  -0.02em;  /* a Plex pede menos aperto que a Inter */
  --gc-ls-tight:    -0.005em;
  --gc-ls-eyebrow:   0.05em;  /* a única caixa alta do sistema: rótulo, tag, label */
  --gc-ls-registro:  0.01em;

  --gc-numerals: tabular-nums; /* font-variant-numeric em registro, tabela, cláusula, relatório */

  /* ---------- ESPAÇAMENTO (base 4/8: a grade da folha) ---------- */
  --gc-space-1:  4px;
  --gc-space-2:  8px;
  --gc-space-3:  12px;
  --gc-space-4:  16px;
  --gc-space-5:  20px;
  --gc-space-6:  24px;
  --gc-space-8:  32px;
  --gc-space-12: 48px;
  --gc-space-16: 64px;
  --gc-space-20: 80px;
  --gc-space-24: 96px;   /* padding vertical de seção */
  --gc-space-30: 120px;

  /* ---------- LAYOUT ---------- */
  --gc-max:    1180px;
  --gc-gutter: 32px;     /* 20px abaixo de 600px */
  --gc-target: 44px;     /* NOVO: alvo mínimo de toque */

  /* ---------- RAIO (a folha é quase reta) ---------- */
  --gc-radius-stamp: 2px;    /* NOVO: carimbo e cartucho */
  --gc-radius-tag:   4px;    /* era 6 */
  --gc-radius-input: 6px;    /* era 9 */
  --gc-radius-btn:   6px;    /* era 10 */
  --gc-radius-card:  8px;    /* era 13 */
  --gc-radius-panel: 10px;   /* a janela do chrome; era 14 */
  --gc-radius-pill:  999px;  /* só o chip de estado */

  /* ---------- SOMBRA (o papel não flutua; nunca glow) ---------- */
  --gc-shadow-sm:     0 1px 0 rgba(21,23,28,.04);
  --gc-shadow-card:   0 4px 14px rgba(21,23,28,.06);
  --gc-shadow-btn:    0 2px 8px rgba(21,23,28,.14);   /* neutra; a sombra azul do v4 era glow */
  --gc-shadow-accent: var(--gc-shadow-btn);           /* alias v4 */
  --gc-shadow-panel:  0 16px 40px rgba(21,23,28,.18); /* a janela do chrome sobre o papel */

  /* ---------- MOVIMENTO ---------- */
  --gc-ease:  cubic-bezier(.2, 0, 0, 1);
  --gc-fast:  150ms;
  --gc-enter: 500ms;   /* era 700 */
  --gc-drift: 24s;     /* NOVO: a deriva lenta e contínua do pico do pulso */

  /* ---------- BREAKPOINTS (use em media queries) ---------- */
  --gc-bp-sm: 600px;
  --gc-bp-md: 900px;
  --gc-bp-lg: 1180px;

  /* ---------- CAMADAS ---------- */
  --gc-z-nav:     100;
  --gc-z-overlay: 500;
  --gc-z-modal:   1000;

  /* ---------- MARCA · o pulso, o símbolo, o carimbo (strings de referência) ---------- */
  --gc-pulse-path:          "M34 60 H170 L192 22 L214 92 L232 60 H390"; /* viewBox 0 0 400 100; nasce do ponto cx 24 cy 60 r 10 */
  --gc-pulse-stroke-16:     1.5px;
  --gc-pulse-stroke-32:     2px;
  --gc-pulse-stroke-hero:   1.5px;   /* a pena do registrador, fina */
  --gc-pulse-stroke-symbol: 18;      /* unidades do viewBox 400, como no ícone em uso */
  --gc-pulse-fade: linear-gradient(90deg, transparent 0%, currentColor 12%, currentColor 88%, transparent 100%); /* a única exceção ao "sem gradiente" */
  --gc-wordmark:        "GC.Automations";
  --gc-categoria-apoio: "Sistemas que seguram a operação do seu negócio.";
  --gc-powered-by:      "powered by Pulso OS · GC Automations"; /* sem a onda dentro da instância */
  --gc-carimbo:         "consultado em DD/MM/AAAA · fonte: {fonte} · nenhum número foi estimado";
  --gc-carimbo-amostra: "Amostra · montada em DD/MM/AAAA · Pulso OS · GC Automations";
  --gc-rotulo-ia:       "Conteúdo gerado com IA. Revisado e aprovado por {nome}, DD/MM/AAAA.";
}

/* ---------- MOBILE (abaixo de --gc-bp-sm) ---------- */
@media (max-width: 600px) {
  :root {
    --gc-gutter:  20px;
    --gc-fs-body: 16px;
  }
}

/* ---------- ÂNCORA ESCURA · "a tela vista à noite" (contexto, não modo) ----------
   Só existe onde há tela ou pulso dentro. Entra por escopo, nunca por
   prefers-color-scheme. Dentro dela, os tokens de texto e de linha
   remapeiam; o papel some; o pulso troca para a versão bright. */
[data-gc-surface="ink"],
.gc-anchor {
  --gc-paper:      var(--gc-ink);
  --gc-paper-2:    var(--gc-ink-2);
  --gc-paper-3:    var(--gc-ink-2);
  --gc-text:       var(--gc-on-dark);
  --gc-text-soft:  var(--gc-on-dark-soft);
  --gc-text-faint: var(--gc-on-dark-soft);
  --gc-line:       var(--gc-line-dark);
  --gc-line-2:     rgba(255,255,255,.26);
  --gc-line-strong: var(--gc-on-dark);
  --gc-pulse:      var(--gc-pulse-bright);   /* nunca #2742E0 sobre a tinta (2.51:1) */
  --gc-accent:     var(--gc-pulse-bright);
  --gc-success:    var(--gc-success-bright);
  --gc-state-confirmado: var(--gc-success-bright);
  --gc-state-recusado:   var(--gc-on-dark);
  --gc-state-recusado-wash: var(--gc-ink-2);
  --gc-state-avisado:    var(--gc-pulse-bright);
  --gc-pulse-wash: rgba(110,138,255,.14);
  --gc-success-wash: rgba(52,211,153,.14);
  background: var(--gc-ink);
  color: var(--gc-on-dark);
}

/* ---------- MOVIMENTO REDUZIDO: a deriva do pulso para ---------- */
@media (prefers-reduced-motion: reduce) {
  :root { --gc-drift: 0s; --gc-enter: 0ms; }
}
