/* ============================================================
 * FBG Design Tokens — ARQUIVO GERADO. Não editar à mão.
 * Fonte: src/tokens/primitives.js + src/tokens/semantic.js
 * Regenerar: npm run build:css
 * ============================================================ */

/* --- NÍVEL 1 — Primitivos ------------------------------------ */
:root {
  --color-blue-200: #ABBCED;
  --color-blue-400: #5779DB;
  --color-blue-600: #2547D0;
  --color-blue-700: #0B4FD8;
  --color-blue-800: #1E3A8A;
  --color-blue-900: #0F2159;
  --color-crimson-100: #F2C6CF;
  --color-crimson-500: #DC143C;
  --color-crimson-700: #C42127;
  --color-crimson-800: #A80F2E;
  --color-neutral-0: #FFFFFF;
  --color-neutral-50: #F7F5F0;
  --color-neutral-200: #E4E2D9;
  --color-neutral-300: #D9D7D0;
  --color-neutral-400: #B4B2A9;
  --color-neutral-450: #888780;
  --color-neutral-500: #6E6D67;
  --color-neutral-600: #5F5E5A;
  --color-neutral-700: #444441;
  --color-neutral-900: #111111;
  --color-neutral-950: #0A0A0A;
  --color-dark-border: #262625;
  --color-dark-surface: #141414;
  --color-dark-muted: #7D7C76;
  --color-dark-mutedLarge: #6B6A66;
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-32: 128px;
  --font-family-display: 'Space Grotesk', 'General Sans', 'Neue Montreal', sans-serif;
  --font-family-body: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-family-mono: 'JetBrains Mono', 'IBM Plex Mono', ui-monospace, monospace;
  --font-family-jp: 'Noto Serif JP', 'Shippori Mincho', serif;
  --font-size-label: clamp(0.6875rem, 0.9vw, 0.75rem);
  --font-size-caption: clamp(0.75rem, 1vw, 0.8125rem);
  --font-size-body: clamp(0.9375rem, 1.1vw, 1rem);
  --font-size-lead: clamp(1rem, 1.4vw, 1.125rem);
  --font-size-h3: clamp(1.125rem, 2vw, 1.375rem);
  --font-size-h2: clamp(1.5rem, 3vw, 1.875rem);
  --font-size-h1: clamp(2rem, 4.5vw, 2.625rem);
  --font-size-display: clamp(2.5rem, 8vw, 5rem);
  --font-leading-tight: 1.15;
  --font-leading-snug: 1.3;
  --font-leading-normal: 1.5;
  --font-leading-relaxed: 1.7;
  --font-tracking-tight: -0.01em;
  --font-tracking-normal: 0;
  --font-tracking-wide: 0.03em;
  --font-tracking-wider: 0.08em;
  --font-tracking-jp: 0.25em;
  --radius-none: 0;
  --radius-control: 4px;
  --radius-card: 12px;
  --radius-full: 9999px;
  --motion-fast: 120ms;
  --motion-base: 200ms;
  --motion-slow: 320ms;
  --motion-ease: cubic-bezier(0.2, 0, 0, 1);
}

/* --- NÍVEL 2 — Semântico: modo escuro (padrão da marca) ------- */
:root,
[data-theme='dark'] {
  --color-bg: #0A0A0A;
  --color-surface: #141414;
  --color-surface-sunken: #0A0A0A;
  --text-primary: #FFFFFF;
  --text-secondary: #B4B2A9;
  --text-muted: #7D7C76;
  --text-on-primary: #FFFFFF;
  --text-on-accent: #FFFFFF;
  --color-primary: #1E3A8A;
  --color-primary-hover: #2547D0;
  --color-primary-active: #0F2159;
  --color-primary-fg: #5779DB;
  --color-primary-subtle: #131A2E;
  --color-accent: #DC143C;
  --color-accent-hover: #C42127;
  --color-accent-fg: #DC143C;
  --color-accent-subtle: #2A0B14;
  --color-accent-brand: #C42127;
  --border: #262625;
  --border-strong: #3A3A38;
  --border-interactive: #4A4A47;
  --color-disabled: #7D7C76;
  --color-focus: #5779DB;
}

/* --- NÍVEL 2 — Semântico: modo claro (funcional) -------------- */
[data-theme='light'] {
  --color-bg: #F7F5F0;
  --color-surface: #FFFFFF;
  --color-surface-sunken: #EFEDE6;
  --text-primary: #111111;
  --text-secondary: #5F5E5A;
  --text-muted: #6E6D67;
  --text-on-primary: #FFFFFF;
  --text-on-accent: #FFFFFF;
  --color-primary: #1E3A8A;
  --color-primary-hover: #2547D0;
  --color-primary-active: #0F2159;
  --color-primary-fg: #1E3A8A;
  --color-primary-subtle: #E6EAF6;
  --color-accent: #DC143C;
  --color-accent-hover: #A80F2E;
  --color-accent-fg: #A80F2E;
  --color-accent-subtle: #F2C6CF;
  --color-accent-brand: #C42127;
  --border: #E4E2D9;
  --border-strong: #D9D7D0;
  --border-interactive: #B4B2A9;
  --color-disabled: #B4B2A9;
  --color-focus: #1E3A8A;
}

/* Respeita a preferência do sistema quando o autor não fixou um tema.
   Um data-theme explícito sempre vence. */
@media (prefers-color-scheme: light) {
  :root:not([data-theme]) {
    --color-bg: #F7F5F0;
    --color-surface: #FFFFFF;
    --color-surface-sunken: #EFEDE6;
    --text-primary: #111111;
    --text-secondary: #5F5E5A;
    --text-muted: #6E6D67;
    --text-on-primary: #FFFFFF;
    --text-on-accent: #FFFFFF;
    --color-primary: #1E3A8A;
    --color-primary-hover: #2547D0;
    --color-primary-active: #0F2159;
    --color-primary-fg: #1E3A8A;
    --color-primary-subtle: #E6EAF6;
    --color-accent: #DC143C;
    --color-accent-hover: #A80F2E;
    --color-accent-fg: #A80F2E;
    --color-accent-subtle: #F2C6CF;
    --color-accent-brand: #C42127;
    --border: #E4E2D9;
    --border-strong: #D9D7D0;
    --border-interactive: #B4B2A9;
    --color-disabled: #B4B2A9;
    --color-focus: #1E3A8A;
  }
}
