/* Sets Page Specific Styles */

/* Hero section gradient */
.bg-gradient-to-r {
    background: linear-gradient(to right, 
        hsl(var(--p)), 
        hsl(var(--pf)));
}

/* Card hover effects */
.card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

/* Set actions dropdown optimization */
.dropdown-content {
    animation: slideIn 0.2s ease;
}

@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Song list optimizations */
.group:hover .opacity-0 {
    opacity: 1;
}

/* Quick action buttons */
.btn-group {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

/* Modal optimizations */
.modal-box {
    contain: layout style;
}

/* Search results container */
#song-search-results {
    contain: layout style paint;
    will-change: scroll-position;
}

/* Loading states */
.loading-skeleton {
    background: linear-gradient(90deg, 
        rgba(0, 0, 0, 0.1) 25%, 
        rgba(0, 0, 0, 0.05) 50%, 
        rgba(0, 0, 0, 0.1) 75%);
    background-size: 200% 100%;
    animation: loading 1.5s infinite;
}

@keyframes loading {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

/* Performance optimizations */
.sets-container {
    contain: layout style;
}

.card-body {
    contain: layout style;
}

/* Responsive improvements */
@media (max-width: 768px) {
    .btn-group {
        flex-direction: column;
        width: 100%;
    }
    
    .card-body {
        padding: 1rem;
    }
    
    .modal-box {
        margin: 1rem;
        max-width: calc(100vw - 2rem);
    }
}

/* Empty state styling */
#empty-state {
    min-height: 50vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Tab optimizations */
.tabs {
    contain: layout style;
}

.tab {
    transition: background-color 0.15s ease;
}

/* Toast positioning for sets page */
.toast {
    z-index: 10000;
}

/* Accessibility improvements */
.btn:focus-visible {
    outline: 2px solid hsl(var(--p));
    outline-offset: 2px;
}

/* Dark mode optimizations */
@media (prefers-color-scheme: dark) {
    .card {
        border-color: rgba(255, 255, 255, 0.1);
    }
    
    .loading-skeleton {
        background: linear-gradient(90deg, 
            rgba(255, 255, 255, 0.1) 25%, 
            rgba(255, 255, 255, 0.05) 50%, 
            rgba(255, 255, 255, 0.1) 75%);
    }
}
