/* GOLD BRAND KIT V3 — Alibaba Cloud Gold — 2026.10.05
   Authority: gold-ux-armor#10; Ricardo approved Gold Suporte Console compacto.
   White is the house default. Explicit data-theme="dark|light" overrides it;
   data-theme="auto" opts into the operating system preference.
   Gold is a restrained identity accent only; functional actions use semantic
   colors. Primary is blue, confirmation green, cancel neutral, danger red and
   warning amber. Titles and body use neutral ink. Never use Gold as action fill
   or as text on a light surface.
   Designer assets retain their original #AD892E; never recolour logos.
   All changes to this file require VERSION in the same commit (issue #31).
*/

:root{
    --gold:#BF8D02;
    --gold-deep-light:#8F6A02;
    --gold-deep:var(--gold-deep-light);
    --on-gold:#191B20;
    --ink:#191B20;
    --ink-2:#555C68;
    --muted:#555C68;
    --ground:#F5F6F8;
    --surface:#FFFFFF;
    --surface-2:#F0F2F5;
    --line:#DEE2E9;
    --input-border:#808898;
    --info:#2B6CB0;
    --info-bg:#E7EEF6;
    --on-info:#FFFFFF;
    --ok:#1A7548;
    --ok-bg:#E7F2EC;
    --on-ok:#FFFFFF;
    --warn:#8A5F0C;
    --warn-bg:#F7EED9;
    --on-warn:#FFFFFF;
    --bad:#B4402E;
    --bad-bg:#F7E6E2;
    --on-bad:#FFFFFF;
    --conflict:#7A4FB8;
    --conflict-bg:#F1E9FB;
    --bordo:#7A1F3D;
    --bordo-deep:#5C1730;
    --bordo-bg:#F6E8ED;
    --on-bordo:#FFFFFF;
    --focus:var(--info);
    --shadow:0 1px 2px rgba(25,27,32,.05),0 6px 18px rgba(25,27,32,.04);
    --shadow-s:0 1px 2px rgba(25,27,32,.05);
    --dicom:#090A0B;
    --dicom-amber:#E7B23C;
    --dicom-tool:#23262A;
    --radius:9px;
    --radius-s:5px;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    --font-num:"SF Mono",ui-monospace,"Roboto Mono",Menlo,monospace;
    --console-fs:13px;
    --console-fs-meta:12px;
    --console-fs-label:11px;
    --console-control:32px;
    --console-row:28px;
    --console-nav:208px;
    --primary-action-bg:var(--info);
    --primary-action-fg:var(--on-info);
    --primary-action-border:var(--info);
    --confirm-action-bg:var(--ok);
    --confirm-action-fg:var(--on-ok);
    --confirm-action-border:var(--ok);
    --cancel-action-bg:var(--surface-2);
    --cancel-action-fg:var(--ink);
    --cancel-action-border:var(--input-border);
    /* Compatibility aliases: existing primary controls inherit the semantic blue. */
    --action-bg:var(--primary-action-bg);
    --action-fg:var(--primary-action-fg);
    --action-border:var(--primary-action-border);
    --disabled-bg:var(--surface-2);
    --disabled-fg:var(--muted);
}

:root[data-theme="light"]{
    --gold:#BF8D02;
    --gold-deep-light:#8F6A02;
    --gold-deep:var(--gold-deep-light);
    --on-gold:#191B20;
    --ink:#191B20;
    --ink-2:#555C68;
    --muted:#555C68;
    --ground:#F5F6F8;
    --surface:#FFFFFF;
    --surface-2:#F0F2F5;
    --line:#DEE2E9;
    --input-border:#808898;
    --info:#2B6CB0;
    --info-bg:#E7EEF6;
    --on-info:#FFFFFF;
    --ok:#1A7548;
    --ok-bg:#E7F2EC;
    --on-ok:#FFFFFF;
    --warn:#8A5F0C;
    --warn-bg:#F7EED9;
    --on-warn:#FFFFFF;
    --bad:#B4402E;
    --bad-bg:#F7E6E2;
    --on-bad:#FFFFFF;
    --conflict:#7A4FB8;
    --conflict-bg:#F1E9FB;
    --bordo:#7A1F3D;
    --bordo-deep:#5C1730;
    --bordo-bg:#F6E8ED;
    --on-bordo:#FFFFFF;
    --focus:var(--info);
    --shadow:0 1px 2px rgba(25,27,32,.05),0 6px 18px rgba(25,27,32,.04);
    --shadow-s:0 1px 2px rgba(25,27,32,.05);
}

:root[data-theme="dark"]{
    --gold:#BF8D02;
    --gold-deep-light:#8F6A02;
    --gold-deep:#D9AF3A;
    --on-gold:#191B20;
    --ink:#F3F4F7;
    --ink-2:#BFC5D0;
    --muted:#BFC5D0;
    --ground:#111216;
    --surface:#1B1D23;
    --surface-2:#24272F;
    --line:#343944;
    --input-border:#848D9D;
    --info:#7FB0E0;
    --info-bg:#152230;
    --on-info:#191B20;
    --ok:#4FB07C;
    --ok-bg:#16261E;
    --on-ok:#191B20;
    --warn:#D5A340;
    --warn-bg:#2A2314;
    --on-warn:#191B20;
    --bad:#E07A66;
    --bad-bg:#2B1B18;
    --on-bad:#191B20;
    --conflict:#B489EA;
    --conflict-bg:#241C33;
    --bordo:#E3A0B5;
    --bordo-deep:#EDBCCB;
    --bordo-bg:#2A1720;
    --on-bordo:#191B20;
    --focus:var(--info);
    --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.2);
    --shadow-s:0 1px 2px rgba(0,0,0,.3);
}

@media (prefers-color-scheme:dark){:root[data-theme="auto"]{
    --gold:#BF8D02;
    --gold-deep-light:#8F6A02;
    --gold-deep:#D9AF3A;
    --on-gold:#191B20;
    --ink:#F3F4F7;
    --ink-2:#BFC5D0;
    --muted:#BFC5D0;
    --ground:#111216;
    --surface:#1B1D23;
    --surface-2:#24272F;
    --line:#343944;
    --input-border:#848D9D;
    --info:#7FB0E0;
    --info-bg:#152230;
    --on-info:#191B20;
    --ok:#4FB07C;
    --ok-bg:#16261E;
    --on-ok:#191B20;
    --warn:#D5A340;
    --warn-bg:#2A2314;
    --on-warn:#191B20;
    --bad:#E07A66;
    --bad-bg:#2B1B18;
    --on-bad:#191B20;
    --conflict:#B489EA;
    --conflict-bg:#241C33;
    --bordo:#E3A0B5;
    --bordo-deep:#EDBCCB;
    --bordo-bg:#2A1720;
    --on-bordo:#191B20;
    --focus:var(--info);
    --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.2);
    --shadow-s:0 1px 2px rgba(0,0,0,.3);
}
}

/* ============================================================
   CAMADA NÃO-COR (proposta YAMATO, 30/07/2026 — convite do ux-breda
   na gold-yamato#2). Valores de `SPEC_superficie_e_design_system`
   §2.2/§2.3, NENHUM inventado: são os que a spec já cravou.
   Por que aqui: o portal precisou destes tokens pra construir a
   etapa 1 e não havia onde consumi-los; sem promover, cada produto
   da família reinventa a própria escala e a "fonte única" vira 5.
   ⚠ COR NÃO ENTRA NESTE BLOCO. Exceção nomeada: --focus (anel de
   foco), que o §2 exige e manda NUNCA ser dourado.
   ============================================================ */
:root{
    /* tipo (§2.2) — 400 corpo · 600 título de card/label · 700 título de tela */
    --fs-xs:0.75rem;   --lh-xs:1rem;      /* 12 — legal, timestamps */
    --fs-sm:0.875rem;  --lh-sm:1.25rem;   /* 14 — meta, badges, nav */
    --fs-base:1rem;    --lh-base:1.5rem;  /* 16 — corpo. NUNCA <16px em input (zoom iOS) */
    --fs-lg:1.125rem;  --lh-lg:1.625rem;  /* 18 — título de card */
    --fs-xl:1.375rem;  --lh-xl:1.75rem;   /* 22 — título de tela */
    --fs-2xl:1.75rem;  --lh-2xl:2.125rem; /* 28 — saudação da home ({saudacao}, Maria) */

    /* espaço — grid de 4px (§2.3) */
    --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px;
    --sp-6:24px; --sp-8:32px; --sp-10:40px; --sp-12:48px;

    /* raio complementar (--radius e --radius-s já existem acima) */
    --radius-badge:999px;

    /* movimento (§2.3) — prefers-reduced-motion zera no consumidor */
    --motion-fast:150ms; --motion-base:220ms;
    --ease:cubic-bezier(.2,.8,.3,1);

    /* ergonomia (§2.3) */
    --touch-target:44px;   /* mínimo em QUALQUER interativo mobile */
    --content-max:1100px;  /* max-width desktop */

    /* foco (§2 regra 4) — visível em TODO interativo; NUNCA dourado */
    --focus:var(--info);
  }

/* ============================================================
   CAMADA E-MAIL (promovida 09/08/2026 — ordem do dono
   gold-heimdall#1 comment-4329: padrão de e-mail danefleet-wide;
   lei transversal em gold-canon#245).
   POR QUE AQUI: e-mail NÃO resolve var() — Outlook renderiza com o
   motor do Word e vários clientes removem <style> inteiro. Mas se
   cada remetente digitar o hex à mão, viram 13 lugares onde alguém
   EDITA a marca (medido: gold-canon#245 comment-4339). Então o valor
   mora AQUI, no publicador único, e o `design_system/email/
   gold_email_kit.py` o DERIVA em build-time, injetando inline.
   ⇒ zero hex digitado no remetente; 1 lugar pra mudar a marca.
   Mesmo padrão do bloco YAMATO acima: promover em vez de reinventar.

   PROVENIÊNCIA: os semânticos abaixo são o AS-BUILT do e-mail
   «[Gold] Logística 07/08» do @ojisan-bot — validado no Mail do
   iPhone, não inventado agora (lei gold-canon#245 §4: derivar do
   as-built). ⛔ Só mudei o que REPROVAVA contraste WCAG AA; o que
   passava ficou intacto, mesmo não sendo meu token preferido.
   Régua medida em email/check_contrast.py — ⛔ não edite cor daqui
   sem rodar o gate (ele sai rc=1 e diz qual par reprovou).

   ⚠ E-MAIL É SEMPRE LIGHT: os blocos @media/[data-theme] acima NÃO
   valem aqui — o parser do kit lê só o :root base. Cliente que
   inverte à força (Gmail Android) é tratado em GOLD_EMAIL_KIT.md §4.
   ============================================================ */
:root{
    /* ⚠ O DOURADO DO LOGO — promovido 09/08 porque ele EXISTIA como decisão do
       Ricardo (29/07, ver topo deste arquivo) e ⛔ NÃO existia como token.
       Consequência medida: o e-mail de LAUDO — o artefato de maior alcance da
       Gold — usa #ac892d como ÚNICA cor de texto, 10 ocorrências, 3,30:1 🔴
       (@laudanum-bot, gold-ux-armor#18). Isso fica a 1 unidade de R e de B do
       #AD892E oficial ⟹ ⛔ não é «cor órfã que alguém inventou»: é o dourado do
       LOGO digitado de memória, e ele reprova IGUAL (3,28:1).
       ⭐ A REGRA VALE PROS DOIS DOURADOS: fill/brand, ⛔ NUNCA texto.
       ⛔ Não use este token em e-mail nem em UI — ele existe pra ser
       RECONHECÍVEL pelo gate e pra a decisão do dono ter endereço. */
    --gold-logo:#AD892E;      /* 3,28:1 no branco ⇒ ⛔ FILL de curva do logo APENAS */

    /* ═══ theme_color do PWA (barra do navegador / splash) — decisão de 09/08 ═══
       ⚠ É o ÚNICO token cujo TEXTO ⛔ não é nosso: quem escreve na barra é o SO.
       @yamato-bot mediu as duas pontas (gold-heimdall#20 c-5956) e ⛔ NENHUM dos
       nossos dourados passa AA nas duas escolhas possíveis:
         --gold      #BF8D02  branco 2,99 🔴  preto 7,03 ✅  ⟹ pior caso 2,99
         --gold-deep #8F6A02  branco 4,96 ✅  preto 4,23 🔴  ⟹ pior caso 4,23
       🔬 E eu medi o TETO: o melhor pior-caso possível para QUALQUER cor é
         4,58:1, em L=0,1791 (faixa L 0,1750–0,1833). ⇒ existem 264 dourados
         que passam os dois lados — ⛔ e com 0,08 de margem. ⛔ NÃO adotamos:
         um 7.º dourado a 1 arredondamento de reprovar OS DOIS lados é pior que
         escolher a falha survivável, e a casa passou o dia matando dourado solto.
       ⇒ ✅ DECISÃO (minha, é design): --gold-deep. ⛔ Não porque passa os dois
         (⛔ não passa), ⭐ e sim porque o pior caso dele é 4,23 (erra por 0,27)
         contra 2,99 do --gold (inutilizável). ⚖ Preço: a barra fica um tom mais
         escura que a marca. 24px de altura ⟹ a concessão mais barata da casa.
       🔴 O QUE CONTINUA SEM PROVA: qual cor o SO escolhe ⛔ não é sorteio — é
         função da luminância, determinística e ⛔ NÃO MEDIDA por nós. 1 aparelho
         Android fecha (o gate prova matemática; ⛔ nenhum bot prova pixel). */
    --pwa-theme:#8F6A02;      /* == --gold-deep · fill da barra do SO, ⛔ nunca texto */

    /* moldura */
    --email-max-w:720px;      /* ⛔ NÃO é --content-max (1100px é desktop-web) */
    --email-card:var(--surface-2);     /* fundo do card de KPI — as-built ojisan */
    --email-line-soft:var(--line);

    /* semântica de bloco — ⛔ NÃO é decorativa, não troque por gosto:
       amarelo=contexto/o que mudou · vermelho=precisa de HUMANO
       verde=a casa resolveu · azul=informação neutra */
    --email-brand-bg:#fff9e6;  --email-brand-fg:var(--ink);   /* 5.01:1 ✅ as-built */
    --email-action-bg:#fff4f2; --email-action-fg:#9f2019;   /* 7.23:1 ✅ as-built */
    --email-action-bar:#c0281f;
    --email-ok-bg:#e8f5e9;     --email-ok-fg:#2e7d32;       /* 4.56:1 ✅ as-built */
    --email-ok-bar:#2e7d32;
    --email-info-bg:#E7EEF6;   --email-info-fg:#2B6CB0;
    --email-info-bar:#2B6CB0;

    /* Gold Brand Kit V3 — legacy email-v2 aliases keep the producer API stable.
       The names are the producer/design-system contract. Every alias resolves
       to an already contrast-gated Gold pair; consumers send STATE, never hex. */
    --email-v2-brand-bg:var(--email-v3-brand-bg);       --email-v2-brand-fg:var(--email-v3-brand-fg);       --email-v2-brand-bar:var(--email-v3-brand-bar);
    --email-v2-healthy-bg:var(--email-v3-healthy-bg);        --email-v2-healthy-fg:var(--email-v3-healthy-fg);        --email-v2-healthy-bar:var(--email-v3-healthy-bar);
    --email-v2-information-bg:var(--email-v3-information-bg); --email-v2-information-fg:var(--email-v3-information-fg); --email-v2-information-bar:var(--email-v3-information-bar);
    --email-v2-review-bg:var(--email-v3-review-bg);             --email-v2-review-fg:var(--email-v3-review-fg);                 --email-v2-review-bar:var(--email-v3-review-bar);
    --email-v2-critical-bg:var(--email-v3-critical-bg);   --email-v2-critical-fg:var(--email-v3-critical-fg);   --email-v2-critical-bar:var(--email-v3-critical-bar);
    --email-v2-neutral-bg:var(--email-v3-neutral-bg);         --email-v2-neutral-fg:var(--email-v3-neutral-fg);               --email-v2-neutral-bar:var(--email-v3-neutral-bar);
  }

/* ============================================================
   CAMADA ERP (promovida 29/09/2026 — decisão do dono no redesign
   do Gold ERP, gold-ux-armor#47: «subir a escala do ERP para o
   gold-ux-armor; não quero segunda fonte de verdade escondida
   dentro do produto»).
   POR QUE EXISTE: a CAMADA NÃO-COR acima nasceu para portal e
   mobile (corpo 16px, alvo de toque 44px, raio 10/14). O ERP é
   desktop-first, operado com teclado e mouse, e precisa de muitos
   campos por tela. Sem esta camada o produto declararia a própria
   escala — a «fonte única» viraria duas.
   PROVENIÊNCIA: valores medidos no protótipo sobre as telas reais
   (design/gold_erp/, varredura de 211 programas). Controle de 26px
   é decisão do dono («denso, mas não Bloomberg para formigas»);
   ⛔ 24px não é o padrão.
   ⚠ COR NÃO ENTRA NESTE BLOCO. O ERP usa as mesmas cores e os
   mesmos pares já medidos; véu e realces são derivados no
   consumidor com color-mix() a partir dos tokens de cor.
   ⚠ ESCOPO: só o Gold ERP consome --erp-*. Portal, e-mail e TV
   seguem na escala de cima. ⛔ Não use --erp-fs em superfície de
   toque: 13px em input dá zoom no iOS.
   ============================================================ */
:root{
    /* tipo — 400 corpo · 500 rótulo · 600 ação/aba ativa · 700 título de tela */
    --erp-fs:13px;        /* corpo, valor de campo */
    --erp-fs-s:12px;      /* rótulo, grid, menu, botão */
    --erp-fs-xs:11px;     /* metadado, trilha, cabeçalho de grid */
    --erp-fs-title:15px;  /* título de tela */

    /* densidade */
    --erp-ctl:26px;       /* altura de input, select e botão */
    --erp-row:28px;       /* linha de grid e item de menu */
    --erp-radius:6px;     /* raio de controle (os 10/14 de cima são de card) */

    /* casca */
    --erp-top:44px;          /* barra superior */
    --erp-nav:264px;         /* navegação expandida */
    --erp-rail:48px;         /* navegação recolhida */
    --erp-content-max:1240px;/* largura útil do formulário */
    /* telas grandes (medido na loja 30/09: 1600×900, 1920×1080 — 80% —, 3840×2160 a 125% = 3072px úteis):
       com 1240px o 4K usava 40% da largura. Formulário e modal crescem até o teto largo;
       listagem (grade de pesquisa) usa a largura toda até o teto de grade. */
    --erp-content-wide:1680px;    /* teto de formulário, home e modal grande em tela ≥ 1800px */
    --erp-grid-max:2400px;        /* teto da grade de pesquisa (colunas ganham largura útil) */
  }

/* V3 email names; email-v2 aliases above preserve the transport/schema ABI. */
:root{
    --email-v3-brand-bg:var(--email-brand-bg);
    --email-v3-brand-fg:var(--email-brand-fg);
    --email-v3-brand-bar:var(--gold);
    --email-v3-healthy-bg:var(--email-ok-bg);
    --email-v3-healthy-fg:var(--email-ok-fg);
    --email-v3-healthy-bar:var(--email-ok-bar);
    --email-v3-information-bg:var(--email-info-bg);
    --email-v3-information-fg:var(--email-info-fg);
    --email-v3-information-bar:var(--email-info-bar);
    --email-v3-review-bg:var(--warn-bg);
    --email-v3-review-fg:var(--warn);
    --email-v3-review-bar:var(--warn);
    --email-v3-critical-bg:var(--email-action-bg);
    --email-v3-critical-fg:var(--email-action-fg);
    --email-v3-critical-bar:var(--email-action-bar);
    --email-v3-neutral-bg:var(--email-card);
    --email-v3-neutral-fg:var(--ink-2);
    --email-v3-neutral-bar:var(--line);
}
