/* ========================================
   ENBLAUCRM Design Tokens
   Single Source of Truth for colors, spacing, etc.
   ======================================== */

:root {
    /* Brand Colors */
    --brand-primary: #00C39E;
    --brand-primary-soft: #E6F9F5;
    --brand-primary-dark: #00A082;
    
    /* Surface */
    --surface: #ffffff;
    --surface-muted: #f8fafc;
    --surface-hover: #f1f5f9;
    
    /* Borders */
    --border: #e5e7eb;
    --border-focus: var(--brand-primary);
    
    /* Text */
    --text: #0f172a;
    --text-secondary: #475569;
    --text-muted: #64748b;
    --text-disabled: #94a3b8;
    
    /* Status Colors */
    --status-success: #16a34a;
    --status-success-soft: #dcfce7;
    --status-warning: #f59e0b;
    --status-warning-soft: #fef3c7;
    /* Naranja de «atención» (SOP-00185: tarea de Logikal en curso demasiado tiempo). Distinto del ámbar
       --status-warning, que ya significa «Bridge sí, Logikal no». */
    --status-caution: #ea580c;
    --status-caution-soft: #ffedd5;
    --status-error: #dc2626;
    --status-error-soft: #fee2e2;
    /* Alias histórico: 34 reglas repartidas por 11 hojas usan var(--color-danger) y el token
       NUNCA estuvo declarado, así que esos rojos caían al color heredado (avisos y badges que
       se veían grises). Se declara aquí, apuntando al rojo de estado, en vez de parchear cada
       hoja. CLAUDE.md ya lo daba por token válido. */
    --color-danger: var(--status-error);
    --color-danger-soft: var(--status-error-soft);
    --status-info: #2563eb;
    --status-info-soft: #dbeafe;
    
    /* Potential (azul outline) */
    --status-potential: #1d4ed8;
    --status-potential-border: #2563eb;
    
    /* Inactive (gris) */
    --status-inactive: #64748b;
    --status-inactive-soft: #f1f5f9;

    /* Módulos de documento (trazabilidad, cintas): ventas · compras · instalación · producción.
       Añadidos 2026-09-18 (plan trazabilidad); usarlos en vez de literales por tipo. */
    --mod-ventas: #00A082;
    --mod-ventas-soft: #E6F9F5;
    --mod-compras: #d97706;
    --mod-compras-soft: #fef3c7;
    --mod-instalacion: #7c3aed;
    --mod-instalacion-soft: #ede9fe;
    --mod-produccion: #2563eb;
    --mod-produccion-soft: #dbeafe;
    /* Tinta de cada módulo: texto pequeño sobre su -soft con contraste ≥4.5:1
       (el color base sobre el soft no llega). Añadidos 2026-10-13 (Mi espacio). */
    --mod-ventas-ink: #047857;
    --mod-compras-ink: #92400e;
    --mod-instalacion-ink: #6d28d9;
    --mod-produccion-ink: #1d4ed8;

    /* Radius */
    --radius-xs: 6px; /* botones (2026-10-21): rectos y compactos, como en BackOffice; sin píldora */
    --radius-sm: 10px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-full: 9999px;
    
    /* Shadows */
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-sm: 0 1px 2px 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);
    
    /* Spacing */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    
    /* Breakpoints (canonical reference — not usable in @media directly,
       but readable via getComputedStyle for JS and as documentation) */
    --bp-phone: 480px;
    --bp-tablet: 768px;
    --bp-desktop: 1024px;
    
    /* Typography */
    --font-sans: 'Ubuntu', 'Ruda', 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-size-xs: 0.75rem;    /* 12px */
    --font-size-sm: 0.875rem;   /* 14px */
    --font-size-base: 0.9375rem; /* 15px */
    --font-size-lg: 1.125rem;   /* 18px */
    --font-size-xl: 1.5rem;     /* 24px */
    --font-size-2xl: 2rem;      /* 32px */
    
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    
    --line-height-tight: 1.2;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.75;
    
    /* Transitions */
    --transition-fast: 150ms ease;
    --transition-base: 200ms ease;
    --transition-slow: 300ms ease;

    /* Capas de la ayuda in-app (solo las usa la ayuda). Referencias: FAB Nexus AI 998,
       topbar móvil 1000, modal 1040/1050, .app-backdrop 1100, cajón móvil 1200,
       toasts/BusyOverlay 9999. Nodo va por encima de los modales (práctica guiada).
       Recorridos («Muéstrame cómo», ayuda-tour.css): el velo (--z-ayuda-tour) y el globo
       (--z-ayuda-tour-globo) de Driver.js van por encima de los modales, del velo del email
       (1100), del cajón móvil (1200) y del panel a pantalla completa (1250), y por debajo de
       toasts/BusyOverlay (9999), del velo de la ficha de venta (11000) y del de reconexión
       (100999). El mismo valor vale para escritorio y móvil.
       Nodo (y su burbuja) sube por encima del velo y del globo SOLO con un recorrido en marcha
       (body.driver-active, D5): así se puede pulsar para pararlo o pedir ayuda, y fuera de los
       recorridos no tapa el cajón móvil (1200) ni el fondo de los modales. */
    --z-ayuda-panel: 1060;
    --z-ayuda-nodo: 1065;
    --z-ayuda-nodo-recorrido: 1320;
    --z-ayuda-tour: 1300;
    --z-ayuda-tour-globo: 1310;
    --z-ayuda-popover: 1080;
}

@media (max-width: 767.98px) {
    :root {
        /* Móvil: el panel va a pantalla completa, por encima del cajón (1200). */
        --z-ayuda-panel: 1250;
    }
}