/* Felix — Design tokens
   Corporate navy (McKinsey-style) · IBM Plex · Industrial density. */

:root {
  /* ─── Surfaces (cool navy tint, more present — NOT washed-out) ─── */
  --bg:            oklch(1.000 0.000 0);
  --surface:       oklch(0.970 0.006 256);
  --surface-2:     oklch(0.948 0.009 256);
  --surface-3:     oklch(0.918 0.012 256);

  /* ─── Text (deep navy-ink, higher contrast) ─── */
  --ink:           oklch(0.205 0.030 256);
  --ink-muted:     oklch(0.425 0.022 256);
  --ink-soft:      oklch(0.580 0.018 256);
  --ink-invert:    oklch(0.985 0.004 256);

  /* ─── Borders (stronger, more defined — corporate) ─── */
  --border:        oklch(0.878 0.012 256);
  --border-strong: oklch(0.780 0.018 256);

  /* ─── Brand (deep McKinsey navy — NOT teal, NOT SaaS-blue) ─── */
  --primary:       oklch(0.290 0.058 256);
  --primary-hover: oklch(0.230 0.058 256);
  --primary-soft:  oklch(0.940 0.024 256);

  /* ─── Accent (bright corporate blue — money & action) ─── */
  --accent:        oklch(0.585 0.165 250);
  --accent-hover:  oklch(0.520 0.170 250);
  --accent-soft:   oklch(0.945 0.045 250);

  /* ─── Sidebar (deep navy — dark corporate rail) ─── */
  --sidebar-bg:        oklch(0.255 0.045 258);
  --sidebar-bg-2:      oklch(0.310 0.048 258);
  --sidebar-ink:       oklch(0.985 0.004 256);
  --sidebar-ink-muted: oklch(0.730 0.022 256);
  --sidebar-border:    oklch(0.360 0.040 258);

  /* ─── Semantic states ─── */
  --success:       oklch(0.520 0.135 155);
  --success-soft:  oklch(0.955 0.028 155);
  --warning:       oklch(0.660 0.150 80);
  --warning-soft:  oklch(0.965 0.038 80);
  --danger:        oklch(0.500 0.200 25);
  --danger-soft:   oklch(0.960 0.025 25);
  --info:          oklch(0.500 0.110 230);
  --info-soft:     oklch(0.955 0.020 230);

  /* ─── Color por categoría de equipo (wayfinding, sutil) ─── */
  --cat-construccion: oklch(0.620 0.145 65);   /* ámbar */
  --cat-energia:      oklch(0.550 0.140 250);  /* azul */
  --cat-jardineria:   oklch(0.520 0.115 150);  /* verde */
  --cat-eventos:      oklch(0.520 0.150 305);  /* violeta */

  /* ─── Typography (IBM Plex — industrial corporate) ─── */
  --font-sans:    'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:    'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --font-display: var(--font-sans);  /* alias for legacy refs; numbers use --font-mono */

  --text-2xs:  0.6875rem;
  --text-xs:   0.75rem;
  --text-sm:   0.8125rem;   /* 13px — tighter base for dense UI */
  --text-base: 0.9375rem;   /* 15px — denser body */
  --text-lg:   1.0625rem;
  --text-xl:   1.1875rem;
  --text-2xl:  1.4375rem;
  --text-3xl:  1.75rem;
  --text-4xl:  2.125rem;
  --text-5xl:  2.75rem;

  --leading-tight: 1.15;
  --leading-snug:  1.3;
  --leading-base:  1.45;

  /* ─── Spacing (base 4, comprimido) ─── */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.6875rem;
  --space-4:  0.875rem;
  --space-5:  1rem;
  --space-6:  1.25rem;
  --space-8:  1.625rem;
  --space-10: 2rem;
  --space-12: 2.5rem;

  /* ─── Radii (sharper — industrial feel) ─── */
  --radius-sm: 0.25rem;     /* 4px */
  --radius-md: 0.375rem;    /* 6px */
  --radius-lg: 0.5rem;      /* 8px */
  --radius-xl: 0.625rem;    /* 10px */
  --radius-full: 9999px;

  /* ─── Elevation (minimal) ─── */
  --shadow-sm: 0 1px 0 0 oklch(0.180 0.012 235 / 0.04);
  --shadow-md: 0 2px 8px -2px oklch(0.180 0.012 235 / 0.08);
  --shadow-lg: 0 12px 28px -6px oklch(0.180 0.012 235 / 0.14);
  --shadow-focus: 0 0 0 3px oklch(0.585 0.165 250 / 0.25);

  /* ─── Motion ─── */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --dur-fast: 100ms;
  --dur-base: 160ms;
  --dur-slow: 240ms;

  /* ─── Z-index ─── */
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-overlay:  300;
  --z-modal:    400;
  --z-toast:    500;

  /* ─── Layout (denser) ─── */
  --sidebar-w:    196px;
  --sidebar-w-collapsed: 52px;
  --topbar-h:     42px;
  --content-max:  1440px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
