/* =========================================================================
   Atlas — tokens de tema. FONTE ÚNICA das cores.
   Revisão do projeto gráfico (jul/2026): paleta derivada do logo Anglo
   American — #031794 (azul) e #fe0001 (vermelho).

   COMPATIBILIDADE: todos os nomes de token da versão anterior foram
   PRESERVADOS, inclusive os herdados do skin do portal do Booking
   (--mmg-*, --grey-3, --light-grey*). O portal-overrides.css continua
   funcionando sem uma linha alterada. O que mudou é o VALOR.
   (Verificado por teste: test/tokens.test.js falha se um token usado por
   qualquer página deixar de existir aqui.)

   ⚠️ ORDEM DE CARREGAMENTO — carregar DEPOIS de vendor/portal.css.
   (Corrigido em 28/07; o comentário anterior dizia "antes" e estava ERRADO.)
   O portal.css do Booking também declara `:root { --mmg-text/--mmg-head/
   --mmg-main }`. Custom property não tem cascata por origem: quem declara por
   ÚLTIMO vence. Com o tokens.css antes, o vendor sobrescrevia a tinta
   (#14161c → #4d4d4d) e, pior, AS DUAS FONTES (Barlow → "AASmartSans", que não
   existe em máquina nenhuma e cai para Arial em silêncio) — ou seja, o projeto
   gráfico inteiro era descartado pela cascata, sem erro em log nenhum.
   Achado na verificação em navegador, não no arquivo: o defeito estava na
   CASCATA, não no conteúdo. Guardado por test/tokens.test.js.

   O portal-overrides.css continua por último: ele CONSOME os tokens (var() é
   resolvido no uso), então a ordem dele em relação a este arquivo é indiferente
   para as variáveis — mas ele também traz regras normais, que devem vencer.
   ========================================================================= */

/* -------------------------------------------------------------------------
   TIPOGRAFIA — fontes VENDORIZADAS, não Google Fonts (decisão do Marcelo,
   28/07). O handoff vinha com @import de fonts.googleapis.com; trocado por
   @font-face local pelas mesmas razões que já proíbem CDN de terceiro para os
   ícones neste projeto:

   1. LGPD — o @import faz o navegador de cada usuário contatar o Google a cada
      página, entregando IP e User-Agent a um terceiro sem necessidade nenhuma.
   2. Supply chain — recurso de terceiro carregado em TODA tela de um sistema
      que trata dado pessoal.
   3. Disponibilidade — a rede corporativa filtra saída (o próprio Git fala com
      o GitHub por 443 porque a 22 é bloqueada). Se fonts.googleapis.com
      estiver bloqueado, a tipografia inteira cai para system-ui em silêncio,
      e a fidelidade do projeto gráfico se perde sem erro em log nenhum.

   Subset: latin (U+0000-00FF + pontuação tipográfica). VERIFICADO que cobre
   todo o português — ç ã õ á é ê í ó ú â ô à ü, travessão, aspas curvas e €.
   Licença SIL OFL 1.1; o arquivo OFL.txt acompanha as fontes, como ela exige.
   Procedência (sha256) registrada em docs/fase-a-tokens.md.

   Caminho RELATIVO de propósito: o Express serve public/ na raiz, mas o Apache
   publica a aplicação sob o prefixo /atlas. Um caminho absoluto (/atlas/...)
   quebraria fora do prefixo; o relativo resolve certo nos dois casos.
   ------------------------------------------------------------------------- */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('vendor/fonts/barlow-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('vendor/fonts/barlow-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('vendor/fonts/barlow-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('vendor/fonts/barlow-condensed-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('vendor/fonts/barlow-condensed-600.woff2') format('woff2');
}

:root {
  /* --- Marca --- */
  --brand-primary: #031794;   /* azul do logo — inalterado, agora com rampa */
  --brand-contrast: #ffffff;

  /* --- Tipografia (--mmg-head/--mmg-main são font-family, não cor) --- */
  --mmg-head: "Barlow Condensed", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mmg-main: "Barlow", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* --- Rampa do azul da marca (OKLCH, croma crescendo para o escuro) ---
         Use 100–300 para preenchimento tênue, hover e borda sutil; 500 como
         base; 700–900 para texto sobre fundo tingido e estado pressionado.
         O passo 800 É o hex exato do logo.
         ⚠️ 500 e mais claros NÃO servem para texto — só preenchimento e gráfico
         (ver a seção de contraste do README do handoff e test/tokens.test.js). */
  --azul-100: #f0f5ff;
  --azul-200: #dee8fe;
  --azul-300: #c2d5fc;
  --azul-400: #9cb7ef;
  --azul-500: #7697de;
  --azul-600: #4d6fc9;
  --azul-700: #2444b0;
  --azul-800: #031794;
  --azul-900: #02106b;

  /* --- Cores herdadas do skin do portal (nomes preservados de propósito) --- */
  --mmg-navy: var(--brand-primary);
  --mmg-text: #14161c;        /* tinta levemente azulada, assenta sob o azul */
  --mmg-red: #fe0001;         /* vermelho do logo — só na marca */

  --grey-3: #d2d4d9;
  /* ⚠️ DESVIO DELIBERADO do handoff (#787a7e), por ACESSIBILIDADE — único valor
     alterado, e sujeito a veto do Marcelo.
     Motivo: o README manda usar este token em "texto secundário / meta" de
     12–12.5px, e em etiqueta de 11px (--estado-estoque). Texto desse tamanho é
     "texto normal" pela WCAG e exige 4.5:1; #787a7e dá 3.91:1 sobre o papel.

     ⚠️ SEGUNDA CORREÇÃO (revisão adversarial): meu primeiro ajuste (#6b6d71) só
     conferiu o PAPEL. O README também assenta texto cinza sobre fundos mais
     escuros — o quadro do termo de responsabilidade (--superficie-campo) e a
     etiqueta "Em estoque" (--light-grey) —, onde #6b6d71 dava 4.35:1 e 4.23:1
     e voltava a reprovar. #646669 é o passo que passa nos QUATRO fundos:

        papel #f3f4f7 5.24 · campo #e9ebf1 4.83 · claro #e6e8ec 4.69 · branco 5.76

     Mesmo matiz levemente azulado; a olho nu é o mesmo cinza. Provado por
     test/tokens.test.js, que agora confere os quatro fundos, não só um. */
  --dark-grey-2: #646669;
  --light-grey: #e6e8ec;
  --light-grey-2: #f3f4f7;    /* o "papel" do sistema */

  /* --- Semânticos (uso novo do Atlas; preferir estes em CSS novo) --- */
  --texto: var(--mmg-text);
  --texto-suave: var(--dark-grey-2);
  --superficie: #ffffff;
  --superficie-alt: var(--light-grey-2);
  --superficie-campo: #e9ebf1;  /* fundo de input */

  /* ⚠️ FALLBACK DELIBERADO, não redundância: `color-mix()` só existe em
     Chrome 111+ / Safari 16.2+ / Firefox 113+ (2023). Num navegador mais
     antigo a declaração inteira é inválida e a borda SOME — e a partir da
     Fase B `--borda` desenha TODO quadro do sistema. A primeira linha é o
     equivalente opaco (tinta 16% sobre o papel); a segunda sobrescreve onde
     color-mix existe. Custo: uma linha. Não remover. */
  --borda: #d5d6db;
  --borda: color-mix(in srgb, var(--mmg-text) 16%, transparent);

  --sucesso: #1f7a4d;
  /* Par das etiquetas de "melhoria" nas notas de versão. Sólidos, não
     color-mix: a catraca de contraste resolve token, não função de cor — e o
     par com transparência ficava a 0,4% do mínimo, ou seja, verde na suíte e
     reprovado no primeiro ajuste de tom. 6,67:1. */
  --sucesso-tinta: #17603c;
  --sucesso-fundo: #e6f4ec;
  --atencao: #b06a00;
  /* ⚠️ Passo profundo para TEXTO, espelhando o par --perigo/--perigo-tinta.
     `--atencao` sobre `--azul-100` dá 3,91:1 — reprova AA em texto normal, e o
     aviso "Você não tem permissão" é a página INTEIRA de quem foi barrado.
     `#8a5300` dá 5,79:1 sobre azul-100 e 6,05:1 sobre o papel. */
  --atencao-tinta: #8a5300;
  --atencao-fundo: #fdf1de;   /* par da etiqueta de "correção": 5,67:1 */
  --perigo: #d4241a;          /* vermelho da marca amortecido p/ interface */
  --perigo-tinta: #a8140c;    /* passo profundo, contraste p/ texto corrido */
  --perigo-fundo: #ffe9e5;
  --info: var(--azul-700);

  /* ⚠️ FORA DA PALETA, e de propósito — é AFFORDANCE DE FORMATO DE ARQUIVO, não
     tinta de marca. Verde da planilha (decisão do Marcelo, 03/08, mantida na 3ª
     iteração do ícone): o botão de importar/exportar XLSX é reconhecido pelo
     desenho, não pelo rótulo. Não usar em mais nada — "o vermelho é só prejuízo"
     tem irmã aqui: este verde é só planilha. Branco sobre ele: 5,83:1. */
  --planilha-verde: #217346;


  /* --- Estado de registro (vocabulário do domínio) ---
         O vermelho entra SÓ onde há prejuízo ou pendência: termo não
         assinado, linha estourada no orçamento, divergência de fatura.
         Nunca decorativo.
         ⚠️ MUDANÇA SEMÂNTICA nesta revisão: --estado-ativo era verde
         (--sucesso) e passa a ser o azul da marca; --historico-fundo era
         amarelo (#fff8e6) e passa a ser azul tênue. Nenhum dos dois era usado
         no código até aqui, então não há regressão — mas quem ler o token não
         deve supor "ativo = verde". */
  --estado-ativo: var(--azul-800);
  --estado-estoque: var(--dark-grey-2);
  --estado-manutencao: var(--atencao);
  --estado-baixado: var(--grey-3);
  --estado-pendente: var(--perigo);

  /* Versão encerrada / dado histórico. A historicidade é o coração do Atlas:
     a interface distingue "estado atual" de "foto do passado" sem o usuário
     ter que ler a data — a versão encerrada cai para 62% de opacidade.

     ⚠️⚠️ REGRA DE USO OBRIGATÓRIA (achado da revisão adversarial, para a Fase C):
     na linha ENCERRADA, o texto tem de ser --texto (tinta cheia). A opacidade
     é que produz o cinza. NUNCA somar cinza + opacidade — elas se COMPÕEM:

        --dark-grey-2 a 62% sobre o papel = #9a9c9f → 2.50:1  ILEGÍVEL
        --texto       a 62% sobre o papel = #696a6f → 4.91:1  passa AA

     Ou seja: pintar a data/meta da linha encerrada de cinza (o reflexo natural,
     e o que o protótipo faz) derruba justamente a informação que o padrão de
     histórico existe para dar — data e autoria de toda a série — abaixo até do
     piso de 3:1. Quem tem baixa visão não leria o histórico.
     Alternativa válida: aplicar a opacidade só ao que NÃO é texto (a marca de
     registro, a borda, o recuo) e usar cor pré-composta no texto.
     Guardado por test/tokens.test.js ('opacidade do histórico'). */
  --historico-opacidade: .62;
  --historico-fundo: var(--azul-100);
  --historico-borda: var(--azul-300);

  /* --- Layout --- */
  --raio: 8px;                /* quadros e cards */
  --raio-controle: 4px;       /* botões, inputs, etiquetas */
  --sombra-card: 0 1px 2px color-mix(in srgb, var(--mmg-text) 14%, transparent);
}
