:root {
  /* Base — marca turbobee: amarelo #FFD95B, tinta preta, papel cinza claro */
  --fas-bg: #e8e8e8;
  --fas-ink: #111111; /* tinta declarada na base de conhecimento; o artwork da marca usa preto puro */
  --fas-primary: #ffd95b;
  --fas-primary-hover: #f2c43f; /* um passo mais escuro que o amarelo da marca turbobee */
  --fas-surface: #ffffff;

  /* Neutral ramp (Tailwind neutral, as used in the source) */
  --fas-neutral-100: #f5f5f5;
  --fas-neutral-300: #d4d4d4;
  --fas-neutral-500: #737373;
  --fas-neutral-600: #525252;
  --fas-neutral-700: #404040;
  --fas-neutral-800: #262626;

  /* Translucent veils — the source stacks white over the dithered background */
  --fas-veil-10: rgba(255, 255, 255, 0.10);
  --fas-veil-20: rgba(255, 255, 255, 0.20);
  --fas-veil-30: rgba(255, 255, 255, 0.30);
  --fas-veil-40: rgba(255, 255, 255, 0.40);
  --fas-veil-50: rgba(255, 255, 255, 0.50);
  --fas-veil-60: rgba(255, 255, 255, 0.60);
  --fas-veil-80: rgba(255, 255, 255, 0.80);

  /* Ink veils — tinta translúcida sobre superfície (rodapé, faixas, sombras
     de estado). No escuro viram tinta clara: ver tokens/dark.css. */
  --fas-ink-veil-10: rgba(17, 17, 17, 0.10);
  --fas-ink-veil-15: rgba(17, 17, 17, 0.15);
  --fas-ink-veil-45: rgba(17, 17, 17, 0.45);

  /* Ink hairlines — three fixed opacities, never more */
  --fas-hairline: rgba(17, 17, 17, 0.05);
  --fas-rule: rgba(17, 17, 17, 0.10);
  --fas-edge: rgba(17, 17, 17, 0.20);
  --fas-scrim: rgba(0, 0, 0, 0.20); /* gradiente sobre imagem, não é véu de modal */
  --fas-scrim-modal: rgba(17, 17, 17, 0.40); /* fundo atrás de diálogo */

  /* Cor de dado em gráfico — nunca cor de interface, nunca semântica de estado.
     Séries em ordem de uso; --fas-chart-1 é a cor do radar de metas. */
  --fas-chart-1: #f88076;
  --fas-chart-2: #4a8fb3;
  --fas-chart-3: #7f9a2a;
  --fas-chart-4: #9a6fd8;
  --fas-chart-5: #d58a09;
  --fas-chart-grid: var(--fas-rule);
  --fas-chart-fill-alpha: 0.18; /* preenchimento de área/polígono: série com esta opacidade */

  /* Referências para cálculo de contraste em código (getComputedStyle).
     --fas-contrast-ref-*: as duas tintas candidatas sobre uma cor de cliente,
     iguais nos dois temas. --fas-surface-page é a referência quando a
     pergunta é "a faixa se separa da página?" — essa muda com o tema. */
  --fas-contrast-ref-light: #ffffff;
  --fas-contrast-ref-dark: #111111;

  /* Semantic aliases */
  --fas-text-primary: var(--fas-ink);
  --fas-text-secondary: var(--fas-neutral-600);
  --fas-text-muted: var(--fas-neutral-500);
  --fas-text-body: var(--fas-neutral-700);
  --fas-text-on-accent: var(--fas-ink);
  --fas-text-inverse: #ffffff;

  --fas-surface-page: var(--fas-bg);
  /* Fundo fixo das animações de marco (assets/animacoes/). IGUAL NOS DOIS TEMAS:
     o artwork crava #111 e #fff, e cada fundo de página apaga um deles.
     #737373: 3,98:1 contra #111, 4,74:1 contra #fff. Texto sobre ele: branco.
     Não redefinir em dark.css. */
  --fas-surface-celebration: #737373;
  --fas-text-on-celebration: #ffffff;
  --fas-surface-shell: var(--fas-veil-30);
  --fas-surface-panel: var(--fas-veil-40);
  --fas-surface-control: var(--fas-veil-50);
  --fas-surface-card: var(--fas-surface);
  --fas-surface-media: var(--fas-neutral-100);

  --fas-border-subtle: var(--fas-hairline);
  --fas-border-default: var(--fas-rule);
  --fas-border-strong: var(--fas-edge);

  --fas-accent: var(--fas-primary);
  --fas-accent-hover: var(--fas-primary-hover);
  /* Flattened value of the shell veil over the page (white 30% on #E8E8E8) —
     what a knocked-out logo shape must be filled with inside the shell. */
  --fas-matte-shell: #efefef;

  /* Semânticas — apontam para a paleta aprovada em tokens/semantic.css
     (Success #81940E, Information #347CA0, Warning #D58A09, Danger #A6265A).
     O amarelo da marca NÃO carrega status: ele é acento, um objeto por tela. */
  --fas-success: var(--color-success-default);
  --fas-success-surface: var(--color-success-background);
  --fas-success-border: var(--color-success-border);
  --fas-warning: var(--color-warning-default);
  --fas-warning-surface: var(--color-warning-background);
  --fas-warning-border: var(--color-warning-border);
  --fas-danger: var(--color-danger-default);
  --fas-danger-surface: var(--color-danger-background);
  --fas-danger-border: var(--color-danger-border);
  --fas-info: var(--color-info-default);
  --fas-info-surface: var(--color-info-background);
  --fas-info-border: var(--color-info-border);
  --fas-idle: var(--color-neutral-default);
  --fas-idle-surface: var(--color-neutral-background);
  --fas-idle-border: var(--color-neutral-border);

  /* Escala forte — texto e ícone sobre fundo claro (700), ou preenchimento
     sólido com texto em --fas-on-strong. */
  --fas-success-strong: var(--color-success-strong);
  --fas-warning-strong: var(--color-warning-strong);
  --fas-danger-strong: var(--color-danger-strong);
  --fas-info-strong: var(--color-info-strong);
  --fas-idle-strong: var(--color-neutral-strong);
  --fas-on-strong: var(--color-on-strong);

  /* Estados do produto → semântica (matriz de estados do documento aprovado:
     cancelado, expirado e desabilitado são NEUTROS, não Danger). */
  --fas-state-published: var(--fas-success);
  --fas-state-published-surface: var(--fas-success-surface);
  --fas-state-draft: var(--fas-idle);
  --fas-state-draft-surface: var(--fas-idle-surface);
  --fas-state-pending: var(--fas-warning);
  --fas-state-pending-surface: var(--fas-warning-surface);
  --fas-state-unpublished: var(--fas-idle);
  --fas-state-unpublished-surface: var(--fas-idle-surface);
  --fas-state-rejected: var(--fas-danger);
  --fas-state-rejected-surface: var(--fas-danger-surface);
  --fas-state-review: var(--fas-info);
  --fas-state-review-surface: var(--fas-info-surface);
  --fas-state-assigned: var(--fas-info);
  --fas-state-assigned-surface: var(--fas-info-surface);

  --fas-state-published-strong: var(--fas-success-strong);
  --fas-state-draft-strong: var(--fas-idle-strong);
  --fas-state-pending-strong: var(--fas-warning-strong);
  --fas-state-unpublished-strong: var(--fas-idle-strong);
  --fas-state-rejected-strong: var(--fas-danger-strong);
  --fas-state-review-strong: var(--fas-info-strong);
  --fas-state-assigned-strong: var(--fas-info-strong);

  --fas-selection-bg: var(--fas-primary);
  --fas-selection-fg: var(--fas-ink);
}
