:root{--bg: #faf9f7;--bg-sidebar: #f0eee7;--bg-bubble-user: #e8e6df;--bg-bubble-assistant: transparent;--text: #2d2a26;--text-muted: #8a8478;--border: #e0ddd4;--accent: #c96442;--accent-hover: #b5563a;--danger: #c0392b;--radius: 12px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #262624;--bg-sidebar: #1f1e1c;--bg-bubble-user: #34322e;--bg-bubble-assistant: transparent;--text: #ece9e2;--text-muted: #948f84;--border: #3a3834}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text)}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:280px;flex-shrink:0;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:12px}.sidebar-collapsed{width:56px;align-items:center;gap:8px}.sidebar-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.new-chat-btn{flex:1;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:10px 14px;font-size:14px;cursor:pointer}.new-chat-btn:hover{background:var(--accent-hover)}.icon-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:8px;border-radius:8px}.icon-btn:hover{background:var(--border);color:var(--text)}.icon-btn-sm{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:2px 4px}.icon-btn-sm:hover{color:var(--text)}.reachability-banner{font-size:12px;color:var(--danger);background:#c0392b14;border-radius:8px;padding:6px 8px;margin-bottom:8px}.thread-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.thread-list-empty{color:var(--text-muted);font-size:13px;padding:8px}.thread-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:14px}.thread-item:hover{background:var(--border)}.thread-item.active{background:var(--bg-bubble-user)}.thread-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.thread-title-input{flex:1;font-size:14px;border:1px solid var(--accent);border-radius:4px;padding:2px 4px}.thread-actions{display:none;gap:4px}.thread-item:hover .thread-actions{display:flex}.sidebar-footer{border-top:1px solid var(--border);padding-top:8px;margin-top:8px}.usage-indicator{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);padding:4px 8px}.sidebar-user{display:flex;align-items:center;justify-content:space-between;padding:4px 8px}.sidebar-email{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;text-decoration:underline}.chat-pane{flex:1;display:flex;flex-direction:column;min-width:0}.chat-pane-body{flex:1;overflow-y:auto;display:flex;flex-direction:column}.empty-state{flex:1;display:flex;align-items:center;justify-content:center}.empty-state h1{font-size:28px;font-weight:500;color:var(--text-muted)}.message-list{max-width:760px;width:100%;margin:0 auto;padding:24px 16px 8px}.message-bubble{margin-bottom:20px}.message-bubble.from-user{background:var(--bg-bubble-user);border-radius:var(--radius);padding:10px 16px;margin-left:auto;max-width:80%;width:fit-content}.message-bubble.from-assistant{max-width:100%}.message-model{font-size:11px;color:var(--text-muted);margin-bottom:4px}.message-plain{white-space:pre-wrap;word-break:break-word}.message-content :is(p,ul,ol){margin:0 0 .6em}.message-content pre{background:var(--bg-sidebar);border-radius:8px;padding:12px;overflow-x:auto}.message-content code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.message-attachments{display:flex;gap:6px;margin-top:6px}.message-error{color:var(--danger);font-size:13px;margin-top:4px}.message-meta{font-size:11px;color:var(--text-muted);margin-top:6px}.message-waiting{color:var(--text-muted);font-style:italic}.composer{max-width:760px;width:100%;margin:0 auto;padding:8px 16px 20px}.composer-attachments{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.composer-upload-error{color:var(--danger);font-size:12px;margin-bottom:6px}.composer-form{border:1px solid var(--border);border-radius:20px;background:var(--bg);padding:10px 14px;box-shadow:0 1px 3px #0000000f}.composer-input{width:100%;border:none;background:none;resize:none;outline:none;font-family:var(--font);font-size:15px;color:var(--text);max-height:240px}.composer-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.composer-toolbar-left{display:flex;align-items:center;gap:6px}.model-picker{border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:12px;padding:6px 8px}.send-btn,.stop-btn{border:none;border-radius:16px;padding:8px 18px;font-size:14px;cursor:pointer}.send-btn{background:var(--accent);color:#fff}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:disabled{opacity:.5;cursor:default}.stop-btn{background:var(--danger);color:#fff}.attachment-chip{display:flex;align-items:center;gap:4px;background:var(--bg-sidebar);border:1px solid var(--border);border-radius:16px;padding:4px 10px;font-size:12px}.attachment-chip-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px}.params-drawer{border:1px solid var(--border);border-radius:12px;background:var(--bg-sidebar);padding:12px;margin-bottom:8px;display:flex;flex-direction:column;gap:10px}.params-drawer-header{display:flex;justify-content:space-between;font-size:13px;font-weight:600}.params-row{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.params-row input[type=range]{width:100%}.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:340px;display:flex;flex-direction:column;gap:10px;border:1px solid var(--border);border-radius:var(--radius);padding:32px}.login-title{margin:0;font-size:24px;text-align:center}.login-sub{margin:0 0 8px;text-align:center;color:var(--text-muted);font-size:14px}.login-input{border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px;background:var(--bg);color:var(--text)}.login-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px;font-size:14px;cursor:pointer;margin-top:4px}.login-btn:hover{background:var(--accent-hover)}.login-err{color:var(--danger);font-size:13px}.login-link{background:none;border:none;color:var(--text-muted);font-size:13px;cursor:pointer;text-decoration:underline;margin-top:4px}
