| :root { |
| --bg: #0f172a; |
| --panel: #1e293b; |
| --accent: #6366f1; |
| --user: #2563eb; |
| --bot: #334155; |
| --text: #e2e8f0; |
| --muted: #94a3b8; |
| } |
|
|
| * { box-sizing: border-box; } |
|
|
| body { |
| margin: 0; |
| font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; |
| background: var(--bg); |
| color: var(--text); |
| } |
|
|
| main { |
| max-width: 820px; |
| margin: 0 auto; |
| min-height: 100vh; |
| display: flex; |
| flex-direction: column; |
| padding: 16px; |
| } |
|
|
| header h1 { margin: 0 0 4px; font-size: 1.6rem; } |
| .tagline { margin: 0 0 12px; color: var(--muted); font-size: 0.9rem; } |
|
|
| .controls { |
| background: var(--panel); |
| border-radius: 12px; |
| padding: 14px; |
| margin-bottom: 12px; |
| } |
| .filelabel { display: block; font-weight: 600; margin-bottom: 10px; } |
| .filelabel input { display: block; margin-top: 6px; } |
|
|
| .row { display: flex; gap: 12px; flex-wrap: wrap; } |
| .row label { flex: 1; display: flex; flex-direction: column; font-size: 0.8rem; color: var(--muted); } |
| .row input { |
| margin-top: 4px; padding: 8px; border-radius: 8px; border: 1px solid #334155; |
| background: #0b1220; color: var(--text); font-size: 0.9rem; |
| } |
|
|
| .status { margin-top: 10px; font-size: 0.85rem; color: var(--muted); } |
| .status.err { color: #f87171; } |
|
|
| .chat { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; padding: 8px 0; } |
|
|
| .msg { display: flex; flex-direction: column; max-width: 80%; } |
| .msg.user { align-self: flex-end; align-items: flex-end; } |
| .msg.bot { align-self: flex-start; } |
|
|
| .bubble { |
| padding: 10px 14px; border-radius: 14px; line-height: 1.4; white-space: pre-wrap; |
| background: var(--bot); color: var(--text); |
| } |
| .msg.user .bubble { background: var(--user); } |
| .msg.bot.err .bubble { background: #7f1d1d; } |
|
|
| .source { font-size: 0.72rem; color: var(--muted); margin-top: 4px; max-width: 80%; } |
|
|
| .composer { display: flex; gap: 8px; margin-top: 12px; } |
| .composer textarea { |
| flex: 1; resize: none; padding: 10px; border-radius: 10px; border: 1px solid #334155; |
| background: #0b1220; color: var(--text); font-size: 0.95rem; |
| } |
| #send { |
| padding: 0 18px; border: none; border-radius: 10px; cursor: pointer; |
| background: var(--accent); color: white; font-weight: 600; |
| } |
| #send:hover { filter: brightness(1.1); } |
|
|