Spaces:
Sleeping
Sleeping
Monish Vijay Kumar
Deploy Northwestern CS Kiosk Docker Space with checkpoint and inference runtime
7056be6 | .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; | |
| } | |
| } | |