/* =========================================================
   LUNEXUS - Design Tokens
   Fuente única de verdad de la identidad visual (ver CLAUDE.md
   sección 11 "Diseño e Identidad de Marca"). Modo claro único,
   sidebar oscuro. Ningún color/tipografía/espaciado/sombra debe
   hardcodearse fuera de este archivo: todo el resto de
   assets/css/style.css consume estas variables.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@600;700;800&family=Inter:wght@400;500;600&display=swap');

:root {
    /* ---- Paleta oficial (dada por el Brandboard) ---- */
    --lx-primary: #73A63D;
    --lx-primary-hover: #5E8832;
    --lx-primary-accent: #91B967;
    /* Derivado: texto blanco/--lx-text-inverse sobre --lx-primary da
       ~2.7:1 (falla AA 4.5:1) y sobre --lx-primary-hover da ~3.9:1
       (sigue sin llegar a 4.5:1). --lx-primary-strong sí cumple
       (~5.4:1) — se usa como fondo sólido en todo elemento que lleva
       texto/ícono --lx-text-inverse encima (botón primario en reposo,
       item activo del sidebar, filtro activo, badge sólido). */
    --lx-primary-strong: #4C7028;
    --lx-bg: #0A0F0C;              /* Solo fondo del sidebar */
    --lx-bg-light: #F7F7F7;        /* Fondo de página */
    --lx-gray: #545454;
    --lx-text-inverse: #F5F7F6;    /* Texto sobre sidebar oscuro / sobre verde */

    /* ---- Derivados (documentados en CLAUDE.md sección 11) ---- */
    --lx-primary-rgb: 115, 166, 61;
    --lx-primary-soft: rgba(115, 166, 61, 0.12);
    --lx-primary-contrast: var(--lx-text-inverse);

    --lx-surface: #FFFFFF;
    --lx-surface-elevated: #FFFFFF;
    --lx-border: #E6E6E6;

    --lx-text: #171A17;            /* Texto de cuerpo sobre fondo claro */
    --lx-text-muted: #545454;      /* = --lx-gray, texto secundario */

    --lx-hover: rgba(23, 26, 23, 0.04);
    --lx-hover-strong: rgba(23, 26, 23, 0.07);

    /* Único color fuera de la familia verde: reservado para
       urgencia real (Urgente / Vencida / errores). Nunca azul ni
       morado — misma regla que ya regía en la versión dark. */
    --lx-danger: #DC4545;
    --lx-danger-rgb: 220, 69, 69;
    --lx-danger-soft: rgba(220, 69, 69, 0.10);

    /* Segunda excepción puntual a la regla "solo verde": urgencia
       intermedia (ej. tarea que vence MAÑANA, ni vencida ni crítica
       todavía). No reemplaza --lx-danger ni --bs-warning (ese sigue
       mapeado a la familia verde y en uso en Facturación);
       es un token nuevo y acotado, solo para este caso. */
    --lx-warning: #F59E0B;
    --lx-warning-rgb: 245, 158, 11;
    --lx-warning-soft: rgba(245, 158, 11, 0.12);
    --lx-warning-text: #92400E;

    /* Tercera excepción puntual: tarjetas de la Agenda de Trabajo sin
       clasificación de urgencia (ni hoy, ni mañana, ni reunión — ver
       lx-agt-color-neutro en style.css). El gris de marca (--lx-gray)
       aplicado como fondo casi no se distinguía del blanco de la
       tarjeta; color exacto pedido explícitamente por el dueño del
       proyecto (#4B5852), no derivado de la paleta oficial. */
    --lx-agt-neutro: #4B5852;
    --lx-agt-neutro-rgb: 75, 88, 82;
    --lx-agt-neutro-soft: rgba(75, 88, 82, 0.14);

    /* ---- Forma ---- */
    --lx-radius: 16px;
    --lx-radius-sm: 10px;
    --lx-radius-xs: 6px;
    --lx-radius-pill: 999px;
    --lx-sidebar-width: 260px;

    /* ---- Sombras: muy sutiles, calibradas para fondo claro
       (nada de rgba(0,0,0,.6) como en dark mode) ---- */
    --lx-shadow-sm: 0 1px 2px rgba(23, 26, 23, 0.06);
    --lx-shadow: 0 1px 2px rgba(23, 26, 23, 0.04), 0 8px 20px -12px rgba(23, 26, 23, 0.10);
    --lx-shadow-hover: 0 4px 10px -4px rgba(23, 26, 23, 0.10), 0 16px 32px -16px rgba(var(--lx-primary-rgb), 0.18);
    --lx-shadow-modal: 0 8px 16px rgba(23, 26, 23, 0.08), 0 24px 48px -20px rgba(23, 26, 23, 0.18);

    /* ---- Tipografía ---- */
    --lx-font-heading: 'Poppins', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --lx-font-body: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

    /* ---- Espaciado (escala base 4px) ---- */
    --lx-space-1: 4px;
    --lx-space-2: 8px;
    --lx-space-3: 12px;
    --lx-space-4: 16px;
    --lx-space-5: 24px;
    --lx-space-6: 32px;
    --lx-space-7: 48px;

    /* ---- Transiciones ---- */
    --lx-transition: 180ms ease;
    --lx-transition-fast: 150ms ease;

    /* ---- Reasignación de variables de Bootstrap 5.3 a la marca:
       permite que componentes nativos de Bootstrap hereden el tema
       sin tocar bootstrap.min.css ni el HTML. ---- */
    --bs-body-bg: var(--lx-bg-light);
    --bs-body-color: var(--lx-text);
    --bs-border-color: var(--lx-border);
    --bs-border-color-translucent: var(--lx-border);
    --bs-emphasis-color: var(--lx-text);
    --bs-secondary-color: var(--lx-text-muted);
    --bs-tertiary-bg: var(--lx-bg-light);
    --bs-tertiary-color: var(--lx-text-muted);
    --bs-link-color: var(--lx-primary-hover);
    --bs-link-hover-color: var(--lx-primary);
    --bs-focus-ring-color: rgba(var(--lx-primary-rgb), 0.25);

    --bs-primary: var(--lx-primary);
    --bs-primary-rgb: var(--lx-primary-rgb);
    --bs-success: var(--lx-primary);
    --bs-success-rgb: var(--lx-primary-rgb);
    --bs-info: var(--lx-gray);
    --bs-info-rgb: 84, 84, 84;
    --bs-warning: var(--lx-primary-accent);
    --bs-warning-rgb: 145, 185, 103;
    --bs-secondary: var(--lx-gray);
    --bs-secondary-rgb: 84, 84, 84;
    --bs-dark: var(--lx-text);
    --bs-dark-rgb: 23, 26, 23;
    --bs-light: var(--lx-bg-light);
    --bs-light-rgb: 247, 247, 247;
    --bs-danger: var(--lx-danger);
    --bs-danger-rgb: var(--lx-danger-rgb);
}
