/**
 * =============================================================================
 * VARIABLES UNIFICADAS - Suite Education
 * =============================================================================
 * ÚNICA FUENTE DE VERDAD para variables CSS del sistema.
 * Este archivo DEBE cargarse PRIMERO, antes de cualquier otro CSS.
 *
 * Convención de nombres:
 * --sys-*       : Variables del sistema (colores, espaciado, tipografía)
 * --color-*     : Colores semánticos
 * --spacing-*   : Espaciado
 * --radius-*    : Border radius
 * --shadow-*    : Sombras
 * --font-*      : Tipografía
 * --z-*         : Z-index
 * --transition-*: Transiciones
 * =============================================================================
 */

:root {
    /* =========================================================================
       COLORES INSTITUCIONALES - Colegio Estrella de Belén
       ========================================================================= */
    --logo-blue: #0049ff;
    --logo-blue-light: rgba(0, 73, 255, 0.1);
    --logo-blue-dark: #0039cc;
    --logo-yellow: #ffd700;
    --logo-yellow-light: rgba(255, 215, 0, 0.1);

    /* =========================================================================
       PALETA DE COLORES PRIMARIOS
       ========================================================================= */
    --color-primary: #0049ff;
    --color-primary-light: #dbeafe;
    --color-primary-dark: #0039cc;
    --color-primary-50: #eff6ff;
    --color-primary-100: #dbeafe;
    --color-primary-200: #bfdbfe;
    --color-primary-500: #0049ff;
    --color-primary-600: #0039cc;
    --color-primary-700: #002999;

    /* =========================================================================
       COLORES SECUNDARIOS
       ========================================================================= */
    --color-secondary: #64748b;
    --color-secondary-light: #94a3b8;
    --color-secondary-dark: #475569;

    /* =========================================================================
       COLORES SEMÁNTICOS (Estados)
       Alineados a Wave 1 mockup (mayo 2026) — warning e info ajustados.
       ========================================================================= */
    --color-success: #16a34a;
    --color-success-light: #dcfce7;
    --color-success-lighter: #f0fdf4;
    --color-success-dark: #15803d;

    --color-warning: #d97706;          /* Wave 1: era #f59e0b (amarillo) */
    --color-warning-light: #fef3c7;
    --color-warning-lighter: #fffbeb;
    --color-warning-dark: #b45309;

    --color-danger: #dc2626;
    --color-danger-light: #fee2e2;
    --color-danger-lighter: #fef2f2;
    --color-danger-dark: #b91c1c;

    --color-info: #0891b2;             /* Wave 1: era #0ea5e9 (sky → cyan) */
    --color-info-light: #cffafe;
    --color-info-lighter: #ecfeff;
    --color-info-dark: #0e7490;

    --color-purple: #7c3aed;           /* Wave 1: nuevo, usado por PME y módulos académicos */
    --color-purple-light: #f3e8ff;
    --color-purple-dark: #6d28d9;

    /* =========================================================================
       COLORES NEUTROS
       ========================================================================= */
    --color-white: #ffffff;
    --color-black: #000000;

    --color-gray-50: #f8fafc;
    --color-gray-100: #f1f5f9;
    --color-gray-200: #e2e8f0;
    --color-gray-300: #cbd5e1;
    --color-gray-400: #94a3b8;
    --color-gray-500: #64748b;
    --color-gray-600: #475569;
    --color-gray-700: #334155;
    --color-gray-800: #1e293b;
    --color-gray-900: #0f172a;

    /* =========================================================================
       COLORES DE SUPERFICIE Y FONDO
       Wave 1: --color-bg-primary cambia de #f0f4ff (residuo neumorfismo) a blanco puro.
       ========================================================================= */
    --color-bg-primary: #ffffff;        /* Wave 1: era #f0f4ff */
    --color-bg-secondary: #f9fafb;      /* Wave 1: era #ffffff — gris muy claro para alternar superficies */
    --color-bg-tertiary: #f3f4f6;       /* Wave 1: era #f8fafc */
    --color-bg-dark: #1e293b;

    --color-surface: #ffffff;
    --color-surface-raised: #ffffff;
    --color-surface-overlay: rgba(0, 0, 0, 0.5);
    --color-surface-hover: #f9fafb;     /* Wave 1: nuevo, alineado a clean-theme */
    --color-surface-active: #f3f4f6;    /* Wave 1: nuevo */

    /* =========================================================================
       COLORES DE TEXTO
       Wave 1: mayor contraste según mockup (gray-900 primary, gray-500 muted).
       ========================================================================= */
    --color-text-primary: #111827;      /* Wave 1: era #1e293b — gray-900 */
    --color-text-secondary: #4b5563;    /* Wave 1: era #64748b — gray-600 */
    --color-text-muted: #6b7280;        /* Wave 1: era #94a3b8 — gray-500 */
    --color-text-placeholder: #9ca3af;  /* Wave 1: nuevo — gray-400 */
    --color-text-inverse: #ffffff;
    --color-text-link: #0049ff;
    --color-text-link-hover: #0039cc;

    /* =========================================================================
       COLORES DE BORDE
       Wave 1: alineados a la paleta Tailwind gray usada por el mockup.
       ========================================================================= */
    --color-border: #e5e7eb;            /* Wave 1: era #e2e8f0 — gray-200 */
    --color-border-light: #f3f4f6;      /* Wave 1: era #f1f5f9 — gray-100 */
    --color-border-default: #d1d5db;    /* Wave 1: nuevo — gray-300 (alias usado por mockup) */
    --color-border-dark: #9ca3af;       /* Wave 1: era #cbd5e1 — gray-400 */
    --color-border-focus: #0049ff;

    /* =========================================================================
       TIPOGRAFÍA
       ========================================================================= */
    --font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-family-heading: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-family-mono: 'Fira Code', 'Consolas', monospace;

    /* Tamaños de fuente */
    --font-size-xs: 0.75rem;      /* 12px */
    --font-size-sm: 0.875rem;     /* 14px */
    --font-size-base: 1rem;       /* 16px */
    --font-size-lg: 1.125rem;     /* 18px */
    --font-size-xl: 1.25rem;      /* 20px */
    --font-size-2xl: 1.5rem;      /* 24px */
    --font-size-3xl: 1.875rem;    /* 30px */
    --font-size-4xl: 2.25rem;     /* 36px */
    --font-size-5xl: 3rem;        /* 48px */

    /* Escala tipográfica compacta del Design System (usada por clean-theme) */
    --ds-font-size-2xs: 0.625rem;   /* 10px */
    --ds-font-size-xs: 0.6875rem;   /* 11px */
    --ds-font-size-sm: 0.75rem;     /* 12px */
    --ds-font-size-base: 0.8125rem; /* 13px */
    --ds-font-size-md: 0.875rem;    /* 14px */
    --ds-font-size-lg: 1rem;        /* 16px */
    --ds-font-size-xl: 1.125rem;    /* 18px */
    --ds-font-size-2xl: 1.25rem;    /* 20px */
    --ds-font-size-3xl: 1.5rem;     /* 24px */
    --ds-font-size-kpi: 1.75rem;    /* 28px */

    /* 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-base: 1.5;
    --line-height-relaxed: 1.75;

    /* =========================================================================
       ESPACIADO
       ========================================================================= */
    --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 */
    --spacing-24: 6rem;     /* 96px */

    /* =========================================================================
       BORDER RADIUS
       ========================================================================= */
    --radius-none: 0;
    --radius-sm: 0.25rem;   /* 4px */
    --radius-md: 0.5rem;    /* 8px */
    --radius-lg: 0.75rem;   /* 12px */
    --radius-xl: 1rem;      /* 16px */
    --radius-2xl: 1.5rem;   /* 24px */
    --radius-full: 9999px;

    /* =========================================================================
       SOMBRAS
       Wave 1: sombras refinadas según mockup. Sutiles, unidireccionales.
       ========================================================================= */
    --shadow-none: none;
    --shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);                                         /* Wave 1: nuevo */
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);             /* Wave 1: refinado */
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);             /* Wave 1: refinado */
    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05);           /* Wave 1: refinado */
    --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04);         /* Wave 1: refinado */
    --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    --shadow-inner: inset 0 2px 4px rgba(0, 0, 0, 0.06);                                  /* Wave 1: nuevo */

    /* Sombras de focus ring */
    --shadow-focus: 0 0 0 3px var(--color-primary-light);                                 /* Wave 1: nuevo */
    --shadow-focus-success: 0 0 0 3px var(--color-success-light);                         /* Wave 1: nuevo */
    --shadow-focus-danger: 0 0 0 3px var(--color-danger-light);                           /* Wave 1: nuevo */

    /* Sombras neumórficas (OBSOLETAS — Wave 1 elimina neumorfismo del sistema activo,
       se mantienen aquí solo para compatibilidad con templates legacy que las referencian) */
    --shadow-neu-outset: 6px 6px 12px rgba(163, 177, 198, 0.6), -6px -6px 12px rgba(255, 255, 255, 0.8);
    --shadow-neu-inset: inset 6px 6px 12px rgba(163, 177, 198, 0.6), inset -6px -6px 12px rgba(255, 255, 255, 0.8);
    --shadow-neu-sm: 3px 3px 6px rgba(163, 177, 198, 0.6), -3px -3px 6px rgba(255, 255, 255, 0.8);

    /* =========================================================================
       Z-INDEX
       ========================================================================= */
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-fixed: 300;
    --z-modal-backdrop: 400;
    --z-modal: 500;
    --z-popover: 600;
    --z-tooltip: 700;
    --z-toast: 800;
    --z-max: 9999;

    /* =========================================================================
       TRANSICIONES
       ========================================================================= */
    --transition-fast: 150ms ease;
    --transition-base: 200ms ease;
    --transition-slow: 300ms ease;
    --transition-slower: 500ms ease;

    /* =========================================================================
       BREAKPOINTS (para referencia en JS, CSS usa @media)
       ========================================================================= */
    --breakpoint-sm: 640px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 1024px;
    --breakpoint-xl: 1280px;
    --breakpoint-2xl: 1536px;

    /* =========================================================================
       DIMENSIONES COMUNES
       ========================================================================= */
    --header-height: 70px;
    --sidebar-width: 280px;
    --sidebar-collapsed-width: 70px;
    --footer-height: auto;
    --content-max-width: 1400px;
    --form-max-width: 1400px;

    /* =========================================================================
       ALIASES "LIMPIO MODERNO" — sin prefijo, documentados en CLAUDE.md
       Wave 1: los mockups y el handoff usan estos nombres directamente.
       Apuntan al token canónico --color-*.
       ========================================================================= */

    /* Backgrounds */
    --bg-primary: var(--color-bg-primary);
    --bg-secondary: var(--color-bg-secondary);
    --bg-tertiary: var(--color-bg-tertiary);

    /* Borders */
    --border-light: var(--color-border-light);
    --border-default: var(--color-border-default);

    /* Brand & semantic — usados por el mockup directamente */
    --color-primary-hover: var(--color-primary-dark);

    /* Text aliases */
    --text-primary: var(--color-text-primary);
    --text-secondary: var(--color-text-secondary);
    --text-muted: var(--color-text-muted);

    /* =========================================================================
       ALIASES LEGACY (para compatibilidad)
       ========================================================================= */
    /* Holográfico/2050 theme - mapear a colores primarios */
    --holo-primary: var(--color-primary);
    --holo-accent: var(--color-primary-light);
    --holo-gradient: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);

    /* Neo theme */
    --neo-surface: var(--color-surface);
    --neo-bg: var(--color-bg-primary);
}

/* =============================================================================
   DARK MODE (preparado para futuro)
   ============================================================================= */
@media (prefers-color-scheme: dark) {
    :root.auto-dark {
        --color-bg-primary: #0f172a;
        --color-bg-secondary: #1e293b;
        --color-surface: #1e293b;
        --color-text-primary: #f1f5f9;
        --color-text-secondary: #94a3b8;
        --color-border: #334155;
    }
}

/* =============================================================================
   CLASE PARA FORZAR DARK MODE
   ============================================================================= */
:root.dark {
    --color-bg-primary: #0f172a;
    --color-bg-secondary: #1e293b;
    --color-surface: #1e293b;
    --color-text-primary: #f1f5f9;
    --color-text-secondary: #94a3b8;
    --color-border: #334155;
}
