:root {
    /* === MODO CLARO === */
    --text-color: #0f172a;
    --text-secondary: #64748b;
    --stats-bg: rgba(0, 0, 0, 0.05);
    --modal-bg: rgba(255, 255, 255, 0.95);
    --day-hover-bg: rgba(0, 122, 255, 0.1);
    --today-arrow: #0ea5e9;
    
    /* Colores del fondo en movimiento (Claro) */
    --grad-1: #e0f2fe;
    --grad-2: #bae6fd;
    --grad-3: #f8fafc;
    --grad-4: #cbd5e1;

    /* Colores de entrenamiento */
    --upper-color: #34c759;
    --push-color: #ff9500;
    --pull-color: #af52de;
    --lower-color: #ff3b30;
}

.dark-mode {
    /* === MODO OSCURO === */
    --text-color: #ffffff;
    --text-secondary: #94a3b8;
    --stats-bg: rgba(255, 255, 255, 0.1);
    --modal-bg: rgba(15, 23, 42, 0.95);
    --day-hover-bg: rgba(255, 255, 255, 0.15);
    --today-arrow: #38bdf8;
    
    /* Colores del fondo en movimiento (Oscuro) */
    --grad-1: #0f172a;
    --grad-2: #1e3a8a;
    --grad-3: #020617;
    --grad-4: #0f172a;
}

* { box-sizing: border-box; margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; -webkit-tap-highlight-color: transparent;}

/* === FONDO ANIMADO FLUIDO === */
body {
    display: flex; 
    justify-content: center; 
    align-items: center; 
    min-height: 100vh;
    overflow: hidden; 
    color: var(--text-color);
    background: linear-gradient(135deg, var(--grad-1), var(--grad-2), var(--grad-3), var(--grad-4), var(--grad-1));
    background-size: 400% 400%;
    animation: flowGradient 12s ease infinite;
    transition: color 0.3s ease;
}

@keyframes flowGradient {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}