/* OctoWage — Design Tokens (Custom Properties)
   Mobile-first: todos os valores são pensados para 360px primeiro.
*/

:root {
  /* === CORES === */

  /* Primárias */
  --color-primary: #1B1B2F;
  --color-primary-light: #7C3AED;
  --color-primary-hover: #6D28D9;
  --color-accent: #10B981;
  --color-accent-light: #34D399;
  --color-accent-hover: #059669;

  /* Semânticas */
  --color-success: #10B981;
  --color-danger: #EF4444;
  --color-danger-bg: #FEF2F2;
  --color-warning: #F59E0B;
  --color-warning-bg: #FFFBEB;
  --color-info: #7C3AED;
  --color-info-bg: #F5F3FF;

  /* Dinheiro */
  --color-money: #10B981;
  --color-money-dark: #059669;

  /* Neutras */
  --color-bg: #F8FAFC;
  --color-surface: #FFFFFF;
  --color-text: #1E293B;
  --color-text-muted: #64748B;
  --color-text-inverse: #F1F5F9;
  --color-border: #E2E8F0;
  --color-border-strong: #CBD5E1;

  /* Gráficos — barras */
  --color-bar-base: #7C3AED;
  --color-bar-teto: #10B981;
  --color-bar-above: #EF4444;
  --color-bar-penduricalho: #F97316;
  --color-teto-line: #EF4444;

  /* === TIPOGRAFIA === */
  --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-h1: bold clamp(1.75rem, 4vw, 2.5rem)/1.2 var(--font-family);
  --font-h2: 600 clamp(1.25rem, 3vw, 1.75rem)/1.3 var(--font-family);
  --font-h3: 600 clamp(1.1rem, 2.5vw, 1.375rem)/1.3 var(--font-family);
  --font-body: 400 clamp(0.875rem, 2vw, 1rem)/1.6 var(--font-family);
  --font-small: 400 clamp(0.75rem, 1.5vw, 0.875rem)/1.5 var(--font-family);
  --font-mono: 'JetBrains Mono', 'Fira Code', monospace;

  /* === ESPAÇAMENTO === */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;
  --space-3xl: 64px;

  /* === LAYOUT === */
  --container-max: 1200px;
  --container-narrow: 860px;
  --container-padding: var(--space-md);
  --section-gap: var(--space-2xl);

  /* === BORDAS E SOMBRAS === */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-full: 9999px;
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
  --shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.15);

  /* === TRANSIÇÕES === */
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 400ms ease;

  /* === BREAKPOINTS (referência, não usar em var() — usar em media queries) === */
  /* Mobile: 360px (base) */
  /* Tablet: 768px */
  /* Desktop: 1024px */
  /* Wide: 1440px */

  /* === Z-INDEX === */
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
}

/* Tablet+ */
@media (min-width: 768px) {
  :root {
    --container-padding: var(--space-lg);
    --section-gap: var(--space-3xl);
  }
}

/* Desktop+ */
@media (min-width: 1024px) {
  :root {
    --container-padding: var(--space-xl);
  }
}

/* Acessibilidade: reduzir animações */
@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0ms;
    --transition-base: 0ms;
    --transition-slow: 0ms;
  }
}
