/* Theme Switch Container */
.theme-switch-container {
    position: relative;
    width: 64px;
    height: 32px;
    margin: 0 var(--spacing-sm);
}

/* Theme Switch Button */
.theme-switch {
    position: relative;
    width: 100%;
    height: 100%;
    background: var(--glass-background);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border-radius: var(--radius-full);
    border: 2px solid var(--glass-border);
    cursor: pointer;
    transition: all var(--transition-normal);
    overflow: hidden;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Switch Scene */
.theme-switch-scene {
    position: absolute;
    inset: 2px;
    border-radius: calc(var(--radius-full) - 2px);
    overflow: hidden;
    transition: all var(--transition-normal);
}

/* Sun */
.sun {
    position: absolute;
    left: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    transition: all var(--transition-normal);
}

.sun-core {
    position: absolute;
    width: 16px;
    height: 16px;
    background: hsl(50, 100%, 50%);
    border-radius: 50%;
    left: 4px;
    top: 4px;
    box-shadow: 0 0 20px hsl(50, 100%, 50%);
    transition: all var(--transition-normal);
}

.sun-rays {
    position: absolute;
    inset: 0;
    animation: spin 10s linear infinite;
}

.sun-ray {
    position: absolute;
    width: 2px;
    height: 8px;
    background: hsl(50, 100%, 50%);
    border-radius: var(--radius-full);
    left: 11px;
    top: -2px;
    transform-origin: bottom center;
}

/* Create 8 rays */
.sun-ray:nth-child(2) { transform: rotate(45deg); }
.sun-ray:nth-child(3) { transform: rotate(90deg); }
.sun-ray:nth-child(4) { transform: rotate(135deg); }
.sun-ray:nth-child(5) { transform: rotate(180deg); }
.sun-ray:nth-child(6) { transform: rotate(225deg); }
.sun-ray:nth-child(7) { transform: rotate(270deg); }
.sun-ray:nth-child(8) { transform: rotate(315deg); }

/* Moon */
.moon {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    transition: all var(--transition-normal);
}

.moon-body {
    position: absolute;
    width: 16px;
    height: 16px;
    background: hsl(220, 100%, 90%);
    border-radius: 50%;
    right: 4px;
    top: 4px;
    box-shadow: inset -3px -3px 0 hsl(220, 100%, 80%);
    transition: all var(--transition-normal);
}

.moon-crater {
    position: absolute;
    background: hsl(220, 100%, 80%);
    border-radius: 50%;
    opacity: 0.5;
}

.moon-crater:nth-child(1) {
    width: 4px;
    height: 4px;
    top: 3px;
    left: 8px;
}

.moon-crater:nth-child(2) {
    width: 3px;
    height: 3px;
    top: 8px;
    right: 4px;
}

.moon-crater:nth-child(3) {
    width: 5px;
    height: 5px;
    bottom: 4px;
    left: 5px;
}

/* Stars */
.stars {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity var(--transition-normal);
}

.star {
    position: absolute;
    width: 2px;
    height: 2px;
    background: white;
    border-radius: 50%;
    animation: twinkle 1.5s infinite alternate;
}

.star:nth-child(1) { top: 20%; left: 40%; animation-delay: 0s; }
.star:nth-child(2) { top: 30%; right: 30%; animation-delay: 0.3s; }
.star:nth-child(3) { bottom: 30%; left: 30%; animation-delay: 0.6s; }
.star:nth-child(4) { bottom: 20%; right: 40%; animation-delay: 0.9s; }

/* Switch Thumb */
.theme-switch-thumb {
    position: absolute;
    left: 4px;
    top: 50%;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--primary-color);
    transform: translateY(-50%);
    transition: all var(--transition-bounce);
    z-index: 10;
    box-shadow: var(--shadow-primary);
}

/* Dark Theme State */
[data-theme="dark"] .theme-switch {
    background: var(--dark-glass-background);
    border-color: var(--dark-glass-border);
}

[data-theme="dark"] .theme-switch-thumb {
    transform: translate(32px, -50%);
    background: var(--secondary-color);
    box-shadow: var(--shadow-secondary);
}

[data-theme="dark"] .sun {
    opacity: 0;
    transform: translateY(-50%) scale(0.5);
}

[data-theme="dark"] .moon {
    opacity: 1;
    transform: translateY(-50%) scale(1);
}

[data-theme="dark"] .stars {
    opacity: 1;
}

/* Light Theme State */
.theme-switch .moon {
    opacity: 0;
    transform: translateY(-50%) scale(0.5);
}

/* Hover Effects */
.theme-switch:hover .theme-switch-thumb {
    box-shadow: 
        var(--shadow-primary),
        0 0 0 4px hsla(var(--primary-hue), var(--primary-saturation), 50%, 0.2);
}

[data-theme="dark"] .theme-switch:hover .theme-switch-thumb {
    box-shadow: 
        var(--shadow-secondary),
        0 0 0 4px hsla(var(--accent-hue), 85%, 50%, 0.2);
}

/* Focus State */
.theme-switch:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--primary-color);
}

/* Animations */
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes twinkle {
    from { opacity: 0.2; transform: scale(0.8); }
    to { opacity: 1; transform: scale(1); }
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    .theme-switch-container {
        width: 56px;
        height: 28px;
    }
    
    .theme-switch-thumb {
        width: 20px;
        height: 20px;
    }
    
    [data-theme="dark"] .theme-switch-thumb {
        transform: translate(28px, -50%);
    }
    
    .sun, .moon {
        width: 20px;
        height: 20px;
    }
    
    .sun-core, .moon-body {
        width: 14px;
        height: 14px;
    }
}
