/* ==========================================================================
   TOKENS — fonte única de verdade do design system RedeEsquizo
   Espelhados em theme.json para o editor. Se divergirem, ESTE arquivo vence.
   Auditoria A1.1: nenhum hex literal pode existir fora daqui.
   ========================================================================== */
:root{
  /* cor */
  --rz-cream:#EEE2D1;
  --rz-cream-2:#EBDFCB;
  /* refino visual 2026-08-28: definida porque .rz-mapa-geral (fundo do
     mapa geral, antes de os tiles carregarem) já referenciava
     var(--rz-cream-dark, #e5d7c5) sem o token existir em lugar nenhum — o
     fallback literal sempre "vencia" (achado M6 de docs/auditorias/ux-ui-site.md). */
  --rz-cream-dark:#E5D7C5;
  --rz-card:#F1E8D8;
  --rz-card-light:#F6EFE3;
  --rz-dark:#0C160E;
  --rz-dark-panel:#283120;
  --rz-ink:#171A13;
  --rz-ink-2:#4B4E43;
  /* refino visual 2026-08-28 (docs/design/refino-visual.md): --rz-ink-3 e
     --rz-terra escurecidos — os tons antigos mediam 3,32:1 e 3,53:1 sobre
     --rz-cream (calculado, fórmula WCAG de luminância relativa), abaixo do
     mínimo de 4,5:1 pra texto normal. docs/01-design-system.md §2 afirmava
     4,6:1 pros dois — número nunca bateu com o hex real. Mesma família de
     matiz, só mais escuros; --rz-terra-lt (usado sobre --rz-dark) não muda,
     já passava (5,75:1). */
  --rz-ink-3:#5F604F;
  --rz-terra:#9C4C25;
  --rz-terra-lt:#CF7A4A;
  --rz-gold:#A98A4E;
  --rz-line:#DCD1BC;
  --rz-line-2:#CFC2A9;
  --rz-line-dark:#28311F;
  --rz-on-dark:#E7E1D3;
  --rz-on-dark-2:#A5A695;

  /* monograma — 4 tons, ver ADR-007 */
  --rz-mono-1:#5C6B4E;
  --rz-mono-2:#9B5A32;
  --rz-mono-3:#3E4A38;
  --rz-mono-4:#7A6438;

  /* perfil "Caderno de campo" (ADR-029/030) — sálvia = identidade autodeclarada,
     dourado-edge/tint (abaixo) = variação de --rz-gold pra ficha lateral e marco de tempo. */
  --rz-sage:#5C6B4E;

  /* tipografia */
  --rz-font-serif:"Playfair Display", Georgia, serif;
  --rz-font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --rz-fs-hero:clamp(2.45rem, 1.35rem + 4.4vw, 4.35rem);
  --rz-fs-h2:clamp(1.72rem, 1.25rem + 1.9vw, 2.7rem);
  --rz-fs-h3:clamp(1.06rem, 1rem + .3vw, 1.22rem);
  --rz-fs-nome:clamp(1.4rem, 1.1rem + 1.2vw, 2rem);
  --rz-fs-frase:clamp(1.05rem, .95rem + .4vw, 1.25rem);
  --rz-fs-lead:clamp(.97rem, .92rem + .3vw, 1.09rem);
  --rz-fs-body:clamp(.86rem, .83rem + .16vw, .94rem);
  --rz-fs-micro:clamp(.72rem, .7rem + .1vw, .79rem);
  --rz-measure:62ch;

  /* proporção */
  --rz-gutter:20px;
  --rz-maxw:1180px;
  --rz-sec:clamp(44px, 6.4vw, 96px);
  --rz-gap:clamp(12px, 1.1vw, 18px);

  /* Escala de espaço (2026-08-29). Antes existiam só os dois tokens acima —
     `--rz-sec` pro espaço ENTRE seções e `--rz-gap` pro espaço DENTRO de
     grade — e nada pro espaço entre dois elementos quaisquer. O resultado
     eram 233 estilos inline nos templates usando 18 valores de px escritos à
     mão (4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 40,
     48), o que fazia o ritmo vertical mudar de página pra página. O guia do
     projeto já proibia isso (`docs/03-guia-de-novas-paginas.md` §4: "Espaço
     vertical vem de `--rz-sec`, não é valor solto") — faltava a escala pra
     obedecer.

     Sete degraus, progressão de ~1,5×. Cobrem os 18 valores soltos sem que
     ninguém precise decidir entre 20 e 22. */
  --rz-e1:4px;
  --rz-e2:8px;
  --rz-e3:14px;
  --rz-e4:22px;
  --rz-e5:34px;
  --rz-e6:52px;
  --rz-e7:80px;

  /* forma */
  --rz-r-xl:26px;
  --rz-r-lg:20px;
  --rz-r-pill:999px;
  --rz-shadow:0 2px 6px -2px rgba(23,26,19,.07), 0 18px 34px -22px rgba(23,26,19,.42);
  --rz-shadow-lift:0 4px 10px -4px rgba(23,26,19,.09), 0 30px 50px -28px rgba(23,26,19,.55);

  /* estrutura */
  --rz-header-h:60px;
  --rz-tab-h:62px;
  --rz-ease:cubic-bezier(.2,.7,.3,1);
}

/* Faixas de dispositivo oficiais. Ver docs/01, seção 4. */
@media (min-width:600px){  :root{--rz-gutter:28px} }
@media (min-width:768px){  :root{--rz-gutter:34px; --rz-header-h:68px} }
@media (min-width:1024px){ :root{--rz-gutter:40px; --rz-maxw:1200px; --rz-header-h:76px} }
@media (min-width:1440px){ :root{--rz-gutter:56px; --rz-maxw:1300px} }
@media (min-width:1800px){ :root{--rz-maxw:1440px; --rz-measure:66ch} html{font-size:17.5px} }
@media (min-width:2400px){ :root{--rz-maxw:1560px} html{font-size:19px} }

/* --------------------------------------------------------------------------
   Superfícies translúcidas e tons derivados.
   Existem para que nenhum rgba()/hex literal apareça em base.css ou
   components.css — requisito da auditoria A1.1.
   -------------------------------------------------------------------------- */
:root{
  --rz-glass-bar:rgba(238,226,209,.85);   /* cabeçalho com desfoque */
  --rz-glass-tabs:rgba(241,232,216,.92);  /* abas inferiores */
  --rz-veil-35:rgba(255,255,255,.35);
  --rz-veil-40:rgba(255,255,255,.40);
  --rz-veil-50:rgba(255,255,255,.50);
  --rz-veil-70:rgba(255,255,255,.70);
  /* rgb(156,76,37) = --rz-terra atual (#9C4C25, ver bloco de contraste
     abaixo). Achado da varredura de navegação desta rodada: estes três
     continuavam com o rgb() do --rz-terra antigo (#B75E30/183,94,48) depois
     da mudança de contraste, deixando bordas/fundos de erro (.rz-empty--erro,
     .rz-tag--terra) com um tom que não batia mais com o token base. */
  --rz-terra-tint:rgba(156,76,37,.06);
  --rz-terra-tint-2:rgba(156,76,37,.08);
  --rz-terra-edge:rgba(156,76,37,.40);
  --rz-sage-edge:rgba(92,107,78,.40);
  --rz-sage-tint:rgba(92,107,78,.06);
  --rz-gold-edge:rgba(169,138,78,.40);
  --rz-gold-tint:rgba(169,138,78,.06);
  --rz-panel-veil-50:rgba(40,49,32,.50);
  --rz-panel-veil-78:rgba(40,49,32,.78);
  --rz-on-dark-solid:#F3EDE0;             /* texto sobre botão escuro */
  --rz-dark-hover:#1A2618;
  /* refino visual 2026-08-28: 1,98:1 sobre --rz-cream antes — quase
     ilegível. Ainda deliberadamente mais claro que --rz-ink-3 (não é pra
     parecer texto já preenchido), mas agora em 3,1:1. */
  --rz-placeholder:#867F6C;
  --rz-mono-ring:rgba(255,255,255,.25);

  /* textura de papel — grão sutil pra ficha do "caderno de campo".
     CSS noise via radial-gradient repetido, sem imagem externa.
     Opacidade baixa (visível só com atenção). */
  --rz-paper-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");

  /* ficha — sombra e gradiente "caderno de campo" evoluído */
  --rz-ficha-shadow:0 4px 20px -8px rgba(23,26,19,.12);
  --rz-ficha-shadow-hover:0 6px 28px -8px rgba(23,26,19,.18);
  --rz-ficha-gradient:linear-gradient(180deg,rgba(169,138,78,.04) 0%,transparent 40%);
}
