/* ==========================================================================
   AR SOUZA — Tokens de Identidade Visual
   Fonte: AR_SOUZA_Manual_Identidade_Visual_v3.0.pdf
   (cap. 02 Logotipo, 03 Paleta de Cores, 04 Tipografia, 07 Aplicações)
   --------------------------------------------------------------------------
   Este e o UNICO arquivo onde cores e fontes podem ser declaradas literalmente.
   Todo o restante da aplicacao (UI e relatorio) consome exclusivamente estas
   variaveis. Trocar um token aqui muda a interface inteira.
   ========================================================================== */

/* --- Barlow — equivalente web oficial da Helvetica Neue (manual, pag. 13).
       Servida localmente de /fontes; nunca de CDN. ------------------------- */

@font-face {
  font-family: "Barlow";
  src: url("/fontes/barlow-300.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("/fontes/barlow-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("/fontes/barlow-400-italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("/fontes/barlow-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("/fontes/barlow-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("/fontes/barlow-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  /* --- Cores primarias — base visual da marca -------------------------- */
  --cor-azul-profundo: #002b8f;
  --cor-azul-royal: #0047cc;
  --cor-azul-ceu: #3d9be9;

  /* --- Cores secundarias ---------------------------------------------- */
  --cor-azul-gelo: #b3d9ff;
  --cor-branco: #ffffff;
  --cor-grafite: #1a1a2e;

  /* --- Cores neutras --------------------------------------------------- */
  --cor-cinza-claro: #f4f6f9;
  --cor-cinza-medio: #8a9bb0;
  --cor-preto: #000000;

  /* --- Papeis semanticos (o que a aplicacao realmente consome) ---------
     Manual, pag. 11: corpo em Preto Grafite; titulos em Azul Profundo;
     links e acoes em Azul Royal; Azul Ceu para realces sutis; fundos de
     apoio em Azul Gelo e Cinza Claro. Pagina sempre em Branco Puro. */
  --cor-primaria: var(--cor-azul-profundo);
  --cor-primaria-clara: var(--cor-azul-royal);
  --cor-secundaria: var(--cor-azul-ceu);
  --cor-destaque: var(--cor-azul-gelo);

  --cor-titulo: var(--cor-azul-profundo);
  --cor-acao: var(--cor-azul-royal);
  --cor-acao-hover: var(--cor-azul-profundo);
  --cor-realce: var(--cor-azul-ceu);

  /* Azul palido do numeral decorativo de capitulo (tipo marca d'agua). */
  --cor-marca-dagua: #d9e3f4;

  --cor-texto: var(--cor-grafite);
  --cor-texto-suave: var(--cor-cinza-medio);
  --cor-texto-invertido: var(--cor-branco);
  --cor-texto-sobre-primaria: var(--cor-branco);

  /* Fundo de pagina: Branco Puro com amplo respiro. O Cinza Claro e apoio
     pontual (paineis, moldes), nunca fundo dominante. */
  --cor-fundo: var(--cor-branco);
  --cor-fundo-alt: var(--cor-cinza-claro);
  --cor-fundo-escuro: var(--cor-azul-profundo);
  --cor-superficie: var(--cor-branco);

  --cor-borda: #dfe5ee;
  --cor-borda-forte: var(--cor-cinza-medio);
  --cor-foco: var(--cor-azul-royal);

  /* --- Filetes e tracos estruturais do manual --------------------------- */
  /* Hairline padrao de separacao (cabecalhos de pagina, rodape, tabelas). */
  --filete: 1px solid var(--cor-borda);
  /* Linha divisoria Azul Royal sob o cabecalho (papel timbrado, pag. 17). */
  --espessura-divisoria: 2px;
  /* Barra vertical que precede titulos ("| Titulo", pag. 11). */
  --barra-titulo-espessura: 4px;
  /* Traco curto Azul Royal antes de rotulos de secao ("— CORES PRIMARIAS"). */
  --traco-secao-largura: 18px;
  --traco-secao-espessura: 2px;
  /* Borda superior das colunas de boas praticas (pag. 11). */
  --coluna-pratica-borda: 2px;
  /* Borda esquerda de callouts ("APRESENTACOES E RELATORIOS", pag. 17). */
  --callout-borda: 3px;

  /* --- Escala de avaliacao (respostas do formulario) -------------------
     Derivada da paleta: azul = conforme, ambar/vermelho apenas como sinal
     funcional de risco, admitidos por serem cores de estado e nao de marca. */
  --cor-efetivo: #1f7a4d;
  --cor-efetivo-fundo: #e8f5ee;
  --cor-parcial: #b8791a;
  --cor-parcial-fundo: #fdf3e3;
  --cor-deficiente: #b3261e;
  --cor-deficiente-fundo: #fdecea;
  --cor-na: var(--cor-cinza-medio);
  --cor-na-fundo: var(--cor-cinza-claro);

  /* --- Classificacao profissional de deficiencias ---------------------- */
  --cor-clas-ok: var(--cor-efetivo);
  --cor-clas-deficiencia: var(--cor-parcial);
  --cor-clas-significativa: #d2691e;
  --cor-clas-material: var(--cor-deficiente);

  /* --- Feedback de estado (autosave, rede) ----------------------------- */
  --cor-sucesso: var(--cor-efetivo);
  --cor-alerta: var(--cor-parcial);
  --cor-erro: var(--cor-deficiente);

  /* --- Tipografia ------------------------------------------------------
     Oficial: Helvetica Neue. Equivalente web definido pelo manual: Barlow
     (servida localmente). Substituta institucional: Calibri. */
  --fonte-titulo: "Barlow", "Helvetica Neue", Calibri, -apple-system,
    BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --fonte-corpo: "Barlow", "Helvetica Neue", Calibri, -apple-system,
    BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --fonte-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;

  /* Hierarquia do manual (H1 Bold 32pt / H2 Bold 22pt / H3 SemiBold 16pt /
     corpo Regular 11pt / nota Light 10pt) convertida em escala de tela que
     preserva as mesmas proporcoes: 32 / 22 / 16 px sobre corpo de 15 px. */
  --texto-xs: 0.75rem;
  --texto-sm: 0.8125rem;
  --texto-base: 0.9375rem;
  --texto-md: 1rem;
  --texto-lg: 1.375rem;
  --texto-xl: 2rem;
  --texto-2xl: 2.75rem;
  /* Numeral decorativo de capitulo (marca d'agua). */
  --texto-capitulo: 4.5rem;

  --peso-leve: 300;
  --peso-normal: 400;
  --peso-medio: 500;
  --peso-semi: 600;
  --peso-forte: 700;

  --altura-linha: 1.6;
  --altura-linha-titulo: 1.2;
  --letra-titulo: -0.015em;
  /* Caixa alta espacada institucional (kickers, rotulos, rodape). */
  --letra-caixa-alta: 0.14em;
  --letra-caps: 0.16em;

  /* --- Espacamento ------------------------------------------------------ */
  --esp-1: 0.25rem;
  --esp-2: 0.5rem;
  --esp-3: 0.75rem;
  --esp-4: 1rem;
  --esp-5: 1.5rem;
  --esp-6: 2rem;
  --esp-7: 3rem;
  --esp-8: 4rem;

  /* --- Forma ------------------------------------------------------------
     Cantos levemente arredondados (4–6px). O manual condena "sombras,
     contornos ou efeitos": sombras abaixo sao quase imperceptiveis e nunca
     se aplicam a marca. */
  --raio-sm: 4px;
  --raio: 6px;
  --raio-lg: 12px;
  --borda-fina: 1px solid var(--cor-borda);

  --sombra-sm: 0 1px 2px rgba(26, 26, 46, 0.04);
  --sombra: 0 1px 3px rgba(26, 26, 46, 0.06);
  --sombra-lg: 0 8px 24px rgba(26, 26, 46, 0.1);

  /* --- Layout ----------------------------------------------------------- */
  --largura-conteudo: 1140px;
  --largura-texto: 68ch;
  --largura-relatorio: 900px;

  --transicao: 160ms ease;

  /* --- Marca ------------------------------------------------------------
     Arquivos oficiais em /public: logo-ar-souza.png (~2.48:1),
     logo-ar-souza-capa.png, logo-simbolo.png, favicon.png. A logo e sempre
     a imagem original: nunca recolorir, distorcer, sombrear ou aplicar
     filtro/opacity (manual, pag. 18).
     Tamanho minimo digital (pag. 09): 90px de largura na versao com nome e
     24px de altura no simbolo. 40px de altura no cabecalho ≈ 99px de
     largura — acima do minimo. */
  --logo-altura-cabecalho: 40px;
  --logo-altura-capa: 92px;
  --logo-largura-minima: 90px;
  --logo-simbolo-altura-minima: 24px;
  /* Area de protecao: 1X (altura do "A") livre em volta da marca. */
  --logo-area-protecao: 1rem;
  --tagline: "Tradição que evolui";
}

/* Respeita usuarios que pedem menos movimento. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --transicao: 0ms;
  }
}
