.animate-bounce{animation:bounce 1s infinite}.animate-fade-in{animation:fadeIn .3s ease-out}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.delay-0{animation-delay:0ms}.delay-150{animation-delay:.15s}.delay-300{animation-delay:.3s}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.chat-message{animation:none}.typing-indicator{animation:fadeIn .3s ease-in}.typing-dot{animation:bounce 1.4s infinite ease-in-out}.typing-dot:nth-child(1){animation-delay:-.32s}.typing-dot:nth-child(2){animation-delay:-.16s}.upload-button{transition:all .2s ease-in-out;transform:translateY(0)}.upload-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.upload-button:active{transform:translateY(0)}.chat-input{transition:all .2s ease-in-out}.chat-input:focus{box-shadow:0 0 0 3px #3b82f61a}.session-item{transition:all .2s ease-in-out}.session-item:hover{transform:translate(2px)}.context-badge{animation:slideIn .3s ease-out;transition:all .2s ease-in-out}.context-badge:hover{transform:scale(1.05)}.message-user{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;margin-left:auto;margin-right:0;border-radius:18px 18px 4px}.message-assistant{background:#fff;border:1px solid #e5e7eb;margin-right:auto;margin-left:0;border-radius:18px 18px 18px 4px}.chat-container::-webkit-scrollbar{width:6px}.chat-container::-webkit-scrollbar-track{background:#f1f5f9}.chat-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.chat-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner{animation:spin 1s linear infinite}@keyframes typing-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-8px)}}.animate-typing-bounce{animation:typing-bounce 1.4s infinite ease-in-out}@keyframes pulse-glow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.02)}}.animate-pulse-glow{animation:pulse-glow 2s infinite ease-in-out}.button-press{transition:transform .1s ease-in-out}.button-press:active{transform:scale(.98)}.gradient-bg-blue{background:linear-gradient(135deg,#3b82f6,#1e40af)}.gradient-bg-purple{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.gradient-bg-red{background:linear-gradient(135deg,#ef4444,#dc2626)}.shadow-hover{transition:box-shadow .2s ease-in-out}.shadow-hover:hover{box-shadow:0 10px 25px #00000026}
