Spaces:
Sleeping
Sleeping
File size: 2,182 Bytes
fca46f5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | /* 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); }
}
|