html, body {
margin: 0;
padding: 0;
height: 100%;
overflow: hidden;
}
.sidebar-container {
display: flex;
flex-direction: column;
height: 100vh;
}
#chat-container {
flex: 1;
overflow-y: auto;
padding: 16px 0;
}
.bottom-container {
border-top: 1px solid #e0e0e0;
background: white;
padding: 8px;
}
#messages-container {
height: 100%;
overflow-y: auto;
}
.input-container {
display: flex;
gap: 8px;
padding: 0;
align-items: center;
}
#chat-input {
flex: 1;
padding: 8px;
border: 1px solid #ced4da;
border-radius: 4px;
resize: vertical;
height: 4.5em;
min-height: 4.5em;
max-height: 100px;
font-size: 14px;
}
#send-button {
padding: 8px;
background: #007bff;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
height: 4.5em;
}
#send-button:hover {
background: #0056b3;
}
.connection-status {
padding: 6px;
text-align: center;
background: #dc3545;
color: white;
border-radius: 4px;
margin-bottom: 8px;
font-size: 12px;
}
.connection-status.connected {
background: #28a745;
}
.connection-status.disconnected {
background: #dc3545;
}
/* Message block styles */
.message-block {
display: flex;
padding: 8px 16px;
gap: 12px;
align-items: flex-start;
width: 100%;
box-sizing: border-box;
}
.actor-icon {
width: 32px;
height: 32px;
flex-shrink: 0;
border-radius: 50%;
}
.actor-icon img {
width: 24px;
height: 24px;
padding: 4px;
border-radius: 50%;
}
.actor-name {
font-weight: 600;
font-size: 14px;
color: #2c2c2c;
margin-bottom: 4px;
}
.message-text {
font-size: 14px;
color: #4a4a4a;
line-height: 1.4;
word-wrap: break-word;
white-space: pre-wrap;
}
.message-time {
font-size: 12px;
color: #888;
white-space: nowrap;
margin-left: auto;
flex-shrink: 0;
}
/* For messages from the same actor */
.message-block.same-actor {
padding-left: 60px;
}
/* Add this new style for user messages with previous messages */
.message-block[data-actor="user"]:not(:first-child) {
border-top: 1px solid #e0e0e0;
}
.message-block.same-actor .actor-icon {
display: none;
}
.message-block + .message-block {
margin-top: 4px;
}
/* Message block styles */
.message-content {
flex: 1;
display: flex;
flex-direction: column;
position: relative;
}
/* Progress indicator styles */
.message-text.progress-message {
position: relative;
min-height: 4px;
width: 100%;
margin: 8px 0;
background: #f5f5f5;
overflow: hidden;
}
.progress-bar {
position: absolute;
bottom: 0;
left: 0;
height: 4px;
width: 100%;
background: linear-gradient(90deg,
transparent 0%,
#007bff 0%,
#00bcd4 30%,
transparent 30%
);
border-radius: 2px;
animation: progress-animation 1.5s infinite ease-in-out;
}
@keyframes progress-animation {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}