2026-05-14 20:24:41 +07:00
|
|
|
* {
|
2026-05-14 20:46:21 +07:00
|
|
|
box-sizing: border-box;
|
2026-05-14 20:24:41 +07:00
|
|
|
margin: 0;
|
|
|
|
|
padding: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body {
|
2026-05-14 20:46:21 +07:00
|
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
|
|
|
background: #1e1e2e;
|
|
|
|
|
color: #cdd6f4;
|
|
|
|
|
height: 100vh;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#root {
|
|
|
|
|
height: 100%;
|
2026-05-14 20:24:41 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app {
|
2026-05-14 20:46:21 +07:00
|
|
|
display: flex;
|
|
|
|
|
height: 100vh;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sidebar {
|
|
|
|
|
width: 220px;
|
|
|
|
|
background: #181825;
|
|
|
|
|
border-right: 1px solid #313244;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sidebar-header {
|
|
|
|
|
padding: 16px;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
color: #cdd6f4;
|
|
|
|
|
border-bottom: 1px solid #313244;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sidebar-placeholder {
|
|
|
|
|
padding: 16px;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #6c7086;
|
|
|
|
|
flex: 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.main {
|
|
|
|
|
flex: 1;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
overflow: hidden;
|
2026-05-14 20:24:41 +07:00
|
|
|
}
|
|
|
|
|
|
2026-05-14 20:46:21 +07:00
|
|
|
.header {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
padding: 12px 20px;
|
|
|
|
|
border-bottom: 1px solid #313244;
|
|
|
|
|
background: #181825;
|
|
|
|
|
flex-shrink: 0;
|
2026-05-14 20:24:41 +07:00
|
|
|
}
|
|
|
|
|
|
2026-05-14 20:46:21 +07:00
|
|
|
.header h1 {
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
color: #cdd6f4;
|
2026-05-14 20:24:41 +07:00
|
|
|
}
|
2026-05-14 20:46:21 +07:00
|
|
|
|
|
|
|
|
.ws-status {
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
padding: 3px 8px;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ws-status[data-status="connected"] {
|
|
|
|
|
background: #a6e3a1;
|
|
|
|
|
color: #1e1e2e;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ws-status[data-status="disconnected"],
|
|
|
|
|
.ws-status[data-status="error"] {
|
|
|
|
|
background: #f38ba8;
|
|
|
|
|
color: #1e1e2e;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ws-status[data-status="connecting"] {
|
|
|
|
|
background: #f9e2af;
|
|
|
|
|
color: #1e1e2e;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.content {
|
|
|
|
|
flex: 1;
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
padding: 16px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-list {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
gap: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.empty-state {
|
|
|
|
|
text-align: center;
|
|
|
|
|
color: #6c7086;
|
|
|
|
|
padding: 40px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-item {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 12px;
|
|
|
|
|
padding: 10px 12px;
|
|
|
|
|
background: #181825;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
border: 1px solid #313244;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-item.type-deleted {
|
|
|
|
|
opacity: 0.6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-avatar {
|
|
|
|
|
width: 32px;
|
|
|
|
|
height: 32px;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-body {
|
|
|
|
|
flex: 1;
|
|
|
|
|
min-width: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-username {
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
color: #89b4fa;
|
|
|
|
|
margin-right: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-time {
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
color: #6c7086;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-deleted {
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
color: #f38ba8;
|
|
|
|
|
margin-left: 8px;
|
|
|
|
|
font-style: italic;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-content {
|
|
|
|
|
margin-top: 4px;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
color: #bac2de;
|
|
|
|
|
white-space: pre-wrap;
|
|
|
|
|
word-break: break-word;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.review-panel {
|
|
|
|
|
border-top: 1px solid #313244;
|
|
|
|
|
background: #181825;
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.review-placeholder {
|
|
|
|
|
padding: 16px;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #6c7086;
|
|
|
|
|
}
|