/* Dashboard CSS - Enhanced UI Improvements */ /* Custom animations and transitions */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideInRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } } @keyframes pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.05); } } @keyframes bounceIn { 0% { opacity: 0; transform: scale(0.3); } 50% { transform: scale(1.05); } 70% { transform: scale(0.9); } 100% { opacity: 1; transform: scale(1); } } /* Animation classes */ .fade-in { animation: fadeIn 0.6s ease-out forwards; opacity: 0; } .slide-in-right { animation: slideInRight 0.5s ease-out; } .bounce-in { animation: bounceIn 0.7s ease-out; } /* Status indicator pulse animation */ .status-pulse { animation: pulse 2s infinite; } /* Enhanced hover effects for buttons */ .btn-hover-lift:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); } /* Card hover effects with enhanced shadow */ .card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .card-hover:hover { transform: translateY(-4px); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.1); } /* QR Code container improvements */ .qr-container { transition: all 0.3s ease-in-out; } .qr-container.show { display: block !important; } /* Custom scrollbar for messages */ .messages-container::-webkit-scrollbar { width: 6px; } .messages-container::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 3px; } .messages-container::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 3px; } .messages-container::-webkit-scrollbar-thumb:hover { background: #a8a8a8; } /* Message items animation */ .message-item { transition: all 0.3s ease; transform: translateX(0); } .message-item:hover { transform: translateX(4px); background-color: rgba(59, 130, 246, 0.05) !important; } /* WhatsApp brand colors - Enhanced */ .whatsapp-green { background: linear-gradient(135deg, #25D366, #128C7E); } .whatsapp-green-dark { background-color: #128C7E; } .whatsapp-green-light { background-color: #DCF8C6; } /* Loading spinner improvements */ .loading-spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid rgba(255, 255, 255, 0.3); border-radius: 50%; border-top-color: #ffffff; animation: spin 1s ease-in-out infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* Enhanced button states */ .btn-primary { background: linear-gradient(135deg, #3B82F6, #1E40AF); transition: all 0.3s ease; } .btn-primary:hover { background: linear-gradient(135deg, #1E40AF, #1E3A8A); transform: translateY(-2px); box-shadow: 0 10px 20px rgba(59, 130, 246, 0.3); } .btn-success { background: linear-gradient(135deg, #10B981, #059669); transition: all 0.3s ease; } .btn-success:hover { background: linear-gradient(135deg, #059669, #047857); transform: translateY(-2px); box-shadow: 0 10px 20px rgba(16, 185, 129, 0.3); } .btn-danger { background: linear-gradient(135deg, #EF4444, #DC2626); transition: all 0.3s ease; } .btn-danger:hover { background: linear-gradient(135deg, #DC2626, #B91C1C); transform: translateY(-2px); box-shadow: 0 10px 20px rgba(239, 68, 68, 0.3); } /* Status indicators with better visual feedback */ .status-connected { background: linear-gradient(135deg, #10B981, #059669); color: white; padding: 0.5rem 1rem; border-radius: 0.75rem; font-weight: 600; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } .status-disconnected { background: linear-gradient(135deg, #EF4444, #DC2626); color: white; padding: 0.5rem 1rem; border-radius: 0.75rem; font-weight: 600; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } .status-waiting { background: linear-gradient(135deg, #F59E0B, #D97706); color: white; padding: 0.5rem 1rem; border-radius: 0.75rem; font-weight: 600; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } /* Enhanced focus states */ input:focus, textarea:focus, select:focus { outline: none; ring: 2px; ring-color: #3B82F6; border-color: #3B82F6; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); transition: all 0.2s ease; } /* Improved form elements */ .form-input { background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(10px); border: 1px solid rgba(229, 231, 235, 0.8); transition: all 0.3s ease; } .form-input:focus { background: rgba(255, 255, 255, 1); border-color: #3B82F6; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } /* Glass morphism effects */ .glass-card { background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); } /* Responsive utilities */ @media (max-width: 768px) { .mobile-full-width { width: 100% !important; } .mobile-text-center { text-align: center !important; } .mobile-hidden { display: none !important; } .card-hover:hover { transform: none; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); } } /* Dark mode preparations */ @media (prefers-color-scheme: dark) { .auto-dark { background-color: #1f2937; color: #f9fafb; } .auto-dark .glass-card { background: rgba(31, 41, 55, 0.9); border: 1px solid rgba(75, 85, 99, 0.2); } } /* Print styles */ @media print { .no-print { display: none !important; } .print-break { page-break-before: always; } }