/* ==========================================================================
   EVO Design System — Design Tokens (CSS Custom Properties)
   Fonte / Source: EVO Brandbook (draft v2), seções 3, 5, 6, 8, 9, 11, 15, 16
   Domínio oficial: evo.digital · E-mail: nome.sobrenome@evo.digital
   Versão / Version: 1.0.0-draft
   --------------------------------------------------------------------------
   Camadas / Layers
     1. Primitivos  (--evo-*)      valores crus da marca, nunca use direto na UI
     2. Semânticos  (--color-*, --space-*, --text-*, --radius-*, --shadow-*)
     3. Componente  (--btn-*, --field-*, --card-*)  herdam dos semânticos
   Regra / Rule: componentes consomem SEMÂNTICOS. Primitivos só alimentam
   os semânticos. Isso é o que permite tema claro/escuro e modos de expressão.
   ========================================================================== */

:root {
  color-scheme: light;

  /* ---------- 1. PRIMITIVOS — MARCA / BRAND PRIMITIVES -------------------- */
  /* Legado (primárias do brandbook) */
  --evo-navy: #081680;         /* Legacy Navy       */
  --evo-cyan: #75BADE;         /* Legacy Sky / EVO Cyan */
  --evo-gold: #DEB255;         /* Legacy Gold       */
  --evo-warm-gray: #D5D1C8;    /* Warm Gray         */
  --evo-steel: #5B5E63;        /* Steel             */
  /* Expansão da paleta */
  --evo-coral: #EB6964;
  --evo-aqua: #5DCAC5;
  --evo-cream: #F1EDE5;
  --evo-white: #FFFFFF;

  /* ---------- 1.1 RAMPAS / RAMPS ---------------------------------------- */
  --navy-50: #EEF1FB;  --navy-100: #D9DFF6; --navy-200: #B0BCEC;
  --navy-300: #7F90DE; --navy-400: #4C5FC4; --navy-500: #2233A5;
  --navy-600: #081680; --navy-700: #071269; --navy-800: #050D4C;
  --navy-900: #030830;

  --cyan-50: #F0F9FD;  --cyan-100: #DCF0FA; --cyan-200: #B9E1F4;
  --cyan-300: #94CFEB; --cyan-400: #75BADE; --cyan-500: #4B9FC9;
  --cyan-600: #2F80A9; --cyan-700: #226384; --cyan-800: #1A4A62;
  --cyan-900: #123342;

  --aqua-50: #EFFAF9;  --aqua-100: #D7F4F2; --aqua-200: #AEE9E6;
  --aqua-300: #83DCD8; --aqua-400: #5DCAC5; --aqua-500: #3AABA6;
  --aqua-600: #268A86; --aqua-700: #1E6D6A; --aqua-800: #185452;
  --aqua-900: #113B39;

  --gold-50: #FDF7EC;  --gold-100: #FAEDD3; --gold-200: #F3D9A5;
  --gold-300: #EAC578; --gold-400: #DEB255; --gold-500: #C4963B;
  --gold-600: #A0782C; --gold-700: #7C5D23; --gold-800: #5E461C;
  --gold-900: #3F2F13;

  --coral-50: #FEF1F0;  --coral-100: #FDDEDC; --coral-200: #FABDB9;
  --coral-300: #F49792; --coral-400: #EB6964; --coral-500: #D14742;
  --coral-600: #AE332F; --coral-700: #8A2724; --coral-800: #6A1E1C;
  --coral-900: #491413;

  /* Neutros: Cream e Warm Gray ancoram os claros, Steel ancora os escuros */
  --neutral-0: #FFFFFF;   --neutral-25: #FBFAF8;  --neutral-50: #F1EDE5;
  --neutral-100: #E8E4DB; --neutral-200: #D5D1C8; --neutral-300: #B8B4AB;
  --neutral-400: #94918A; --neutral-500: #74777B; --neutral-600: #5B5E63;
  --neutral-700: #44474B; --neutral-800: #2E3134; --neutral-900: #1B1D20;
  --neutral-950: #0E1013;

  /* Superfícies escuras derivadas do Navy (grafismo "fundo escuro", §5) */
  --ink-canvas: #060A1E; --ink-surface: #0C1230; --ink-raised: #141B41;
  --ink-border: #242C5C; --ink-fg: #F4F6FD;      --ink-fg-muted: #A9B2D6;

  /* ---------- 2. SEMÂNTICOS — COR / COLOR ------------------------------- */
  --color-bg-canvas: var(--neutral-25);
  --color-bg-surface: var(--neutral-0);
  --color-bg-raised: var(--neutral-0);
  --color-bg-sunken: var(--neutral-50);
  --color-bg-subtle: var(--neutral-50);
  --color-bg-inverse: var(--navy-600);
  --color-bg-brand-subtle: var(--navy-50);
  --color-bg-accent-subtle: var(--cyan-50);

  --color-fg-default: var(--navy-900);
  --color-fg-muted: var(--neutral-600);
  --color-fg-subtle: var(--neutral-400);
  --color-fg-brand: var(--navy-600);
  --color-fg-accent: var(--cyan-600);
  --color-fg-inverse: var(--neutral-0);
  --color-fg-on-brand: var(--neutral-0);

  --color-border-subtle: var(--neutral-100);
  --color-border-default: var(--neutral-200);
  --color-border-strong: var(--neutral-300);
  --color-border-brand: var(--navy-600);
  --color-border-inverse: var(--ink-border);

  /* Ações */
  --color-action-primary-bg: var(--navy-600);
  --color-action-primary-bg-hover: var(--navy-700);
  --color-action-primary-bg-active: var(--navy-800);
  --color-action-primary-fg: var(--neutral-0);
  --color-action-secondary-bg: transparent;
  --color-action-secondary-border: var(--navy-600);
  --color-action-secondary-fg: var(--navy-600);
  --color-action-secondary-bg-hover: var(--navy-50);
  --color-action-tertiary-fg: var(--navy-600);
  --color-action-tertiary-bg-hover: var(--navy-50);
  --color-action-disabled-bg: var(--neutral-100);
  --color-action-disabled-fg: var(--neutral-400);

  /* Feedback — mapeado apenas com cores de marca (ver §Acessibilidade) */
  --color-feedback-info-fg: var(--cyan-700);
  --color-feedback-info-bg: var(--cyan-50);
  --color-feedback-info-border: var(--cyan-200);
  --color-feedback-success-fg: var(--aqua-700);
  --color-feedback-success-bg: var(--aqua-50);
  --color-feedback-success-border: var(--aqua-200);
  --color-feedback-warning-fg: var(--gold-700);
  --color-feedback-warning-bg: var(--gold-50);
  --color-feedback-warning-border: var(--gold-200);
  --color-feedback-danger-fg: var(--coral-700);
  --color-feedback-danger-bg: var(--coral-50);
  --color-feedback-danger-border: var(--coral-200);

  --color-focus-ring: var(--cyan-500);
  --color-focus-ring-inverse: var(--cyan-300);
  --color-selection-bg: var(--navy-100);

  /* Data viz — ordem categórica obrigatória */
  --dataviz-1: var(--navy-500);
  --dataviz-2: var(--aqua-400);
  --dataviz-3: var(--cyan-400);
  --dataviz-4: var(--gold-400);
  --dataviz-5: var(--coral-400);
  --dataviz-6: var(--navy-800);
  --dataviz-7: var(--steel, #5B5E63);
  --dataviz-grid: var(--neutral-100);
  --dataviz-axis: var(--neutral-400);

  /* ---------- 2.1 TIPOGRAFIA / TYPOGRAPHY -------------------------------- */
  /* Tipografia oficial aprovada em julho/2026. Figtree: SIL OFL 1.1. JetBrains Mono: Apache 2.0. */
  --font-display: "Figtree", "Segoe UI", system-ui, sans-serif;
  --font-text: "Figtree", "Segoe UI", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;

  --text-display-xl: 700 4rem/1.02 var(--font-display);
  --text-display-lg: 700 3.25rem/1.05 var(--font-display);
  --text-display-md: 700 2.625rem/1.08 var(--font-display);
  --text-h1: 700 2.125rem/1.15 var(--font-display);
  --text-h2: 700 1.75rem/1.2 var(--font-display);
  --text-h3: 600 1.4375rem/1.25 var(--font-display);
  --text-h4: 600 1.1875rem/1.35 var(--font-display);
  --text-body-lg: 400 1.125rem/1.6 var(--font-text);
  --text-body: 400 1rem/1.6 var(--font-text);
  --text-body-sm: 400 0.875rem/1.55 var(--font-text);
  --text-caption: 400 0.8125rem/1.45 var(--font-text);
  --text-overline: 600 0.75rem/1.2 var(--font-text);
  --text-mono: 400 0.8125rem/1.5 var(--font-mono);

  --tracking-display: -0.022em;
  --tracking-heading: -0.014em;
  --tracking-body: 0em;
  --tracking-overline: 0.08em;

  --measure-short: 44ch;   /* títulos e leads   */
  --measure-default: 68ch; /* texto corrido     */
  --measure-long: 78ch;    /* documentos longos */

  /* ---------- 2.2 ESPAÇAMENTO / SPACING (base 4px) ----------------------- */
  --space-0: 0;      --space-1: 0.25rem; --space-2: 0.5rem;  --space-3: 0.75rem;
  --space-4: 1rem;   --space-5: 1.25rem; --space-6: 1.5rem;  --space-8: 2rem;
  --space-10: 2.5rem;--space-12: 3rem;   --space-16: 4rem;   --space-20: 5rem;
  --space-24: 6rem;  --space-32: 8rem;

  /* ---------- 2.3 GRID E LAYOUT ----------------------------------------- */
  --grid-columns: 12;
  --grid-gutter: var(--space-6);
  --layout-margin-sm: var(--space-4);
  --layout-margin-md: var(--space-8);
  --layout-margin-lg: var(--space-12);
  --layout-max-content: 1280px;
  --layout-max-prose: 720px;
  --breakpoint-sm: 480px;  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px; --breakpoint-xl: 1280px;
  --breakpoint-2xl: 1600px;

  /* ---------- 2.4 RAIO / RADIUS ----------------------------------------- */
  --radius-xs: 4px;  --radius-sm: 8px;  --radius-md: 12px;
  --radius-lg: 16px; --radius-xl: 20px; --radius-2xl: 28px;
  --radius-pill: 999px;

  /* ---------- 2.5 ELEVAÇÃO / ELEVATION (sombra tingida de Navy) --------- */
  --shadow-1: 0 1px 2px rgba(8,22,128,.06), 0 1px 3px rgba(8,22,128,.04);
  --shadow-2: 0 2px 4px rgba(8,22,128,.05), 0 6px 16px -4px rgba(8,22,128,.08);
  --shadow-3: 0 4px 8px rgba(8,22,128,.05), 0 16px 32px -8px rgba(8,22,128,.10);
  --shadow-4: 0 8px 16px rgba(8,22,128,.07), 0 32px 64px -12px rgba(8,22,128,.14);
  --shadow-focus: 0 0 0 3px rgba(75,159,201,.45);

  /* ---------- 2.6 MOVIMENTO / MOTION ----------------------------------- */
  --duration-instant: 90ms;  --duration-fast: 140ms;
  --duration-normal: 200ms;  --duration-slow: 320ms;
  --duration-deliberate: 480ms;
  --ease-standard: cubic-bezier(.4,0,.2,1);
  --ease-out: cubic-bezier(.2,.8,.2,1);
  --ease-in: cubic-bezier(.4,0,1,1);

  /* ---------- 2.7 ALVOS E FOCO / TARGETS ------------------------------- */
  --target-min: 44px;
  --focus-ring-width: 3px;
  --focus-ring-offset: 2px;

  /* ---------- 3. COMPONENTE / COMPONENT -------------------------------- */
  --btn-height-sm: 36px; --btn-height-md: 44px; --btn-height-lg: 52px;
  --btn-padding-x: var(--space-5);
  --btn-radius: var(--radius-pill);
  --btn-font: 600 0.9375rem/1 var(--font-text);

  --field-height: 44px;
  --field-radius: var(--radius-sm);
  --field-border: var(--color-border-strong);
  --field-border-focus: var(--color-focus-ring);
  --field-bg: var(--color-bg-surface);
  --field-placeholder: var(--color-fg-subtle);

  --card-radius: var(--radius-lg);
  --card-padding: var(--space-6);
  --card-bg: var(--color-bg-surface);
  --card-border: var(--color-border-subtle);
  --card-shadow: var(--shadow-1);
  --card-shadow-hover: var(--shadow-3);

  --table-row-height: 48px;
  --table-row-height-dense: 36px;
  --table-header-bg: var(--color-bg-sunken);
  --table-border: var(--color-border-subtle);

  --nav-height: 72px;
  --nav-bg: rgba(255,255,255,.86);
  --nav-border: var(--color-border-subtle);
}

/* ==========================================================================
   TEMA ESCURO / DARK THEME
   Só os semânticos mudam. Primitivos permanecem idênticos.
   ========================================================================== */
[data-theme="dark"] {
  color-scheme: dark;

  --color-bg-canvas: var(--ink-canvas);
  --color-bg-surface: var(--ink-surface);
  --color-bg-raised: var(--ink-raised);
  --color-bg-sunken: #04081A;
  --color-bg-subtle: var(--ink-raised);
  --color-bg-inverse: var(--neutral-0);
  --color-bg-brand-subtle: rgba(117,186,222,.10);
  --color-bg-accent-subtle: rgba(117,186,222,.14);

  --color-fg-default: var(--ink-fg);
  --color-fg-muted: var(--ink-fg-muted);
  --color-fg-subtle: #7C86AF;
  --color-fg-brand: var(--cyan-300);
  --color-fg-accent: var(--cyan-300);
  --color-fg-inverse: var(--navy-900);
  --color-fg-on-brand: var(--navy-900);

  --color-border-subtle: rgba(255,255,255,.08);
  --color-border-default: var(--ink-border);
  --color-border-strong: #38427A;
  --color-border-brand: var(--cyan-400);

  --color-action-primary-bg: var(--cyan-300);
  --color-action-primary-bg-hover: var(--cyan-200);
  --color-action-primary-bg-active: var(--cyan-400);
  --color-action-primary-fg: var(--navy-900);
  --color-action-secondary-border: var(--cyan-300);
  --color-action-secondary-fg: var(--cyan-300);
  --color-action-secondary-bg-hover: rgba(117,186,222,.12);
  --color-action-tertiary-fg: var(--cyan-300);
  --color-action-tertiary-bg-hover: rgba(117,186,222,.12);
  --color-action-disabled-bg: rgba(255,255,255,.08);
  --color-action-disabled-fg: #6A739C;

  --color-feedback-info-fg: var(--cyan-200);
  --color-feedback-info-bg: rgba(117,186,222,.12);
  --color-feedback-info-border: rgba(117,186,222,.32);
  --color-feedback-success-fg: var(--aqua-200);
  --color-feedback-success-bg: rgba(93,202,197,.12);
  --color-feedback-success-border: rgba(93,202,197,.32);
  --color-feedback-warning-fg: var(--gold-200);
  --color-feedback-warning-bg: rgba(222,178,85,.14);
  --color-feedback-warning-border: rgba(222,178,85,.34);
  --color-feedback-danger-fg: var(--coral-200);
  --color-feedback-danger-bg: rgba(235,105,100,.14);
  --color-feedback-danger-border: rgba(235,105,100,.34);

  --color-focus-ring: var(--cyan-300);
  --color-selection-bg: rgba(117,186,222,.28);

  --dataviz-1: var(--cyan-300);
  --dataviz-2: var(--aqua-300);
  --dataviz-3: var(--navy-300);
  --dataviz-4: var(--gold-300);
  --dataviz-5: var(--coral-300);
  --dataviz-6: #C9D2F5;
  --dataviz-7: #8892C0;
  --dataviz-grid: rgba(255,255,255,.09);
  --dataviz-axis: #7C86AF;

  /* Elevação no escuro: luz vem do brilho da borda, não da sombra */
  --shadow-1: 0 1px 2px rgba(0,0,0,.4);
  --shadow-2: 0 4px 12px rgba(0,0,0,.45);
  --shadow-3: 0 12px 32px rgba(0,0,0,.5);
  --shadow-4: 0 24px 64px rgba(0,0,0,.6);
  --shadow-focus: 0 0 0 3px rgba(148,207,235,.5);

  --nav-bg: rgba(12,18,48,.86);
}

/* ==========================================================================
   MODOS DE EXPRESSÃO / EXPRESSION MODES
   Um núcleo, cinco ênfases. Só o acento expressivo e o raio mudam —
   nunca a tipografia, o logo ou a semântica de feedback.
   ========================================================================== */
[data-mode="expressive"] { /* B2C */
  --color-fg-accent: var(--coral-500);
  --color-bg-accent-subtle: var(--coral-50);
  --color-bg-canvas: var(--evo-cream);
  --radius-lg: 20px; --radius-xl: 28px; --card-radius: 20px;
}
[data-mode="business"] {   /* B2S + B2B */
  --color-fg-accent: var(--cyan-600);
  --color-bg-canvas: var(--neutral-25);
  --card-radius: var(--radius-md);
}
[data-mode="institutional"] { /* B2G */
  --color-fg-accent: var(--navy-600);
  --color-fg-muted: var(--neutral-700);
  --color-border-default: var(--neutral-300);
  --card-radius: var(--radius-sm);
  --focus-ring-width: 4px;
}
[data-mode="infrastructure"] { /* B2W */
  --color-fg-accent: var(--cyan-500);
  --color-bg-canvas: var(--neutral-50);
  --font-text: "JetBrains Mono", "Figtree", system-ui, sans-serif;
  --table-row-height: var(--table-row-height-dense);
  --card-radius: var(--radius-xs);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-instant: 1ms; --duration-fast: 1ms; --duration-normal: 1ms;
    --duration-slow: 1ms;    --duration-deliberate: 1ms;
  }
}
