.rotate-90 {
    transform: rotate(90deg);
}

.transition-all {
    transition: all 0.3s ease;
}

.category-item {
    transition: all 0.2s ease;
}

/* Mobile filter overlay */
@media (max-width: 1023px) {
    #mobile-filters {
        background: rgba(0, 0, 0, 0.5);
    }
    #mobile-filters > div {
        max-width: 320px;
        margin-left: auto;
        height: 100vh;
        overflow-y: auto;
    }
}

.rating-radio {
    display: none;
}

.rating-radio + label {
    cursor: pointer;
    padding: 0.5rem 1rem;
    border: 2px solid #e5e7eb;
    border-radius: 0.5rem;
    transition: all 0.2s ease;
}

.rating-radio:checked + label {
    border-color: #10b981;
    background-color: #ecfdf5;
}

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

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