@keyframes pulse-ring {
    0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.7);
    }
    
    70% {
        transform: scale(1);
        box-shadow: 0 0 0 10px rgba(37, 99, 235, 0);
    }
    
    100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(37, 99, 235, 0);
    }
}

@keyframes slide-up {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fade-in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes scale-up {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes bounce-in {
    0% {
        transform: scale(0.3);
        opacity: 0;
    }
    50% {
        transform: scale(1.05);
    }
    70% {
        transform: scale(0.9);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.chat-button-animation {
    animation: pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.animate-slide-up {
    animation: slide-up 0.3s ease-out;
}

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

.animate-scale-up {
    animation: scale-up 0.3s ease-out;
}

.animate-bounce-in {
    animation: bounce-in 0.5s ease-out;
}

/* Amélioration des transitions */
.transition-all {
    transition: all 0.2s ease-in-out;
}

/* Style pour les messages */
.message-bubble {
    animation: bounce-in 0.4s ease-out;
}

/* Effet de hover amélioré pour les boutons */
button:hover {
    transform: translateY(-1px);
}

/* Style pour l'état d'enregistrement vocal */
.recording-pulse {
    animation: pulse-ring 1s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    background-color: #fee2e2 !important;
}

/* Amélioration du style des icônes */
[data-lucide] {
    stroke-width: 2;
    transition: all 0.2s ease-in-out;
}

/* Effet de rotation pour l'icône de reset */
#reset-button:hover [data-lucide="rotate-ccw"] {
    transform: rotate(-180deg);
}

/* Effet de pulsation pour l'icône de microphone en cours d'enregistrement */
.mic-recording {
    color: #dc2626 !important;
    animation: pulse-ring 1s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Style pour les notifications */
.notification {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    padding: 12px 24px;
    border-radius: 8px;
    font-weight: 500;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    animation: bounce-in 0.5s ease-out;
}

.notification.success {
    background-color: #10b981;
    color: white;
}

.notification.error {
    background-color: #ef4444;
    color: white;
}

.notification.info {
    background-color: #3b82f6;
    color: white;
}