Spaces:
Runtime error
Runtime error
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body, | |
| html { | |
| height: 100%; | |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; | |
| background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); | |
| color: #e2e8f0; | |
| } | |
| .chat-container { | |
| display: flex; | |
| flex-direction: column; | |
| max-width: 800px; | |
| height: 90vh; | |
| margin: 5vh auto; | |
| background: rgba(30, 41, 59, 0.7); | |
| border-radius: 20px; | |
| box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1); | |
| backdrop-filter: blur(16px); | |
| overflow: hidden; | |
| } | |
| .chat-header { | |
| padding: 20px 30px; | |
| background: rgba(15, 23, 42, 0.6); | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.05); | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .bot-info { | |
| display: flex; | |
| align-items: center; | |
| gap: 15px; | |
| } | |
| .avatar-container { | |
| position: relative; | |
| } | |
| .bot-avatar { | |
| width: 50px; | |
| height: 50px; | |
| border-radius: 50%; | |
| object-fit: cover; | |
| background: #e2e8f0; | |
| padding: 5px; | |
| box-shadow: 0 0 15px rgba(56, 189, 248, 0.3); | |
| } | |
| .avatar { | |
| width: 40px; | |
| height: 40px; | |
| border-radius: 50%; | |
| object-fit: cover; | |
| background: #e2e8f0; | |
| padding: 4px; | |
| } | |
| .user-message .avatar { | |
| background: #38bdf8; | |
| padding: 0; | |
| } | |
| .status-indicator { | |
| position: absolute; | |
| bottom: 2px; | |
| right: 2px; | |
| width: 12px; | |
| height: 12px; | |
| background: #10b981; | |
| border-radius: 50%; | |
| border: 2px solid #1e293b; | |
| box-shadow: 0 0 8px rgba(16, 185, 129, 0.6); | |
| } | |
| .text-info h1 { | |
| font-size: 1.25rem; | |
| font-weight: 600; | |
| color: #f8fafc; | |
| margin-bottom: 4px; | |
| letter-spacing: 0.5px; | |
| } | |
| .text-info p { | |
| font-size: 0.85rem; | |
| color: #94a3b8; | |
| } | |
| .chat-box { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: 30px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 20px; | |
| scroll-behavior: smooth; | |
| } | |
| /* Custom Scrollbar */ | |
| .chat-box::-webkit-scrollbar { | |
| width: 8px; | |
| } | |
| .chat-box::-webkit-scrollbar-track { | |
| background: rgba(0, 0, 0, 0.1); | |
| } | |
| .chat-box::-webkit-scrollbar-thumb { | |
| background: rgba(255, 255, 255, 0.1); | |
| border-radius: 4px; | |
| } | |
| .chat-box::-webkit-scrollbar-thumb:hover { | |
| background: rgba(255, 255, 255, 0.2); | |
| } | |
| .message { | |
| display: flex; | |
| gap: 15px; | |
| max-width: 85%; | |
| align-items: flex-end; | |
| } | |
| .user-message { | |
| align-self: flex-end; | |
| /* user messages put Avatar on the right, content on the left */ | |
| } | |
| .bot-message { | |
| align-self: flex-start; | |
| } | |
| .message-content { | |
| padding: 15px 20px; | |
| border-radius: 20px; | |
| font-size: 0.95rem; | |
| line-height: 1.5; | |
| position: relative; | |
| box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); | |
| } | |
| .bot-message .message-content { | |
| background: rgba(51, 65, 85, 0.8); | |
| color: #f1f5f9; | |
| border-bottom-left-radius: 4px; | |
| } | |
| .user-message .message-content { | |
| background: linear-gradient(135deg, #0ea5e9, #38bdf8); | |
| color: #ffffff; | |
| border-bottom-right-radius: 4px; | |
| } | |
| .error-message .message-content { | |
| background: rgba(239, 68, 68, 0.2); | |
| border: 1px solid rgba(239, 68, 68, 0.4); | |
| color: #fca5a5; | |
| } | |
| .time { | |
| display: block; | |
| font-size: 0.7rem; | |
| margin-top: 8px; | |
| opacity: 0.7; | |
| text-align: right; | |
| } | |
| .chat-footer { | |
| padding: 20px 30px; | |
| background: rgba(15, 23, 42, 0.8); | |
| border-top: 1px solid rgba(255, 255, 255, 0.05); | |
| } | |
| .input-form { | |
| display: flex; | |
| gap: 15px; | |
| background: rgba(255, 255, 255, 0.05); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| border-radius: 30px; | |
| padding: 8px 8px 8px 20px; | |
| transition: all 0.3s ease; | |
| } | |
| .input-form:focus-within { | |
| border-color: rgba(56, 189, 248, 0.5); | |
| background: rgba(255, 255, 255, 0.08); | |
| box-shadow: 0 0 0 4px rgba(56, 189, 248, 0.1); | |
| } | |
| .input-form input { | |
| flex: 1; | |
| background: transparent; | |
| border: none; | |
| color: #f8fafc; | |
| font-size: 1rem; | |
| outline: none; | |
| font-family: inherit; | |
| } | |
| .input-form input::placeholder { | |
| color: #64748b; | |
| } | |
| .input-form button { | |
| background: linear-gradient(135deg, #0ea5e9, #38bdf8); | |
| border: none; | |
| border-radius: 50%; | |
| width: 45px; | |
| height: 45px; | |
| color: white; | |
| font-size: 1.1rem; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| transition: transform 0.2s ease, box-shadow 0.2s ease; | |
| } | |
| .input-form button:hover { | |
| transform: scale(1.05); | |
| box-shadow: 0 0 15px rgba(56, 189, 248, 0.4); | |
| } | |
| .input-form button:active { | |
| transform: scale(0.95); | |
| } | |
| /* Animations */ | |
| @keyframes slideIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .slide-in { | |
| animation: slideIn 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; | |
| } | |
| .intro-animation { | |
| animation: slideIn 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; | |
| animation-delay: 0.2s; | |
| } | |
| /* Typing Indicator */ | |
| .typing-dots { | |
| display: flex; | |
| gap: 4px; | |
| padding: 4px 8px; | |
| } | |
| .typing-dots span { | |
| width: 8px; | |
| height: 8px; | |
| background: #94a3b8; | |
| border-radius: 50%; | |
| animation: blink 1.4s infinite both; | |
| } | |
| .typing-dots span:nth-child(1) { | |
| animation-delay: 0.2s; | |
| } | |
| .typing-dots span:nth-child(2) { | |
| animation-delay: 0.4s; | |
| } | |
| .typing-dots span:nth-child(3) { | |
| animation-delay: 0.6s; | |
| } | |
| @keyframes blink { | |
| 0% { | |
| opacity: 0.2; | |
| transform: scale(0.8); | |
| } | |
| 20% { | |
| opacity: 1; | |
| transform: scale(1.1); | |
| } | |
| 100% { | |
| opacity: 0.2; | |
| transform: scale(0.8); | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .chat-container { | |
| margin: 0; | |
| height: 100vh; | |
| border-radius: 0; | |
| max-width: 100%; | |
| } | |
| } |