.preview-modern {
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
}

.preview-retro {
    background: linear-gradient(135deg, #d4a373, #fefae0);
}

.preview-cyber {
    background: linear-gradient(135deg, #00fff5, #7b2ff7);
}

.preview-forest {
    background: linear-gradient(135deg, #22c55e, #14532d);
}

.preview-ocean {
    background: linear-gradient(135deg, #0ea5e9, #0c4a6e);
}

.preview-sunset {
    background: linear-gradient(135deg, #fb923c, #ef4444);
}

.preview-galaxy {
    background: linear-gradient(135deg, #8b5cf6, #1e1b4b);
}

.preview-neon {
    background: linear-gradient(135deg, #22d3ee, #a855f7);
}

body.theme-modern {
    --primary-color: #6366f1;
    --secondary-color: #8b5cf6;
    --bg-color: #0f0f23;
    --card-bg: rgba(255, 255, 255, 0.05);
    --text-color: #ffffff;
    --text-secondary: rgba(255, 255, 255, 0.7);
    --border-color: rgba(255, 255, 255, 0.1);
    --hover-color: rgba(99, 102, 241, 0.3);
}

body.theme-modern .theme-bg {
    background: linear-gradient(135deg, #0f0f23 0%, #1a1a3e 50%, #0f0f23 100%);
}

body.theme-modern .theme-effects::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle at 30% 20%, rgba(99, 102, 241, 0.1) 0%, transparent 50%);
    animation: pulse 8s ease-in-out infinite;
}

body.theme-modern .theme-effects::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 70%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(139, 92, 246, 0.15) 0%, transparent 70%);
    animation: float 6s ease-in-out infinite;
}

body.theme-retro {
    --primary-color: #d4a373;
    --secondary-color: #ccd5ae;
    --bg-color: #2d2416;
    --card-bg: rgba(212, 163, 115, 0.1);
    --text-color: #fefae0;
    --text-secondary: rgba(254, 250, 224, 0.7);
    --border-color: rgba(212, 163, 115, 0.3);
    --hover-color: rgba(212, 163, 115, 0.3);
}

body.theme-retro .theme-bg {
    background: linear-gradient(135deg, #2d2416 0%, #3d3020 50%, #2d2416 100%);
}

body.theme-retro .theme-effects::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23d4a373' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    animation: none;
}

body.theme-retro .theme-effects::after {
    content: '';
    position: absolute;
    top: 20%;
    right: 10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(212, 163, 115, 0.1) 0%, transparent 70%);
    filter: blur(40px);
}

body.theme-cyber {
    --primary-color: #00fff5;
    --secondary-color: #7b2ff7;
    --bg-color: #0a0a0f;
    --card-bg: rgba(0, 255, 245, 0.05);
    --text-color: #ffffff;
    --text-secondary: rgba(255, 255, 255, 0.7);
    --border-color: rgba(0, 255, 245, 0.2);
    --hover-color: rgba(0, 255, 245, 0.2);
}

body.theme-cyber .theme-bg {
    background: linear-gradient(135deg, #0a0a0f 0%, #1a0a2e 50%, #0a0a0f 100%);
}

body.theme-cyber .theme-effects::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 2px,
        rgba(0, 255, 245, 0.03) 2px,
        rgba(0, 255, 245, 0.03) 4px
    );
    animation: scan 4s linear infinite;
}

body.theme-cyber .theme-effects::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 600px;
    height: 600px;
    background: conic-gradient(from 0deg, transparent, rgba(0, 255, 245, 0.1), transparent 60deg);
    animation: rotate 20s linear infinite;
}

body.theme-forest {
    --primary-color: #22c55e;
    --secondary-color: #4ade80;
    --bg-color: #0a1f0a;
    --card-bg: rgba(34, 197, 94, 0.08);
    --text-color: #f0fdf4;
    --text-secondary: rgba(240, 253, 244, 0.7);
    --border-color: rgba(34, 197, 94, 0.25);
    --hover-color: rgba(34, 197, 94, 0.25);
}

body.theme-forest .theme-bg {
    background: linear-gradient(135deg, #0a1f0a 0%, #14532d 50%, #0a1f0a 100%);
}

body.theme-forest .theme-effects::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: 
        radial-gradient(circle at 20% 80%, rgba(34, 197, 94, 0.15) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(74, 222, 128, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 40% 40%, rgba(16, 185, 129, 0.08) 0%, transparent 60%);
    animation: float 8s ease-in-out infinite;
}

body.theme-forest .theme-effects::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 200px;
    background: linear-gradient(to top, rgba(20, 83, 45, 0.5), transparent);
}

body.theme-ocean {
    --primary-color: #0ea5e9;
    --secondary-color: #38bdf8;
    --bg-color: #0c1929;
    --card-bg: rgba(14, 165, 233, 0.08);
    --text-color: #f0f9ff;
    --text-secondary: rgba(240, 249, 255, 0.7);
    --border-color: rgba(14, 165, 233, 0.25);
    --hover-color: rgba(14, 165, 233, 0.25);
}

body.theme-ocean .theme-bg {
    background: linear-gradient(180deg, #0c1929 0%, #0e3a5f 50%, #0c1929 100%);
}

body.theme-ocean .theme-effects::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: 
        radial-gradient(ellipse at 30% 30%, rgba(14, 165, 233, 0.12) 0%, transparent 50%),
        radial-gradient(ellipse at 70% 70%, rgba(56, 189, 248, 0.08) 0%, transparent 50%);
    animation: wave 6s ease-in-out infinite;
}

body.theme-ocean .theme-effects::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 200%;
    height: 100px;
    background: repeating-linear-gradient(
        90deg,
        transparent,
        transparent 100px,
        rgba(14, 165, 233, 0.05) 100px,
        rgba(14, 165, 233, 0.05) 200px
    );
    animation: waveHorizontal 8s linear infinite;
}

body.theme-sunset {
    --primary-color: #fb923c;
    --secondary-color: #fbbf24;
    --bg-color: #2c1810;
    --card-bg: rgba(251, 146, 60, 0.1);
    --text-color: #fff7ed;
    --text-secondary: rgba(255, 247, 237, 0.7);
    --border-color: rgba(251, 146, 60, 0.3);
    --hover-color: rgba(251, 146, 60, 0.3);
}

body.theme-sunset .theme-bg {
    background: linear-gradient(135deg, #2c1810 0%, #4a2c20 50%, #2c1810 100%);
}

body.theme-sunset .theme-effects::before {
    content: '';
    position: absolute;
    top: -20%;
    right: -20%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(251, 146, 60, 0.3) 0%, rgba(239, 68, 68, 0.1) 40%, transparent 70%);
    animation: sunsetPulse 8s ease-in-out infinite;
}

body.theme-sunset .theme-effects::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
    opacity: 0.03;
}

body.theme-galaxy {
    --primary-color: #8b5cf6;
    --secondary-color: #a78bfa;
    --bg-color: #0a0614;
    --card-bg: rgba(139, 92, 246, 0.08);
    --text-color: #e9d5ff;
    --text-secondary: rgba(233, 213, 255, 0.7);
    --border-color: rgba(139, 92, 246, 0.25);
    --hover-color: rgba(139, 92, 246, 0.25);
}

body.theme-galaxy .theme-bg {
    background: linear-gradient(135deg, #0a0614 0%, #1e1b4b 50%, #0a0614 100%);
}

body.theme-galaxy .theme-effects::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: 
        radial-gradient(circle at 20% 20%, rgba(139, 92, 246, 0.2) 0%, transparent 30%),
        radial-gradient(circle at 60% 40%, rgba(167, 139, 250, 0.15) 0%, transparent 35%),
        radial-gradient(circle at 80% 80%, rgba(139, 92, 246, 0.18) 0%, transparent 40%);
    animation: galaxyFloat 12s ease-in-out infinite;
}

body.theme-galaxy .theme-effects::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: radial-gradient(2px 2px at 20px 30px, #ffffff, transparent),
                      radial-gradient(2px 2px at 40px 70px, rgba(255,255,255,0.8), transparent),
                      radial-gradient(1px 1px at 90px 40px, #ffffff, transparent),
                      radial-gradient(2px 2px at 160px 120px, rgba(255,255,255,0.9), transparent),
                      radial-gradient(1px 1px at 230px 80px, #ffffff, transparent),
                      radial-gradient(2px 2px at 300px 150px, rgba(255,255,255,0.7), transparent),
                      radial-gradient(1px 1px at 350px 60px, #ffffff, transparent),
                      radial-gradient(2px 2px at 420px 200px, rgba(255,255,255,0.8), transparent);
    background-size: 500px 300px;
    animation: starsTwinkle 4s ease-in-out infinite;
}

body.theme-neon {
    --primary-color: #22d3ee;
    --secondary-color: #a855f7;
    --bg-color: #0f0a1e;
    --card-bg: rgba(34, 211, 238, 0.05);
    --text-color: #ffffff;
    --text-secondary: rgba(255, 255, 255, 0.7);
    --border-color: rgba(34, 211, 238, 0.3);
    --hover-color: rgba(34, 211, 238, 0.2);
}

body.theme-neon .theme-bg {
    background: linear-gradient(135deg, #0f0a1e 0%, #1a0f35 50%, #0f0a1e 100%);
}

body.theme-neon .theme-effects::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 800px;
    height: 800px;
    background: 
        radial-gradient(circle, rgba(34, 211, 238, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 60% 40%, rgba(168, 85, 247, 0.1) 0%, transparent 40%);
    animation: neonPulse 3s ease-in-out infinite;
}

body.theme-neon .theme-effects::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: 
        linear-gradient(45deg, transparent 45%, rgba(34, 211, 238, 0.03) 50%, transparent 55%),
        linear-gradient(-45deg, transparent 45%, rgba(168, 85, 247, 0.03) 50%, transparent 55%);
    background-size: 50px 50px;
    animation: neonGrid 2s linear infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 0.5; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.1); }
}

@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-20px) rotate(5deg); }
}

@keyframes scan {
    0% { background-position: 0 0; }
    100% { background-position: 0 4px; }
}

@keyframes rotate {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes wave {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

@keyframes waveHorizontal {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes sunsetPulse {
    0%, 100% { opacity: 0.8; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.05); }
}

@keyframes galaxyFloat {
    0%, 100% { transform: translateX(0) translateY(0); }
    25% { transform: translateX(20px) translateY(-10px); }
    50% { transform: translateX(0) translateY(-20px); }
    75% { transform: translateX(-20px) translateY(-10px); }
}

@keyframes starsTwinkle {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

@keyframes neonPulse {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

@keyframes neonGrid {
    0% { background-position: 0 0; }
    100% { background-position: 50px 50px; }
}