@keyframes fadeInBackdrop{0%{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(4px)}}@keyframes fadeOutBackdrop{0%{opacity:1;backdrop-filter:blur(4px)}to{opacity:0;backdrop-filter:blur(0)}}.backdrop-enter{animation:fadeInBackdrop .3s cubic-bezier(.4,0,.2,1) forwards}.backdrop-exit{animation:fadeOutBackdrop .3s cubic-bezier(.4,0,.2,1) forwards}.chat-container{transition:all .4s cubic-bezier(.25,.46,.45,.94)}.chat-expanded{animation:expandChatSmooth .4s cubic-bezier(.25,.46,.45,.94) forwards}.chat-contracted{animation:contractChatSmooth .4s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes expandChatSmooth{0%{transform:scale(1);border-radius:12px}50%{transform:scale(1.02)}to{transform:scale(1);border-radius:12px}}@keyframes contractChatSmooth{0%{transform:scale(1)}50%{transform:scale(.98)}to{transform:scale(1)}}@keyframes slideInFromRight{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideOutToRight{0%{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}.chat-slide-in{animation:slideInFromRight .3s cubic-bezier(.4,0,.2,1) forwards}.chat-slide-out{animation:slideOutToRight .3s cubic-bezier(.4,0,.2,1) forwards}.chat-message-enter{animation:messageEnter .3s ease-out forwards}@keyframes messageEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-typing-indicator{animation:typingPulse 1.4s ease-in-out infinite}@keyframes typingPulse{0%,80%,to{opacity:.3}40%{opacity:1}}.chat-button-hover{transition:all .2s cubic-bezier(.4,0,.2,1)}.chat-button-hover:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(0,0,0,.15)}.chat-input-focus{transition:all .3s cubic-bezier(.4,0,.2,1)}.chat-input-focus:focus{box-shadow:0 0 0 3px rgba(59,130,246,.1);border-color:#3b82f6}.drag-active{background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(147,197,253,.1));border:2px dashed #3b82f6;animation:dragPulse 1s infinite}@keyframes dragPulse{0%,to{opacity:.7}50%{opacity:1}}.chat-loading-dots{display:inline-flex;gap:2px}.chat-loading-dots span{width:6px;height:6px;border-radius:50%;background-color:#9ca3af;animation:loadingDots 1.4s ease-in-out infinite both}.chat-loading-dots span:first-child{animation-delay:-.32s}.chat-loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes loadingDots{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}@media (max-width:640px){.chat-container{transition:all .3s cubic-bezier(.4,0,.2,1)}@keyframes expandChatSmooth{0%{transform:scale(1);border-radius:12px}to{transform:scale(1);border-radius:0}}}