Monish Vijay Kumar
Deploy Northwestern CS Kiosk Docker Space with checkpoint and inference runtime
7056be6
Raw
History Blame
4.64 kB
.app-shell {
display: flex;
height: var(--app-shell-height, 100vh);
color: #1c1f25;
background: #f4f5fb;
overflow: hidden;
}
.sidebar {
width: 320px;
background: #fff;
border-right: 1px solid #e5e7ef;
display: flex;
flex-direction: column;
height: 100%;
}
.sidebar-header {
padding: 1.5rem;
border-bottom: 1px solid #eef0f7;
display: flex;
flex-direction: column;
gap: 0.75rem;
position: sticky;
top: 0;
background: #fff;
z-index: 1;
}
.sidebar-header h2 {
margin: 0;
font-size: 1.1rem;
}
.sidebar-header p {
margin: 0;
color: #6b7280;
font-size: 0.9rem;
}
.new-chat {
align-self: flex-start;
background: #5b21b6;
color: #fff;
border: none;
padding: 0.55rem 1rem;
border-radius: 999px;
font-weight: 600;
cursor: pointer;
transition: background 0.2s ease;
}
.new-chat:hover {
background: #4c1d95;
}
.session-list {
flex: 1;
overflow-y: auto;
padding: 0.75rem 0;
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.session-item {
border: none;
background: transparent;
text-align: left;
padding: 0.75rem 1.25rem;
display: flex;
flex-direction: column;
gap: 0.25rem;
transition: background 0.15s ease, color 0.15s ease;
cursor: pointer;
}
.session-item .title {
font-weight: 600;
}
.session-item .timestamp {
font-size: 0.85rem;
color: #6b7280;
}
.session-item:hover {
background: #f4f5fb;
}
.session-item.active {
background: #ede9fe;
}
.chat-pane {
flex: 1;
display: flex;
flex-direction: column;
padding: 1.25rem 2rem 1.25rem;
gap: 1rem;
height: 100%;
overflow: hidden;
}
.chat-header {
display: flex;
justify-content: space-between;
gap: 1.5rem;
flex-wrap: wrap;
padding-bottom: 0.75rem;
position: sticky;
top: 0;
background: #f4f5fb;
z-index: 1;
}
.chat-header h1 {
margin: 0;
font-size: 1.6rem;
}
.chat-header p {
margin: 0.35rem 0 0;
color: #6b7280;
}
.model-picker {
min-width: 240px;
display: flex;
flex-direction: column;
gap: 0.35rem;
}
.model-picker label {
font-size: 0.85rem;
font-weight: 600;
color: #4b5563;
}
.model-picker select {
padding: 0.4rem 0.6rem;
border-radius: 0.5rem;
border: 1px solid #d4d4d8;
background: #fff;
}
.model-note {
margin: 0;
font-size: 0.85rem;
color: #6b7280;
}
.chat-log {
flex: 1;
background: #fff;
border: 1px solid #e5e7ef;
border-radius: 1rem;
padding: 1.25rem;
overflow-y: auto;
display: flex;
flex-direction: column;
gap: 1rem;
min-height: 0;
}
.history-entry {
display: flex;
flex-direction: column;
gap: 0.4rem;
}
.message {
border-radius: 0.75rem;
padding: 0.85rem 1rem;
max-width: 720px;
background: #f3f4f6;
position: relative;
}
.message.user {
align-self: flex-start;
background: #eef2ff;
}
.message.assistant {
align-self: flex-start;
background: #f9fafb;
}
.message.pending {
opacity: 0.8;
}
.message .content {
margin: 0;
white-space: pre-wrap;
}
.message .meta {
margin-top: 0.5rem;
font-size: 0.8rem;
color: #6b7280;
}
.provenance {
font-size: 0.85rem;
}
.provenance summary {
cursor: pointer;
color: #4c1d95;
}
.provenance-body {
margin-top: 0.5rem;
border-left: 3px solid #ede9fe;
padding-left: 0.75rem;
color: #4b5563;
}
.provenance-body h4 {
margin-bottom: 0.3rem;
}
.provenance-body ul {
margin: 0 0 0.4rem;
padding-left: 1.2rem;
}
.composer {
display: flex;
gap: 0.75rem;
border: 1px solid #d4d4d8;
border-radius: 1rem;
padding: 0.75rem;
background: #fff;
position: sticky;
bottom: 1rem;
box-shadow: 0 10px 40px rgba(15, 23, 42, 0.08);
z-index: 1;
}
.composer textarea {
flex: 1;
border: none;
resize: none;
font-family: inherit;
font-size: 1rem;
line-height: 1.4;
}
.composer textarea:focus {
outline: none;
}
.composer button {
align-self: flex-end;
border: none;
background: #5b21b6;
color: #fff;
font-weight: 600;
padding: 0.6rem 1.5rem;
border-radius: 0.75rem;
cursor: pointer;
transition: background 0.2s ease;
}
.composer button:disabled {
background: #c4b5fd;
cursor: not-allowed;
}
.empty-state {
text-align: center;
color: #6b7280;
padding: 2rem 0;
}
.error {
color: #b91c1c;
margin: 0.5rem 1rem;
}
.status {
color: #6b7280;
margin: 0;
}
@media (max-width: 960px) {
.app-shell {
flex-direction: column;
height: auto;
overflow: visible;
}
.sidebar {
width: 100%;
border-right: none;
border-bottom: 1px solid #e5e7ef;
height: auto;
}
.chat-pane {
height: auto;
padding: 1.25rem;
}
.composer {
position: static;
box-shadow: none;
}
}