:root{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#1c2129;--bg-input:#1c2129;--bg-hover:#21262d;--border:#30363d;--border-active:#58a6ff;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#6e7681;--accent:#58a6ff;--accent-hover:#79c0ff;--accent-subtle:#58a6ff1a;--user-bubble:#1f6feb;--user-bubble-hover:#388bfd;--assistant-bubble:#161b22;--error:#f85149;--success:#3fb950;--warning:#d29922;--radius:10px;--radius-sm:6px;--radius-lg:16px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans SC", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;height:100vh;overflow:hidden}#root{height:100vh}.chat-window{flex-direction:column;max-width:860px;height:100vh;margin:0 auto;display:flex}.chat-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.header-left{align-items:baseline;gap:10px;display:flex}.header-title{color:var(--text-primary);font-size:16px;font-weight:700}.header-subtitle{color:var(--text-muted);font-size:12px}.header-right{align-items:center;gap:8px;display:flex}.model-selector{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font);cursor:pointer;outline:none;padding:6px 12px;transition:border-color .2s}.model-selector:focus{border-color:var(--border-active)}.header-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:6px 10px;font-size:14px;transition:all .15s;display:flex}.header-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.header-btn.active{border-color:var(--border-active);color:var(--accent)}.status-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:7px;height:7px}.status-dot.connected{background:var(--success)}.status-dot.connecting{background:var(--warning);animation:1.5s infinite pulse}.status-dot.error{background:var(--error)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.config-panel{background:var(--bg-tertiary);border-bottom:1px solid var(--border);padding:12px 16px;animation:.2s slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.config-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.config-grid label{flex-direction:column;gap:4px;display:flex}.config-grid label span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:500}.config-grid input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font-size:13px;font-family:var(--font);outline:none;padding:8px 12px;transition:border-color .2s}.config-grid input:focus{border-color:var(--border-active)}.config-grid input::placeholder{color:var(--text-muted)}.error-banner{color:var(--error);background:#f851491f;border-bottom:1px solid #f851494d;flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;font-size:13px;display:flex}.messages-container{flex-direction:column;flex:1;gap:20px;padding:16px 16px 0;display:flex;overflow-y:auto}.messages-container::-webkit-scrollbar{width:6px}.messages-container::-webkit-scrollbar-track{background:0 0}.messages-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.messages-container::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.welcome-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:40px 20px;display:flex}.welcome-logo{margin-bottom:4px;font-size:56px;animation:3s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.welcome-title{background:linear-gradient(135deg,#58a6ff,#bc8cff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:700}.welcome-desc{color:var(--text-secondary);max-width:400px;font-size:14px;line-height:1.6}.suggestions-grid{grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:500px;margin-top:8px;display:grid}.suggestion-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:14px;font-family:var(--font);cursor:pointer;text-align:left;align-items:center;gap:10px;padding:14px 16px;transition:all .2s;display:flex}.suggestion-card:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-active);transform:translateY(-1px)}.suggestion-card:disabled{opacity:.4;cursor:not-allowed}.suggestion-icon{flex-shrink:0;font-size:22px}.suggestion-label{font-weight:500}.welcome-tips{color:var(--text-muted);max-width:420px;margin-top:16px;font-size:12px;line-height:1.5}.message{gap:12px;animation:.3s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse}.message-avatar{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;display:flex}.message-body{flex:1;min-width:0;max-width:75%}.message.user .message-body{flex-direction:column;align-items:flex-end;display:flex}.message-bubble{border-radius:var(--radius);padding:10px 14px;font-size:14px;line-height:1.7;position:relative}.message.user .message-bubble{background:var(--user-bubble);color:#fff;border-bottom-right-radius:var(--radius-sm)}.message.assistant .message-bubble{background:var(--assistant-bubble);border:1px solid var(--border);border-bottom-left-radius:var(--radius-sm)}.message-content{word-break:break-word}.message-content p{margin:0 0 8px}.message-content p:last-child{margin-bottom:0}.message-content ul,.message-content ol{margin:6px 0;padding-left:20px}.message-content li{margin:2px 0}.message-content h1,.message-content h2,.message-content h3{margin:14px 0 6px;font-weight:600}.message-content h1{font-size:1.4em}.message-content h2{font-size:1.2em}.message-content h3{font-size:1.05em}.message-content table{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.message-content th,.message-content td{border:1px solid var(--border);text-align:left;padding:6px 10px}.message-content th{background:var(--bg-tertiary);font-weight:600}.message-content blockquote{border-left:3px solid var(--accent);color:var(--text-secondary);margin:8px 0;padding-left:12px}.message-content a{color:var(--accent);text-decoration:none}.message-content a:hover{text-decoration:underline}.inline-code{background:var(--bg-tertiary);color:var(--accent);border-radius:4px;padding:2px 6px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.9em}.code-block{border-radius:var(--radius);border:1px solid var(--border);background:#0d1117;margin:8px 0;overflow:hidden}.code-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.code-lang{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.code-copy-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:12px;transition:all .15s}.code-copy-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.code-block pre{margin:0;padding:12px;font-size:13px;line-height:1.5;overflow-x:auto}.code-block pre code{font-family:SF Mono,Fira Code,Cascadia Code,monospace}.hljs{color:#e6edf3!important;background:0 0!important}.hljs-keyword{color:#ff7b72!important}.hljs-string{color:#a5d6ff!important}.hljs-comment{font-style:italic;color:#8b949e!important}.hljs-function{color:#d2a8ff!important}.hljs-number{color:#79c0ff!important}.hljs-title{color:#d2a8ff!important}.hljs-attr{color:#79c0ff!important}.hljs-built_in{color:#ffa657!important}.thinking-block{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-tertiary);margin-bottom:8px;overflow:hidden}.thinking-header{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:8px 12px;font-size:13px;transition:background .15s;display:flex}.thinking-header:hover{background:var(--bg-hover)}.thinking-icon{font-size:14px}.thinking-toggle{color:var(--text-muted);margin-left:auto;font-size:10px}.thinking-content{border-top:1px solid var(--border);color:var(--text-secondary);background:#00000026;padding:10px 14px;font-size:13px;line-height:1.6}.message-footer{align-items:center;gap:8px;margin-top:4px;padding:0 2px;display:flex}.message-time{color:var(--text-muted);font-size:11px}.message-actions{opacity:0;gap:4px;transition:opacity .15s;display:flex}.message:hover .message-actions{opacity:1}.msg-action-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 4px;font-size:13px;transition:all .15s}.msg-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.typing-indicator{color:var(--accent);animation:.8s step-end infinite blink}@keyframes blink{50%{opacity:0}}.input-area{background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0;gap:10px;padding:12px 16px 16px;display:flex}.input-area textarea{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font-size:14px;font-family:var(--font);resize:none;outline:none;flex:1;min-height:44px;padding:10px 14px;line-height:1.5;transition:border-color .2s,box-shadow .2s}.input-area textarea:focus{border-color:var(--border-active);box-shadow:0 0 0 2px var(--accent-subtle)}.input-area textarea::placeholder{color:var(--text-muted)}.input-area textarea:disabled{opacity:.5}.input-actions{align-items:flex-end;display:flex}.btn-send,.btn-stop{border-radius:var(--radius);cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font);white-space:nowrap;border:none;padding:10px 20px;transition:all .2s}.btn-send{background:var(--accent);color:#fff}.btn-send:hover:not(:disabled){background:var(--accent-hover)}.btn-send:disabled{opacity:.35;cursor:not-allowed}.btn-stop{background:var(--error);color:#fff;align-items:center;gap:6px;display:flex}.btn-stop:hover{background:#da3633}.stop-icon{font-size:12px}@media (width<=640px){.chat-window{max-width:100%}.header-title{font-size:14px}.header-subtitle{display:none}.model-selector{padding:4px 8px;font-size:12px}.message-body{max-width:85%}.suggestions-grid,.config-grid{grid-template-columns:1fr}.message-actions{opacity:1}}
