/* xmljats — tokens do sistema visual: a UNICA fonte de cor, espaço, raio, sombra e fonte (specs/030 seção 2.1).
   As duas interfaces usam este arquivo enquanto convivem (specs/031 seção 1.1): o Vue o importa em src/main.ts, e as
   telas Jinja o carregam em app/templates/base.html, ANTES de app/static/style.css. Duas paletas divergindo é o pior
   sintoma da convivência, então nenhum outro arquivo declara token (ops/test_tokens.py cobra).

   Contraste: todo par texto/fundo é medido (WCAG 2.x) por python ops/audita_contraste.py, que lê ESTE arquivo e
   escreve app/static/contraste.md. Texto normal >= 4.5:1; texto grande, ícones e bordas de campo >= 3:1.
   Regra dos tokens: --text/--text-2/--muted/--faint são tintas; --bg/--surface/--surface-2/--surface-3 são fundos neutros;
   --x-ink só em cima de --x-bg (chips e mensagens); --brand-ink só em cima de --brand/--brand-2; --brand-text só em cima
   de --brand-soft/--brand-soft-2 ou dos fundos neutros.
*/

:root{
  color-scheme:light;
  --bg:#EDF0F5; --bg-2:#E4E9F1; --surface:#FAFBFD; --surface-2:#F2F5F9; --surface-3:#E7ECF3;
  --border:#D5DCE6; --border-strong:#7C8998;
  --text:#131A24; --text-2:#3E4B5B; --muted:#5C6979; --faint:#5F6C7B;
  --brand:#1B3A66; --brand-2:#2B5AA0; --brand-ink:#FFFFFF; --brand-soft:#E4ECF8; --brand-soft-2:#D2DFF3; --brand-text:#1B3A66; --link:#1F4E8C;
  --accent:#157A62; --accent-soft:#DDF2EC;
  --crit:#B3261E; --crit-bg:#FBE9E7; --crit-ink:#7A1A14;
  --warn:#995607; --warn-bg:#FFF1DA; --warn-ink:#6B3B00;
  --ok:#1F7A4D; --ok-bg:#E3F3E9; --ok-ink:#14502F;
  --info:#2F5FA5; --info-bg:#E6EEF9; --info-ink:#1B3D6E;
  --glow:radial-gradient(900px 320px at 18% -10%, rgba(43,90,160,.13), transparent 70%),radial-gradient(700px 300px at 92% -20%, rgba(21,122,98,.10), transparent 70%);
  --ring:0 0 0 3px rgba(43,90,160,.28);
  --shadow-1:0 1px 2px rgba(19,26,36,.05),0 1px 1px rgba(19,26,36,.04);
  --shadow-2:0 2px 6px rgba(19,26,36,.07),0 14px 36px -20px rgba(19,26,36,.35);
  --shadow-3:0 24px 60px -30px rgba(19,26,36,.45);
  --select-arrow:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%235C6979' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  --r-1:8px; --r-2:12px; --r-3:16px;
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px;
  --sans:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",Consolas,"SFMono-Regular",monospace;
  --side-w:252px;
}
/* Escuro: escolhido pelo usuário (data-theme) ou pelo sistema quando o usuário deixou em "sistema". */
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0E131B; --bg-2:#121924; --surface:#151C27; --surface-2:#1A2230; --surface-3:#212B3A;
  --border:#2A3442; --border-strong:#62708A;
  --text:#E9EEF4; --text-2:#C3CCD7; --muted:#9AA6B4; --faint:#8B99A9;
  --brand:#3A6FBF; --brand-2:#3568B8; --brand-ink:#FFFFFF; --brand-soft:#1B2C48; --brand-soft-2:#213858; --brand-text:#9DC0F2; --link:#8FB5EC;
  --accent:#4CC5A2; --accent-soft:#12302A;
  --crit:#F08A80; --crit-bg:#3B1D1B; --crit-ink:#FFD3CE;
  --warn:#F2B95F; --warn-bg:#3A2A0F; --warn-ink:#FFDFA8;
  --ok:#6FD09A; --ok-bg:#143324; --ok-ink:#C6F0D6;
  --info:#7FA8E6; --info-bg:#1B2B45; --info-ink:#D3E3FA;
  --glow:radial-gradient(900px 320px at 18% -10%, rgba(58,111,191,.22), transparent 70%),radial-gradient(700px 300px at 92% -20%, rgba(76,197,162,.12), transparent 70%);
  --ring:0 0 0 3px rgba(143,181,236,.40);
  --shadow-1:0 1px 2px rgba(0,0,0,.45);
  --shadow-2:0 2px 8px rgba(0,0,0,.5),0 14px 36px -20px rgba(0,0,0,.85);
  --shadow-3:0 24px 60px -30px rgba(0,0,0,.9);
  --select-arrow:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%239AA6B4' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#0E131B; --bg-2:#121924; --surface:#151C27; --surface-2:#1A2230; --surface-3:#212B3A;
    --border:#2A3442; --border-strong:#62708A;
    --text:#E9EEF4; --text-2:#C3CCD7; --muted:#9AA6B4; --faint:#8B99A9;
    --brand:#3A6FBF; --brand-2:#3568B8; --brand-ink:#FFFFFF; --brand-soft:#1B2C48; --brand-soft-2:#213858; --brand-text:#9DC0F2; --link:#8FB5EC;
    --accent:#4CC5A2; --accent-soft:#12302A;
    --crit:#F08A80; --crit-bg:#3B1D1B; --crit-ink:#FFD3CE;
    --warn:#F2B95F; --warn-bg:#3A2A0F; --warn-ink:#FFDFA8;
    --ok:#6FD09A; --ok-bg:#143324; --ok-ink:#C6F0D6;
    --info:#7FA8E6; --info-bg:#1B2B45; --info-ink:#D3E3FA;
    --glow:radial-gradient(900px 320px at 18% -10%, rgba(58,111,191,.22), transparent 70%),radial-gradient(700px 300px at 92% -20%, rgba(76,197,162,.12), transparent 70%);
    --ring:0 0 0 3px rgba(143,181,236,.40);
    --shadow-1:0 1px 2px rgba(0,0,0,.45);
    --shadow-2:0 2px 8px rgba(0,0,0,.5),0 14px 36px -20px rgba(0,0,0,.85);
    --shadow-3:0 24px 60px -30px rgba(0,0,0,.9);
    --select-arrow:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%239AA6B4' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  }
}
