/* Smooth Keyframe Animations */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes scaleUp {
    from { opacity: 0; transform: scale(0.92); }
    to { opacity: 1; transform: scale(1); }
}
@keyframes slideInRight {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}
@keyframes pulseGlow {
    0%, 100% { box-shadow: 0 0 15px rgba(59, 130, 246, 0.3); }
    50% { box-shadow: 0 0 25px rgba(139, 92, 246, 0.6); }
}

.animate-fade-in { animation: fadeIn 0.4s ease-out forwards; }
.animate-scale-up { animation: scaleUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.animate-toast { animation: slideInRight 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.animate-pulse-glow { animation: pulseGlow 3s infinite ease-in-out; }

.chat-scroll::-webkit-scrollbar { width: 5px; height: 5px; }
.chat-scroll::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.2); border-radius: 9999px; }

/* Themes */
.theme-cyberpunk { background: linear-gradient(135deg, rgba(24, 9, 39, 0.95), rgba(12, 38, 59, 0.95)) !important; border-color: #ff007f !important; }
.theme-emerald { background: linear-gradient(135deg, rgba(6, 78, 59, 0.95), rgba(4, 47, 46, 0.95)) !important; border-color: #10b981 !important; }
.theme-sunset { background: linear-gradient(135deg, rgba(136, 19, 55, 0.95), rgba(67, 56, 202, 0.95)) !important; border-color: #f43f5e !important; }
.theme-light { background: rgba(255, 255, 255, 0.95) !important; color: #0f172a !important; border-color: rgba(0, 0, 0, 0.1) !important; }
.theme-light .text-white { color: #0f172a !important; }
.theme-light .text-gray-300, .theme-light .text-gray-400 { color: #334155 !important; }
