/**
 * INVENTA - Sistema de Gestión de Inventario
 * Archivo: variables.css
 * Propósito: Define todas las variables CSS del sistema de diseño
 * 
 * APRENDIZAJE: Las variables CSS (Custom Properties) permiten reutilizar
 * valores en todo el proyecto. Si cambias un color aquí, se actualiza
 * automáticamente en toda la aplicación.
 */

:root {
  /* ========================================
     PALETA DE COLORES - INVENTA
     ======================================== */
  
  /* Color Primario - Azul Profesional */
  /* APRENDIZAJE: Usamos una escala de colores (50-900) similar a Material Design
     que va de más claro (50) a más oscuro (900) */
  --primary-50: #E3F2FD;   /* Azul muy claro - fondos suaves */
  --primary-100: #BBDEFB;  /* Azul claro - hover states */
  --primary-200: #90CAF9;  
  --primary-300: #64B5F6;  
  --primary-400: #42A5F5;  
  --primary-500: #2196F3;  /* Azul principal - botones, enlaces */
  --primary-600: #1E88E5;  
  --primary-700: #1976D2;  /* Azul oscuro - botones hover */
  --primary-800: #1565C0;  
  --primary-900: #0D47A1;  /* Azul muy oscuro */
  
  /* Color de Acento - Verde Éxito */
  --accent-50: #E8F5E9;
  --accent-100: #C8E6C9;
  --accent-500: #4CAF50;   /* Verde principal - confirmaciones */
  --accent-700: #388E3C;   /* Verde oscuro - hover */
  --accent-900: #1B5E20;
  
  /* Colores Semánticos */
  /* APRENDIZAJE: Estos colores tienen significado específico en UI/UX */
  --success: #4CAF50;      /* Verde - operación exitosa */
  --warning: #FF9800;      /* Naranja - advertencias */
  --error: #F44336;        /* Rojo - errores */
  --info: #2196F3;         /* Azul - información */
  
  /* Escala de Grises */
  --gray-50: #FAFAFA;      /* Casi blanco - fondos */
  --gray-100: #F5F5F5;     /* Gris muy claro */
  --gray-200: #EEEEEE;
  --gray-300: #E0E0E0;     /* Bordes suaves */
  --gray-400: #BDBDBD;
  --gray-500: #9E9E9E;     /* Gris medio */
  --gray-600: #757575;
  --gray-700: #616161;     /* Gris oscuro */
  --gray-800: #424242;
  --gray-900: #212121;     /* Casi negro */
  
  /* Colores de Texto */
  --text-primary: #212121;     /* Texto principal (titulares, contenido) */
  --text-secondary: #757575;   /* Texto secundario (subtítulos, metadata) */
  --text-disabled: #BDBDBD;    /* Texto deshabilitado */
  --text-on-primary: #FFFFFF;  /* Texto sobre color primario */
  
  /* Colores de Fondo */
  --bg-primary: #FFFFFF;       /* Fondo principal */
  --bg-secondary: #F5F5F5;     /* Fondo secundario */
  --bg-tertiary: #FAFAFA;      /* Fondo terciario */
  --bg-overlay: rgba(0, 0, 0, 0.5);  /* Overlay para modales */
  
  /* ========================================
     TIPOGRAFÍA
     ======================================== */
  
  /* Familias de Fuentes */
  /* APRENDIZAJE: Definimos fuentes con fallbacks (alternativas) */
  --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
  --font-monospace: 'Courier New', Courier, monospace;
  
  /* Tamaños de Fuente */
  /* APRENDIZAJE: Usamos rem (relativo al root) en lugar de px para mejor accesibilidad */
  --font-size-xs: 0.75rem;     /* 12px - texto muy pequeño */
  --font-size-sm: 0.875rem;    /* 14px - texto pequeño */
  --font-size-base: 1rem;      /* 16px - texto normal */
  --font-size-lg: 1.125rem;    /* 18px - texto grande */
  --font-size-xl: 1.25rem;     /* 20px - subtítulos */
  --font-size-2xl: 1.5rem;     /* 24px - títulos */
  --font-size-3xl: 1.875rem;   /* 30px - títulos grandes */
  --font-size-4xl: 2.25rem;    /* 36px - títulos muy grandes */
  
  /* Pesos de Fuente */
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  
  /* Altura de Línea */
  --line-height-tight: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.75;
  
  /* ========================================
     ESPACIADO
     ======================================== */
  
  /* APRENDIZAJE: Sistema de espaciado en múltiplos de 4px (0.25rem)
     Esto crea consistencia visual en toda la aplicación */
  --spacing-0: 0;
  --spacing-1: 0.25rem;    /* 4px */
  --spacing-2: 0.5rem;     /* 8px */
  --spacing-3: 0.75rem;    /* 12px */
  --spacing-4: 1rem;       /* 16px */
  --spacing-5: 1.25rem;    /* 20px */
  --spacing-6: 1.5rem;     /* 24px */
  --spacing-8: 2rem;       /* 32px */
  --spacing-10: 2.5rem;    /* 40px */
  --spacing-12: 3rem;      /* 48px */
  --spacing-16: 4rem;      /* 64px */
  --spacing-20: 5rem;      /* 80px */
  
  /* ========================================
     BORDES Y RADIOS
     ======================================== */
  
  /* Border Radius - Esquinas redondeadas */
  --radius-none: 0;
  --radius-sm: 0.25rem;    /* 4px - bordes sutiles */
  --radius-base: 0.5rem;   /* 8px - botones, inputs */
  --radius-lg: 0.75rem;    /* 12px - cards */
  --radius-xl: 1rem;       /* 16px - modales */
  --radius-full: 9999px;   /* Completamente redondo - pills, avatars */
  
  /* Border Width */
  --border-width-thin: 1px;
  --border-width-medium: 2px;
  --border-width-thick: 4px;
  
  /* Border Colors */
  --border-color: var(--gray-300);
  --border-color-dark: var(--gray-400);
  
  /* ========================================
     SOMBRAS (BOX SHADOWS)
     ======================================== */
  
  /* APRENDIZAJE: Las sombras crean sensación de profundidad (elevación) */
  --shadow-none: none;
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  
  /* ========================================
     TRANSICIONES Y ANIMACIONES
     ======================================== */
  
  /* APRENDIZAJE: Las transiciones suavizan cambios visuales */
  --transition-fast: 150ms ease-in-out;
  --transition-base: 250ms ease-in-out;
  --transition-slow: 350ms ease-in-out;
  
  /* Timing Functions - Curvas de animación */
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  
  /* ========================================
     Z-INDEX (CAPAS DE PROFUNDIDAD)
     ======================================== */
  
  /* APRENDIZAJE: z-index controla qué elementos aparecen "encima" de otros */
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-fixed: 1030;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-popover: 1060;
  --z-tooltip: 1070;
  
  /* ========================================
     TAMAÑOS DE LAYOUT
     ======================================== */
  
  /* Ancho máximo de contenido */
  --container-sm: 640px;
  --container-md: 768px;
  --container-lg: 1024px;
  --container-xl: 1280px;
  --container-2xl: 1536px;
  
  /* Altura de componentes */
  --navbar-height: 64px;
  --sidebar-width: 260px;
  --sidebar-collapsed-width: 80px;
  
  /* ========================================
     BREAKPOINTS RESPONSIVE
     ======================================== */
  
  /* APRENDIZAJE: Estos valores se usan en media queries para diseño responsive */
  --screen-sm: 640px;   /* Móviles grandes / tablets pequeñas */
  --screen-md: 768px;   /* Tablets */
  --screen-lg: 1024px;  /* Laptops */
  --screen-xl: 1280px;  /* Desktops */
  --screen-2xl: 1536px; /* Pantallas grandes */
}

/* ========================================
   MODO OSCURO (OPCIONAL PARA FUTURO)
   ======================================== */

/* APRENDIZAJE: Podemos definir variables diferentes para modo oscuro
   usando el selector [data-theme="dark"] */

[data-theme="dark"] {
  --bg-primary: #1a1a1a;
  --bg-secondary: #2d2d2d;
  --bg-tertiary: #3a3a3a;
  --text-primary: #ffffff;
  --text-secondary: #b0b0b0;
  --border-color: #404040;
}
