Spaces:
No application file
No application file
| /* 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 ; | |
| } | |
| /* 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) ; | |
| } | |
| /* 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% ; | |
| } | |
| .mobile-text-center { | |
| text-align: center ; | |
| } | |
| .mobile-hidden { | |
| display: none ; | |
| } | |
| .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 ; | |
| } | |
| .print-break { | |
| page-break-before: always; | |
| } | |
| } |