/* =================================================================================
   ECOBALANCE - HOJA DE ESTILOS PRINCIPAL
   Archivo: /static/css/styles.css
   ================================================================================= */

:root {
/* =================================================================================
   ECOBALANCE DESIGN SYSTEM - DARK MODE (BINANCE INSPIRED)
   =================================================================================

   Este archivo utiliza un sistema de Design Tokens que permite:
   - Cambio fácil entre dark/light mode
   - Consistencia visual en toda la aplicación
   - Mantenimiento simplificado
   - Escalabilidad

   Para activar light mode: añadir clase "light" al elemento <html>
   ================================================================================= */

/* =================================================================================
   1. COLORES BASE (PALETTE)
   ================================================================================= */

    /* --- Colores Primarios --- */
    --color-green-50: #ECFDF5;
    --color-green-100: #D1FAE5;
    --color-green-200: #A7F3D0;
    --color-green-300: #6EE7B7;
    --color-green-400: #34D399;
    --color-green-500: #10B981;         /* Verde principal Binance */
    --color-green-600: #059669;
    --color-green-700: #047857;
    --color-green-800: #065F46;
    --color-green-900: #064E3B;

    /* --- Colores Secundarios (Dorado/Amarillo) --- */
    --color-yellow-50: #FFFBEB;
    --color-yellow-100: #FEF3C7;
    --color-yellow-200: #FDE68A;
    --color-yellow-300: #FCD34D;
    --color-yellow-400: #FBBF24;
    --color-yellow-500: #F59E0B;
    --color-yellow-600: #D97706;
    --color-yellow-700: #B45309;
    --color-yellow-800: #92400E;
    --color-yellow-900: #78350F;

    /* --- Colores de Estado --- */
    --color-red-50: #FEF2F2;
    --color-red-100: #FEE2E2;
    --color-red-200: #FECACA;
    --color-red-300: #FCA5A5;
    --color-red-400: #F87171;
    --color-red-500: #EF4444;           /* Rojo danger */
    --color-red-600: #DC2626;
    --color-red-700: #B91C1C;
    --color-red-800: #991B1B;
    --color-red-900: #7F1D1D;

    --color-blue-50: #EFF6FF;
    --color-blue-100: #DBEAFE;
    --color-blue-200: #BFDBFE;
    --color-blue-300: #93C5FD;
    --color-blue-400: #60A5FA;
    --color-blue-500: #3B82F6;          /* Azul info */
    --color-blue-600: #2563EB;
    --color-blue-700: #1D4ED8;
    --color-blue-800: #1E40AF;
    --color-blue-900: #1E3A8A;

    --color-cyan-400: #22D3EE;
    --color-cyan-500: #06B6D4;
    --color-cyan-600: #0891B2;
    --color-cyan-700: #0E7490;

    --color-purple-500: #8B5CF6;
    --color-purple-600: #7C3AED;
    --color-purple-700: #6D28D9;

    /* --- Escala de Grises --- */
    --color-gray-50: #F9FAFB;
    --color-gray-100: #F3F4F6;
    --color-gray-200: #E5E7EB;
    --color-gray-300: #D1D5DB;
    --color-gray-400: #9CA3AF;
    --color-gray-500: #6B7280;
    --color-gray-600: #4B5563;
    --color-gray-700: #374151;
    --color-gray-800: #1F2937;
    --color-gray-900: #111827;

    --color-slate-50: #F8FAFC;
    --color-slate-100: #F1F5F9;
    --color-slate-200: #E2E8F0;
    --color-slate-300: #CBD5E1;
    --color-slate-400: #94A3B8;
    --color-slate-500: #64748B;
    --color-slate-600: #475569;
    --color-slate-700: #334155;
    --color-slate-800: #1E293B;
    --color-slate-900: #0F172A;

/* =================================================================================
   2. TOKENS SEMÁNTICOS - DARK MODE
   ================================================================================= */

    /* --- Marca / Logo --- */
    --color-logo-icono: var(--color-green-500);
    --color-logo-eco: var(--color-green-500);
    --color-logo-balance: #EFB810;              /* Dorado especial del logo */

    /* --- Fondos Principales --- */
    --fondo-principal: #000000;
    --fondo-navegacion: #090E14;
    --fondo-tarjetas-default: var(--color-slate-700);
    --fondo-header-default: #151C29;


    /* --- Colores Semánticos de Estado --- */
    --color-success: var(--color-green-500);
    --color-success-hover: var(--color-green-600);
    --color-success-dark: var(--color-green-700);
    --color-success-light: var(--color-green-400);

    --color-danger: var(--color-red-500);
    --color-danger-hover: var(--color-red-600);
    --color-danger-dark: var(--color-red-700);

    --color-warning: var(--color-yellow-500);
    --color-warning-hover: var(--color-yellow-600);
    --color-warning-dark: var(--color-yellow-700);

    --color-info: var(--color-blue-500);
    --color-info-hover: var(--color-blue-600);
    --color-info-dark: var(--color-blue-700);

    /* --- Textos --- */
    --texto-principal: var(--color-logo-balance);
    --texto-secundario: var(--color-slate-200);
    --texto-suave: var(--color-slate-400);
    --texto-blanco: #FFFFFF;
    --texto-negro: #000000;

    /* --- Botones --- */
    --boton-primario: var(--color-success);
    --boton-primario-hover: var(--color-success-hover);
    --boton-secundario: var(--color-gray-500);
    --boton-secundario-hover: var(--color-gray-600);
    --boton-success: var(--color-cyan-500);
    --boton-success-hover: var(--color-cyan-600);
    --boton-warning: var(--color-warning);
    --boton-warning-hover: var(--color-warning-hover);
    --boton-danger: var(--color-danger);
    --boton-danger-hover: var(--color-danger-hover);

    --texto-boton-primario: var(--texto-blanco);
    --texto-boton-secundario: var(--texto-blanco);
    --texto-boton-success: var(--texto-blanco);
    --texto-boton-warning: var(--texto-blanco);
    --texto-boton-danger: var(--texto-blanco);

    /* --- Formularios --- */
    --fondo-input: var(--color-slate-800);
    --borde-input: rgba(255, 255, 255, 0.2);
    --borde-input-focus: var(--color-success);
    --texto-input: var(--texto-blanco);

    /* --- Alertas --- */
    --fondo-alerta: var(--color-slate-700);
    --borde-alerta: var(--color-blue-900);
    --fondo-alerta-info: var(--color-slate-800);

    /* --- Transacciones --- */
    --borde-transaccion-ingreso: var(--color-success);
    --borde-transaccion-gasto: var(--color-danger);
    --fondo-transaccion-ingreso: rgba(16, 185, 129, 0.1);
    --fondo-transaccion-gasto: rgba(239, 68, 68, 0.1);

    /* --- Separadores --- */
    --color-separador: var(--color-blue-900);

    /* --- Tarjetas Específicas --- */
    /* Tarjeta Total Cuentas */
    --header-card-tcuentas: var(--color-green-600);
    --fondo-card-tcuentas: var(--color-green-500);
    --texto-card-tcuentas: var(--texto-blanco);

    /* Tarjeta Balance (Positivo/Negativo) */
    --header-card-balance-positivo: var(--color-yellow-600);
    --header-card-balance-negativo: var(--color-red-600);
    --fondo-card-balance-positivo: var(--color-yellow-500);
    --fondo-card-balance-negativo: var(--color-red-500);
    --texto-card-balance-positivo: var(--texto-blanco);
    --texto-card-balance-negativo: var(--texto-blanco);

    /* Tarjeta Transacciones */
    --fondo-card-transacciones: var(--color-cyan-500);
    --texto-card-transacciones: var(--texto-blanco);
    --header-card-transacciones: var(--color-cyan-600);

    /* Tarjeta Ingresos */
    --header-card-ingresos: var(--color-green-600);
    --fondo-card-ingresos: var(--color-green-500);
    --texto-card-ingresos: var(--texto-blanco);

    /* Tarjeta Gastos */
    --fondo-card-gastos: var(--color-danger);
    --texto-card-gastos: var(--texto-blanco);
    --header-card-gastos: var(--color-danger-hover);

    /* Tarjeta Balance Filtrado */
    --header-card-balancef-positivo: var(--color-yellow-600);
    --header-card-balancef-negativo: var(--color-red-600);
    --fondo-card-balancef-positivo: var(--color-yellow-500);
    --fondo-card-balancef-negativo: var(--color-red-500);
    --texto-card-balancef-positivo: var(--texto-blanco);
    --texto-card-balancef-negativo: var(--texto-blanco);

/* =================================================================================
   3. ESPACIADO, SOMBRAS Y BORDES
   ================================================================================= */

    /* --- Espaciado --- */
    --spacing-xs: 0.25rem;      /* 4px */
    --spacing-sm: 0.5rem;       /* 8px */
    --spacing-md: 1rem;         /* 16px */
    --spacing-lg: 1.5rem;       /* 24px */
    --spacing-xl: 2rem;         /* 32px */
    --spacing-2xl: 3rem;        /* 48px */

    /* --- Sombras --- */
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --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);

    /* --- Bordes --- */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-full: 9999px;

    /* --- Transiciones --- */
    --transition-fast: 150ms ease;
    --transition-base: 300ms ease;
    --transition-slow: 500ms ease;
}

/* =================================================================================
   4. MODO CLARO (LIGHT MODE) - ESTRUCTURA PREPARADA
   =================================================================================

   Para activar: document.documentElement.classList.add('light')
   Para desactivar: document.documentElement.classList.remove('light')
   ================================================================================= */

:root.light {
    /* =================================================================================
       PALETA DE COLORES MODO CLARO - DISEÑO MODERNO FINANCIERO
       Inspirado en apps bancarias modernas (Revolut, N26, Wise)
       ================================================================================= */

    /* --- Fondos con Profundidad --- */
    --color-light-fondo-principal: #F0F4F8;          /* Gris azulado suave - fondo general */
    --color-light-fondo-tarjetas: #FFFFFF;            /* Blanco puro para tarjetas */
    --color-light-fondo-sidebar: #FFFFFF;             /* Sidebar blanco limpio */
    --color-light-fondo-sidebar-hover: #F8FAFC;       /* Hover suave en sidebar */
    --color-light-fondo-header: #FAFBFC;              /* Headers ligeramente diferenciados */

    /* --- Bordes y Separadores --- */
    --color-light-bordes: #E1E5EB;                    /* Bordes sutiles pero visibles */
    --color-light-separadores: #D1D9E6;               /* Separadores más marcados */
    --color-light-bordes-hover: #CBD5E1;              /* Bordes en hover */

    /* --- Textos con Alto Contraste --- */
    --color-light-texto-principal: #1A202C;           /* Negro azulado - máxima legibilidad */
    --color-light-texto-secundario: #4A5568;          /* Gris oscuro para texto secundario */
    --color-light-texto-suave: #718096;               /* Gris medio para hints */
    --color-light-texto-muted: #A0AEC0;               /* Texto deshabilitado */

    /* --- Verde Esmeralda (Éxito/Crecimiento) --- */
    --color-light-verde-marca: #059669;               /* Verde esmeralda vibrante */
    --color-light-verde-hover: #047857;               /* Verde más oscuro en hover */
    --color-light-verde-light: #10B981;               /* Verde claro para acentos */
    --color-light-verde-bg: #ECFDF5;                  /* Fondo verde muy suave */
    --color-light-verde-positivo: #059669;            /* Verde para valores positivos */

    /* --- Dorado/Ámbar (Riqueza/Valor) --- */
    --color-light-amarillo: #D97706;                  /* Ámbar dorado intenso */
    --color-light-amarillo-hover: #B45309;            /* Ámbar más oscuro */
    --color-light-amarillo-light: #F59E0B;            /* Ámbar claro */
    --color-light-amarillo-bg: #FFFBEB;               /* Fondo ámbar muy suave */

    /* --- Rojo (Alertas/Gastos) --- */
    --color-light-rojo-alerta: #DC2626;               /* Rojo vibrante */
    --color-light-rojo-hover: #B91C1C;                /* Rojo más oscuro */
    --color-light-rojo-light: #EF4444;                /* Rojo claro */
    --color-light-rojo-bg: #FEF2F2;                   /* Fondo rojo muy suave */

    /* --- Azul (Información/Balance) --- */
    --color-light-azul: #2563EB;                      /* Azul vibrante */
    --color-light-azul-hover: #1D4ED8;                /* Azul más oscuro */
    --color-light-azul-light: #3B82F6;                /* Azul claro */
    --color-light-azul-bg: #EFF6FF;                   /* Fondo azul muy suave */

    /* --- Púrpura (Préstamos) --- */
    --color-light-purpura: #7C3AED;                   /* Púrpura vibrante */
    --color-light-purpura-hover: #6D28D9;             /* Púrpura más oscuro */
    --color-light-purpura-bg: #F5F3FF;                /* Fondo púrpura muy suave */

    /* --- Sombras Elegantes --- */
    --shadow-light-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-light-md: 0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -1px rgba(0, 0, 0, 0.04);
    --shadow-light-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.04);
    --shadow-light-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    --shadow-light-card: 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-light-card-hover: 0 8px 25px rgba(0, 0, 0, 0.12), 0 4px 10px rgba(0, 0, 0, 0.06);

    /* =================================================================================
       TOKENS SEMÁNTICOS MODO CLARO
       ================================================================================= */

    /* --- Fondos Principales --- */
    --fondo-principal: var(--color-light-fondo-principal);
    --fondo-navegacion: var(--color-light-fondo-sidebar);
    --fondo-tarjetas-default: var(--color-light-fondo-tarjetas);
    --fondo-header-default: var(--color-light-fondo-header);

    /* --- Textos --- */
    --texto-principal: var(--color-light-texto-principal);
    --texto-secundario: var(--color-light-texto-secundario);
    --texto-suave: var(--color-light-texto-suave);

    /* --- Colores Semánticos --- */
    --color-success: var(--color-light-verde-marca);
    --color-success-hover: var(--color-light-verde-hover);
    --color-success-dark: #047857;
    --color-success-light: var(--color-light-verde-light);

    --color-danger: var(--color-light-rojo-alerta);
    --color-danger-hover: var(--color-light-rojo-hover);
    --color-danger-dark: #991B1B;

    --color-warning: var(--color-light-amarillo);
    --color-warning-hover: var(--color-light-amarillo-hover);
    --color-warning-dark: #92400E;

    --color-info: var(--color-light-azul);
    --color-info-hover: var(--color-light-azul-hover);
    --color-info-dark: #1E40AF;

    /* --- Formularios --- */
    --fondo-input: #FFFFFF;
    --borde-input: var(--color-light-bordes);
    --borde-input-focus: var(--color-light-verde-marca);
    --texto-input: var(--color-light-texto-principal);

    /* --- Alertas --- */
    --fondo-alerta: var(--color-light-fondo-header);
    --borde-alerta: var(--color-light-bordes);
    --fondo-alerta-info: var(--color-light-azul-bg);

    /* --- Separadores --- */
    --color-separador: var(--color-light-separadores);

    /* --- Bordes de navegación --- */
    --borde-navegacion: var(--color-light-bordes);

    /* --- Botones --- */
    --boton-primario: var(--color-light-verde-marca);
    --boton-primario-hover: var(--color-light-verde-hover);
    --boton-secundario: var(--color-light-texto-suave);
    --boton-secundario-hover: var(--color-light-texto-secundario);

    /* --- Tarjetas Métricas --- */
    --header-card-tcuentas: var(--color-light-verde-hover);
    --fondo-card-tcuentas: var(--color-light-verde-marca);

    --header-card-ingresos: var(--color-light-verde-hover);
    --fondo-card-ingresos: var(--color-light-verde-marca);

    --fondo-card-gastos: var(--color-light-rojo-alerta);
    --header-card-gastos: var(--color-light-rojo-hover);

    --fondo-card-transacciones: var(--color-light-azul);
    --header-card-transacciones: var(--color-light-azul-hover);

    --header-card-balance-positivo: var(--color-light-amarillo-hover);
    --fondo-card-balance-positivo: var(--color-light-amarillo);
    --header-card-balance-negativo: var(--color-light-rojo-hover);
    --fondo-card-balance-negativo: var(--color-light-rojo-alerta);
}

/* =================================================================================
   MODO CLARO - SOBRESCRITURAS ESPECÍFICAS
   ================================================================================= */

/* --- NAVEGACIÓN Y SIDEBAR --- */
:root.light .sidebar {
    background: var(--color-light-fondo-sidebar);
    border-right: 1px solid var(--color-light-bordes);
    box-shadow: var(--shadow-light-lg);
}

:root.light .sidebar-user {
    background: var(--color-light-fondo-header);
    border-top: 1px solid var(--color-light-bordes);
}

:root.light .submenu {
    background: var(--color-light-fondo-sidebar-hover);
    border-left: 2px solid var(--color-light-verde-marca);
}

:root.light .nav-link {
    color: var(--color-light-texto-secundario);
    border-radius: 8px;
    margin: 2px 8px;
    transition: all 0.2s ease;
}

:root.light .nav-link:hover {
    background: var(--color-light-verde-bg);
    color: var(--color-light-verde-marca);
}

:root.light .nav-link.active {
    background: linear-gradient(135deg, var(--color-light-verde-marca), var(--color-light-verde-hover));
    color: #FFFFFF;
    box-shadow: var(--shadow-light-md);
}

:root.light .nav-link.active .nav-icon,
:root.light .nav-link.active .nav-text {
    color: #FFFFFF;
}

:root.light .nav-text {
    color: inherit;
}

:root.light .nav-icon {
    color: inherit;
}

:root.light .submenu-link {
    color: var(--color-light-texto-suave);
    padding-left: 1rem;
    border-radius: 6px;
    margin: 2px 12px;
}

:root.light .submenu-link:hover {
    background: var(--color-light-verde-bg);
    color: var(--color-light-verde-marca);
}

:root.light .submenu-link.active {
    background: var(--color-light-verde-bg);
    color: var(--color-light-verde-marca);
    border-left: 3px solid var(--color-light-verde-marca);
    font-weight: 600;
}

/* --- TARJETAS --- */
:root.light .card {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    border-radius: 12px;
    box-shadow: var(--shadow-light-card);
    color: var(--color-light-texto-principal);
    transition: all 0.2s ease;
}

:root.light .card:hover {
    box-shadow: var(--shadow-light-card-hover);
}

:root.light .card-header {
    background: var(--color-light-fondo-header);
    border-bottom: 1px solid var(--color-light-bordes);
    color: var(--color-light-texto-principal);
    font-weight: 600;
}

:root.light .card-body {
    color: var(--color-light-texto-principal);
}

:root.light .card-title {
    color: var(--color-light-texto-principal) !important;
    font-weight: 600;
}

:root.light .card-text {
    color: var(--color-light-texto-secundario);
}

:root.light .card-footer {
    background: var(--color-light-fondo-header);
    color: var(--color-light-texto-secundario);
    border-top: 1px solid var(--color-light-bordes);
}

/* --- TARJETAS DE BANCO --- */
:root.light .banco-card {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    border-left: 4px solid var(--color-light-verde-marca);
    border-radius: 12px;
    box-shadow: var(--shadow-light-card);
}

:root.light .banco-card .card-header {
    background: transparent;
    border-bottom: 1px solid var(--color-light-bordes);
    color: var(--color-light-texto-principal) !important;
}

:root.light .banco-card .card-body {
    color: var(--color-light-texto-principal);
}

:root.light .banco-card .card-title {
    color: var(--color-light-texto-principal) !important;
}

/* --- DROPDOWN MENUS --- */
:root.light .dropdown-menu {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    border-radius: 10px;
    box-shadow: var(--shadow-light-xl);
    padding: 8px;
}

:root.light .dropdown-item {
    color: var(--color-light-texto-secundario);
    border-radius: 6px;
    padding: 8px 12px;
    transition: all 0.15s ease;
}

:root.light .dropdown-item:hover {
    background: var(--color-light-verde-bg);
    color: var(--color-light-verde-marca);
}

/* --- ITEMS DE CUENTA --- */
:root.light .cuenta-item {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    border-radius: 8px;
    color: var(--color-light-texto-principal) !important;
    transition: all 0.15s ease;
}

:root.light .cuenta-item:hover {
    background: var(--color-light-fondo-header);
    border-color: var(--color-light-bordes-hover);
}

:root.light .cuenta-item h5,
:root.light .cuenta-item h6,
:root.light .cuenta-item p,
:root.light .cuenta-item span,
:root.light .cuenta-item strong {
    color: var(--color-light-texto-principal) !important;
}

:root.light .cuenta-item small {
    color: var(--color-light-texto-suave) !important;
}

/* --- TARJETAS DE CUENTA PERSONALIZADAS --- */
:root.light .cuenta-personalizada {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes) !important;
    border-radius: 12px;
    box-shadow: var(--shadow-light-card);
}

:root.light .cuenta-personalizada .card-body {
    color: var(--color-light-texto-principal) !important;
}

:root.light .cuenta-personalizada .card-title {
    color: var(--color-light-texto-principal) !important;
}

:root.light .cuenta-personalizada h5,
:root.light .cuenta-personalizada h6,
:root.light .cuenta-personalizada p,
:root.light .cuenta-personalizada span {
    color: var(--color-light-texto-principal) !important;
}

:root.light .cuenta-personalizada small {
    color: var(--color-light-texto-suave) !important;
}

:root.light .cuenta-personalizada .text-white-75,
:root.light .cuenta-personalizada .text-white-50 {
    color: var(--color-light-texto-secundario) !important;
}

/* --- TARJETAS DE CUENTA (VER CUENTAS) --- */
/* Sobrescribir completamente los estilos oscuros de cuenta-card */
:root.light .cuenta-card,
:root.light .card.cuenta-card {
    background: var(--color-light-fondo-tarjetas) !important;
    border: 1px solid var(--color-light-bordes) !important;
    border-top: 1px solid var(--color-light-bordes) !important;
    border-radius: 12px !important;
    box-shadow: var(--shadow-light-card) !important;
}

/* Eliminar el overlay oscuro en modo claro */
:root.light .cuenta-card::before,
:root.light .card.cuenta-card::before {
    background: transparent !important;
    display: none !important;
}

:root.light .cuenta-card:hover,
:root.light .card.cuenta-card:hover {
    box-shadow: var(--shadow-light-card-hover) !important;
    transform: translateY(-3px);
}

:root.light .cuenta-card .card-header,
:root.light .card.cuenta-card .card-header {
    background: var(--color-light-fondo-header) !important;
    border-bottom: 1px solid var(--color-light-bordes) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .cuenta-card .card-header h5,
:root.light .card.cuenta-card .card-header h5 {
    color: var(--color-light-texto-principal) !important;
    text-shadow: none !important;
}

:root.light .cuenta-card .card-header i,
:root.light .card.cuenta-card .card-header i {
    color: var(--color-light-verde-marca) !important;
}

:root.light .cuenta-card .card-body,
:root.light .card.cuenta-card .card-body {
    background: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .cuenta-card .card-body strong,
:root.light .card.cuenta-card .card-body strong {
    color: var(--color-light-texto-principal) !important;
}

:root.light .cuenta-card .card-body span,
:root.light .card.cuenta-card .card-body span {
    color: var(--color-light-texto-secundario) !important;
}

:root.light .cuenta-card .card-body i,
:root.light .card.cuenta-card .card-body i {
    color: var(--color-light-verde-marca) !important;
}

:root.light .cuenta-card .card-title,
:root.light .card.cuenta-card .card-title {
    color: var(--color-light-texto-principal) !important;
}

:root.light .cuenta-card h5,
:root.light .cuenta-card h6,
:root.light .cuenta-card p,
:root.light .card.cuenta-card h5,
:root.light .card.cuenta-card h6,
:root.light .card.cuenta-card p {
    color: var(--color-light-texto-principal) !important;
}

:root.light .cuenta-card small,
:root.light .cuenta-card .text-muted,
:root.light .card.cuenta-card small,
:root.light .card.cuenta-card .text-muted {
    color: var(--color-light-texto-suave) !important;
}

:root.light .cuenta-card .descripcion-texto,
:root.light .card.cuenta-card .descripcion-texto {
    color: var(--color-light-texto-suave) !important;
}

:root.light .cuenta-card .card-footer,
:root.light .card.cuenta-card .card-footer {
    background: var(--color-light-fondo-header) !important;
    border-top: 1px solid var(--color-light-bordes) !important;
}

:root.light .cuenta-card .saldo-positivo,
:root.light .card.cuenta-card .saldo-positivo {
    color: var(--color-light-verde-marca) !important;
}

:root.light .cuenta-card .saldo-negativo,
:root.light .card.cuenta-card .saldo-negativo {
    color: var(--color-light-rojo-alerta) !important;
}

:root.light .cuenta-card .badge,
:root.light .card.cuenta-card .badge {
    color: #FFFFFF !important;
}

/* --- TABLAS --- */
:root.light .table {
    color: var(--color-light-texto-principal);
    background: var(--color-light-fondo-tarjetas);
}

:root.light .table th {
    background-color: var(--color-light-fondo-header);
    color: var(--color-light-texto-principal);
    border-color: var(--color-light-bordes);
    font-weight: 600;
}

:root.light .table td {
    border-color: var(--color-light-bordes);
    color: var(--color-light-texto-principal);
}

:root.light .table tbody tr:hover {
    background-color: var(--color-light-fondo-header);
}

/* --- TARJETAS DE GASTOS FIJOS --- */
:root.light .gasto-fijo-card,
:root.light .card.gasto-fijo-card {
    background: var(--color-light-fondo-tarjetas) !important;
    border: 1px solid var(--color-light-bordes) !important;
    border-top: 1px solid var(--color-light-bordes) !important;
    border-radius: 12px !important;
    box-shadow: var(--shadow-light-card) !important;
}

:root.light .gasto-fijo-card::before,
:root.light .card.gasto-fijo-card::before {
    background: transparent !important;
    display: none !important;
}

:root.light .gasto-fijo-card:hover,
:root.light .card.gasto-fijo-card:hover {
    box-shadow: var(--shadow-light-card-hover) !important;
    transform: translateY(-3px);
}

:root.light .gasto-fijo-card .card-header,
:root.light .card.gasto-fijo-card .card-header {
    background: var(--color-light-fondo-header) !important;
    border-bottom: 1px solid var(--color-light-bordes) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .gasto-fijo-card .card-body,
:root.light .card.gasto-fijo-card .card-body {
    background: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .gasto-fijo-card .card-title,
:root.light .card.gasto-fijo-card .card-title {
    color: var(--color-light-texto-principal) !important;
}

:root.light .gasto-fijo-card h5,
:root.light .gasto-fijo-card h6,
:root.light .gasto-fijo-card p,
:root.light .gasto-fijo-card span,
:root.light .gasto-fijo-card strong,
:root.light .card.gasto-fijo-card h5,
:root.light .card.gasto-fijo-card h6,
:root.light .card.gasto-fijo-card p,
:root.light .card.gasto-fijo-card span,
:root.light .card.gasto-fijo-card strong {
    color: var(--color-light-texto-principal) !important;
    text-shadow: none !important;
}

:root.light .gasto-fijo-card small,
:root.light .card.gasto-fijo-card small {
    color: var(--color-light-texto-suave) !important;
}

:root.light .gasto-fijo-card .card-footer,
:root.light .card.gasto-fijo-card .card-footer {
    background: var(--color-light-fondo-header) !important;
    border-top: 1px solid var(--color-light-bordes) !important;
}

:root.light .gasto-fijo-card .table,
:root.light .card.gasto-fijo-card .table {
    color: var(--color-light-texto-principal) !important;
    background: var(--color-light-fondo-tarjetas) !important;
}

:root.light .gasto-fijo-card .table th,
:root.light .card.gasto-fijo-card .table th {
    color: var(--color-light-texto-principal) !important;
    background-color: var(--color-light-fondo-header) !important;
    border-color: var(--color-light-bordes) !important;
}

:root.light .gasto-fijo-card .table td,
:root.light .card.gasto-fijo-card .table td {
    color: var(--color-light-texto-principal) !important;
    background-color: var(--color-light-fondo-tarjetas) !important;
    border-color: var(--color-light-bordes) !important;
}

/* --- TARJETAS DE VENCIMIENTO --- */
:root.light .vencimiento-card,
:root.light .card.vencimiento-card {
    background: var(--color-light-fondo-tarjetas) !important;
    border: 1px solid var(--color-light-bordes) !important;
    border-top: 1px solid var(--color-light-bordes) !important;
    border-left: 4px solid var(--color-light-rojo-alerta) !important;
    border-radius: 12px !important;
    box-shadow: var(--shadow-light-card) !important;
}

:root.light .vencimiento-card::before,
:root.light .card.vencimiento-card::before {
    background: transparent !important;
    display: none !important;
}

:root.light .vencimiento-card .card-body,
:root.light .card.vencimiento-card .card-body {
    background: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .vencimiento-card h5,
:root.light .vencimiento-card h6,
:root.light .vencimiento-card p,
:root.light .vencimiento-card span,
:root.light .vencimiento-card strong,
:root.light .card.vencimiento-card h5,
:root.light .card.vencimiento-card h6,
:root.light .card.vencimiento-card p,
:root.light .card.vencimiento-card span,
:root.light .card.vencimiento-card strong {
    color: var(--color-light-texto-principal) !important;
    text-shadow: none !important;
}

:root.light .vencimiento-card small,
:root.light .card.vencimiento-card small {
    color: var(--color-light-texto-suave) !important;
}

/* --- DASHBOARD --- */
:root.light .dashboard-header {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    border-radius: 12px;
    box-shadow: var(--shadow-light-card);
}

:root.light .dashboard-header h1 {
    color: var(--color-light-texto-principal) !important;
    text-shadow: none;
}

:root.light .dashboard-header p,
:root.light .dashboard-header .lead {
    color: var(--color-light-texto-secundario) !important;
}

:root.light .dashboard-stats .stat-item {
    color: var(--color-light-texto-secundario);
}

/* --- MAIN CONTENT AREA --- */
:root.light .main-content {
    background: var(--color-light-fondo-principal);
}

/* --- TODOS LOS TEXTOS GLOBALES --- */
:root.light h1,
:root.light h2,
:root.light h3,
:root.light h4,
:root.light h5,
:root.light h6 {
    color: var(--color-light-texto-principal) !important;
}

:root.light p {
    color: var(--color-light-texto-secundario);
}

:root.light span {
    color: inherit;
}

:root.light strong,
:root.light b {
    color: inherit;
}

:root.light small {
    color: var(--color-light-texto-suave);
}

/* --- ICONOS GENERALES EN MODO CLARO --- */
:root.light i.fas,
:root.light i.far,
:root.light i.fab {
    color: var(--color-light-verde-marca);
}

/* Iconos dentro de text-white deben ser visibles */
:root.light .text-white i,
:root.light .text-white i.fas,
:root.light .text-white i.far {
    color: var(--color-light-verde-marca) !important;
}

/* Iconos que deben mantener colores semánticos */
:root.light .text-success i,
:root.light .text-danger i,
:root.light .text-warning i,
:root.light .text-info i {
    color: inherit !important;
}

/* Iconos en badges y botones mantienen su color */
:root.light .badge i,
:root.light .btn i {
    color: inherit !important;
}

:root.light .text-muted {
    color: var(--color-light-texto-secundario) !important;
}

/* --- TEXT-LIGHT EN MODO CLARO --- */
/* Invertir text-light a texto oscuro en modo claro */
:root.light .text-light {
    color: var(--color-light-texto-principal) !important;
}

:root.light strong.text-light,
:root.light span.text-light,
:root.light p.text-light,
:root.light h1.text-light,
:root.light h2.text-light,
:root.light h3.text-light,
:root.light h4.text-light,
:root.light h5.text-light,
:root.light h6.text-light {
    color: #1A202C !important;
}

/* Distribución por Categorías en Dashboard */
:root.light .border-start.border-3 .text-light,
:root.light .border-start .text-light {
    color: #1A202C !important;
}

:root.light .border-start.border-3 .text-muted,
:root.light .border-start .text-muted {
    color: #4A5568 !important;
}

:root.light label,
:root.light .form-label {
    color: var(--color-light-texto-secundario);
    font-weight: 500;
}

/* --- DESCRIPCIONES Y TEXTOS PEQUEÑOS --- */
:root.light .descripcion-texto {
    color: var(--color-light-texto-suave);
}

/* --- MÉTRICAS DEL DASHBOARD --- */
/* Las métricas mantienen sus fondos de color con texto blanco */
:root.light .metrica-card {
    color: #FFFFFF !important;
    border-radius: 12px;
    box-shadow: var(--shadow-light-lg);
}

:root.light .metrica-card h4,
:root.light .metrica-card p,
:root.light .metrica-card small,
:root.light .metrica-card i,
:root.light .metrica-card span {
    color: #FFFFFF !important;
}

:root.light .metrica-card .card-title {
    color: #FFFFFF !important;
}

/* --- SALDOS --- */
:root.light .saldo-positivo {
    color: var(--color-light-verde-marca) !important;
    font-weight: 700;
}

:root.light .saldo-negativo {
    color: var(--color-light-rojo-alerta) !important;
    font-weight: 700;
}

:root.light .saldo-critico {
    color: var(--color-light-amarillo) !important;
    font-weight: 700;
}

:root.light .balance-positive {
    color: var(--color-light-verde-marca);
    font-weight: 600;
}

:root.light .balance-negative {
    color: var(--color-light-rojo-alerta);
    font-weight: 600;
}

/* --- SALDOS INFO EN TARJETAS --- */
:root.light .saldo-info {
    color: var(--color-light-texto-principal);
}

:root.light .saldo-principal {
    color: var(--color-light-texto-principal) !important;
    font-weight: 600;
}

:root.light .saldo-convertido {
    color: var(--color-light-texto-suave) !important;
}

:root.light .saldo-original span,
:root.light .saldo-convertido span {
    color: inherit !important;
}

/* --- NOTIFICACIONES --- */
:root.light .notification {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    border-radius: 12px;
    box-shadow: var(--shadow-light-xl);
}

:root.light .notification-content {
    color: var(--color-light-texto-principal);
}

:root.light .notification-close {
    color: var(--color-light-texto-suave);
    border-radius: 50%;
    transition: all 0.15s ease;
}

:root.light .notification-close:hover {
    color: var(--color-light-texto-principal);
    background: var(--color-light-fondo-header);
}

/* --- MOBILE HEADER --- */
:root.light .mobile-header {
    background: var(--color-light-fondo-sidebar);
    border-bottom: 1px solid var(--color-light-bordes);
    box-shadow: var(--shadow-light-md);
}

/* --- BOTONES DE ACCIÓN --- */
:root.light .boton-accion {
    background: var(--color-light-fondo-header);
    color: var(--color-light-texto-principal);
    border: 1px solid var(--color-light-bordes);
    border-radius: 8px;
    transition: all 0.15s ease;
}

:root.light .boton-accion:hover {
    background: var(--color-light-verde-bg);
    color: var(--color-light-verde-marca);
    border-color: var(--color-light-verde-marca);
}

/* --- CURRENCY SELECTOR --- */
:root.light .currency-btn {
    background: var(--color-light-amarillo-bg);
    border: 1px solid var(--color-light-amarillo);
    color: var(--color-light-amarillo);
    border-radius: 8px;
    font-weight: 500;
    transition: all 0.15s ease;
}

:root.light .currency-btn:hover {
    background: var(--color-light-amarillo);
    color: #FFFFFF;
}

/* --- ALERTAS GENERALES --- */
:root.light .alert {
    color: var(--color-light-texto-principal);
    border-radius: 10px;
    border-width: 1px;
}

/* --- FORMULARIOS --- */
:root.light .form-control {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    color: var(--color-light-texto-principal);
    border-radius: 8px;
    transition: all 0.15s ease;
}

:root.light .form-control:focus {
    border-color: var(--color-light-verde-marca);
    box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.15);
    background: var(--color-light-fondo-tarjetas);
}

:root.light .form-control::placeholder {
    color: var(--color-light-texto-muted);
}

:root.light .form-label {
    color: var(--color-light-texto-secundario);
    font-weight: 500;
}

/* --- TABLA DE AMORTIZACIÓN --- */
:root.light .tabla-amortizacion-scroll {
    border: 1px solid var(--color-light-bordes);
    border-radius: 10px;
    background: var(--color-light-fondo-tarjetas);
    overflow: hidden;
}

:root.light .tabla-amortizacion-scroll thead th {
    background: var(--color-light-fondo-header) !important;
    color: var(--color-light-texto-principal) !important;
    font-weight: 600;
}

:root.light .tabla-amortizacion-scroll tbody tr:hover {
    background-color: var(--color-light-fondo-header) !important;
}

:root.light .tabla-dashboard-hover:hover td {
    background: var(--color-light-verde-marca);
    color: #FFFFFF !important;
}

:root.light .saldos-info {
    background: var(--color-light-fondo-header);
    border: 1px solid var(--color-light-bordes);
    border-radius: 8px;
}

/* --- BADGES Y ETIQUETAS --- */
:root.light .badge {
    color: #FFFFFF;
    font-weight: 500;
    border-radius: 6px;
}

:root.light .bg-warning {
    background-color: var(--color-light-amarillo) !important;
    color: #FFFFFF !important;
}

:root.light .bg-success {
    background-color: var(--color-light-verde-marca) !important;
}

:root.light .bg-danger {
    background-color: var(--color-light-rojo-alerta) !important;
}

:root.light .bg-info {
    background-color: var(--color-light-azul) !important;
}

:root.light .bg-primary {
    background-color: var(--color-light-verde-marca) !important;
}

:root.light .bg-secondary {
    background-color: var(--color-light-texto-suave) !important;
}

/* --- LINKS --- */
:root.light a {
    color: var(--color-light-verde-marca);
    text-decoration: none;
    transition: color 0.15s ease;
}

:root.light a:hover {
    color: var(--color-light-verde-hover);
}

/* --- LOGO --- */
:root.light .logo-eco {
    color: var(--color-light-verde-marca);
}

:root.light .logo-balance {
    color: var(--color-light-amarillo);
}

:root.light .section-title {
    color: var(--color-light-texto-principal);
    border-bottom: 2px solid var(--color-light-verde-marca);
    padding-bottom: 0.5rem;
}

/* --- FORMULARIOS SELECT Y CHECKBOX --- */
:root.light .form-select {
    background-color: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    color: var(--color-light-texto-principal);
    border-radius: 8px;
}

:root.light .form-check-input {
    background-color: var(--color-light-fondo-tarjetas);
    border: 2px solid var(--color-light-bordes);
}

:root.light .form-check-input:checked {
    background-color: var(--color-light-verde-marca);
    border-color: var(--color-light-verde-marca);
}

:root.light .form-select:focus,
:root.light .form-check-input:focus {
    border-color: var(--color-light-verde-marca);
    box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.15);
}

/* --- USUARIO --- */
:root.light .user-name {
    color: var(--color-light-texto-principal);
    font-weight: 500;
}

:root.light .user-menu-btn {
    color: var(--color-light-texto-suave);
    transition: color 0.15s ease;
}

:root.light .user-menu-btn:hover {
    color: var(--color-light-texto-principal);
}

:root.light .user-avatar {
    background: linear-gradient(135deg, var(--color-light-verde-marca), var(--color-light-verde-hover));
    color: #FFFFFF;
    box-shadow: var(--shadow-light-md);
}

:root.light .login-btn {
    background: linear-gradient(135deg, var(--color-light-verde-marca), var(--color-light-verde-hover));
    border: none;
    box-shadow: var(--shadow-light-md);
}

:root.light .login-btn:hover {
    background: linear-gradient(135deg, var(--color-light-verde-hover), var(--color-success-dark));
    color: #FFFFFF;
    box-shadow: var(--shadow-light-lg);
}

/* --- ALERTAS ESPECÍFICAS --- */
:root.light .alert-warning {
    background-color: var(--color-light-amarillo-bg);
    border: 1px solid var(--color-light-amarillo);
    color: var(--color-warning-dark);
}

:root.light .alert-info {
    background-color: var(--color-light-azul-bg);
    border: 1px solid var(--color-light-azul);
    color: var(--color-info-dark);
}

:root.light .alert-success {
    background-color: var(--color-light-verde-bg);
    border: 1px solid var(--color-light-verde-marca);
    color: var(--color-success-dark);
}

:root.light .alert-danger {
    background-color: var(--color-light-rojo-bg);
    border: 1px solid var(--color-light-rojo-alerta);
    color: var(--color-danger-dark);
}

/* --- PRÉSTAMOS Y ANÁLISIS --- */
:root.light .alerta-suficiente {
    background-color: var(--color-light-verde-bg);
    border: 1px solid var(--color-light-verde-marca);
    border-radius: 10px;
    color: var(--color-success-dark);
}

:root.light .alerta-insuficiente {
    background-color: var(--color-light-rojo-bg);
    border: 1px solid var(--color-light-rojo-alerta);
    border-radius: 10px;
    color: var(--color-danger-dark);
}

:root.light .vencimiento-proximo {
    color: var(--color-light-texto-principal) !important;
}

:root.light .vencimiento-proximo strong {
    color: var(--color-light-amarillo) !important;
}

/* --- IMPORTACIÓN BANCARIA --- */
:root.light .upload-area {
    background: var(--color-light-fondo-tarjetas);
    border: 2px dashed var(--color-light-verde-marca);
    border-radius: 12px;
    transition: all 0.2s ease;
}

:root.light .upload-area:hover {
    background: var(--color-light-verde-bg);
    border-color: var(--color-light-verde-hover);
}

:root.light .file-info {
    background: var(--color-light-azul-bg);
    color: var(--color-light-texto-principal);
    border-radius: 8px;
}

:root.light .stat-card {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    border-radius: 12px;
    box-shadow: var(--shadow-light-card);
}

:root.light .stat-card .number {
    color: var(--color-light-verde-marca);
    font-weight: 700;
}

:root.light .stat-card .label {
    color: var(--color-light-texto-suave);
}

/* --- BOTONES --- */
:root.light .btn-primary {
    background: linear-gradient(135deg, var(--color-light-verde-marca), var(--color-light-verde-hover));
    border: none;
    color: #FFFFFF;
    border-radius: 8px;
    font-weight: 500;
    box-shadow: var(--shadow-light-sm);
    transition: all 0.2s ease;
}

:root.light .btn-primary:hover {
    background: linear-gradient(135deg, var(--color-light-verde-hover), var(--color-success-dark));
    color: #FFFFFF;
    box-shadow: var(--shadow-light-md);
    transform: translateY(-1px);
}

:root.light .btn-success {
    background: linear-gradient(135deg, var(--color-light-verde-light), var(--color-light-verde-marca));
    border: none;
    color: #FFFFFF;
    border-radius: 8px;
    box-shadow: var(--shadow-light-sm);
}

:root.light .btn-success:hover {
    background: linear-gradient(135deg, var(--color-light-verde-marca), var(--color-light-verde-hover));
    box-shadow: var(--shadow-light-md);
}

:root.light .btn-warning {
    background: linear-gradient(135deg, var(--color-light-amarillo-light), var(--color-light-amarillo));
    border: none;
    color: #FFFFFF;
    border-radius: 8px;
    box-shadow: var(--shadow-light-sm);
}

:root.light .btn-warning:hover {
    background: linear-gradient(135deg, var(--color-light-amarillo), var(--color-light-amarillo-hover));
    color: #FFFFFF;
    box-shadow: var(--shadow-light-md);
}

:root.light .btn-danger {
    background: linear-gradient(135deg, var(--color-light-rojo-light), var(--color-light-rojo-alerta));
    border: none;
    color: #FFFFFF;
    border-radius: 8px;
    box-shadow: var(--shadow-light-sm);
}

:root.light .btn-danger:hover {
    background: linear-gradient(135deg, var(--color-light-rojo-alerta), var(--color-light-rojo-hover));
    box-shadow: var(--shadow-light-md);
}

:root.light .btn-info {
    background: linear-gradient(135deg, var(--color-light-azul-light), var(--color-light-azul));
    border: none;
    color: #FFFFFF;
    border-radius: 8px;
    box-shadow: var(--shadow-light-sm);
}

:root.light .btn-info:hover {
    background: linear-gradient(135deg, var(--color-light-azul), var(--color-light-azul-hover));
    box-shadow: var(--shadow-light-md);
}

:root.light .btn-outline-primary {
    background: transparent;
    border: 2px solid var(--color-light-verde-marca);
    color: var(--color-light-verde-marca);
    border-radius: 8px;
    font-weight: 500;
}

:root.light .btn-outline-primary:hover {
    background: var(--color-light-verde-marca);
    border-color: var(--color-light-verde-marca);
    color: #FFFFFF;
}

:root.light .btn-outline-secondary {
    background: transparent;
    border: 2px solid var(--color-light-bordes);
    color: var(--color-light-texto-secundario);
    border-radius: 8px;
}

:root.light .btn-outline-secondary:hover {
    background: var(--color-light-fondo-header);
    border-color: var(--color-light-bordes-hover);
    color: var(--color-light-texto-principal);
}

/* --- BOTONES DE ACCIÓN EN TARJETAS --- */
:root.light .botones-accion {
    background: var(--color-light-fondo-header);
    border-top: 1px solid var(--color-light-bordes);
    padding: 0.75rem;
}

:root.light .boton-accion {
    background: var(--color-light-fondo-tarjetas) !important;
    border: 1px solid var(--color-light-bordes) !important;
    color: var(--color-light-texto-secundario) !important;
    box-shadow: var(--shadow-light-sm);
}

:root.light .boton-accion:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-light-md);
}

:root.light .boton-ver {
    background: linear-gradient(135deg, var(--color-light-azul-light), var(--color-light-azul)) !important;
    border-color: var(--color-light-azul) !important;
    color: #FFFFFF !important;
}

:root.light .boton-ver:hover {
    background: linear-gradient(135deg, var(--color-light-azul), var(--color-light-azul-hover)) !important;
    color: #FFFFFF !important;
}

:root.light .boton-editar {
    background: linear-gradient(135deg, var(--color-light-amarillo-light), var(--color-light-amarillo)) !important;
    border-color: var(--color-light-amarillo) !important;
    color: #FFFFFF !important;
}

:root.light .boton-editar:hover {
    background: linear-gradient(135deg, var(--color-light-amarillo), var(--color-light-amarillo-hover)) !important;
    color: #FFFFFF !important;
}

:root.light .boton-transaccion {
    background: linear-gradient(135deg, var(--color-light-verde-light), var(--color-light-verde-marca)) !important;
    border-color: var(--color-light-verde-marca) !important;
    color: #FFFFFF !important;
}

:root.light .boton-transaccion:hover {
    background: linear-gradient(135deg, var(--color-light-verde-marca), var(--color-light-verde-hover)) !important;
    color: #FFFFFF !important;
}

/* --- BOTONES SECUNDARIOS (CANCELAR, ETC) --- */
:root.light .btn-secondary {
    background: var(--color-light-fondo-header);
    border: 1px solid var(--color-light-bordes);
    color: var(--color-light-texto-secundario);
    border-radius: 8px;
}

:root.light .btn-secondary:hover {
    background: var(--color-light-bordes);
    border-color: var(--color-light-bordes-hover);
    color: var(--color-light-texto-principal);
}

/* --- TABLAS DE PRÉSTAMOS (LOAN LIST) --- */
:root.light .table-responsive {
    background: var(--color-light-fondo-tarjetas) !important;
    border-radius: 10px;
    overflow: hidden;
}

:root.light .table-responsive .table {
    color: var(--color-light-texto-principal) !important;
    background: var(--color-light-fondo-tarjetas) !important;
    margin-bottom: 0;
}

:root.light .table-responsive .table thead {
    background: var(--color-light-fondo-header) !important;
}

:root.light .table-responsive .table thead th {
    background-color: var(--color-light-fondo-header) !important;
    color: var(--color-light-texto-principal) !important;
    border-color: var(--color-light-bordes) !important;
    font-weight: 600;
}

:root.light .table-responsive .table tbody {
    background: var(--color-light-fondo-tarjetas) !important;
}

:root.light .table-responsive .table tbody tr {
    background: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
    transition: background-color 0.15s ease;
}

:root.light .table-responsive .table tbody td {
    background: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
    border-color: var(--color-light-bordes) !important;
}

:root.light .table-responsive .table tbody tr:hover {
    background: var(--color-light-fondo-header) !important;
}

:root.light .table-responsive .table tbody tr:hover td {
    background: var(--color-light-fondo-header) !important;
}

/* --- FILAS ESPECÍFICAS DE TABLAS (nth-child) --- */
:root.light .table tbody tr:nth-child(odd) {
    background: var(--color-light-fondo-tarjetas) !important;
}

:root.light .table tbody tr:nth-child(odd) td {
    background: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table tbody tr:nth-child(even) {
    background: var(--color-light-fondo-header) !important;
}

:root.light .table tbody tr:nth-child(even) td {
    background: var(--color-light-fondo-header) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-responsive .table tbody tr:nth-child(odd) {
    background: var(--color-light-fondo-tarjetas) !important;
}

:root.light .table-responsive .table tbody tr:nth-child(odd) td {
    background: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-responsive .table tbody tr:nth-child(even) {
    background: var(--color-light-fondo-header) !important;
}

:root.light .table-responsive .table tbody tr:nth-child(even) td {
    background: var(--color-light-fondo-header) !important;
    color: var(--color-light-texto-principal) !important;
}

/* --- SOBRESCRIBIR CUALQUIER CLASE TABLE-* --- */
:root.light .table-striped tbody tr:nth-of-type(odd) {
    background-color: var(--color-light-fondo-tarjetas) !important;
}

:root.light .table-striped tbody tr:nth-of-type(odd) td {
    background-color: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-striped tbody tr:nth-of-type(even) {
    background-color: var(--color-light-fondo-header) !important;
}

:root.light .table-striped tbody tr:nth-of-type(even) td {
    background-color: var(--color-light-fondo-header) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-dark {
    background-color: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
    --bs-table-bg: var(--color-light-fondo-tarjetas) !important;
    --bs-table-color: var(--color-light-texto-principal) !important;
}

:root.light .table-dark tbody {
    background-color: var(--color-light-fondo-tarjetas) !important;
}

:root.light .table-dark tbody tr {
    background-color: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-dark tbody td {
    background-color: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-dark thead th {
    background-color: var(--color-light-fondo-header) !important;
    color: var(--color-light-texto-principal) !important;
    border-color: var(--color-light-bordes) !important;
}

/* Sobrescribir estilos de Bootstrap table-dark con table-striped */
:root.light .table-dark.table-striped tbody tr {
    background-color: var(--color-light-fondo-tarjetas) !important;
}

:root.light .table-dark.table-striped tbody tr:nth-of-type(odd) {
    background-color: var(--color-light-fondo-tarjetas) !important;
}

:root.light .table-dark.table-striped tbody tr:nth-of-type(odd) td {
    background-color: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-dark.table-striped tbody tr:nth-of-type(odd) > * {
    background-color: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-dark.table-striped tbody tr:nth-of-type(even) {
    background-color: var(--color-light-fondo-header) !important;
}

:root.light .table-dark.table-striped tbody tr:nth-of-type(even) td {
    background-color: var(--color-light-fondo-header) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-dark.table-striped tbody tr:nth-of-type(even) > * {
    background-color: var(--color-light-fondo-header) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-dark.table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-accent-bg: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .table-dark.table-striped > tbody > tr:nth-of-type(even) > * {
    --bs-table-accent-bg: var(--color-light-fondo-header) !important;
    color: var(--color-light-texto-principal) !important;
}

/* --- TABLAS GENERALES --- */
:root.light table {
    color: var(--color-light-texto-principal) !important;
    background: var(--color-light-fondo-tarjetas) !important;
}

:root.light table thead {
    background: var(--color-light-fondo-header) !important;
}

:root.light table thead th {
    background-color: var(--color-light-fondo-header) !important;
    color: var(--color-light-texto-principal) !important;
    border-color: var(--color-light-bordes) !important;
    font-weight: 600;
}

:root.light table tbody {
    background: var(--color-light-fondo-tarjetas) !important;
}

:root.light table tbody tr {
    background: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
    transition: background-color 0.15s ease;
}

:root.light table tbody td {
    background: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
    border-color: var(--color-light-bordes) !important;
}

:root.light table tbody tr:hover {
    background: var(--color-light-fondo-header) !important;
}

:root.light table tbody tr:hover td {
    background: var(--color-light-fondo-header) !important;
}

/* --- INPUTS EN FORMULARIOS DE CREACIÓN/EDICIÓN --- */
:root.light input[type="text"],
:root.light input[type="number"],
:root.light input[type="date"],
:root.light input[type="email"],
:root.light input[type="password"],
:root.light textarea,
:root.light select {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    color: var(--color-light-texto-principal);
    border-radius: 8px;
}

:root.light input[type="text"]:focus,
:root.light input[type="number"]:focus,
:root.light input[type="date"]:focus,
:root.light input[type="email"]:focus,
:root.light input[type="password"]:focus,
:root.light textarea:focus,
:root.light select:focus {
    background: var(--color-light-fondo-tarjetas);
    border-color: var(--color-light-verde-marca);
    box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.15);
    color: var(--color-light-texto-principal);
}

/* --- INPUT READONLY Y DISABLED --- */
:root.light input[readonly],
:root.light input[disabled],
:root.light select[disabled],
:root.light textarea[disabled] {
    background: var(--color-light-fondo-header);
    color: var(--color-light-texto-muted);
    border-color: var(--color-light-bordes);
}

/* --- OPCIONES DE SELECT --- */
:root.light select option {
    background: var(--color-light-fondo-tarjetas);
    color: var(--color-light-texto-principal);
}

/* --- TEXTOS Y LINKS DENTRO DE TABLAS --- */
:root.light table a {
    color: var(--color-light-verde-marca);
}

:root.light table a:hover {
    color: var(--color-light-verde-hover);
}

:root.light table .badge {
    color: #FFFFFF;
}

:root.light table strong,
:root.light table b {
    color: inherit;
}

:root.light table small {
    color: var(--color-light-texto-suave);
}



/* --- HR SEPARADORES --- */
:root.light hr {
    border-color: var(--color-light-bordes);
}

/* --- HELP TEXT --- */
:root.light .form-help-text {
    color: var(--color-light-texto-suave);
    background: var(--color-light-fondo-header);
    border-left: 3px solid var(--color-light-amarillo);
    border-radius: 0 8px 8px 0;
}

:root.light .text-question {
    color: var(--color-light-amarillo);
}

/* =================================================================================
   MODO CLARO - ECO-CARD Y COMPONENTES ESTANDARIZADOS
   ================================================================================= */

/* --- ECO-CARD EN MODO CLARO --- */
:root.light .eco-card {
    background: var(--color-light-fondo-tarjetas) !important;
    border: 1px solid var(--color-light-bordes) !important;
    border-top: 4px solid var(--color-light-verde-marca) !important;
    border-radius: 12px !important;
    box-shadow: var(--shadow-light-card) !important;
}

:root.light .eco-card::before {
    background: transparent !important;
    display: none !important;
    opacity: 0 !important;
}

:root.light .eco-card:hover {
    box-shadow: var(--shadow-light-card-hover) !important;
}

:root.light .eco-card-header {
    background: var(--color-light-fondo-header) !important;
    border-bottom: 1px solid var(--color-light-bordes) !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .eco-card-header h4,
:root.light .eco-card-header h5,
:root.light .eco-card-header h6 {
    color: var(--color-light-texto-principal) !important;
    text-shadow: none !important;
}

:root.light .eco-card-header i {
    color: var(--color-light-verde-marca) !important;
    text-shadow: none !important;
}

:root.light .eco-card-body {
    background: var(--color-light-fondo-tarjetas) !important;
    color: var(--color-light-texto-principal) !important;
}

/* Títulos dentro de eco-card-body en modo claro */
:root.light .eco-card-body h1,
:root.light .eco-card-body h2,
:root.light .eco-card-body h3,
:root.light .eco-card-body h4,
:root.light .eco-card-body h5,
:root.light .eco-card-body h6 {
    color: var(--color-light-texto-principal) !important;
    text-shadow: none !important;
}

/* Iconos dentro de eco-card-body */
:root.light .eco-card-body i {
    color: var(--color-light-verde-marca) !important;
    text-shadow: none !important;
}

/* Texto muted dentro de eco-card */
:root.light .eco-card .text-muted,
:root.light .eco-card-body .text-muted,
:root.light .eco-card-body p.text-muted {
    color: var(--color-light-texto-secundario) !important;
}

/* Texto normal dentro de eco-card */
:root.light .eco-card-body p,
:root.light .eco-card-body span,
:root.light .eco-card-body small {
    color: var(--color-light-texto-principal) !important;
}

/* Corregir colores de categoría que pueden ser muy claros */
:root.light .eco-card-body h4[style*="color:"] {
    text-shadow: none !important;
    filter: brightness(0.85) saturate(1.2) !important;
}

/* =====================================================
   DISTRIBUCIÓN POR CATEGORÍAS - MODO CLARO
   Estilos específicos para .card.eco-card .card-body
   ===================================================== */
:root.light .card.eco-card {
    background: #FFFFFF !important;
    background-image: none !important;
}

:root.light .card.eco-card .card-body {
    background: #FFFFFF !important;
    color: #1A202C !important;
}

:root.light .card.eco-card .card-body h5 {
    color: #1A202C !important;
    text-shadow: none !important;
}

:root.light .card.eco-card .card-body h5 i {
    color: #059669 !important;
    text-shadow: none !important;
}

:root.light .card.eco-card .card-body p.text-muted {
    color: #4A5568 !important;
}

:root.light .card.eco-card .card-body h4 {
    text-shadow: none !important;
}

/* Forzar visibilidad en tarjetas de distribución de categorías */
:root.light #categorias-dist .eco-card {
    background: #FFFFFF !important;
}

:root.light #categorias-dist .eco-card .card-body,
:root.light #categorias-dist .eco-card .eco-card-body {
    background: #FFFFFF !important;
}

:root.light #categorias-dist .eco-card h5,
:root.light #categorias-dist .eco-card .card-body h5 {
    color: #1A202C !important;
    text-shadow: none !important;
}

:root.light #categorias-dist .eco-card .text-muted,
:root.light #categorias-dist .eco-card p.text-muted {
    color: #4A5568 !important;
}

:root.light .eco-card-footer {
    background: var(--color-light-fondo-header) !important;
    border-top: 1px solid var(--color-light-bordes) !important;
    color: var(--color-light-texto-secundario) !important;
}

/* --- ECO-BANK-CARD EN MODO CLARO --- */
:root.light .eco-bank-card {
    background: #FFFFFF !important;
    border: 1px solid var(--color-light-bordes) !important;
    border-top: 4px solid var(--color-light-verde-marca) !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}

:root.light .eco-bank-card::before {
    background: transparent !important;
    display: none !important;
}

:root.light .eco-bank-card .eco-card-header {
    background: var(--color-light-fondo-header) !important;
    border-bottom: 1px solid var(--color-light-bordes) !important;
    padding: 1rem !important;
}

:root.light .eco-bank-card .eco-card-header h5 {
    color: var(--color-light-texto-principal) !important;
    text-shadow: none !important;
    margin: 0 !important;
}

:root.light .eco-bank-card .eco-card-header h5 span {
    text-shadow: none !important;
}

:root.light .eco-bank-card .eco-card-header h5 i {
    color: var(--color-light-verde-marca) !important;
    text-shadow: none !important;
}

:root.light .eco-bank-card .eco-card-header .badge {
    background: var(--color-light-verde-marca) !important;
    color: #FFFFFF !important;
    font-weight: 600 !important;
    text-shadow: none !important;
}

:root.light .eco-bank-card .eco-card-body {
    background: #FFFFFF !important;
    padding: 1rem !important;
}

/* Cuentas dentro de eco-bank-card */
:root.light .eco-bank-card .eco-account-item {
    background: #F8FAFC !important;
    border-top: 1px solid var(--color-light-bordes) !important;
    border-right: 1px solid var(--color-light-bordes) !important;
    border-bottom: 1px solid var(--color-light-bordes) !important;
    /* border-left viene del style inline con el color del banco */
    border-radius: 8px !important;
    padding: 0.75rem 1rem !important;
    margin-bottom: 0.5rem !important;
    transition: all 0.2s ease !important;
}

:root.light .eco-bank-card .eco-account-item:hover {
    background: rgba(16, 185, 129, 0.1) !important;
    transform: translateX(3px);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) !important;
}

/* Permitir que el border-left inline del color del banco se vea */
:root.light .eco-bank-card .eco-account-item[style*="border-left"] {
    border-left-width: 4px !important;
    border-left-style: solid !important;
}

/* Nombre de cuenta (sobrescribir text-white) */
:root.light .eco-bank-card .eco-account-item .text-white {
    color: #1A202C !important;
}

:root.light .eco-bank-card .eco-account-item span.text-white {
    color: #1A202C !important;
    font-weight: 500 !important;
}

/* ICONOS dentro de eco-account-item - FORZAR VISIBILIDAD */
:root.light .eco-bank-card .eco-account-item i {
    color: #059669 !important;
}

:root.light .eco-bank-card .eco-account-item i.fas,
:root.light .eco-bank-card .eco-account-item i.far,
:root.light .eco-bank-card .eco-account-item i.fa-credit-card,
:root.light .eco-bank-card .eco-account-item .text-white i,
:root.light .eco-bank-card .eco-account-item span.text-white i {
    color: #059669 !important;
}

/* Texto muted (moneda, etc.) */
:root.light .eco-bank-card .eco-account-item .text-muted {
    color: #64748B !important;
}

:root.light .eco-bank-card .eco-account-item small.text-muted {
    color: #64748B !important;
}

/* Saldos positivos y negativos */
:root.light .eco-bank-card .eco-account-item .saldo-positivo {
    color: #059669 !important;
    font-weight: 600 !important;
}

:root.light .eco-bank-card .eco-account-item .saldo-negativo {
    color: #DC2626 !important;
    font-weight: 600 !important;
}

/* --- ECO-METRIC-CARD EN MODO CLARO --- */
:root.light .eco-metric-card {
    border-radius: 12px !important;
    box-shadow: var(--shadow-light-lg) !important;
}

:root.light .eco-metric-card::before {
    background: transparent !important;
    display: none !important;
}

/* ELIMINAR TEXT-SHADOW en métricas modo claro */
:root.light .eco-metric-card h1,
:root.light .eco-metric-card h2,
:root.light .eco-metric-card h3,
:root.light .eco-metric-card h4,
:root.light .eco-metric-card h5,
:root.light .eco-metric-card h6,
:root.light .eco-metric-card p,
:root.light .eco-metric-card span,
:root.light .eco-metric-card small,
:root.light .eco-metric-card i {
    text-shadow: none !important;
    color: #FFFFFF !important;
}

:root.light .eco-metric-success {
    background: linear-gradient(135deg, var(--color-light-verde-light), var(--color-light-verde-marca)) !important;
    border-top: 4px solid var(--color-light-verde-hover) !important;
}

:root.light .eco-metric-danger {
    background: linear-gradient(135deg, var(--color-light-rojo-light), var(--color-light-rojo-alerta)) !important;
    border-top: 4px solid var(--color-light-rojo-hover) !important;
}

:root.light .eco-metric-info {
    background: linear-gradient(135deg, var(--color-light-azul-light), var(--color-light-azul)) !important;
    border-top: 4px solid var(--color-light-azul-hover) !important;
}

:root.light .eco-metric-warning {
    background: linear-gradient(135deg, var(--color-light-amarillo-light), var(--color-light-amarillo)) !important;
    border-top: 4px solid var(--color-light-amarillo-hover) !important;
}

:root.light .eco-metric-prestamo {
    background: linear-gradient(135deg, var(--color-light-purpura), var(--color-light-purpura-hover)) !important;
    border-top: 4px solid var(--color-light-purpura-hover) !important;
}

/* --- TRANSACCION-BANCO-BORDER EN MODO CLARO --- */
/* Usado en tickets de supermercado, dashboard análisis y otras listas */
:root.light .transaccion-banco-border {
    background: #FFFFFF !important;
    border: 1px solid var(--color-light-bordes) !important;
    border-left: 4px solid var(--color-banco) !important;
    border-radius: 10px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important;
    transition: all 0.2s ease !important;
}

/* HOVER CON COLOR DEL BANCO - Mantener igual que modo oscuro */
:root.light .transaccion-banco-border:hover {
    background: var(--color-banco-hover) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    transform: translateX(3px);
}

:root.light .card.transaccion-banco-border {
    background: #FFFFFF !important;
    border-left: 4px solid var(--color-banco) !important;
}

:root.light .card.transaccion-banco-border:hover {
    background: var(--color-banco-hover) !important;
}

:root.light .transaccion-banco-border .card-body {
    background: transparent !important;
    color: var(--color-light-texto-principal) !important;
}

:root.light .transaccion-banco-border:hover .card-body {
    background: transparent !important;
}

/* Sobrescribir text-white dentro de transaccion-banco-border */
:root.light .transaccion-banco-border .text-white {
    color: var(--color-light-texto-principal) !important;
}

:root.light .transaccion-banco-border .text-muted {
    color: #64748B !important;
}

:root.light .transaccion-banco-border h5,
:root.light .transaccion-banco-border h6,
:root.light .transaccion-banco-border strong {
    color: var(--color-light-texto-principal) !important;
}

:root.light .transaccion-banco-border small {
    color: #64748B !important;
}

:root.light .transaccion-banco-border i {
    color: var(--color-light-verde-marca) !important;
}

/* Colores semánticos diferenciados para Análisis de Saldos */
:root.light .transaccion-banco-border .text-danger {
    color: #DC2626 !important;
}

:root.light .transaccion-banco-border .text-success {
    color: #059669 !important;
}

:root.light .transaccion-banco-border .text-warning {
    color: #D97706 !important;
}

:root.light .transaccion-banco-border .text-info {
    color: #7C3AED !important;
}

/* Saldo positivo y negativo */
:root.light .transaccion-banco-border .saldo-positivo {
    color: #059669 !important;
}

:root.light .transaccion-banco-border .saldo-negativo {
    color: #DC2626 !important;
}

/* =====================================================
   FILA DE TOTALES EN ANÁLISIS DE SALDOS - MODO CLARO
   ===================================================== */
:root.light .gasto-fijo-card > .card-body > .card.mt-3 {
    background: linear-gradient(135deg, #E2E8F0, #CBD5E1) !important;
    border: 1px solid var(--color-light-bordes) !important;
    border-radius: 10px !important;
}

:root.light .gasto-fijo-card > .card-body > .card.mt-3 .card-body {
    background: transparent !important;
}

:root.light .gasto-fijo-card > .card-body > .card.mt-3 strong {
    color: #1A202C !important;
    text-shadow: none !important;
}

:root.light .gasto-fijo-card > .card-body > .card.mt-3 .text-success {
    color: #059669 !important;
    text-shadow: none !important;
}

:root.light .gasto-fijo-card > .card-body > .card.mt-3 .text-danger {
    color: #DC2626 !important;
    text-shadow: none !important;
}

:root.light .gasto-fijo-card > .card-body > .card.mt-3 .text-warning {
    color: #D97706 !important;
    text-shadow: none !important;
}

:root.light .gasto-fijo-card > .card-body > .card.mt-3 .text-info {
    color: #7C3AED !important;
    text-shadow: none !important;
}

/* Botones dentro de transaccion-banco-border */
:root.light .transaccion-banco-border .btn-outline-light {
    background: var(--color-light-fondo-header) !important;
    border-color: var(--color-light-bordes) !important;
    color: var(--color-light-texto-secundario) !important;
}

:root.light .transaccion-banco-border .btn-outline-light:hover {
    background: var(--color-light-azul) !important;
    border-color: var(--color-light-azul) !important;
    color: #FFFFFF !important;
}

:root.light .transaccion-banco-border .btn-outline-danger {
    background: transparent !important;
    border-color: var(--color-light-rojo-alerta) !important;
    color: var(--color-light-rojo-alerta) !important;
}

:root.light .transaccion-banco-border .btn-outline-danger:hover {
    background: var(--color-light-rojo-alerta) !important;
    color: #FFFFFF !important;
}

/* --- PAGINACIÓN EN MODO CLARO --- */
:root.light .pagination .page-link {
    background: var(--color-light-fondo-tarjetas);
    border-color: var(--color-light-bordes);
    color: var(--color-light-texto-secundario);
}

:root.light .pagination .page-link:hover {
    background: var(--color-light-verde-bg);
    border-color: var(--color-light-verde-marca);
    color: var(--color-light-verde-marca);
}

:root.light .pagination .page-item.active .page-link {
    background: var(--color-light-verde-marca);
    border-color: var(--color-light-verde-marca);
    color: #FFFFFF;
}

:root.light .pagination .page-item.disabled .page-link {
    background: var(--color-light-fondo-header);
    border-color: var(--color-light-bordes);
    color: var(--color-light-texto-muted);
}

/* --- ECO-ACCOUNT-ITEM EN MODO CLARO --- */
:root.light .eco-account-item {
    background: var(--color-light-fondo-tarjetas);
    border: 1px solid var(--color-light-bordes);
    border-radius: 8px;
    transition: all 0.15s ease;
}

:root.light .eco-account-item:hover {
    background: var(--color-light-fondo-header);
}

/* =================================================================================
   SISTEMA DE COMPONENTES ESTANDARIZADOS
   ================================================================================= */

/* --- COMPONENTE: CARD BASE ESTANDARIZADA --- */
/* APLICANDO ESTILO ESTANDARIZADO */
.eco-card {
    background: linear-gradient(135deg, #4B5563, #374151) !important; /* Gradiente gris estandarizado */
    border-radius: var(--radius-lg) !important;
    border-top: 4px solid #6B7280 !important; /* Borde superior gris estandarizado */
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
    box-shadow: var(--shadow-md) !important;
    transition: all var(--transition-base);
    overflow: hidden;
    position: relative;
}

/* Overlay oscuro estandarizado */
.eco-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    pointer-events: none;
    z-index: 1;
}

.eco-card > * {
    position: relative;
    z-index: 2;
}

.eco-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-xl);
}

.eco-card-header {
    background: transparent !important; /* Fondo transparente para ver el gradiente */
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: var(--texto-principal);
    font-weight: 600;
    position: relative;
}

/* Sombras de texto en el header para contraste */
.eco-card-header h6,
.eco-card-header h5,
.eco-card-header h4 {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.eco-card-header i {
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
}

.eco-card-body {
    padding: var(--spacing-lg);
    color: var(--texto-principal);
    position: relative;
}

.eco-card-footer {
    background: rgba(255, 255, 255, 0.05);
    padding: var(--spacing-md) var(--spacing-lg);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--texto-secundario);
    position: relative;
}

/* --- CARD CON BORDE DE COLOR --- */
.eco-card-accent {
    border-left: 4px solid var(--color-success);
}

.eco-card-accent-yellow {
    border-left: 4px solid var(--color-logo-balance);
}

.eco-card-accent-green {
    border-left: 4px solid var(--color-success);
}

.eco-card-accent-red {
    border-left: 4px solid var(--color-danger);
}

.eco-card-accent-blue {
    border-left: 4px solid var(--color-info);
}

/* --- CARD MÉTRICA (Dashboard Summary) --- */
.eco-metric-card {
    background: var(--fondo-tarjetas-default);
    border-radius: var(--radius-lg);
    padding: var(--spacing-xl);
    text-align: center;
    transition: all var(--transition-base);
    position: relative;
    overflow: hidden;
    box-shadow: var(--shadow-md);
}

.eco-metric-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-xl);
}

.eco-metric-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    pointer-events: none;
    z-index: 1;
}

.eco-metric-card > * {
    position: relative;
    z-index: 2;
}

.eco-metric-card i {
    margin-bottom: var(--spacing-sm);
}

.eco-metric-card h4 {
    font-weight: 700;
    margin-bottom: var(--spacing-xs);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.eco-metric-card p {
    margin-bottom: 0;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
}

.eco-metric-card small {
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
}

/* Variantes de métricas con gradientes */
.eco-metric-success {
    border-top: 4px solid var(--color-success);
    background: linear-gradient(135deg, var(--color-success), var(--color-success-hover)) !important;
}

.eco-metric-danger {
    border-top: 4px solid var(--color-danger);
    background: linear-gradient(135deg, var(--color-danger), var(--color-danger-hover)) !important;
}

.eco-metric-info {
    border-top: 4px solid var(--color-info);
    background: linear-gradient(135deg, var(--color-info), var(--color-info-hover)) !important;
}

.eco-metric-warning {
    border-top: 4px solid var(--color-warning);
    background: linear-gradient(135deg, var(--color-warning), var(--color-warning-hover)) !important;
}

.eco-metric-prestamo {
    border-top: 4px solid var(--color-purple-600);
    background: linear-gradient(135deg, var(--color-purple-600), var(--color-purple-700)) !important;
}

.eco-metric-purple {
    border-top: 4px solid var(--color-purple-600);
    background: linear-gradient(135deg, var(--color-purple-600), var(--color-purple-700)) !important;
}

/* --- CARD BANCO (Balances by Bank) --- */
/*
 * ESTILO ESTANDARIZADO PARA TARJETAS (2025-10-10)
 * Este es el estilo base que queremos aplicar a TODAS las tarjetas de la web:
 * - Gradiente gris diagonal (gray-600 → gray-700)
 * - Borde superior de 4px (gray-500)
 * - Overlay oscuro semi-transparente (rgba(0, 0, 0, 0.4))
 * - Sombras de texto para contraste
 * - Sin bordes laterales
 */
.eco-bank-card {
    background: linear-gradient(135deg, #4B5563, #374151) !important; /* Gradiente gris diagonal */
    border-radius: var(--radius-lg);
    border-top: 4px solid #6B7280; /* Borde superior gris */
    box-shadow: var(--shadow-md);
    transition: all var(--transition-base);
    position: relative;
    overflow: hidden;
}

/* Overlay oscuro semi-transparente sobre el gradiente */
.eco-bank-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    pointer-events: none;
    z-index: 1;
}

.eco-bank-card > * {
    position: relative;
    z-index: 2;
}

.eco-bank-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-xl);
}

/* Header con fondo transparente para mostrar el gradiente */
.eco-bank-card .eco-card-header {
    background: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    position: relative;
}

/* Sombras de texto en el header para contraste */
.eco-bank-card .eco-card-header h5 {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.eco-bank-card .eco-card-header h5 span {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.eco-bank-card .eco-card-header .badge {
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
}

.eco-bank-card .eco-card-body {
    padding: var(--spacing-lg);
    position: relative;
}

/* Nombre de cuenta en blanco con sombra para contraste */
.eco-bank-card .eco-account-item > div:first-child > span:first-child,
.eco-bank-card .eco-account-item > div:first-child > span:first-child i {
    color: #FFFFFF !important;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
}

/* --- ITEM DE CUENTA (Account Item) --- */
.eco-account-item {
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-sm);
    /* TEMPORAL: Borde amarillo izquierdo eliminado */
    /* border-left: 3px solid var(--color-logo-balance); */
    transition: all var(--transition-fast);
}

.eco-account-item:hover {
    background: rgba(255, 255, 255, 0.15);
    transform: translateX(4px);
}

.eco-account-item:last-child {
    margin-bottom: 0;
}

/* --- TABLA ESTANDARIZADA --- */
.eco-table {
    width: 100%;
    margin-bottom: 0;
    color: var(--texto-principal);
    border-collapse: collapse;
}

.eco-table thead {
    background: var(--fondo-header-default);
}

.eco-table thead th {
    padding: var(--spacing-md) var(--spacing-md);
    font-weight: 600;
    text-align: left;
    border-bottom: 2px solid rgba(255, 255, 255, 0.2);
    color: var(--texto-principal);
}

.eco-table tbody tr {
    transition: all var(--transition-fast);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.eco-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.05);
}

.eco-table tbody td {
    padding: var(--spacing-md) var(--spacing-md);
    color: var(--texto-principal);
}

/* --- SECCIÓN TITLE --- */
.eco-section-title {
    color: var(--color-logo-balance);
    border-bottom: 2px solid var(--color-logo-icono);
    padding-bottom: var(--spacing-sm);
    margin-bottom: var(--spacing-lg);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

/* --- DASHBOARD HEADER --- */
.eco-dashboard-header {
    background: var(--fondo-tarjetas-default);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-lg);
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
    transition: all var(--transition-base);
}

.eco-dashboard-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.2) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(239, 184, 16, 0.2) 100%);
    z-index: 1;
}

.eco-dashboard-header > * {
    position: relative;
    z-index: 2;
}

.eco-dashboard-header:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.4);
}

/* --- TARJETAS ESPECÍFICAS CON EFECTO 3D --- */
/*
 * =================================================================================
 * ESTILO ESTANDARIZADO PARA TARJETAS EXTERNAS (Aplicado a todas las cards)
 * =================================================================================
 * Este es el estilo base que debe aplicarse a TODAS las tarjetas externas de la web.
 *
 * CARACTERÍSTICAS:
 * - Gradiente gris diagonal (gray-600 #4B5563 → gray-700 #374151)
 * - Borde superior de 4px en gray-500 (#6B7280)
 * - Overlay oscuro semi-transparente (rgba(0, 0, 0, 0.4))
 * - Sin bordes laterales ni inferior
 * - Sombras de texto para contraste
 * - Efecto hover con elevación
 *
 * APLICADO EN:
 * - .gasto-fijo-card: Tarjetas de análisis de gastos
 * - .eco-card: Tarjetas genéricas del sistema
 * - .eco-bank-card: Tarjetas de bancos
 * - Otras tarjetas específicas de la aplicación
 *
 * FECHA ESTANDARIZACIÓN: 2025-10-10
 * =================================================================================
 */
.gasto-fijo-card,
.card.gasto-fijo-card {
    background: linear-gradient(135deg, #4B5563, #374151) !important; /* Gradiente gris estandarizado */
    border-radius: var(--radius-lg) !important;
    border-top: 4px solid #6B7280 !important; /* Borde superior gris estandarizado */
    border-left: none !important; /* Sin borde izquierdo */
    border-right: none !important;
    border-bottom: none !important;
    box-shadow: var(--shadow-md) !important;
    transition: all var(--transition-base);
    overflow: hidden;
    position: relative;
}

/* Overlay oscuro estandarizado */
.gasto-fijo-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    pointer-events: none;
    z-index: 1;
}

.gasto-fijo-card > * {
    position: relative;
    z-index: 2;
}

.gasto-fijo-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-xl);
}

/* Vencimiento Card - APLICANDO ESTILO ESTANDARIZADO */
.vencimiento-card,
.card.vencimiento-card {
    background: linear-gradient(135deg, #4B5563, #374151) !important; /* Gradiente gris estandarizado */
    border-radius: var(--radius-lg) !important;
    border-top: 4px solid #6B7280 !important; /* Borde superior gris estandarizado */
    border-left: none !important; /* Sin borde izquierdo */
    border-right: none !important;
    border-bottom: none !important;
    box-shadow: var(--shadow-md) !important;
    transition: all var(--transition-base);
    overflow: hidden;
    position: relative;
}

/* Overlay oscuro estandarizado */
.vencimiento-card::before,
.card.vencimiento-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    pointer-events: none;
    z-index: 1;
}

.vencimiento-card > *,
.card.vencimiento-card > * {
    position: relative;
    z-index: 2;
}

.vencimiento-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-xl);
}

/* Banco Card (legacy support) */
.banco-card {
    background: var(--fondo-tarjetas-default);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-left: 4px solid var(--color-logo-balance);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
    transition: all var(--transition-base);
    overflow: hidden;
    position: relative;
}

/* Efecto 3D eliminado para estandarización */
/*
.banco-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(239, 184, 16, 0.2) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(16, 185, 129, 0.15) 100%);
    pointer-events: none;
    z-index: 0;
}

.banco-card > * {
    position: relative;
    z-index: 1;
}
*/

.banco-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.4);
}

/* Card genérica (legacy support) */
.card {
    background: var(--fondo-tarjetas-default);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
    transition: all var(--transition-base);
    overflow: hidden;
    position: relative;
}

/* Efecto 3D eliminado para estandarización */
/*
.card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(239, 184, 16, 0.15) 100%);
    pointer-events: none;
    z-index: 0;
}

.card > * {
    position: relative;
    z-index: 1;
}
*/

.card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.4);
}

/* --- MODO CLARO - COMPONENTES ESTANDARIZADOS --- */
:root.light .eco-card {
    background: var(--fondo-tarjetas-default);
    border-color: var(--color-light-bordes);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

:root.light .eco-card-header {
    background: var(--fondo-header-default);
    border-bottom-color: var(--color-light-bordes);
    color: var(--texto-principal);
}

:root.light .eco-card-body,
:root.light .eco-card-footer {
    color: var(--texto-principal);
}

:root.light .eco-card-footer {
    background: var(--color-light-fondo-principal);
    border-top-color: var(--color-light-bordes);
}

:root.light .eco-bank-card {
    border-color: var(--color-light-bordes);
}

:root.light .eco-account-item {
    background: var(--color-light-fondo-principal);
}

:root.light .eco-account-item:hover {
    background: var(--color-light-fondo-sidebar);
}

:root.light .eco-table thead {
    background: var(--fondo-header-default);
}

:root.light .eco-table thead th {
    border-bottom-color: var(--color-light-bordes);
}

:root.light .eco-table tbody tr {
    border-bottom-color: var(--color-light-separadores);
}

:root.light .eco-table tbody tr:hover {
    background: var(--color-light-fondo-principal);
}

:root.light .eco-dashboard-header {
    background: var(--fondo-tarjetas-default);
    border-color: var(--color-light-bordes);
}

/* =================================================================================
   ESTILOS GENERALES Y SIDEBAR NAVIGATION
   ================================================================================= */

/* Layout principal */
body {
    background: var(--fondo-principal);
    color: var(--texto-principal);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    transition: background 0.3s ease, color 0.3s ease;
}

.main-content {
    margin-left: 280px;
    min-height: 100vh;
    transition: margin-left 0.3s ease;
    padding: 0;
}

/* Sidebar */
.sidebar {
    position: fixed;
    left: 0;
    top: 0;
    width: 280px;
    height: 100vh;
    background: var(--fondo-navegacion);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    flex-direction: column;
    z-index: 1000;
    transition: transform 0.3s ease;
}

/* Logo Section */
.sidebar-logo {
    padding: 0rem 2rem;
    /* border-bottom: 1px solid rgba(255, 255, 255, 0.1); */ /* Linea entre el logo y menu */
    display: flex;
    align-items: center;
    justify-content: center; /* Centrar el logo */
    gap: 12px;
}

.logo-img {
    width: 200px;
    height: 200px;
    border-radius: 8px;
    object-fit: cover;
}

.logo-text {
    font-size: 1.25rem;
    font-weight: bold;
    text-decoration: none;
}

.logo-eco {
    color: var(--color-logo-eco);
}

.logo-balance {
    color: var(--color-logo-balance);
}

/* Navigation */
.sidebar-nav {
    flex: 1;
    padding: 1rem 0;
    overflow-y: auto;
}

.nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-item {
    margin: 0.25rem 0;
}

.nav-link {
    display: flex;
    align-items: center;
    padding: 0.75rem 1.5rem;
    color: var(--texto-secundario);
    text-decoration: none;
    transition: all 0.3s ease;
    border-radius: 0 25px 25px 0;
    margin-right: 1rem;
    position: relative;
}

.nav-link:hover {
    color: var(--color-logo-balance);
    background: rgba(239, 184, 16, 0.1);
    transform: translateX(5px);
}

.nav-link.active {
    color: var(--color-logo-balance);
    background: rgba(239, 184, 16, 0.15);
    border-right: 3px solid var(--color-logo-balance);
}

.nav-link.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--color-logo-icono);
}

.nav-icon {
    width: 20px;
    margin-right: 12px;
    text-align: center;
    font-size: 16px;
}

.nav-text {
    flex: 1;
    font-weight: 500;
}

/* Submenus */
.has-submenu .submenu-arrow {
    margin-left: auto;
    font-size: 12px;
    transition: transform 0.3s ease;
}

.has-submenu.open .submenu-arrow {
    transform: rotate(180deg);
}

.submenu {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: rgba(0, 0, 0, 0.2);
}

.has-submenu.open .submenu {
    max-height: 200px;
}

.submenu-link {
    display: block;
    padding: 0.5rem 1.5rem 0.5rem 3.5rem;
    color: var(--texto-suave);
    text-decoration: none;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

.submenu-link:hover {
    color: var(--color-logo-icono);
    background: rgba(16, 185, 129, 0.1);
}
.submenu-link.active {
    color: var(--color-logo-balance);
    background: rgba(239, 184, 16, 0.15);
    border-left: 3px solid var(--color-logo-balance);
    font-weight: 600;
}

.submenu-link.active:hover {
    color: var(--color-logo-balance);
    background: rgba(239, 184, 16, 0.2);
}


/* User Section */
.sidebar-user {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: 1rem;
}

/* Dropdown menu centrado */
.currency-selector .dropdown-menu {
    left: 50% !important;
    transform: translateX(-50%) !important;
    min-width: 200px;
    text-align: center;
    bottom: 100% !important;
    top: auto !important;
    margin-bottom: 0.5rem;
}

.currency-selector .dropdown-header {
    text-align: center !important;
}

.currency-selector .dropdown-item {
    text-align: center !important;
    justify-content: center;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.currency-selector .dropdown-item img {
    margin-right: 0 !important;
}

/* Currency Selector */
.currency-selector {
    margin-bottom: 1rem;
    display: flex;
    justify-content: center;
}

.currency-selector .dropdown {
    width: 90%;
}

.currency-btn {
    width: 100%;
    background: rgba(239, 184, 16, 0.1);
    border: 1px solid rgba(239, 184, 16, 0.3);
    border-radius: 10px;
    padding: 0.6rem 0.75rem;
    color: var(--color-logo-balance);
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    transition: all 0.3s ease;
    font-weight: 500;
}

.currency-btn span {
    flex: 1;
    text-align: center;
}

.currency-btn i:first-child {
    flex-shrink: 0;
}

.currency-btn i:last-child {
    flex-shrink: 0;
}

.currency-btn:hover {
    background: rgba(239, 184, 16, 0.2);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(239, 184, 16, 0.2);
}


/* User Info */
.user-info {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.user-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--color-logo-icono);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 16px;
}

.user-details {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.user-name {
    color: var(--texto-principal);
    font-weight: 500;
    font-size: 0.9rem;
}

.user-menu-btn {
    background: none;
    border: none;
    color: var(--texto-suave);
    cursor: pointer;
    padding: 0.25rem;
    border-radius: 4px;
    transition: color 0.3s ease;
}

.user-menu-btn:hover {
    color: var(--texto-principal);
}

/* Login Section */
.login-section {
    text-align: center;
}

.login-btn {
    width: 100%;
    background: var(--color-logo-icono);
    border: none;
    border-radius: 8px;
    padding: 0.75rem;
    color: white;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-weight: 500;
    transition: background 0.3s ease;
}

.login-btn:hover {
    background: var(--color-green-600);
    color: var(--texto-blanco);
}

/* Mobile Header */
.mobile-header {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: var(--fondo-navegacion);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding: 0 1rem;
    align-items: center;
    z-index: 1001;
}

.sidebar-toggle {
    background: none;
    border: none;
    color: var(--texto-principal);
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0.5rem;
    border-radius: 4px;
    transition: background 0.3s ease;
}

.sidebar-toggle:hover {
    background: rgba(255, 255, 255, 0.1);
}

.mobile-logo {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: 1rem;
}

.mobile-logo-img {
    width: 32px;
    height: 32px;
    border-radius: 6px;
}

.mobile-logo-text {
    font-size: 1.1rem;
    font-weight: bold;
}

/* Responsive Design */
@media (max-width: 768px) {
    .sidebar {
        transform: translateX(-100%);
    }

    .sidebar.open {
        transform: translateX(0);
    }

    .main-content {
        margin-left: 0;
        padding-top: 60px;
    }

    .mobile-header {
        display: flex;
    }

    /* Overlay para móvil */
    .sidebar-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: 999;
        display: none;
    }

    .sidebar-overlay.show {
        display: block;
    }
}

@media (max-width: 480px) {
    .sidebar {
        width: 100%;
    }
}

/* =================================================================================
   TARJETAS GENERALES (CARDS)
   ================================================================================= */

.card {
    background: var(--fondo-tarjetas-default);
    border-radius: 12px;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.card:hover {
    transform: translateY(-2px);
}

/* Línea superior eliminada para estandarización */
/*
.card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
}
*/

.card-header {
    background: var(--fondo-header-default);
    color: var(--texto-principal);
    font-weight: 600;
}

.card-body {
    color: var(--texto-principal);
}

/* =================================================================================
   DASHBOARD
   ================================================================================= */


.metrica-card.metrica-ingresos_dashboard {
    border-top: 4px solid var(--color-success);
    background: linear-gradient(135deg, var(--color-success), var(--color-success-hover)) !important;
}
.metrica-card.metrica-gastos_dashboard {
    border-top: 4px solid var(--color-danger);
    background: linear-gradient(135deg, var(--color-danger), var(--color-danger-hover)) !important;
}
.metrica-card.metrica-balance_dashboard {
    border-top: 4px solid var(--color-info);
    background: linear-gradient(135deg, var(--color-info), var(--color-info-hover)) !important;
}

.metrica-card.metrica-cuotas_dashboard {
    border-top: 4px solid var(--color-purple-600);
    background: linear-gradient(135deg, var(--color-purple-600), var(--color-purple-700)) !important;
}

.metrica-card.metrica-disponible_dashboard {
    border-top: 4px solid var(--color-logo-balance);
    background: linear-gradient(135deg, var(--color-warning), var(--color-warning-hover)) !important;
}

/* =================================================================================
   VER CUENTAS
   ================================================================================= */

/* Tarjeta de Total Cuentas */
.metrica-tcuentas {
    background: var(--fondo-card-tcuentas) !important;
}

.metrica-tcuentas .card-header {
    background: var(--header-card-tcuentas) !important;
    color: var(--texto-card-tcuentas) !important;
}

.metrica-tcuentas .card-body,
.metrica-tcuentas .card-title {
    color: var(--texto-card-tcuentas) !important;
}


/* Tarjeta de Balance Total - Positivo */
.metrica-balance-positivo {
    background: var(--fondo-card-balance-positivo) !important;
}

.metrica-balance-positivo .card-header {
    background: var(--header-card-balance-positivo) !important;
    color: var(--texto-card-balance-positivo) !important;
}

.metrica-balance-positivo .card-body,
.metrica-balance-positivo .card-title {
    color: var(--texto-card-balance-positivo) !important;
}


/* Tarjeta de Balance Total - Negativo */
.metrica-balance-negativo {
    background: var(--fondo-card-balance-negativo) !important;
}

.metrica-balance-negativo .card-header {
    background: var(--header-card-balance-negativo) !important;
    color: var(--texto-card-balance-negativo) !important;
}

.metrica-balance-negativo .card-body,
.metrica-balance-negativo .card-title {
    color: var(--texto-card-balance-negativo) !important;
}


/* =================================================================================
   VER TRANSACCIONES
   ================================================================================= */


/* Tarjeta de Total transacciones */
.metrica-transacciones {
    background: var(--fondo-card-transacciones) !important;
}

.metrica-transacciones .card-header {
    background: var(--header-card-transacciones) !important;
    color: var(--texto-card-transacciones) !important;
}

.metrica-transacciones .card-body,
.metrica-transacciones .card-title {
    color: var(--texto-card-transacciones) !important;
}


/* Tarjeta de Total Ingresos*/
.metrica-ingresos {
    background: var(--fondo-card-ingresos) !important;
}

.metrica-ingresos .card-header {
    background: var(--header-card-ingresos) !important;
    color: var(--texto-card-ingresos) !important;
}

.metrica-ingresos .card-body,
.metrica-ingresos .card-title {
    color: var(--texto-card-ingresos) !important;
}


/* Tarjeta de Total Gastos */
.metrica-gastos {
    background: var(--fondo-card-gastos) !important;
}

.metrica-gastos .card-header {
    background: var(--header-card-gastos) !important;
    color: var(--texto-card-gastos) !important;
}

.metrica-gastos .card-body,
.metrica-gastos .card-title {
    color: var(--texto-card-gastos) !important;
}


/* Tarjeta de Balance Filtrado  - Positivo */
.metrica-balancef-positivo {
    background: var(--fondo-card-balancef-positivo) !important;
}

.metrica-balancef-positivo .card-header {
    background: var(--header-card-balancef-positivo) !important;
    color: var(--texto-card-balancef-positivo) !important;
}

.metrica-balancef-positivo .card-body,
.metrica-balancef-positivo .card-title {
    color: var(--texto-card-balancef-positivo) !important;
}

/* Tarjeta de balance Filtrado - Negativo */
.metrica-balancef-negativo {
    background: var(--fondo-card-balancef-negativo) !important;
}

.metrica-balancef-negativo .card-header {
    background: var(--header-card-balancef-negativo) !important;
    color: var(--texto-card-balancef-negativo) !important;
}

.metrica-balancef-negativo .card-body,
.metrica-balancef-negativo .card-title {
    color: var(--texto-card-balancef-negativo) !important;
}

/* =================================================================================
   Gastos Fijos
   ================================================================================= */

/*
 * =================================================================================
 * ESTILO ESTANDARIZADO PARA TABLAS/LISTAS INTERNAS (basado en historial)
 * =================================================================================
 * Este es el estilo estándar para TODAS las listas/tablas internas de la web.
 *
 * ESTRUCTURA:
 * - NO usar <table>, usar cards individuales (<div class="card mb-2 transaccion-banco-border">)
 * - Cada fila es una card independiente con la clase .transaccion-banco-border
 * - Usar grid de Bootstrap (.row > .col-md-X) para organizar columnas dentro de cada card
 *
 * CARACTERÍSTICAS:
 * - Borde izquierdo de 4px con color dinámico del banco (--color-banco)
 * - Fondo semi-transparente con color del banco (--color-banco-transparente: XX15)
 * - Efecto hover que intensifica el color de fondo (--color-banco-hover: XX25)
 * - Desplazamiento lateral al hacer hover (translateX(2px))
 * - Usa !important para sobrescribir estilos de Bootstrap (nth-child, etc.)
 *
 * VARIABLES CSS REQUERIDAS (inline style):
 * - --color-banco: Color principal del banco (ej: #10B981)
 * - --color-banco-transparente: Color con transparencia 15 (ej: #10B98115)
 * - --color-banco-hover: Color con transparencia 25 para hover (ej: #10B98125)
 *
 * EJEMPLO DE USO:
 * <div class="card mb-2 transaccion-banco-border"
 *      style="--color-banco: #10B981;
 *             --color-banco-transparente: #10B98115;
 *             --color-banco-hover: #10B98125;">
 *     <div class="card-body py-2">
 *         <div class="row align-items-center">
 *             <div class="col-md-4">Contenido...</div>
 *             <div class="col-md-8">Más contenido...</div>
 *         </div>
 *     </div>
 * </div>
 *
 * FECHA ESTANDARIZACIÓN: 2025-10-10
 * =================================================================================
 */

/* ESTILOS PARA TRANSACCIONES CON BORDE DE COLOR DEL BANCO */

/* Base para transacciones con borde del color del banco */
.transaccion-banco-border {
    border-left: 4px solid var(--color-banco) !important;
    background: var(--color-banco-transparente) !important;
    transition: all 0.2s ease;
}

.transaccion-banco-border:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    background: var(--color-banco-hover) !important;
}

/* Sobrescribir estilos de filas impares/pares para cards con .transaccion-banco-border */
.card.transaccion-banco-border {
    border-left: 4px solid var(--color-banco) !important;
    background: var(--color-banco-transparente) !important;
}

.card.transaccion-banco-border:hover {
    background: var(--color-banco-hover) !important;
}

/* Asegurar que el body de la card también tenga el hover correcto */
.card.transaccion-banco-border .card-body {
    background: transparent !important;
}

.card.transaccion-banco-border:hover .card-body {
    background: transparent !important;
}

/* Clase específica para próximos pagos en gastos fijos
.transaction-gasto {
    border-left: 4px solid #EF4444; /* Color por defecto, se sobrescribirá con style inline */


/*
 * =================================================================================
 * ESTILO ESTANDARIZADO PARA FILAS DE TABLA (basado en historial transacciones)
 * =================================================================================
 * Este es el estilo estándar para TODAS las filas de tablas que muestran datos
 * relacionados con cuentas bancarias en la aplicación.
 *
 * CARACTERÍSTICAS:
 * - Borde izquierdo de 4px con color del banco (--color-banco)
 * - Fondo semi-transparente con color del banco (--color-banco-transparente)
 * - Efecto hover que intensifica el color de fondo y desplaza ligeramente la fila
 * - Mantiene colores de texto semánticos (verde/rojo para saldos)
 *
 * APLICADO EN:
 * - Dashboard: Tabla "Análisis de Gastos vs Saldos"
 * - Dashboard: Elementos en "Próximos Vencimientos"
 * - Historial: Filas de transacciones (como .transaccion-banco-border)
 *
 * FECHA ESTANDARIZACIÓN: 2025-10-10
 * =================================================================================
 */
.tabla-dashboard-hover {
    border-left: 4px solid var(--color-banco);
    background: var(--color-banco-transparente);
    transition: all 0.2s ease;
}

.tabla-dashboard-hover:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    background: var(--color-banco-hover) !important;
}

/* Mantener el texto blanco en hover */
.tabla-dashboard-hover:hover td {
    color: var(--texto-blanco) !important;
}

/* Asegurar que los badges mantengan sus colores */
.tabla-dashboard-hover:hover .badge {
    color: inherit !important;
}

/* Asegurar que los textos con clases de color se mantengan */
.tabla-dashboard-hover:hover .saldo-positivo {
    color: var(--color-success) !important;
}

.tabla-dashboard-hover:hover .saldo-negativo {
    color: var(--color-danger) !important;
}

.tabla-dashboard-hover:hover .alerta-suficiente {
    color: var(--color-success) !important;
}

.tabla-dashboard-hover:hover .alerta-insuficiente {
    color: var(--color-danger) !important;
}


/* =================================================================================
   BOTONES
   ================================================================================= */

.btn-primary {
    background: var(--boton-primario);
    border: none;
    color: var(--texto-boton-primario);
    font-weight: 600;
    border-radius: 8px;
    transition: all 0.3s ease;
}

.btn-primary:hover {
    background: var(--boton-primario-hover);
    color: var(--texto-boton-primario);
}

.btn-secondary {
    background: var(--boton-secundario);
    border: none;
    color: var(--texto-boton-secundario);
    border-radius: 8px;
    font-weight: 500;
    transition: all 0.3s ease;
}

.btn-secondary:hover {
    background: var(--boton-secundario-hover);
    color: var(--texto-boton-secundario);
}

.btn-success {
    background: var(--boton-success);
    border: none;
    border-radius: 8px;
    color: var(--texto-boton-success);
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-success:hover {
    background: var(--boton-success-hover);
    color: var(--texto-boton-success);
}

.btn-warning {
    background: var(--boton-warning);
    border: none;
    border-radius: 8px;
    color: var(--texto-boton-warning);
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-warning:hover {
    background: var(--boton-warning-hover);
    color: var(--texto-boton-warning);
}

/* =================================================================================
   TEXTOS DE BALANCES
   ================================================================================= */

.balance-positive {
    color: var(--fondo-card-ingresos);
    font-weight: 600;
}

.balance-negative {
    color: var(--fondo-card-gastos);
    font-weight: 600;
}

/* =================================================================================
   DROPDOWN MENUS
   ================================================================================= */

.dropdown-menu {
    background: var(--fondo-tarjetas-default);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.dropdown-item {
    color: var(--texto-secundario);
    transition: all 0.3s ease;
    padding: 0.5rem 1rem;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: rgba(239, 184, 16, 0.1);
    color: var(--color-logo-balance);
}

.dropdown-header {
    color: var(--color-logo-balance);
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.logout-btn {
    border: none !important;
    background: none !important;
    width: 100% !important;
    text-align: left !important;
    color: var(--texto-secundario) !important;
    transition: all 0.3s ease !important;
}

.logout-btn:hover {
    background: rgba(239, 68, 68, 0.1) !important;
    color: #EF4444 !important;
}

.moneda-flag {
    width: 20px;
    height: 15px;
    object-fit: cover;
    border-radius: 2px;
}

/* =================================================================================
   OTROS ESTILOS
   ================================================================================= */

h1, h2, h3, h4, h5, h6 {
    color: var(--texto-principal);
    font-weight: 600;
}

.text-muted {
    color: var(--texto-suave) !important;
}

.form-control {
    background: var(--fondo-input);
    border: 1px solid var(--borde-input);
    color: var(--texto-input);
    border-radius: 8px;
}

.form-control:focus {
    background: var(--fondo-input);
    border-color: var(--borde-input-focus);
    color: var(--texto-input);
}

.alert {
    background: var(--fondo-alerta);
    border-radius: 12px;
    color: var(--texto-principal);
}

hr {
    border-color: var(--color-separador);
    margin: 2rem 0;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.card {
    animation: fadeInUp 0.6s ease-out;
}

/* =================================================================================
   SISTEMA DE NOTIFICACIONES MEJORADO
   ================================================================================= */

.notifications-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    max-width: 400px;
    width: 100%;
    pointer-events: none;
}

.notification {
    background: var(--fondo-tarjetas-default);
    border-radius: 12px;
    margin-bottom: 10px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
    border-left: 4px solid;
    overflow: hidden;
    position: relative;
    pointer-events: all;
    max-width: 100%;
}

.notification-content {
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #FFFFFF;
}

.notification-icon {
    font-size: 20px;
    flex-shrink: 0;
}

.notification-message {
    flex: 1;
    font-weight: 500;
    line-height: 1.4;
}

.notification-close {
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    padding: 4px;
    border-radius: 4px;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.notification-close:hover {
    color: #FFFFFF;
    background: rgba(255, 255, 255, 0.1);
}

.notification-progress {
    height: 3px;
    background: rgba(255, 255, 255, 0.3);
    position: relative;
    overflow: hidden;
}

.notification-progress::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: rgba(255, 255, 255, 0.8);
    width: 100%;
    animation: notificationProgress 3s linear forwards;
}

/* Colores específicos para cada tipo */
.alert-success {
    border-left-color: var(--color-success);
}

.alert-success .notification-icon {
    color: var(--color-success);
}

.alert-error, .alert-danger {
    border-left-color: var(--color-danger);
}

.alert-error .notification-icon,
.alert-danger .notification-icon {
    color: var(--color-danger);
}

.alert-warning {
    border-left-color: var(--color-warning);
}

.alert-warning .notification-icon {
    color: var(--color-warning);
}

.alert-info {
    border-left-color: var(--color-info);
}

.alert-info .notification-icon {
    color: var(--color-info);
}

/* Animaciones */
.notification-slide-in {
    animation: slideInRight 0.4s ease-out forwards;
}

.notification-slide-out {
    animation: slideOutRight 0.3s ease-in forwards;
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slideOutRight {
    from {
        transform: translateX(0);
        opacity: 1;
    }
    to {
        transform: translateX(100%);
        opacity: 0;
    }
}

@keyframes notificationProgress {
    from {
        width: 100%;
    }
    to {
        width: 0%;
    }
}

/* Responsive */
@media (max-width: 768px) {
    .notifications-container {
        top: 10px;
        right: 10px;
        left: 10px;
        max-width: none;
    }

    .notification-content {
        padding: 12px 16px;
    }

    .notification-message {
        font-size: 14px;
    }
}

/* =================================================================================
   CSS específico del nuevo dashboard
   ================================================================================= */

/* Header del dashboard mejorado */
.dashboard-header {
    background: var(--fondo-tarjetas-default);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    color: white;
    padding: 2rem;
    margin-bottom: 2rem;
    position: relative;
    overflow: hidden;
}

.dashboard-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, rgba(16, 185, 129, 0.1) 0%, rgba(16, 185, 129, 0.05) 50%, rgba(239, 184, 16, 0.05) 100%);
    z-index: 1;
}

.dashboard-header > * {
    position: relative;
    z-index: 2;
}

.dashboard-header h1 {
    color: #FFFFFF;
    font-weight: 700;
    margin-bottom: 0.5rem;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

.dashboard-header p {
    color: #E5E7EB;
    margin-bottom: 0;
    font-size: 1.1rem;
}

.dashboard-header .lead {
    color: #D1D5DB;
    font-size: 1rem;
}

/* Títulos de sección */
.section-title {
    color: var(--color-logo-balance);
    border-bottom: 2px solid var(--color-logo-icono);
    padding-bottom: 0.5rem;
    margin-bottom: 1.5rem;
    font-weight: 600;
}

/* Tarjetas de banco */
.banco-card {
    background: var(--fondo-tarjetas-default);
    border-left: 5px solid var(--color-logo-icono); /* Se sobrescribe con el color del banco */
    box-shadow: 0 4px 6px rgba(0,0,0,0.3);
    transition: transform 0.2s;
    color: #FFFFFF;
}

.banco-card:hover {
    transform: translateY(-2px);
}

.banco-card .card-header {
    background: var(--fondo-header-default);
    color: #FFFFFF;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.banco-card .card-body {
    color: #FFFFFF;
}

/* Items de cuenta dentro de bancos */
.cuenta-item {
    background: rgba(255,255,255,0.1);
    border-radius: 8px;
    padding: 0.75rem;
    border-left: 3px solid var(--color-logo-balance);
    color: #FFFFFF;
}

/* Estados de saldo */
.saldo-positivo {
    color: var(--color-success);
    font-weight: bold;
}
.saldo-negativo {
    color: var(--color-danger);
    font-weight: bold;
}
.saldo-critico {
    color: var(--color-warning);
    font-weight: bold;
}

/* Tarjetas generales con texto blanco */
.card {
    background: var(--fondo-tarjetas-default);
    color: #FFFFFF;
}

.card-header {
    background: var(--fondo-header-default);
    color: #FFFFFF;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.card-body {
    color: #FFFFFF;
}

/* Tarjetas de gastos fijos */
/* COMENTADO: Definición antigua que conflictúa con la estandarización (línea 1708) */
/*
.gasto-fijo-card {
    border-left: 4px solid var(--color-logo-balance);
}
*/

.gasto-fijo-card .table {
    color: #FFFFFF;
}

.gasto-fijo-card .table th {
    color: #FFFFFF;
    border-color: rgba(255,255,255,0.2);
}

.gasto-fijo-card .table td {
    color: #FFFFFF;
    border-color: rgba(255,255,255,0.1);
}

/* SOLUCION PROBLEMA 2: Tabla de análisis mejorada */
.table-danger-custom {
    background-color: rgba(239, 68, 68, 0.3) !important;
}

.table-danger-custom td {
    color: #FFFFFF !important;
    font-weight: 500;
}

/* Alertas de estado - mejoradas para tema oscuro */
.alerta-suficiente {
    background-color: rgba(16, 185, 129, 0.2);
    border: 1px solid rgba(16, 185, 129, 0.4);
    color: var(--color-success);
    font-weight: 600;
}

.alerta-insuficiente {
    background-color: rgba(239, 68, 68, 0.2);
    border: 1px solid rgba(239, 68, 68, 0.4);
    color: var(--color-danger);
    font-weight: 600;
}

/* SOLUCION PROBLEMA 3: Tarjetas de vencimiento mejoradas */
/* COMENTADO: Definición antigua que conflictúa con la estandarización (línea 1777) */
/*
.vencimiento-card {
    border-left: 3px solid var(--color-danger);
}
*/

/* Headers de las tarjetas de vencimiento - ESTANDARIZADOS CON FONDO TRANSPARENTE */
.vencimiento-card .card-header.bg-danger,
.vencimiento-card .card-header.bg-secondary,
.vencimiento-card .card-header {
    background: transparent !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: var(--texto-blanco) !important;
    position: relative;
}

.vencimiento-card .card-header h6,
.vencimiento-card .card-header h5,
.vencimiento-card .card-header h4 {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.vencimiento-proximo,
.vencimiento-vencido {
    background-color: transparent !important;
    border: transparent !important;
    color: var(--texto-blanco) !important;
}

.vencimiento-proximo strong {
    color: var(--color-warning) !important;
}

.vencimiento-vencido strong {
    color: var(--color-warning) !important;
}

/* =================================================================================
 * SCROLL SUAVE PARA NAVEGACIÓN
 * =================================================================================
 */
html {
    scroll-behavior: smooth;
}

/* =================================================================================
 * BOTONES DE NAVEGACIÓN DE VENCIMIENTOS (Alto relieve mejorado)
 * =================================================================================
 */
.vencimiento-card .btn-group .btn {
    position: relative;
    transition: all 0.2s ease;
    font-weight: 600;
    border: 2px solid rgba(255, 255, 255, 0.3) !important;
}

/* Botones no seleccionados (outline) - Alto relieve */
.vencimiento-card .btn-group .btn-outline-light {
    background: rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3),
                inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

.vencimiento-card .btn-group .btn-outline-light:hover {
    background: rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 6px 8px rgba(0, 0, 0, 0.4),
                inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
    transform: translateY(-2px);
}

/* Botones seleccionados (activo) - Alto relieve más pronunciado */
.vencimiento-card .btn-group .btn-light {
    background: rgba(255, 255, 255, 0.95) !important;
    color: #1F2937 !important;
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.5),
                inset 0 2px 0 rgba(255, 255, 255, 1),
                inset 0 -2px 4px rgba(0, 0, 0, 0.1) !important;
    font-weight: 700;
    border: 2px solid rgba(255, 255, 255, 0.5) !important;
}

.vencimiento-card .btn-group .btn-light:hover {
    background: rgba(255, 255, 255, 1) !important;
    box-shadow: 0 8px 12px rgba(0, 0, 0, 0.6),
                inset 0 2px 0 rgba(255, 255, 255, 1),
                inset 0 -2px 4px rgba(0, 0, 0, 0.15) !important;
    transform: translateY(-2px);
}

/* Efecto al hacer clic */
.vencimiento-card .btn-group .btn:active {
    transform: translateY(0) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3),
                inset 0 2px 4px rgba(0, 0, 0, 0.2) !important;
}

/* SOLUCION PROBLEMA 4: Métricas con mejor contraste */
.metrica-card {
    background: var(--fondo-tarjetas-default) !important;
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.3);
    text-align: center;
    padding: 1.5rem;
    color: #FFFFFF !important;
    position: relative;
    overflow: hidden;
}

/* Overlay para mejorar legibilidad en métricas */
.metrica-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    pointer-events: none;
    z-index: 1;
}

.metrica-card > * {
    position: relative;
    z-index: 2;
}

.metrica-card h4 {
    color: #FFFFFF !important;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
    font-weight: 700;
}

.metrica-card p {
    color: #E5E7EB !important;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
}

.metrica-card small {
    color: #D1D5DB !important;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
}

.metrica-card i {
    color: #FFFFFF !important;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
}

/* Tabla responsiva con mejor contraste */
.table-responsive .table {
    color: #FFFFFF;
}

.table-responsive .table th {
    background-color: var(--fondo-header-default);
    color: #FFFFFF;
    border-color: rgba(255,255,255,0.2);
}

.table-responsive .table td {
    border-color: rgba(255,255,255,0.1);
}

/* Badges mejorados */
.badge {
    font-weight: 600;
}

.bg-primary {
    background-color: var(--color-logo-icono) !important;
}

.bg-success {
    background-color: var(--color-success) !important;
}

.bg-warning {
    background-color: var(--color-warning) !important;
    color: var(--texto-negro) !important;
}

.bg-danger {
    background-color: var(--color-danger) !important;
}

/* Texto muted mejorado para tema oscuro */
.text-muted {
    color: #94A3B8 !important;
}

/* Botones mejorados */
.btn-outline-primary {
    border-color: var(--color-logo-icono);
    color: var(--color-logo-icono);
}

.btn-outline-primary:hover {
    background-color: var(--color-logo-icono);
    color: #FFFFFF;
}

/* Links mejorados */
a {
    color: var(--color-logo-balance);
}

a:hover {
    color: var(--color-logo-icono);
}

/* SOLUCION PROBLEMA 5: Gráfico de monedas más pequeño */
#monedasChart {
    max-width: 250px !important;
    max-height: 250px !important;
}

/* Responsive para móviles */
@media (max-width: 768px) {
    .dashboard-header {
        padding: 1rem 0;
    }

    .section-title {
        font-size: 1.25rem;
    }

    .metrica-card {
        padding: 1rem;
    }

    .cuenta-item {
        padding: 0.5rem;
    }

    .table-responsive {
        font-size: 0.875rem;
    }

    #monedasChart {
        max-width: 200px !important;
        max-height: 200px !important;
    }
}

/* Específico para el tema oscuro */
body {
    background: var(--fondo-principal);
    color: #FFFFFF;
}

/* Alertas generales */
.alert {
    color: #FFFFFF;
}

.alert-warning {
    background-color: rgba(245, 158, 11, 0.2);
    border-color: rgba(245, 158, 11, 0.4);
    color: var(--color-warning);
}

.alert-info {
    background-color: rgba(59, 130, 246, 0.2);
    border-color: rgba(59, 130, 246, 0.4);
    color: var(--color-info);
}
    /* Estadísticas del header */
.dashboard-stats .stat-item {
    font-size: 0.95rem;
    color: #D1D5DB;
}

.dashboard-stats i {
    font-size: 1rem;
}

/* Responsive para el header */
@media (max-width: 768px) {
    .dashboard-header {
        padding: 1.5rem;
        text-align: center;
    }

    .dashboard-header h1 {
        font-size: 2rem;
    }

    .dashboard-stats {
        margin-top: 1rem;
        text-align: center;
    }
}


/* =================================================================================
   CSS específico para editar cuenta
   ================================================================================= */

/* Importar estilos del dashboard para la vista previa */
.cuenta-personalizada {
    border: 2px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 12px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    overflow: hidden;
    position: relative;
}

.cuenta-personalizada::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.3) 100%);
    pointer-events: none;
    z-index: 1;
}

.cuenta-personalizada .card-body {
    position: relative;
    z-index: 2;
    min-height: 155px;
    max-height: 175px;
    padding: 12px !important;
}

.btn-view-cuenta {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    color: white !important;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    backdrop-filter: blur(10px);
    text-decoration: none;
    padding: 0;
}

.text-white-75 {
    color: rgba(255, 255, 255, 0.9) !important;
}

.text-white-50 {
    color: rgba(255, 255, 255, 0.7) !important;
}

.text-success-bright {
    color: #00ff88 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

.text-danger-bright {
    color: #ff6b6b !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

.saldos-info {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 6px;
    padding: 10px 8px;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 10px !important;
}

.saldo-original, .saldo-convertido {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2px;
}

.saldo-convertido {
    margin-bottom: 0;
}

.cuenta-personalizada .card-title {
    font-size: 1rem;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
    line-height: 1.2;
    max-width: calc(100% - 60px);
}

.cuenta-personalizada .badge {
    font-size: 0.7rem;
    padding: 4px 8px;
    border-radius: 6px;
    text-shadow: none;
    font-weight: 600;
}

.cuenta-personalizada small {
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.cuenta-personalizada i {
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}


/* =================================================================================
   VER CUENTAS
   ================================================================================= */

/* Tarjetas de cuenta mejoradas */
/* =================================================================================
 * ESTILO ESTANDARIZADO APLICADO A TARJETAS DE CUENTAS
 * =================================================================================
 */
.cuenta-card,
.card.cuenta-card {
    /* Gradiente gris estandarizado */
    background: linear-gradient(135deg, #4B5563, #374151) !important;
    border-radius: var(--radius-lg) !important;
    /* Borde superior gris */
    border-top: 4px solid #6B7280 !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
    box-shadow: var(--shadow-md) !important;
    transition: all var(--transition-base);
    overflow: hidden;
    position: relative;
}

/* Overlay oscuro estandarizado */
.cuenta-card::before,
.card.cuenta-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    pointer-events: none;
    z-index: 1;
}

/* Efecto hover */
.cuenta-card:hover,
.card.cuenta-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5) !important;
}

/* Headers y contenido sobre el overlay */
.cuenta-card .card-header,
.card.cuenta-card .card-header {
    background: transparent !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: #FFFFFF !important;
    position: relative;
    z-index: 2;
}

.cuenta-card .card-header h5,
.card.cuenta-card .card-header h5 {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.cuenta-card .card-body,
.card.cuenta-card .card-body {
    color: #FFFFFF !important;
    position: relative;
    z-index: 2;
}

.cuenta-card .card-footer,
.card.cuenta-card .card-footer {
    background: rgba(0, 0, 0, 0.3) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    position: relative;
    z-index: 2;
}

/* Información de saldo mejorada */
.saldo-info {
    margin-top: 0.5rem;
}

.saldo-principal {
    font-size: 1.2rem;
    font-weight: 700;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.saldo-convertido {
    margin-top: 0.25rem;
}

.saldo-positivo {
    color: var(--color-logo-icono) !important;
}

.saldo-negativo {
    color: #EF4444 !important;
}

/* Descripción estilizada */
.descripcion-texto {
    font-style: italic;
    font-size: 0.9rem;
    line-height: 1.4;
}

/* Títulos de sección */
.section-title {
    color: var(--color-logo-balance);
    border-bottom: 2px solid var(--color-logo-icono);
    padding-bottom: 0.5rem;
    margin-bottom: 1.5rem;
    font-weight: 600;
}

/* Botones de acción mejorados */
.botones-accion {
    display: flex;
    gap: 0.5rem;
    padding: 0.5rem;
}

.boton-accion {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.75rem 0.5rem;
    text-decoration: none;
    border-radius: 8px;
    transition: all 0.3s ease;
    font-size: 0.85rem;
    font-weight: 500;
    border: 2px solid transparent;
    background: rgba(255, 255, 255, 0.1);
    color: #FFFFFF;
}

.boton-accion:hover {
    transform: translateY(-2px);
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.boton-accion i {
    font-size: 1.2rem;
    margin-bottom: 0.25rem;
}

.boton-accion span {
    font-size: 0.8rem;
    line-height: 1.2;
    text-align: center;
}

/* Botón Ver */
.boton-ver {
    background: linear-gradient(135deg, var(--color-info), var(--color-info-hover));
    border-color: var(--color-info);
}

.boton-ver:hover {
    background: linear-gradient(135deg, var(--color-info-hover), var(--color-info-dark));
    color: var(--texto-blanco);
    border-color: var(--color-info-hover);
}

/* Botón Editar */
.boton-editar {
    background: linear-gradient(135deg, var(--color-warning), var(--color-warning-hover));
    border-color: var(--color-warning);
}

.boton-editar:hover {
    background: linear-gradient(135deg, var(--color-warning-hover), var(--color-warning-dark));
    color: var(--texto-blanco);
    border-color: var(--color-warning-hover);
}

/* Botón Transacción */
.boton-transaccion {
    background: linear-gradient(135deg, var(--color-success), var(--color-success-hover));
    border-color: var(--color-success);
}

.boton-transaccion:hover {
    background: linear-gradient(135deg, var(--color-success-hover), var(--color-success-dark));
    color: var(--texto-blanco);
    border-color: var(--color-success-hover);
}

/* Responsive para botones */
@media (max-width: 576px) {
    .botones-accion {
        flex-direction: column;
        gap: 0.25rem;
    }

    .boton-accion {
        flex-direction: row;
        justify-content: center;
        padding: 0.5rem;
    }

    .boton-accion i {
        margin-bottom: 0;
        margin-right: 0.5rem;
        font-size: 1rem;
    }

    .boton-accion span {
        font-size: 0.9rem;
    }
}

/* Badges mejorados */
.badge {
    font-size: 0.8rem;
    padding: 0.4rem 0.8rem;
}


/* =================================================================================
   Detalle Prestamos
   ================================================================================= */

/* Personalización del scroll de la tabla de amortización */
.tabla-amortizacion-scroll {
    max-height: 400px;
    overflow-y: auto;
    overflow-x: hidden;  /* ← ESTA LÍNEA quita el scroll horizontal */
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 8px;
    background: rgba(0,0,0,0.3);
    backdrop-filter: blur(10px);

    /* Scroll personalizado para navegadores webkit */
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.3) rgba(255,255,255,0.1);
}

.tabla-amortizacion-scroll::-webkit-scrollbar {
    width: 8px;
}

.tabla-amortizacion-scroll::-webkit-scrollbar-track {
    background: rgba(255,255,255,0.1);
    border-radius: 4px;
}

.tabla-amortizacion-scroll::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.3);
    border-radius: 4px;
    transition: background 0.3s ease;
}

.tabla-amortizacion-scroll::-webkit-scrollbar-thumb:hover {
    background: rgba(255,255,255,0.5);
}

/* Header fijo con sombra */
.tabla-amortizacion-scroll thead th {
    position: sticky;
    top: 0;
    z-index: 10;
    background: var(--fondo-header-default) !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
    /* SIN borde verde */
}

/* Efecto hover en las filas */
.tabla-amortizacion-scroll tbody tr:hover {
    background-color: rgba(255,255,255,0.08) !important;
    transform: translateX(2px);
    transition: all 0.4s ease;
}

/* Animación suave al hacer scroll */
.tabla-amortizacion-scroll {
    scroll-behavior: smooth;
}

/* Responsive: en móviles hacer el scroll más alto */
@media (max-width: 768px) {
    .tabla-amortizacion-scroll {
        max-height: 300px;
        font-size: 0.85rem;
    }

    .tabla-amortizacion-scroll::-webkit-scrollbar {
        width: 6px;
    }
}


/* =================================================================================
   Estilos específicos para mejorar la alineación del formulario de login
   ================================================================================= */
.form-label {
    font-weight: 500;
    color: var(--texto-secundario);
}

.form-label i {
    margin-right: 5px;
    width: 16px;
    text-align: center;
}

/* Asegurar que los inputs tengan el mismo estilo */
#id_username, #id_password {
    width: 100%;
    padding: 8px 12px;
    border-radius: 6px;
    border: 1px solid var(--borde-input);
    background: var(--fondo-input);
    color: var(--texto-input);
    font-size: 14px;
}

#id_username:focus, #id_password:focus {
    outline: none;
    border-color: var(--borde-input-focus);
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25);
}

/* Ajustar los botones con tamaños diferenciados */
.btn {
    font-weight: 500;
    border-radius: 6px;
}

/* Botón de iniciar sesión - un poco más grande */
.btn:not(.btn-sm) {
    padding: 8px 20px;
    font-size: 15px;
}

/* Botón de crear cuenta - más pequeño */
.btn-sm {
    padding: 5px 12px;
    font-size: 13px;
    font-weight: 400;
}

/* Espaciado entre secciones */
.mt-4 {
    margin-top: 2rem !important;
}

/* Texto de pregunta en color dorado */
.text-question {
    color: var(--color-logo-balance) !important;
    font-weight: 500;
}

/* Mejorar la apariencia de los mensajes de error */
.alert-danger {
    font-size: 13px;
    padding: 8px 12px;
    margin-bottom: 15px;
}

/* Espaciado consistente */
.card-body {
    padding: 1.5rem;
}

/* =================================================================================
   Register
   ================================================================================= */
.form-label {
    font-weight: 500;
    color: var(--texto-secundario);
}

.form-label i {
    margin-right: 5px;
    width: 16px;
    text-align: center;
}

/* Asegurar que los inputs tengan el mismo estilo */
#id_username, #id_password1, #id_password2 {
    width: 100%;
    padding: 8px 12px;
    border-radius: 6px;
    border: 1px solid var(--borde-input);
    background: var(--fondo-input);
    color: var(--texto-input);
    font-size: 14px;
}

#id_username:focus, #id_password1:focus, #id_password2:focus {
    outline: none;
    border-color: var(--borde-input-focus);
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25);
}

/* Ajustar los botones con tamaños diferenciados */
.btn {
    font-weight: 500;
    border-radius: 6px;
}

/* Botón principal - un poco más grande */
.btn:not(.btn-sm) {
    padding: 8px 20px;
    font-size: 15px;
}

/* Botón secundario - más pequeño */
.btn-sm {
    padding: 5px 12px;
    font-size: 13px;
    font-weight: 400;
}

/* Mejorar la apariencia de los mensajes de error */
.alert-danger {
    font-size: 13px;
    padding: 8px 12px;
    margin-bottom: 15px;
}

/* Espaciado consistente */
.card-body {
    padding: 1.5rem;
}

/* Espaciado entre secciones */
.mt-4 {
    margin-top: 2rem !important;
}

/* Texto de pregunta en color dorado */
.text-question {
    color: var(--color-logo-balance) !important;
    font-weight: 500;
}

/* Texto de ayuda mejorado - más grande y alineado a la izquierda */
.form-help-text {
    font-size: 12px;
    color: var(--texto-suave);
    margin-top: 5px;
    line-height: 1.4;
    text-align: left;
    font-weight: 400;
    background: rgba(148, 163, 184, 0.1);
    padding: 4px 8px;
    border-radius: 4px;
    border-left: 3px solid var(--color-logo-balance);

    ul {
    padding-left: 16px;
    margin-bottom: 0;
    }

    li {
    text-align: left;
    list-style: disc;
    }
}

/* =============================================
   ESTILOS PARA IMPORTACIÓN DE ARCHIVOS BANCARIOS
   ============================================= */

/* Área de upload de archivos */
.upload-area {
    border: 2px dashed var(--primary-color);
    border-radius: 10px;
    padding: 2rem;
    text-align: center;
    background: var(--card-bg);
    transition: all 0.3s ease;
    cursor: pointer;
}

.upload-area:hover {
    border-color: var(--secondary-color);
    background: var(--hover-bg);
}

.upload-area.dragover {
    border-color: var(--accent-color);
    background: var(--success-light);
}

/* Información del archivo seleccionado */
.file-info {
    margin-top: 1rem;
    padding: 1rem;
    background: var(--info-light);
    border-radius: 5px;
    display: none;
}

/* Grid de bancos soportados */
.bancos-soportados {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

/* ============================================================================= 
   ESTILOS PARA BANCOS SOPORTADOS - NUEVA TRANSACCIÓN
   ============================================================================= */

/* Grid de bancos automáticos (izquierda) */
.bancos-automaticos {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Grid de bancos manuales (derecha) */
.bancos-manuales {
    display: flex;
    justify-content: center;
}

/* Tarjetas de banco soportado - Base */
.banco-soportado-card {
    padding: 0.75rem;                    /* Reducido para tarjetas más pequeñas */
    border-radius: 8px;
    text-align: center;
    transition: all 0.3s ease;
    border: 2px solid;
    min-height: 80px;                    /* Altura mínima reducida */
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-size: 0.9rem;                   /* Texto más pequeño */
}

/*
.banco-soportado-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
*/

/* Tarjeta CaixaBank - Fondo azul */
.banco-soportado-card.caixabank {
    background: linear-gradient(135deg, #0066CC, #004499);
    border-color: #0066CC;
    color: #FFFFFF;
}

/*
.banco-soportado-card.caixabank:hover {
    background: linear-gradient(135deg, #004499, #003366);
    box-shadow: 0 4px 12px rgba(0, 102, 204, 0.3);
}
*/

/* Tarjeta Caja Rural - Fondo verde */
.banco-soportado-card.cajarural {
    background: linear-gradient(135deg, #228B22, #006400);
    border-color: #228B22;
    color: #FFFFFF;
}

/*
.banco-soportado-card.cajarural:hover {
    background: linear-gradient(135deg, #006400, #004500);
    box-shadow: 0 4px 12px rgba(34, 139, 34, 0.3);
}
*/

/* Tarjeta Otros - Fondo gris */
.banco-soportado-card.otros {
    background: linear-gradient(135deg, #6B7280, #4B5563);
    border-color: #6B7280;
    color: #FFFFFF;
}

/*
.banco-soportado-card.otros:hover {
    background: linear-gradient(135deg, #4B5563, #374151);
    box-shadow: 0 4px 12px rgba(107, 114, 128, 0.3);
}
*/

/* Texto en las tarjetas */
.banco-soportado-card small {
    line-height: 1.3;
}

.banco-soportado-card strong {
    font-size: 1rem;
    display: block;
    margin-bottom: 0.25rem;
}

/* Responsive - En móviles */
@media (max-width: 767px) {
    .bancos-automaticos {
        flex-direction: row;
        gap: 0.5rem;
    }
    
    .bancos-automaticos .banco-soportado-card {
        flex: 1;
        min-height: 70px;
        font-size: 0.8rem;
    }
    
    .bancos-manuales {
        margin-top: 0.75rem;
    }
    
    .banco-soportado-card.otros {
        width: 100%;
        min-height: 70px;
    }
}

/* Tabla de transacciones para confirmación */
.transacciones-preview {
    max-height: 500px;
    overflow-y: auto;
}

.transaccion-row {
    transition: background-color 0.3s ease;
}

.transaccion-row:hover {
    background-color: var(--hover-bg);
}

.transaccion-row.selected {
    background-color: var(--primary-light);
}

/* Campos editables en la tabla */
.editable-field {
    border: 1px solid transparent;
    background: transparent;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    width: 100%;
}

.editable-field:focus {
    border-color: var(--primary-color);
    background: white;
    outline: none;
}

/* Indicadores de tipo de transacción */
.tipo-gasto {
    color: var(--danger-color);
}

.tipo-ingreso {
    color: var(--success-color);
}

/* Mapeo manual de columnas */
.mapeo-container {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.mapeo-field {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}

.mapeo-field label {
    min-width: 120px;
    font-weight: 600;
    margin-right: 1rem;
}

.mapeo-field select {
    flex: 1;
    max-width: 200px;
}

/* Vista previa de datos */
.datos-preview {
    background: var(--light-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1rem;
    max-height: 300px;
    overflow: auto;
}

.datos-preview table {
    font-size: 0.875rem;
}

/* Estadísticas de importación */
.stats-importacion {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.stat-card {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1rem;
    text-align: center;
}

.stat-card .number {
    font-size: 2rem;
    font-weight: bold;
    color: var(--primary-color);
}

.stat-card .label {
    color: var(--text-muted);
    font-size: 0.875rem;
}

/* Alertas específicas para importación */
.alert-importacion {
    border-left: 4px solid var(--info-color);
    background: var(--info-light);
    padding: 1rem;
    margin-bottom: 1rem;
    border-radius: 4px;
}

.alert-importacion.warning {
    border-left-color: var(--warning-color);
    background: var(--warning-light);
}

.alert-importacion.error {
    border-left-color: var(--danger-color);
    background: var(--danger-light);
}

.alert-importacion.success {
    border-left-color: var(--success-color);
    background: var(--success-light);
}

/* Botones de acción para importación */
.btn-importar {
    background: var(--success-color);
    border-color: var(--success-color);
    color: white;
}

.btn-importar:hover {
    background: var(--success-dark);
    border-color: var(--success-dark);
    color: white;
}

.btn-cancelar-importacion {
    background: var(--danger-color);
    border-color: var(--danger-color);
    color: white;
}

.btn-cancelar-importacion:hover {
    background: var(--danger-dark);
    border-color: var(--danger-dark);
    color: white;
}

/* Loading spinner para procesamiento */
.processing-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    display: none;
}

.processing-content {
    background: white;
    padding: 2rem;
    border-radius: 8px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}

.spinner {
    border: 4px solid var(--light-color);
    border-top: 4px solid var(--primary-color);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
    margin: 0 auto 1rem;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .bancos-soportados {
        grid-template-columns: 1fr;
    }

    .stats-importacion {
        grid-template-columns: repeat(2, 1fr);
    }

    .mapeo-field {
        flex-direction: column;
        align-items: flex-start;
    }

    .mapeo-field label {
        min-width: auto;
        margin-bottom: 0.5rem;
    }

    .mapeo-field select {
        max-width: 100%;
    }
}

/* Extender la tabla de transacciones a importar */
.transacciones-container {
    min-height: 50vh; /* Ajusta este valor: 60vh = 60% de la altura de la ventana */
    max-height: 62vh; /* Altura máxima antes de scroll */
}

.transacciones-confirmar {
    height: 100%;
    overflow-y: auto;
}

.transacciones-confirmar table {
    height: 100%;
}

.transacciones-confirmar .table tbody {
    height: 100%;
    overflow-y: auto;
}

/* Hacer que la card ocupe más espacio */
.card-transacciones-confirmar {
    min-height: 68vh; /* Ajusta este valor para hacer la card más alta */
}

/* Ajustar el contenedor de la tabla */
.card-body-transacciones-confirmar {
    height: calc(68vh - 80px); /* Resta el espacio del header de la card */
    overflow: hidden;
}

/* Fijar altura de las filas para que no se estiren - con máxima especificidad */
.transacciones-preview.transacciones-confirmar .table tbody tr {
    height: 48px !important;
    max-height: 48px !important;
    min-height: 48px !important;
}

.transacciones-preview.transacciones-confirmar .table tbody td {
    vertical-align: middle !important;
    padding: 0.375rem 0.75rem !important;
    height: 48px !important;
    max-height: 48px !important;
    min-height: 48px !important;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Evitar que el contenedor de la tabla se estire */
.transacciones-container {
    min-height: auto !important; /* Remover altura mínima */
    height: auto !important; /* Altura automática basada en contenido */
    max-height: 62vh; /* Mantener altura máxima para scroll */
}

.card-transacciones-confirmar {
    min-height: auto !important; /* Remover altura mínima fija */
    height: auto !important; /* Altura automática */
}

.card-body-transacciones-confirmar {
    height: auto !important; /* Altura automática */
    max-height: 62vh; /* Altura máxima antes de scroll */
}

/* Campos editables con altura fija */
.transacciones-preview.transacciones-confirmar .table tbody td .editable-field,
.transacciones-preview.transacciones-confirmar .table tbody td select,
.transacciones-preview.transacciones-confirmar .table tbody td input[type="text"],
.transacciones-preview.transacciones-confirmar .table tbody td input[type="number"],
.transacciones-preview.transacciones-confirmar .table tbody td input[type="date"] {
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    font-size: 0.875rem;
    padding: 0.25rem 0.5rem;
    margin: 0;
}

/* Header de la tabla */
.transacciones-preview.transacciones-confirmar .table thead th {
    height: 50px !important;
    max-height: 50px !important;
    min-height: 50px !important;
    vertical-align: middle !important;
    padding: 0.75rem !important;
}

/* Checkbox sin restricción de altura */
.transacciones-preview.transacciones-confirmar .table tbody td input[type="checkbox"] {
    height: auto !important;
    min-height: auto !important;
    max-height: auto !important;
    width: 18px;
    margin: 0;
}

/* Botones de acción con altura fija */
.transacciones-preview.transacciones-confirmar .table tbody td .btn {
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.875rem;
}

