Spaces:
Sleeping
Sleeping
| /* ChatWindow styles */ | |
| .chat-window { | |
| display: flex; | |
| flex-direction: column; | |
| flex: 1; | |
| height: 0; /* allows flex children to scroll */ | |
| min-height: 0; | |
| background-color: var(--color-bg); | |
| position: relative; | |
| } | |
| /* Connection status banner */ | |
| .connection-banner { | |
| background-color: var(--color-warning-light); | |
| color: var(--color-warning); | |
| border-bottom: 2px solid var(--color-warning); | |
| font-size: 18px; | |
| font-weight: 600; | |
| text-align: center; | |
| padding: 12px 20px; | |
| flex-shrink: 0; | |
| } | |
| /* Scrollable message list */ | |
| .chat-messages { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: 24px 20px; | |
| display: flex; | |
| flex-direction: column; | |
| scroll-behavior: smooth; | |
| } | |
| /* Responsive max width for readability */ | |
| @media (min-width: 768px) { | |
| .chat-messages { | |
| padding: 28px 40px; | |
| } | |
| } | |
| /* Empty state */ | |
| .chat-empty { | |
| flex: 1; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| padding: 40px; | |
| } | |
| .chat-empty__text { | |
| font-size: 22px; | |
| color: var(--color-text-light); | |
| line-height: 1.7; | |
| max-width: 480px; | |
| border: 2px dashed var(--color-border); | |
| border-radius: var(--radius-lg); | |
| padding: 32px 40px; | |
| background-color: var(--color-white); | |
| } | |
| /* Typing indicator */ | |
| .typing-indicator { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| padding: 12px 0 4px; | |
| margin-bottom: 4px; | |
| } | |
| .typing-indicator__dots { | |
| display: flex; | |
| align-items: center; | |
| gap: 5px; | |
| background-color: var(--color-white); | |
| border: 1px solid var(--color-border); | |
| border-radius: var(--radius-full); | |
| padding: 10px 16px; | |
| box-shadow: 0 1px 4px var(--color-shadow); | |
| } | |
| .typing-indicator__dots span { | |
| display: block; | |
| width: 10px; | |
| height: 10px; | |
| border-radius: 50%; | |
| background-color: var(--color-primary); | |
| animation: pulse 1.4s ease-in-out infinite; | |
| } | |
| .typing-indicator__dots span:nth-child(2) { | |
| animation-delay: 0.2s; | |
| } | |
| .typing-indicator__dots span:nth-child(3) { | |
| animation-delay: 0.4s; | |
| } | |
| .typing-indicator__label { | |
| font-size: 17px; | |
| color: var(--color-text-light); | |
| font-style: italic; | |
| } | |
| @keyframes pulse { | |
| 0%, 100% { opacity: 1; transform: scale(1); } | |
| 50% { opacity: 0.3; transform: scale(0.8); } | |
| } | |