/* Custom styles for Caisse application */

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

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

/* Smooth transitions */
.transition-all {
    transition: all 0.2s ease-in-out;
}

/* Status badge hover effects */
.status-en_attente:hover,
.status-en_attente_l2:hover,
.status-en_attente_caisse:hover,
.status-approuve:hover,
.status-rejete:hover,
.status-rembourse:hover {
    opacity: 0.85;
    transform: scale(1.02);
}

/* Focus ring for form elements */
.focus-ring:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
    border-color: #3b82f6;
}

/* Card hover lift */
.hover-lift {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hover-lift:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
}

/* Gradient text */
.gradient-text {
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Auth gradient background */
.auth-gradient-bg {
    background: linear-gradient(135deg, #1e3a8a 0%, #312e81 50%, #1e1b4b 100%);
}

/* Dropdown animation */
.dropdown-enter {
    animation: dropdownIn 0.15s ease-out;
}
@keyframes dropdownIn {
    from { opacity: 0; transform: translateY(-4px) scale(0.95); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Mobile menu animation */
.mobile-menu-enter {
    animation: slideDown 0.2s ease-out;
}
@keyframes slideDown {
    from { opacity: 0; max-height: 0; }
    to { opacity: 1; max-height: 500px; }
}

/* Report dropdown */
.report-dropdown {
    min-width: 220px;
}
