/* Slide-in animation for new result cards */
@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateY(-12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.slide-in {
    animation: slideIn 0.3s ease-out;
}

/* Fade-in for download all button */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.fade-in {
    animation: fadeIn 0.3s ease-out;
}

/* Dropzone active state */
.dropzone-active {
    border-color: rgb(139 92 246) !important;
    background-color: rgb(245 243 255) !important;
}

.dropzone-active .dropzone-icon {
    transform: scale(1.1);
}

/* Toggle switch */
.toggle-switch {
    position: relative;
    width: 44px;
    height: 24px;
    flex-shrink: 0;
}

.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgb(209 213 219);
    border-radius: 24px;
    transition: background-color 0.2s;
}

.toggle-slider:before {
    content: "";
    position: absolute;
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.2s;
}

.toggle-switch input:checked + .toggle-slider {
    background-color: rgb(139 92 246);
}

.toggle-switch input:checked + .toggle-slider:before {
    transform: translateX(20px);
}

/* Chevron rotation */
.rotate-180 {
    transform: rotate(180deg);
}

/* Details chevron rotation */
details[open] .details-chevron {
    transform: rotate(180deg);
}

/* Hide default details marker */
details summary {
    list-style: none;
}
details summary::-webkit-details-marker {
    display: none;
}

/* Spinner animation */
@keyframes spin {
    to { transform: rotate(360deg); }
}

.animate-spin {
    animation: spin 1s linear infinite;
}

/* Dropzone icon bounce */
.dropzone-icon {
    transition: transform 0.2s ease;
}
