@keyframes slide-in-from-bottom{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-in,.slide-in-from-bottom-2{animation:slide-in-from-bottom .3s ease-out}.message-enter{opacity:0;transform:translateY(10px) scale(.95)}.message-enter-active{opacity:1;transform:translateY(0) scale(1);transition:all .2s ease-out}@keyframes typing-dot{0%,20%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}80%,to{opacity:.3;transform:scale(.8)}}.typing-dot{animation:typing-dot 1.4s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.16s}.typing-dot:nth-child(3){animation-delay:.32s}.message-bubble{transition:all .2s ease}.message-bubble:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.connection-status{animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.conversation-item{transition:all .15s ease}.conversation-item:hover{background-color:#f8f9fa;transform:translateX(2px)}.conversation-item.selected{background-color:#dcf8c6;border-right:4px solid #25d366}.attachment-menu{animation:scaleIn .2s ease-out;transform-origin:bottom left}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.emoji-picker{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.message-status{transition:color .2s ease}.message-status.delivered,.message-status.sent{color:hsla(0,0%,100%,.6)}.message-status.read{color:#3b82f6}.message-status.failed{color:#ef4444}.message-bubble-sent{background:linear-gradient(135deg,#25d366,#20b356);color:#fff;margin-left:20%;border-radius:18px 18px 4px 18px;box-shadow:0 1px 2px rgba(0,0,0,.1)}.message-bubble-received{background:#fff;color:#1a1a1a;margin-right:20%;border-radius:18px 18px 18px 4px;box-shadow:0 1px 2px rgba(0,0,0,.1);border:1px solid #e5e7eb}.status-icon-container{display:flex;align-items:center;gap:2px;margin-left:6px}.status-icon{transition:all .2s ease}.status-icon.sending{animation:pulse-glow 1.5s infinite;color:hsla(0,0%,100%,.6)}@keyframes pulse-glow{0%,to{opacity:.5;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}.status-icon.sent{color:hsla(0,0%,100%,.7)}.status-icon.delivered{color:hsla(0,0%,100%,.8)}.status-icon.read{color:#60a5fa}.status-icon.failed{color:#f87171;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}.message-timestamp{font-size:10px;opacity:.75;font-weight:400;letter-spacing:.2px}.recording-pulse{animation:pulse 1s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(239,68,68,.7)}70%{box-shadow:0 0 0 10px rgba(239,68,68,0)}to{box-shadow:0 0 0 0 rgba(239,68,68,0)}}.scroll-smooth{scroll-behavior:smooth}.online-indicator{animation:onlinePulse 2s infinite}@keyframes onlinePulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.skeleton-pulse{animation:skeleton 1.5s ease-in-out infinite alternate}@keyframes skeleton{0%{background-color:#e5e7eb}to{background-color:#f3f4f6}}.whatsapp-green{background-color:#25d366}.whatsapp-green-dark{background-color:#128c7e}.whatsapp-green-light{background-color:#dcf8c6}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#f1f1f1}.custom-scrollbar::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width:768px){.mobile-hidden{display:none}.mobile-full{width:100%}}@media (prefers-color-scheme:dark){.dark-mode{background-color:#1f2937;color:#f9fafb}.dark-mode .message-bubble.received{background-color:#374151;color:#f9fafb}.dark-mode .conversation-item:hover{background-color:#374151}}