/* Design System — tokens (Parte 1 do plano: "Grid System / suíço"). */

/* Fontes auto-hospedadas — Propshaft fingerprinta os url() (app/assets/fonts é load path). */
@font-face{font-family:"Archivo";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/archivo-400-a45e3aff.woff2") format("woff2");}
@font-face{font-family:"Archivo";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/archivo-500-d570699f.woff2") format("woff2");}
@font-face{font-family:"Archivo";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/archivo-600-cafc4a45.woff2") format("woff2");}
@font-face{font-family:"Archivo";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/archivo-700-05cdd14e.woff2") format("woff2");}
@font-face{font-family:"Archivo";font-style:normal;font-weight:800;font-display:swap;src:url("/assets/archivo-800-ab4513af.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/ibm-plex-mono-400-d803141a.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/ibm-plex-mono-500-3f7bbac1.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/ibm-plex-mono-600-b71798d4.woff2") format("woff2");}

:root{
  /* neutros (papel quente quase-branco) */
  --paper:#fcfcfb; --surface:#ffffff; --surface-sunken:#f3f3f1;
  --ink:#111111; --ink-2:#5e5e5e; --ink-3:#9a9a9a;
  --line:#e4e4e2; --line-2:#cfcfcd;
  /* marca: grafite + família azul-meio-índigo + semânticos (ok/warn/danger) */
  --brand:#2A3140; --brand-ink:#1d2430; --danger:#b23b30; --ok:#138a55; --warn:#bf7016;
  --h1:#2D3B6B; --h2:#3D4F92; --h3:#4E63AC; --h4:#6076B8; --h5:#7C92C8;
  /* tinta de apresentação (efêmera): coral quente, NÃO o vermelho de danger (que lê como "sangue") */
  --ink-marker:#ff6f61;
  /* cor por entidade (tag de identidade do dossiê): Produto = grafite, Parte = azul cobalto */
  --entity-produto:var(--brand); --entity-parte:#2d6cb6;
  /* acento único do editor = índigo da marca (era o vermelho suíço, alinhado às telas de projeto) */
  --accent:var(--h3);
  /* paleta CATEGÓRICA de identidade da Parte no canvas de ancoragem (doc 53). Não é escala nem
     semântica: o slot vem de Part#color_index (nasce e nunca é reatribuído) e cicla com módulo.
     Regras que a definiram — mexer aqui sem elas quebra o modal:
       · contraste ≥ 5:1 contra BRANCO (o número do step é branco 10px bold sobre o badge; o ocre
         antigo #b5791a dava 3.7:1 e reprovava — daí --part-2 mais escuro);
       · matizes espaçados na ORDEM em que são atribuídos (vizinhos nunca se parecem);
       · longe de --danger e --ok, que já significam outra coisa neste app;
       · dessaturadas — o canvas fica sóbrio mesmo com 8 Partes acesas. */
  --part-1:#4E63AC; --part-2:#8f6410; --part-3:#2f7d52; --part-4:#9c3f6d;
  --part-5:#1f6f86; --part-6:#9c5334; --part-7:#5c6b2f; --part-8:#6b4a9e;
  --part-slots:8;
  /* geometria — SHARP */
  --radius:0; --bd:1px solid var(--line); --rule:2px solid var(--ink);
  --rail-w:52px; /* largura do rail de navegação (doc 51) — quem centra contra a viewport desconta */
  /* gabarito de controle (doc 52): DOIS tamanhos, nomeados — ação de página (botões de chrome,
     controles de barra) e controle compacto de bancada (pílulas mono da toolbar do editor).
     Alturas fora destes dois são exceção documentada, não número novo. */
  --control-h:34px; --control-h-sm:26px;
  /* espaçamento */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px; --s10:40px;
  /* tipografia */
  --font-ui:"Archivo", system-ui, sans-serif;
  --font-mono:"IBM Plex Mono", ui-monospace, monospace;
  /* escala (doc 50): 7 degraus em rem sobre a base do navegador (1rem = 16px por padrão).
     O degrau se escolhe pelo PAPEL, não pelo número que estava no lugar. Prosa lida, prosa
     escrita (trix) e campo de input dividem --fs-body de propósito: editar não reflui o texto
     e nenhum input fica abaixo dos 16px que disparam zoom no iOS. */
  --fs-label:.625rem;    /* rótulo mono uppercase (eyebrow, breadcrumb, contador, tag) */
  --fs-meta:.75rem;      /* dica, erro, legenda */
  --fs-ui:.875rem;       /* botão, rótulo de controle, meta de card */
  --fs-body:1rem;        /* prosa lida e escrita, campos de entrada */
  --fs-lead:1.125rem;    /* título de card e de campo */
  --fs-section:1.375rem; /* título de seção e de modal */
  --fs-page:2rem;        /* título de página */
  /* motion */
  --ease:cubic-bezier(.2,.6,.2,1); --t1:120ms; --t2:180ms;
}
