Spaces:
Sleeping
Sleeping
| /* Professional Dashboard Styles with AdminLTE 4 Integration */ | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: 'Source Sans Pro', 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| background-attachment: fixed; | |
| min-height: 100vh; | |
| color: #333; | |
| line-height: 1.6; | |
| } | |
| /* AdminLTE 4 Compatibility Overrides */ | |
| .content-wrapper { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) ; | |
| background-attachment: fixed ; | |
| } | |
| .main-header { | |
| background: rgba(255, 255, 255, 0.98) ; | |
| border-radius: 24px ; | |
| margin-bottom: 2rem ; | |
| box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.2) ; | |
| } | |
| .navbar-nav .nav-link { | |
| color: #333 ; | |
| } | |
| .sidebar { | |
| background: rgba(255, 255, 255, 0.95) ; | |
| border-radius: 16px ; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) ; | |
| } | |
| .sidebar .nav-link { | |
| color: #666 ; | |
| border-radius: 12px ; | |
| margin: 4px 8px ; | |
| } | |
| .sidebar .nav-link:hover { | |
| background: rgba(102, 126, 234, 0.1) ; | |
| color: #667eea ; | |
| } | |
| .card { | |
| background: rgba(255, 255, 255, 0.98) ; | |
| border: none ; | |
| border-radius: 16px ; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) ; | |
| color: #333 ; | |
| } | |
| .card-header { | |
| background: rgba(255, 255, 255, 0.8) ; | |
| border-bottom: 1px solid rgba(0, 0, 0, 0.1) ; | |
| color: #333 ; | |
| border-radius: 16px 16px 0 0 ; | |
| } | |
| .btn-primary { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) ; | |
| border: none ; | |
| border-radius: 12px ; | |
| padding: 12px 24px ; | |
| font-weight: 600 ; | |
| transition: all 0.3s ease ; | |
| } | |
| .btn-primary:hover { | |
| transform: translateY(-2px) ; | |
| box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3) ; | |
| } | |
| .btn-secondary { | |
| background: rgba(255, 255, 255, 0.9) ; | |
| border: 1px solid rgba(0, 0, 0, 0.1) ; | |
| color: #333 ; | |
| border-radius: 12px ; | |
| padding: 12px 24px ; | |
| font-weight: 600 ; | |
| transition: all 0.3s ease ; | |
| } | |
| .btn-secondary:hover { | |
| background: rgba(102, 126, 234, 0.1) ; | |
| border-color: #667eea ; | |
| color: #667eea ; | |
| } | |
| .form-control { | |
| background: rgba(255, 255, 255, 0.9) ; | |
| border: 1px solid rgba(0, 0, 0, 0.1) ; | |
| color: #333 ; | |
| border-radius: 12px ; | |
| padding: 12px 16px ; | |
| } | |
| .form-control:focus { | |
| background: rgba(255, 255, 255, 0.95) ; | |
| border-color: #667eea ; | |
| color: #333 ; | |
| box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25) ; | |
| } | |
| .table { | |
| color: #333 ; | |
| background: rgba(255, 255, 255, 0.9) ; | |
| border-radius: 12px ; | |
| overflow: hidden ; | |
| } | |
| .table th { | |
| background: rgba(102, 126, 234, 0.1) ; | |
| border: none ; | |
| color: #333 ; | |
| font-weight: 600 ; | |
| padding: 16px ; | |
| } | |
| .table td { | |
| border: none ; | |
| padding: 16px ; | |
| border-bottom: 1px solid rgba(0, 0, 0, 0.05) ; | |
| } | |
| .modal-content { | |
| background: rgba(255, 255, 255, 0.98) ; | |
| border: none ; | |
| border-radius: 20px ; | |
| box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2) ; | |
| color: #333 ; | |
| } | |
| .modal-header { | |
| border-bottom: 1px solid rgba(0, 0, 0, 0.1) ; | |
| border-radius: 20px 20px 0 0 ; | |
| background: rgba(102, 126, 234, 0.05) ; | |
| } | |
| .modal-footer { | |
| border-top: 1px solid rgba(0, 0, 0, 0.1) ; | |
| border-radius: 0 0 20px 20px ; | |
| background: rgba(102, 126, 234, 0.02) ; | |
| } | |
| /* Custom Scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: rgba(255, 255, 255, 0.1); | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: rgba(255, 255, 255, 0.3); | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: rgba(255, 255, 255, 0.5); | |
| } | |
| .professional-container { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: 2rem; | |
| } | |
| .professional-header { | |
| background: rgba(255, 255, 255, 0.98); | |
| padding: 2.5rem; | |
| border-radius: 24px; | |
| margin-bottom: 2rem; | |
| box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.2); | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| backdrop-filter: blur(20px); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .professional-header::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 4px; | |
| background: linear-gradient(90deg, #667eea, #764ba2, #667eea); | |
| background-size: 200% 100%; | |
| animation: gradientShift 3s ease-in-out infinite; | |
| } | |
| @keyframes gradientShift { | |
| 0%, 100% { background-position: 0% 50%; } | |
| 50% { background-position: 100% 50%; } | |
| } | |
| .header-content h1 { | |
| font-size: 2.5rem; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| margin-bottom: 0.5rem; | |
| } | |
| .header-content p { | |
| color: #666; | |
| font-size: 1.1rem; | |
| } | |
| .user-info { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| } | |
| .user-details { | |
| text-align: right; | |
| } | |
| .user-details span { | |
| display: block; | |
| } | |
| .user-details span:first-child { | |
| font-weight: bold; | |
| font-size: 1.1rem; | |
| } | |
| .user-role { | |
| color: #666; | |
| font-size: 0.9rem; | |
| } | |
| .logout-btn { | |
| padding: 0.75rem 1.5rem; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| color: white; | |
| border: none; | |
| border-radius: 12px; | |
| cursor: pointer; | |
| font-weight: 600; | |
| transition: all 0.3s ease; | |
| } | |
| .logout-btn:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3); | |
| } | |
| /* Stats Section */ | |
| .stats-section { | |
| margin-bottom: 2rem; | |
| } | |
| .stats-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); | |
| gap: 1.5rem; | |
| } | |
| .stat-card { | |
| background: rgba(255, 255, 255, 0.98); | |
| padding: 2.5rem; | |
| border-radius: 24px; | |
| box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.2); | |
| transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| position: relative; | |
| overflow: hidden; | |
| backdrop-filter: blur(20px); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| } | |
| .stat-card:hover { | |
| transform: translateY(-8px) scale(1.02); | |
| box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.3); | |
| } | |
| .stat-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 5px; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| border-radius: 24px 24px 0 0; | |
| } | |
| .stat-card::after { | |
| content: ''; | |
| position: absolute; | |
| top: -50%; | |
| right: -50%; | |
| width: 100%; | |
| height: 100%; | |
| background: radial-gradient(circle, rgba(102, 126, 234, 0.1) 0%, transparent 70%); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .stat-card:hover::after { | |
| opacity: 1; | |
| } | |
| .stat-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 1rem; | |
| } | |
| .stat-icon { | |
| width: 60px; | |
| height: 60px; | |
| border-radius: 16px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 1.8rem; | |
| color: white; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| box-shadow: 0 8px 20px rgba(102, 126, 234, 0.3); | |
| margin-bottom: 1rem; | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .stat-icon::before { | |
| content: ''; | |
| position: absolute; | |
| inset: -2px; | |
| border-radius: 18px; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| z-index: -1; | |
| opacity: 0.3; | |
| filter: blur(8px); | |
| } | |
| .stat-number { | |
| font-size: 3rem; | |
| font-weight: 800; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| margin-bottom: 0.5rem; | |
| line-height: 1; | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .stat-label { | |
| color: #666; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| position: relative; | |
| z-index: 2; | |
| } | |
| /* Content Sections */ | |
| .professional-content { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 2rem; | |
| } | |
| .content-section { | |
| background: rgba(255, 255, 255, 0.95); | |
| border-radius: 20px; | |
| padding: 2rem; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); | |
| } | |
| .section-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 2rem; | |
| padding-bottom: 1rem; | |
| border-bottom: 2px solid rgba(0, 0, 0, 0.1); | |
| } | |
| .section-title { | |
| font-size: 1.5rem; | |
| font-weight: bold; | |
| color: #333; | |
| } | |
| .header-actions { | |
| display: flex; | |
| gap: 1rem; | |
| align-items: center; | |
| } | |
| .btn { | |
| padding: 0.75rem 1.5rem; | |
| border: none; | |
| border-radius: 12px; | |
| cursor: pointer; | |
| font-weight: 600; | |
| transition: all 0.3s ease; | |
| text-decoration: none; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .btn-primary { | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| color: white; | |
| } | |
| .btn-primary:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3); | |
| } | |
| .btn-secondary { | |
| background: rgba(255, 255, 255, 0.8); | |
| color: #666; | |
| border: 1px solid rgba(0, 0, 0, 0.1); | |
| } | |
| .btn-secondary:hover { | |
| background: rgba(255, 255, 255, 1); | |
| transform: translateY(-2px); | |
| } | |
| .btn-small { | |
| padding: 0.5rem 1rem; | |
| font-size: 0.8rem; | |
| } | |
| /* Quick Actions */ | |
| .quick-actions-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
| gap: 1rem; | |
| } | |
| .action-btn { | |
| background: rgba(255, 255, 255, 0.9); | |
| border: 2px solid rgba(102, 126, 234, 0.2); | |
| border-radius: 16px; | |
| padding: 1.5rem; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| text-align: center; | |
| } | |
| .action-btn:hover { | |
| background: rgba(102, 126, 234, 0.1); | |
| border-color: #667eea; | |
| transform: translateY(-3px); | |
| } | |
| .action-icon { | |
| font-size: 2rem; | |
| margin-bottom: 0.5rem; | |
| } | |
| .action-text { | |
| font-weight: 600; | |
| color: #333; | |
| } | |
| /* Sessions Grid */ | |
| .sessions-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); | |
| gap: 1.5rem; | |
| } | |
| .session-card { | |
| background: rgba(255, 255, 255, 0.98); | |
| border-radius: 20px; | |
| padding: 2rem; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(255, 255, 255, 0.2); | |
| transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| border-left: 5px solid #667eea; | |
| backdrop-filter: blur(20px); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .session-card:hover { | |
| transform: translateY(-6px) scale(1.01); | |
| box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(255, 255, 255, 0.3); | |
| } | |
| .session-card.high-risk { | |
| border-left-color: #ef4444; | |
| background: linear-gradient(135deg, rgba(254, 242, 242, 0.8), rgba(255, 255, 255, 0.98)); | |
| box-shadow: 0 10px 30px rgba(239, 68, 68, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.2); | |
| } | |
| .session-card.high-risk:hover { | |
| box-shadow: 0 20px 40px rgba(239, 68, 68, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.3); | |
| } | |
| .session-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| right: 0; | |
| width: 100px; | |
| height: 100px; | |
| background: radial-gradient(circle, rgba(102, 126, 234, 0.1) 0%, transparent 70%); | |
| border-radius: 50%; | |
| transform: translate(30px, -30px); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .session-card:hover::before { | |
| opacity: 1; | |
| } | |
| /* Contact Information Styles */ | |
| .contact-info { | |
| background: linear-gradient(135deg, rgba(102, 126, 234, 0.1), rgba(118, 75, 162, 0.1)); | |
| border-radius: 12px; | |
| padding: 0.75rem; | |
| margin: 0.5rem 0; | |
| border-left: 4px solid #667eea; | |
| box-shadow: 0 4px 12px rgba(102, 126, 234, 0.1); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .contact-info::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| right: 0; | |
| width: 60px; | |
| height: 60px; | |
| background: radial-gradient(circle, rgba(102, 126, 234, 0.1) 0%, transparent 70%); | |
| border-radius: 50%; | |
| transform: translate(20px, -20px); | |
| } | |
| .contact-link { | |
| color: #667eea; | |
| text-decoration: none; | |
| font-weight: 600; | |
| transition: all 0.3s ease; | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .contact-link:hover { | |
| color: #5a6fd8; | |
| text-decoration: underline; | |
| transform: translateX(2px); | |
| } | |
| .detail-row.contact-info .detail-label { | |
| font-weight: 700; | |
| color: #667eea; | |
| font-size: 0.9rem; | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .session-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: flex-start; | |
| margin-bottom: 1rem; | |
| } | |
| .session-user { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.75rem; | |
| } | |
| .user-avatar { | |
| width: 50px; | |
| height: 50px; | |
| border-radius: 50%; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: white; | |
| font-weight: bold; | |
| font-size: 1.2rem; | |
| box-shadow: 0 8px 20px rgba(102, 126, 234, 0.3); | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .user-avatar::before { | |
| content: ''; | |
| position: absolute; | |
| inset: -3px; | |
| border-radius: 50%; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| z-index: -1; | |
| opacity: 0.3; | |
| filter: blur(6px); | |
| } | |
| .user-info h4 { | |
| font-size: 1rem; | |
| margin-bottom: 0.25rem; | |
| } | |
| .user-info p { | |
| font-size: 0.8rem; | |
| color: #666; | |
| } | |
| .session-status { | |
| padding: 0.5rem 1rem; | |
| border-radius: 25px; | |
| font-size: 0.8rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .status-pending { | |
| background: linear-gradient(135deg, #fef3c7, #fde68a); | |
| color: #92400e; | |
| box-shadow: 0 4px 12px rgba(146, 64, 14, 0.2); | |
| } | |
| .status-confirmed { | |
| background: linear-gradient(135deg, #d1fae5, #a7f3d0); | |
| color: #065f46; | |
| box-shadow: 0 4px 12px rgba(6, 95, 70, 0.2); | |
| } | |
| .status-completed { | |
| background: linear-gradient(135deg, #dbeafe, #bfdbfe); | |
| color: #1e40af; | |
| box-shadow: 0 4px 12px rgba(30, 64, 175, 0.2); | |
| } | |
| .status-cancelled { | |
| background: linear-gradient(135deg, #fee2e2, #fecaca); | |
| color: #991b1b; | |
| box-shadow: 0 4px 12px rgba(153, 27, 27, 0.2); | |
| } | |
| .session-details { | |
| margin-bottom: 1rem; | |
| } | |
| .detail-row { | |
| display: flex; | |
| justify-content: space-between; | |
| margin-bottom: 0.5rem; | |
| font-size: 0.9rem; | |
| } | |
| .detail-label { | |
| color: #666; | |
| font-weight: 500; | |
| } | |
| .detail-value { | |
| color: #333; | |
| font-weight: 600; | |
| } | |
| .session-actions { | |
| display: flex; | |
| gap: 0.5rem; | |
| flex-wrap: wrap; | |
| } | |
| /* Notifications */ | |
| .notifications-list { | |
| max-height: 400px; | |
| overflow-y: auto; | |
| } | |
| .notification-item { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 1rem; | |
| padding: 1rem; | |
| border-radius: 12px; | |
| margin-bottom: 0.5rem; | |
| transition: all 0.3s ease; | |
| cursor: pointer; | |
| } | |
| .notification-item:hover { | |
| background: rgba(102, 126, 234, 0.1); | |
| } | |
| .notification-item.unread { | |
| background: rgba(102, 126, 234, 0.05); | |
| border-left: 4px solid #667eea; | |
| } | |
| .notification-icon { | |
| width: 40px; | |
| height: 40px; | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: white; | |
| font-size: 1rem; | |
| background: linear-gradient(135deg, #3b82f6, #1d4ed8); | |
| } | |
| .notification-content { | |
| flex: 1; | |
| } | |
| .notification-title { | |
| font-weight: 600; | |
| margin-bottom: 0.25rem; | |
| } | |
| .notification-message { | |
| color: #666; | |
| font-size: 0.9rem; | |
| margin-bottom: 0.5rem; | |
| } | |
| .notification-time { | |
| font-size: 0.8rem; | |
| color: #999; | |
| } | |
| /* Modals */ | |
| .modal { | |
| display: none; | |
| position: fixed; | |
| z-index: 2000; | |
| left: 0; | |
| top: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: rgba(0, 0, 0, 0.5); | |
| backdrop-filter: blur(5px); | |
| } | |
| .modal-content { | |
| background: white; | |
| margin: 2% auto; | |
| padding: 2rem; | |
| border-radius: 20px; | |
| width: 90%; | |
| max-width: 800px; | |
| max-height: 90vh; | |
| overflow-y: auto; | |
| position: relative; | |
| } | |
| .modal-content.large { | |
| max-width: 1200px; | |
| } | |
| .modal-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 2rem; | |
| padding-bottom: 1rem; | |
| border-bottom: 2px solid rgba(0, 0, 0, 0.1); | |
| } | |
| .close { | |
| font-size: 2rem; | |
| cursor: pointer; | |
| color: #666; | |
| transition: color 0.3s ease; | |
| } | |
| .close:hover { | |
| color: #333; | |
| } | |
| /* Forms */ | |
| .form-group { | |
| margin-bottom: 1.5rem; | |
| } | |
| .form-group label { | |
| display: block; | |
| margin-bottom: 0.5rem; | |
| font-weight: 600; | |
| color: #333; | |
| } | |
| .form-group input, | |
| .form-group textarea, | |
| .form-group select { | |
| width: 100%; | |
| padding: 0.75rem; | |
| border: 2px solid rgba(0, 0, 0, 0.1); | |
| border-radius: 12px; | |
| font-size: 1rem; | |
| transition: border-color 0.3s ease; | |
| } | |
| .form-group input:focus, | |
| .form-group textarea:focus, | |
| .form-group select:focus { | |
| outline: none; | |
| border-color: #667eea; | |
| } | |
| .form-actions { | |
| display: flex; | |
| gap: 1rem; | |
| justify-content: flex-end; | |
| margin-top: 2rem; | |
| } | |
| /* Filter Select */ | |
| .filter-select { | |
| padding: 0.5rem 1rem; | |
| border: 1px solid rgba(0, 0, 0, 0.2); | |
| border-radius: 8px; | |
| background: white; | |
| font-size: 0.9rem; | |
| } | |
| /* Emergency Contacts */ | |
| .emergency-contacts { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 2rem; | |
| } | |
| .contact-group h3 { | |
| margin-bottom: 1rem; | |
| color: #333; | |
| } | |
| .contact-item { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 1rem; | |
| background: rgba(102, 126, 234, 0.05); | |
| border-radius: 12px; | |
| margin-bottom: 0.5rem; | |
| } | |
| .contact-item strong { | |
| color: #333; | |
| } | |
| .contact-item span { | |
| color: #667eea; | |
| font-weight: 600; | |
| } | |
| /* Responsive Design */ | |
| @media (max-width: 768px) { | |
| .professional-container { | |
| padding: 1rem; | |
| } | |
| .professional-header { | |
| flex-direction: column; | |
| gap: 1rem; | |
| text-align: center; | |
| } | |
| .stats-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .sessions-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .quick-actions-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .modal-content { | |
| width: 95%; | |
| margin: 5% auto; | |
| } | |
| } | |
| /* Loading States */ | |
| .loading { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| padding: 2rem; | |
| color: #666; | |
| } | |
| /* Empty States */ | |
| .empty-state { | |
| text-align: center; | |
| padding: 3rem; | |
| color: #666; | |
| } | |
| .empty-state i { | |
| font-size: 3rem; | |
| margin-bottom: 1rem; | |
| opacity: 0.5; | |
| } | |
| .empty-state h3 { | |
| margin-bottom: 0.5rem; | |
| } | |
| .empty-state p { | |
| font-size: 0.9rem; | |
| } | |
| /* Booked Users Section */ | |
| .booked-users-section { | |
| background: rgba(255, 255, 255, 0.95); | |
| padding: 2rem; | |
| border-radius: 20px; | |
| margin-bottom: 2rem; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); | |
| } | |
| .users-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); | |
| gap: 1.5rem; | |
| margin-top: 1.5rem; | |
| } | |
| .user-card { | |
| background: white; | |
| border-radius: 15px; | |
| padding: 1.5rem; | |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); | |
| border-left: 4px solid #e0e0e0; | |
| transition: all 0.3s ease; | |
| } | |
| .user-card:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); | |
| } | |
| .user-card.high-risk { | |
| border-left-color: #e74c3c; | |
| background: linear-gradient(135deg, #fff5f5 0%, #ffffff 100%); | |
| } | |
| .user-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| margin-bottom: 1rem; | |
| } | |
| .user-avatar { | |
| width: 50px; | |
| height: 50px; | |
| border-radius: 50%; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| color: white; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-weight: bold; | |
| font-size: 1.2rem; | |
| } | |
| .user-info h4 { | |
| margin: 0; | |
| color: #333; | |
| font-size: 1.1rem; | |
| } | |
| .user-info p { | |
| margin: 0; | |
| color: #666; | |
| font-size: 0.9rem; | |
| } | |
| .user-status { | |
| padding: 0.25rem 0.75rem; | |
| border-radius: 20px; | |
| font-size: 0.8rem; | |
| font-weight: bold; | |
| text-transform: uppercase; | |
| } | |
| .user-status.status-low { | |
| background: #d4edda; | |
| color: #155724; | |
| } | |
| .user-status.status-medium { | |
| background: #fff3cd; | |
| color: #856404; | |
| } | |
| .user-status.status-high { | |
| background: #f8d7da; | |
| color: #721c24; | |
| } | |
| .user-status.status-critical { | |
| background: #f5c6cb; | |
| color: #721c24; | |
| } | |
| .user-details { | |
| margin-bottom: 1rem; | |
| } | |
| .detail-row { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 0.5rem 0; | |
| border-bottom: 1px solid #f0f0f0; | |
| } | |
| .detail-row:last-child { | |
| border-bottom: none; | |
| } | |
| .detail-label { | |
| font-weight: 600; | |
| color: #666; | |
| font-size: 0.9rem; | |
| } | |
| .detail-value { | |
| color: #333; | |
| font-size: 0.9rem; | |
| } | |
| .user-actions { | |
| display: flex; | |
| gap: 0.5rem; | |
| flex-wrap: wrap; | |
| } | |
| /* User Profile Modal */ | |
| .user-profile-content { | |
| max-height: 80vh; | |
| overflow-y: auto; | |
| } | |
| .user-profile-details { | |
| padding: 1rem; | |
| } | |
| .profile-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 1.5rem; | |
| margin-bottom: 2rem; | |
| padding-bottom: 1rem; | |
| border-bottom: 2px solid #f0f0f0; | |
| } | |
| .profile-avatar { | |
| width: 80px; | |
| height: 80px; | |
| border-radius: 50%; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| color: white; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-weight: bold; | |
| font-size: 2rem; | |
| } | |
| .profile-info h3 { | |
| margin: 0; | |
| color: #333; | |
| font-size: 1.5rem; | |
| } | |
| .profile-info p { | |
| margin: 0.25rem 0; | |
| color: #666; | |
| font-size: 1rem; | |
| } | |
| .risk-badge { | |
| padding: 0.5rem 1rem; | |
| border-radius: 25px; | |
| font-size: 0.9rem; | |
| font-weight: bold; | |
| text-transform: uppercase; | |
| margin-top: 0.5rem; | |
| display: inline-block; | |
| } | |
| .risk-badge.risk-low { | |
| background: #d4edda; | |
| color: #155724; | |
| } | |
| .risk-badge.risk-medium { | |
| background: #fff3cd; | |
| color: #856404; | |
| } | |
| .risk-badge.risk-high { | |
| background: #f8d7da; | |
| color: #721c24; | |
| } | |
| .risk-badge.risk-critical { | |
| background: #f5c6cb; | |
| color: #721c24; | |
| } | |
| .profile-sections { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
| gap: 2rem; | |
| } | |
| .profile-section { | |
| background: #f8f9fa; | |
| padding: 1.5rem; | |
| border-radius: 10px; | |
| border-left: 4px solid #667eea; | |
| } | |
| .profile-section h4 { | |
| margin: 0 0 1rem 0; | |
| color: #333; | |
| font-size: 1.1rem; | |
| border-bottom: 1px solid #e0e0e0; | |
| padding-bottom: 0.5rem; | |
| } | |
| .profile-details { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.75rem; | |
| } | |
| .detail-item { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 0.5rem 0; | |
| } | |
| .detail-item strong { | |
| color: #666; | |
| font-size: 0.9rem; | |
| } | |
| .sessions-list, .risk-history, .conversations-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.75rem; | |
| } | |
| .session-item, .risk-item, .conversation-item { | |
| background: white; | |
| padding: 1rem; | |
| border-radius: 8px; | |
| border-left: 3px solid #e0e0e0; | |
| } | |
| .session-info, .risk-info { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 0.5rem; | |
| } | |
| .session-details, .risk-date, .conv-date { | |
| font-size: 0.8rem; | |
| color: #666; | |
| } | |
| .conv-preview { | |
| font-size: 0.9rem; | |
| color: #333; | |
| margin-bottom: 0.25rem; | |
| } | |
| .session-status { | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 15px; | |
| font-size: 0.7rem; | |
| font-weight: bold; | |
| text-transform: uppercase; | |
| } | |
| .session-status.status-pending { | |
| background: #fff3cd; | |
| color: #856404; | |
| } | |
| .session-status.status-confirmed { | |
| background: #d4edda; | |
| color: #155724; | |
| } | |
| .session-status.status-declined { | |
| background: #f8d7da; | |
| color: #721c24; | |
| } | |
| .risk-level { | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 15px; | |
| font-size: 0.7rem; | |
| font-weight: bold; | |
| text-transform: uppercase; | |
| } | |
| .risk-level.risk-low { | |
| background: #d4edda; | |
| color: #155724; | |
| } | |
| .risk-level.risk-medium { | |
| background: #fff3cd; | |
| color: #856404; | |
| } | |
| .risk-level.risk-high { | |
| background: #f8d7da; | |
| color: #721c24; | |
| } | |
| .risk-level.risk-critical { | |
| background: #f5c6cb; | |
| color: #721c24; | |
| } | |
| .risk-score { | |
| font-weight: bold; | |
| color: #333; | |
| } | |
| /* Responsive Design for User Components */ | |
| @media (max-width: 768px) { | |
| .users-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .profile-sections { | |
| grid-template-columns: 1fr; | |
| } | |
| .profile-header { | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .user-actions { | |
| justify-content: center; | |
| } | |
| } | |
| /* Enhanced Session Details Modal */ | |
| .session-details-modal { | |
| max-height: 90vh; | |
| overflow-y: auto; | |
| } | |
| /* Session Header Section */ | |
| .session-header-section { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 2rem; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| color: white; | |
| border-radius: 15px; | |
| margin-bottom: 2rem; | |
| } | |
| .session-header-info { | |
| display: flex; | |
| align-items: center; | |
| gap: 1.5rem; | |
| } | |
| .session-user-avatar { | |
| width: 80px; | |
| height: 80px; | |
| border-radius: 50%; | |
| background: rgba(255, 255, 255, 0.2); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 2rem; | |
| font-weight: bold; | |
| border: 3px solid rgba(255, 255, 255, 0.3); | |
| } | |
| .session-user-details h2 { | |
| margin: 0; | |
| font-size: 1.8rem; | |
| font-weight: 600; | |
| } | |
| .user-account { | |
| margin: 0.25rem 0; | |
| opacity: 0.9; | |
| font-size: 1rem; | |
| } | |
| .session-meta { | |
| display: flex; | |
| gap: 1rem; | |
| margin-top: 0.5rem; | |
| font-size: 0.9rem; | |
| opacity: 0.8; | |
| } | |
| .session-status-badge { | |
| padding: 0.75rem 1.5rem; | |
| border-radius: 25px; | |
| font-weight: bold; | |
| font-size: 0.9rem; | |
| text-transform: uppercase; | |
| background: rgba(255, 255, 255, 0.2); | |
| border: 2px solid rgba(255, 255, 255, 0.3); | |
| } | |
| /* Session Information Grid */ | |
| .session-info-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
| gap: 1.5rem; | |
| margin-bottom: 2rem; | |
| } | |
| .info-card { | |
| background: white; | |
| border-radius: 15px; | |
| padding: 1.5rem; | |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); | |
| border-left: 4px solid #667eea; | |
| transition: all 0.3s ease; | |
| } | |
| .info-card:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); | |
| } | |
| .info-card h3 { | |
| margin: 0 0 1rem 0; | |
| color: #333; | |
| font-size: 1.2rem; | |
| border-bottom: 2px solid #f0f0f0; | |
| padding-bottom: 0.5rem; | |
| } | |
| .info-item { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 0.75rem 0; | |
| border-bottom: 1px solid #f0f0f0; | |
| } | |
| .info-item:last-child { | |
| border-bottom: none; | |
| } | |
| .info-label { | |
| color: #666; | |
| font-weight: 600; | |
| font-size: 0.9rem; | |
| } | |
| .info-value { | |
| color: #333; | |
| font-weight: 500; | |
| font-size: 0.9rem; | |
| } | |
| .info-value.highlight { | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| font-weight: bold; | |
| } | |
| .info-value.missing-data { | |
| color: #999; | |
| font-style: italic; | |
| opacity: 0.7; | |
| } | |
| .risk-badge { | |
| padding: 0.25rem 0.75rem; | |
| border-radius: 15px; | |
| font-size: 0.8rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| display: inline-block; | |
| } | |
| .risk-badge.risk-low { | |
| background: linear-gradient(135deg, #d4edda, #c3e6cb); | |
| color: #155724; | |
| box-shadow: 0 2px 8px rgba(21, 87, 36, 0.2); | |
| } | |
| .risk-badge.risk-medium { | |
| background: linear-gradient(135deg, #fff3cd, #ffeaa7); | |
| color: #856404; | |
| box-shadow: 0 2px 8px rgba(133, 100, 4, 0.2); | |
| } | |
| .risk-badge.risk-high { | |
| background: linear-gradient(135deg, #f8d7da, #f5c6cb); | |
| color: #721c24; | |
| box-shadow: 0 2px 8px rgba(114, 28, 36, 0.2); | |
| } | |
| .risk-badge.risk-critical { | |
| background: linear-gradient(135deg, #f5c6cb, #f1aeb5); | |
| color: #721c24; | |
| box-shadow: 0 2px 8px rgba(114, 28, 36, 0.3); | |
| animation: pulse 2s infinite; | |
| } | |
| .risk-badge.risk-unknown { | |
| background: linear-gradient(135deg, #e9ecef, #dee2e6); | |
| color: #6c757d; | |
| box-shadow: 0 2px 8px rgba(108, 117, 125, 0.2); | |
| } | |
| @keyframes pulse { | |
| 0%, 100% { transform: scale(1); } | |
| 50% { transform: scale(1.05); } | |
| } | |
| /* Risk Assessment Card */ | |
| .risk-assessment { | |
| border-left-color: #e74c3c; | |
| } | |
| .risk-level-display { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| margin-bottom: 1rem; | |
| padding: 1rem; | |
| border-radius: 10px; | |
| background: #f8f9fa; | |
| } | |
| .risk-level-badge { | |
| padding: 0.5rem 1rem; | |
| border-radius: 20px; | |
| font-weight: bold; | |
| font-size: 0.9rem; | |
| text-transform: uppercase; | |
| } | |
| .risk-level-badge.risk-low { | |
| background: #d4edda; | |
| color: #155724; | |
| } | |
| .risk-level-badge.risk-medium { | |
| background: #fff3cd; | |
| color: #856404; | |
| } | |
| .risk-level-badge.risk-high { | |
| background: #f8d7da; | |
| color: #721c24; | |
| } | |
| .risk-level-badge.risk-critical { | |
| background: #f5c6cb; | |
| color: #721c24; | |
| } | |
| .risk-score-display { | |
| font-size: 1.5rem; | |
| font-weight: bold; | |
| color: #333; | |
| } | |
| .risk-indicators-compact h4 { | |
| margin: 0 0 0.5rem 0; | |
| color: #666; | |
| font-size: 0.9rem; | |
| } | |
| .indicators-tags { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.5rem; | |
| } | |
| .indicator-tag { | |
| background: #e9ecef; | |
| color: #497060; | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 12px; | |
| font-size: 0.8rem; | |
| font-weight: 500; | |
| } | |
| .indicator-more { | |
| background: #667eea; | |
| color: white; | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 12px; | |
| font-size: 0.8rem; | |
| font-weight: 500; | |
| } | |
| /* Contact Information Card */ | |
| .contact-info-card { | |
| border-left-color: #28a745; | |
| } | |
| .contact-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| padding: 0.75rem 0; | |
| border-bottom: 1px solid #f0f0f0; | |
| } | |
| .contact-item:last-child { | |
| border-bottom: none; | |
| } | |
| .contact-icon { | |
| font-size: 1.2rem; | |
| width: 30px; | |
| text-align: center; | |
| } | |
| .contact-details { | |
| flex: 1; | |
| } | |
| .contact-label { | |
| display: block; | |
| color: #666; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| margin-bottom: 0.25rem; | |
| } | |
| .contact-value { | |
| color: #333; | |
| font-weight: 500; | |
| text-decoration: none; | |
| font-size: 0.9rem; | |
| } | |
| .contact-value:hover { | |
| color: #667eea; | |
| } | |
| /* Session Type Styling */ | |
| .session-type-urgent { | |
| background: #f8d7da; | |
| color: #721c24; | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 8px; | |
| font-size: 0.8rem; | |
| font-weight: bold; | |
| } | |
| .session-type-routine { | |
| background: #d4edda; | |
| color: #155724; | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 8px; | |
| font-size: 0.8rem; | |
| font-weight: bold; | |
| } | |
| .session-type-followup { | |
| background: #d1ecf1; | |
| color: #0c5460; | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 8px; | |
| font-size: 0.8rem; | |
| font-weight: bold; | |
| } | |
| .user-comprehensive-info { | |
| margin-top: 2rem; | |
| padding-top: 2rem; | |
| border-top: 2px solid #f0f0f0; | |
| } | |
| .user-info-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
| gap: 2rem; | |
| margin-bottom: 2rem; | |
| } | |
| /* Timeline Components */ | |
| .sessions-timeline, .risk-timeline, .conversations-timeline { | |
| position: relative; | |
| padding-left: 2rem; | |
| } | |
| .sessions-timeline::before, .risk-timeline::before, .conversations-timeline::before { | |
| content: ''; | |
| position: absolute; | |
| left: 1rem; | |
| top: 0; | |
| bottom: 0; | |
| width: 2px; | |
| background: #e0e0e0; | |
| } | |
| .timeline-item, .risk-timeline-item, .conversation-timeline-item { | |
| position: relative; | |
| margin-bottom: 1.5rem; | |
| } | |
| .timeline-marker, .risk-marker, .conv-marker { | |
| position: absolute; | |
| left: -1.5rem; | |
| top: 0.5rem; | |
| width: 12px; | |
| height: 12px; | |
| border-radius: 50%; | |
| background: #667eea; | |
| border: 3px solid white; | |
| box-shadow: 0 0 0 2px #e0e0e0; | |
| } | |
| .risk-marker.risk-low { | |
| background: #28a745; | |
| } | |
| .risk-marker.risk-medium { | |
| background: #ffc107; | |
| } | |
| .risk-marker.risk-high { | |
| background: #fd7e14; | |
| } | |
| .risk-marker.risk-critical { | |
| background: #dc3545; | |
| } | |
| .timeline-content, .risk-content, .conv-content { | |
| background: white; | |
| padding: 1rem; | |
| border-radius: 10px; | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); | |
| border-left: 3px solid #667eea; | |
| } | |
| .timeline-item.current-session .timeline-content { | |
| border-left-color: #28a745; | |
| background: linear-gradient(135deg, #f8fff8, #ffffff); | |
| } | |
| .current-indicator { | |
| background: #28a745; | |
| color: white; | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 12px; | |
| font-size: 0.7rem; | |
| font-weight: bold; | |
| text-transform: uppercase; | |
| margin-top: 0.5rem; | |
| display: inline-block; | |
| } | |
| /* Conversation Summary Section */ | |
| .conversation-summary-section { | |
| margin-top: 2rem; | |
| padding-top: 2rem; | |
| border-top: 2px solid #f0f0f0; | |
| } | |
| .conversation-summary-section h3 { | |
| margin: 0 0 1rem 0; | |
| color: #333; | |
| font-size: 1.3rem; | |
| } | |
| .summary-content { | |
| background: #f8f9fa; | |
| padding: 1.5rem; | |
| border-radius: 10px; | |
| border-left: 4px solid #667eea; | |
| } | |
| .summary-content p { | |
| margin: 0; | |
| line-height: 1.6; | |
| color: #555; | |
| } | |
| /* Additional Session Details */ | |
| .additional-session-details { | |
| margin-top: 2rem; | |
| padding-top: 2rem; | |
| border-top: 2px solid #f0f0f0; | |
| } | |
| .additional-session-details h3 { | |
| margin: 0 0 1.5rem 0; | |
| color: #333; | |
| font-size: 1.3rem; | |
| } | |
| .details-grid { | |
| display: grid; | |
| gap: 1.5rem; | |
| } | |
| .detail-section { | |
| background: white; | |
| padding: 1.5rem; | |
| border-radius: 10px; | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); | |
| border-left: 4px solid #667eea; | |
| } | |
| .detail-section h4 { | |
| margin: 0 0 1rem 0; | |
| color: #333; | |
| font-size: 1.1rem; | |
| } | |
| /* Full Conversation Display */ | |
| .conversation-full { | |
| max-height: 300px; | |
| overflow-y: auto; | |
| border: 1px solid #e0e0e0; | |
| border-radius: 8px; | |
| padding: 1rem; | |
| background: #f8f9fa; | |
| } | |
| .message-item { | |
| margin-bottom: 1rem; | |
| padding: 0.75rem; | |
| border-radius: 8px; | |
| position: relative; | |
| } | |
| .message-item.user-message { | |
| background: #e3f2fd; | |
| margin-left: 2rem; | |
| border-left: 3px solid #2196f3; | |
| } | |
| .message-item.bot-message { | |
| background: #f3e5f5; | |
| margin-right: 2rem; | |
| border-left: 3px solid #9c27b0; | |
| } | |
| .message-content { | |
| margin-bottom: 0.25rem; | |
| line-height: 1.4; | |
| } | |
| .message-time { | |
| font-size: 0.8rem; | |
| color: #666; | |
| font-style: italic; | |
| } | |
| /* Notes and Treatment Content */ | |
| .notes-content, .treatment-content { | |
| background: #f8f9fa; | |
| padding: 1rem; | |
| border-radius: 8px; | |
| border-left: 3px solid #28a745; | |
| } | |
| .notes-content p, .treatment-content p { | |
| margin: 0; | |
| line-height: 1.6; | |
| color: #555; | |
| } | |
| /* Enhanced User Actions */ | |
| .user-actions-section { | |
| margin-top: 2rem; | |
| padding-top: 2rem; | |
| border-top: 2px solid #f0f0f0; | |
| display: flex; | |
| gap: 1rem; | |
| justify-content: center; | |
| flex-wrap: wrap; | |
| } | |
| .user-actions-section .btn { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.75rem 1.5rem; | |
| border-radius: 8px; | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| text-decoration: none; | |
| border: none; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| } | |
| .user-actions-section .btn-primary { | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| color: white; | |
| } | |
| .user-actions-section .btn-primary:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4); | |
| } | |
| .user-actions-section .btn-secondary { | |
| background: #f8f9fa; | |
| color: #666; | |
| border: 1px solid #e0e0e0; | |
| } | |
| .user-actions-section .btn-secondary:hover { | |
| background: #e9ecef; | |
| transform: translateY(-2px); | |
| } | |
| .user-actions-section .btn-success { | |
| background: linear-gradient(135deg, #28a745, #20c997); | |
| color: white; | |
| } | |
| .user-actions-section .btn-success:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 5px 15px rgba(40, 167, 69, 0.4); | |
| } | |
| /* Responsive Design for Enhanced Modal */ | |
| @media (max-width: 768px) { | |
| .session-header-section { | |
| flex-direction: column; | |
| gap: 1rem; | |
| text-align: center; | |
| } | |
| .session-info-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .user-info-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .info-item { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: 0.25rem; | |
| } | |
| .contact-item { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: 0.5rem; | |
| } | |
| .sessions-timeline, .risk-timeline, .conversations-timeline { | |
| padding-left: 1.5rem; | |
| } | |
| .timeline-marker, .risk-marker, .conv-marker { | |
| left: -1.25rem; | |
| } | |
| .message-item.user-message { | |
| margin-left: 0; | |
| } | |
| .message-item.bot-message { | |
| margin-right: 0; | |
| } | |
| .user-actions-section { | |
| flex-direction: column; | |
| align-items: center; | |
| } | |
| .user-actions-section .btn { | |
| width: 100%; | |
| justify-content: center; | |
| } | |
| } | |
| .info-section { | |
| background: rgba(255, 255, 255, 0.95); | |
| padding: 2rem; | |
| border-radius: 16px; | |
| border-left: 5px solid #667eea; | |
| box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(255, 255, 255, 0.2); | |
| backdrop-filter: blur(20px); | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s ease; | |
| } | |
| .info-section:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 12px 35px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(255, 255, 255, 0.3); | |
| } | |
| .info-section::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| right: 0; | |
| width: 80px; | |
| height: 80px; | |
| background: radial-gradient(circle, rgba(102, 126, 234, 0.1) 0%, transparent 70%); | |
| border-radius: 50%; | |
| transform: translate(30px, -30px); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .info-section:hover::before { | |
| opacity: 1; | |
| } | |
| .info-section h4 { | |
| margin: 0 0 1.5rem 0; | |
| color: #333; | |
| font-size: 1.2rem; | |
| font-weight: 700; | |
| border-bottom: 2px solid rgba(102, 126, 234, 0.2); | |
| padding-bottom: 0.75rem; | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .info-section h4::after { | |
| content: ''; | |
| position: absolute; | |
| bottom: -2px; | |
| left: 0; | |
| width: 30px; | |
| height: 2px; | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| border-radius: 1px; | |
| } | |
| .info-item { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 1rem 0; | |
| border-bottom: 1px solid rgba(0, 0, 0, 0.05); | |
| transition: all 0.2s ease; | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .info-item:last-child { | |
| border-bottom: none; | |
| } | |
| .info-item:hover { | |
| background: rgba(102, 126, 234, 0.05); | |
| border-radius: 8px; | |
| padding-left: 0.5rem; | |
| padding-right: 0.5rem; | |
| } | |
| .info-item strong { | |
| color: #555; | |
| font-size: 0.95rem; | |
| font-weight: 600; | |
| min-width: 140px; | |
| } | |
| .recent-sessions-section, | |
| .risk-history-section, | |
| .conversation-history-section { | |
| margin-top: 1.5rem; | |
| padding-top: 1.5rem; | |
| border-top: 1px solid #e0e0e0; | |
| } | |
| .recent-sessions-section h4, | |
| .risk-history-section h4, | |
| .conversation-history-section h4 { | |
| margin: 0 0 1rem 0; | |
| color: #333; | |
| font-size: 1.1rem; | |
| border-bottom: 1px solid #e0e0e0; | |
| padding-bottom: 0.5rem; | |
| } | |
| .session-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 0.5rem; | |
| } | |
| .session-header strong { | |
| color: #333; | |
| font-size: 0.9rem; | |
| } | |
| .session-details { | |
| display: flex; | |
| gap: 1rem; | |
| font-size: 0.8rem; | |
| color: #666; | |
| } | |
| .session-details span { | |
| background: #f0f0f0; | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 4px; | |
| } | |
| /* Responsive Design for Session Details */ | |
| @media (max-width: 768px) { | |
| .user-info-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .info-item { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: 0.25rem; | |
| } | |
| .info-item strong { | |
| min-width: auto; | |
| } | |
| .session-details { | |
| flex-direction: column; | |
| gap: 0.25rem; | |
| } | |
| } | |
| .user-actions-section { | |
| margin-top: 1.5rem; | |
| padding-top: 1.5rem; | |
| border-top: 1px solid #e0e0e0; | |
| display: flex; | |
| gap: 1rem; | |
| justify-content: center; | |
| } | |
| .user-actions-section .btn { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.75rem 1.5rem; | |
| border-radius: 8px; | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| text-decoration: none; | |
| border: none; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| } | |
| .user-actions-section .btn-primary { | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| color: white; | |
| } | |
| .user-actions-section .btn-primary:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4); | |
| } | |
| .user-actions-section .btn-secondary { | |
| background: #f8f9fa; | |
| color: #666; | |
| border: 1px solid #e0e0e0; | |
| } | |
| .user-actions-section .btn-secondary:hover { | |
| background: #e9ecef; | |
| transform: translateY(-2px); | |
| } | |
| @media (max-width: 768px) { | |
| .user-actions-section { | |
| flex-direction: column; | |
| align-items: center; | |
| } | |
| .user-actions-section .btn { | |
| width: 100%; | |
| justify-content: center; | |
| } | |
| } | |
| /* AdminLTE 4 Additional Enhancements for Professional Dashboard */ | |
| /* Toast Notifications */ | |
| .toast { | |
| background: rgba(255, 255, 255, 0.98) ; | |
| border: none ; | |
| border-radius: 16px ; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2) ; | |
| color: #333 ; | |
| } | |
| .toast-header { | |
| background: rgba(102, 126, 234, 0.1) ; | |
| border-bottom: 1px solid rgba(0, 0, 0, 0.1) ; | |
| color: #333 ; | |
| border-radius: 16px 16px 0 0 ; | |
| } | |
| /* DataTables Integration */ | |
| .dataTables_wrapper { | |
| color: #333 ; | |
| } | |
| .dataTables_wrapper .dataTables_length, | |
| .dataTables_wrapper .dataTables_filter, | |
| .dataTables_wrapper .dataTables_info, | |
| .dataTables_wrapper .dataTables_processing, | |
| .dataTables_wrapper .dataTables_paginate { | |
| color: #333 ; | |
| } | |
| .dataTables_wrapper .dataTables_filter input { | |
| background: rgba(255, 255, 255, 0.9) ; | |
| border: 1px solid rgba(0, 0, 0, 0.1) ; | |
| color: #333 ; | |
| border-radius: 12px ; | |
| } | |
| .dataTables_wrapper .dataTables_length select { | |
| background: rgba(255, 255, 255, 0.9) ; | |
| border: 1px solid rgba(0, 0, 0, 0.1) ; | |
| color: #333 ; | |
| border-radius: 12px ; | |
| } | |
| .dataTables_wrapper .dataTables_paginate .paginate_button { | |
| background: rgba(255, 255, 255, 0.9) ; | |
| border: 1px solid rgba(0, 0, 0, 0.1) ; | |
| color: #333 ; | |
| border-radius: 8px ; | |
| margin: 0 2px ; | |
| } | |
| .dataTables_wrapper .dataTables_paginate .paginate_button:hover { | |
| background: rgba(102, 126, 234, 0.1) ; | |
| color: #667eea ; | |
| } | |
| .dataTables_wrapper .dataTables_paginate .paginate_button.current { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) ; | |
| color: white ; | |
| } | |
| /* Select2 Integration */ | |
| .select2-container--default .select2-selection--single { | |
| background: rgba(255, 255, 255, 0.9) ; | |
| border: 1px solid rgba(0, 0, 0, 0.1) ; | |
| color: #333 ; | |
| border-radius: 12px ; | |
| height: 48px ; | |
| } | |
| .select2-container--default .select2-selection--single .select2-selection__rendered { | |
| color: #333 ; | |
| line-height: 48px ; | |
| padding-left: 16px ; | |
| } | |
| .select2-container--default .select2-dropdown { | |
| background: rgba(255, 255, 255, 0.98) ; | |
| border: none ; | |
| border-radius: 12px ; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2) ; | |
| } | |
| .select2-container--default .select2-results__option { | |
| color: #333 ; | |
| padding: 12px 16px ; | |
| } | |
| .select2-container--default .select2-results__option--highlighted[aria-selected] { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) ; | |
| color: white ; | |
| } | |
| /* Chart.js Integration */ | |
| .chart-container { | |
| background: rgba(255, 255, 255, 0.98) ; | |
| border: none ; | |
| border-radius: 16px ; | |
| padding: 24px ; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) ; | |
| } | |
| /* SweetAlert2 Integration */ | |
| .swal2-popup { | |
| background: rgba(255, 255, 255, 0.98) ; | |
| color: #333 ; | |
| border-radius: 20px ; | |
| box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2) ; | |
| } | |
| .swal2-title { | |
| color: #333 ; | |
| font-weight: 700 ; | |
| } | |
| .swal2-content { | |
| color: #666 ; | |
| } | |
| .swal2-confirm { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) ; | |
| border-radius: 12px ; | |
| font-weight: 600 ; | |
| } | |
| .swal2-cancel { | |
| background: rgba(255, 255, 255, 0.9) ; | |
| color: #333 ; | |
| border: 1px solid rgba(0, 0, 0, 0.1) ; | |
| border-radius: 12px ; | |
| font-weight: 600 ; | |
| } | |
| /* Loading States */ | |
| .loading { | |
| opacity: 0.6; | |
| pointer-events: none; | |
| position: relative; | |
| } | |
| .loading::after { | |
| content: ''; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 20px; | |
| height: 20px; | |
| margin: -10px 0 0 -10px; | |
| border: 2px solid rgba(102, 126, 234, 0.3); | |
| border-top: 2px solid #667eea; | |
| border-radius: 50%; | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| 0% { transform: rotate(0deg); } | |
| 100% { transform: rotate(360deg); } | |
| } | |
| .spinner-border { | |
| color: #667eea ; | |
| } | |
| /* Enhanced Animations */ | |
| .fade-in { | |
| animation: fadeIn 0.5s ease-in; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .slide-in { | |
| animation: slideIn 0.4s ease-out; | |
| } | |
| @keyframes slideIn { | |
| from { transform: translateX(-100%); } | |
| to { transform: translateX(0); } | |
| } | |
| .bounce-in { | |
| animation: bounceIn 0.6s ease-out; | |
| } | |
| @keyframes bounceIn { | |
| 0% { | |
| opacity: 0; | |
| transform: scale(0.3); | |
| } | |
| 50% { | |
| opacity: 1; | |
| transform: scale(1.05); | |
| } | |
| 70% { | |
| transform: scale(0.9); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| } | |
| /* Mobile Menu Toggle */ | |
| .mobile-menu-toggle { | |
| display: none; | |
| position: fixed; | |
| top: 20px; | |
| left: 20px; | |
| z-index: 1000; | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| color: white; | |
| border: none; | |
| padding: 12px; | |
| border-radius: 12px; | |
| cursor: pointer; | |
| box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3); | |
| transition: all 0.3s ease; | |
| } | |
| .mobile-menu-toggle:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4); | |
| } | |
| /* Responsive Enhancements */ | |
| @media (max-width: 768px) { | |
| .mobile-menu-toggle { | |
| display: block; | |
| } | |
| .professional-container { | |
| padding: 1rem; | |
| } | |
| .professional-header { | |
| flex-direction: column; | |
| text-align: center; | |
| gap: 1rem; | |
| } | |
| .stats-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 1rem; | |
| } | |
| .quick-actions-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 1rem; | |
| } | |
| .users-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .sessions-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .modal-content { | |
| margin: 5% auto; | |
| width: 95%; | |
| } | |
| .modal-content.large { | |
| margin: 2% auto; | |
| width: 98%; | |
| } | |
| } | |
| /* Print Styles */ | |
| @media print { | |
| .mobile-menu-toggle, | |
| .btn, | |
| .modal { | |
| display: none ; | |
| } | |
| .professional-container { | |
| padding: 0 ; | |
| max-width: 100% ; | |
| } | |
| .card { | |
| border: 1px solid #000 ; | |
| box-shadow: none ; | |
| break-inside: avoid; | |
| } | |
| .stats-grid, | |
| .quick-actions-grid, | |
| .users-grid, | |
| .sessions-grid { | |
| display: block ; | |
| } | |
| .stat-card, | |
| .action-btn, | |
| .user-card, | |
| .session-card { | |
| margin-bottom: 1rem ; | |
| page-break-inside: avoid; | |
| } | |
| } |