*{margin:0;padding:0;box-sizing:border-box}:root{--bg:#0f1117;--surface:#1a1d2e;--surface2:#252840;--border:#2e3152;--accent:#6c72ff;--accent-hover:#8387ff;--text:#e8eaf0;--text-muted:#8890b0;--text-dim:#555d80;--user-bubble:#1e2240;--ai-bubble:#161928;--success:#4caf81;--danger:#ff6b6b;--tool-bg:#0d1520;--tool-border:#1e3050}body,html{height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.app{height:100vh}.app,.sidebar{display:flex;overflow:hidden}.sidebar{width:260px;min-width:260px;background:var(--surface);border-right:1px solid var(--border);flex-direction:column;transition:all .2s ease}.sidebar.collapsed{width:0;min-width:0;border-right:none}.sidebar-header{padding:20px 16px 16px;border-bottom:1px solid var(--border)}.sidebar-logo{gap:10px;margin-bottom:14px}.logo-icon,.sidebar-logo{display:flex;align-items:center}.logo-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent),#a855f7);justify-content:center;font-size:18px;font-weight:700;color:#fff}.logo-text{font-size:14px;font-weight:600}.logo-text span{display:block;font-size:11px;color:var(--text-muted);font-weight:400}.new-chat-btn{width:100%;padding:9px 14px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;display:flex;align-items:center;gap:6px}.new-chat-btn:hover{background:var(--accent-hover)}.sidebar-section{padding:14px 12px 8px;font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.8px}.skills-list{flex:1 1;overflow-y:auto;padding:0 8px 16px}.skill-item{padding:7px 10px;border-radius:7px;cursor:pointer;transition:background .15s;margin-bottom:2px}.skill-item:hover{background:var(--surface2)}.skill-name{font-size:12.5px;font-weight:500}.skill-desc,.skill-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-desc{font-size:11px;color:var(--text-dim);margin-top:1px}.main{flex:1 1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.topbar{padding:12px 20px;border-bottom:1px solid var(--border);gap:12px;background:var(--surface)}.toggle-btn,.topbar{display:flex;align-items:center}.toggle-btn{background:none;border:1px solid var(--border);border-radius:7px;color:var(--text-muted);cursor:pointer;width:32px;height:32px;justify-content:center;font-size:16px;transition:all .15s}.toggle-btn:hover{background:var(--surface2);color:var(--text)}.topbar-title{font-size:14px;font-weight:600}.model-badge{margin-left:auto;font-size:11px;padding:3px 8px;border-radius:12px;background:var(--surface2);color:var(--text-muted);border:1px solid var(--border)}.skills-count{font-size:11px;padding:2px 7px;border-radius:10px;background:rgba(108,114,255,.12);color:var(--accent);border:1px solid rgba(108,114,255,.25)}.messages{flex:1 1;overflow-y:auto;padding:24px 0}.message-wrapper{max-width:820px;padding:0 24px;margin:0 auto 24px}.message-meta{gap:8px;margin-bottom:6px}.message-meta,.msg-avatar{display:flex;align-items:center}.msg-avatar{width:26px;height:26px;border-radius:7px;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.msg-avatar.user{background:linear-gradient(135deg,#6c72ff,#a855f7);color:#fff}.msg-avatar.ai{background:linear-gradient(135deg,#0ea5e9,#06b6d4);color:#fff}.msg-label{font-size:12px;font-weight:600;color:var(--text-muted)}.message-body{padding:12px 16px;border-radius:12px;border:1px solid var(--border);line-height:1.7;margin-left:34px;min-height:20px}.message-body.user{background:var(--user-bubble)}.message-body.ai{background:var(--ai-bubble)}.agent-steps{margin-left:34px;margin-bottom:8px;border:1px solid var(--tool-border);border-radius:10px;background:var(--tool-bg);overflow:hidden}.steps-header{padding:7px 12px;font-size:12px;color:var(--text-muted);background:rgba(108,114,255,.06);border-bottom:1px solid var(--tool-border);display:flex;align-items:center;gap:6px}.steps-icon{font-size:13px}.steps-list{padding:6px;display:flex;flex-direction:column;gap:4px}.tool-call{border:1px solid var(--tool-border);border-radius:9px;background:var(--tool-bg);overflow:hidden;font-size:12.5px}.tool-pending{border-color:rgba(108,114,255,.3)}.tool-call-header{padding:7px 12px;background:rgba(108,114,255,.08);border-bottom:1px solid var(--tool-border);display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tool-call-header:hover{background:rgba(108,114,255,.12)}.tool-call-name{font-weight:600;color:var(--accent);white-space:nowrap}.tool-call-cmd{color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;font-size:11px;flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-chevron{color:var(--text-dim);font-size:10px;transition:transform .2s}.tool-chevron.open{transform:rotate(180deg)}.tool-spinner{width:12px;height:12px;border:2px solid var(--accent);border-top:2px solid transparent;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.tool-call-body{padding:10px 12px;font-family:SF Mono,Fira Code,monospace;font-size:11.5px;color:var(--success);white-space:pre-wrap;word-break:break-all;max-height:300px;overflow-y:auto}.tool-call-body.error{color:var(--danger)}.tool-icon{font-size:13px;flex-shrink:0}.agent-bar{padding:6px 24px;background:rgba(108,114,255,.06);border-top:1px solid rgba(108,114,255,.15);display:flex;align-items:center;gap:8px;font-size:12px;color:var(--accent)}.agent-bar-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.cursor-blink{display:inline-block;width:2px;height:15px;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink .8s infinite}.dim-text{color:var(--text-dim);font-style:italic;font-size:13px}.stop-btn{background:#e53e3e!important}.stop-btn:hover{background:#fc8181!important}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.message-body h1,.message-body h2,.message-body h3{margin:12px 0 6px;color:var(--text)}.message-body h1{font-size:18px}.message-body h2{font-size:16px}.message-body h3{font-size:14px}.message-body p{margin:6px 0}.message-body ol,.message-body ul{margin:6px 0 6px 20px}.message-body li{margin:3px 0}.message-body code{font-family:SF Mono,Fira Code,monospace;font-size:12.5px;background:rgba(108,114,255,.1);color:#a5b4fc;padding:1px 5px;border-radius:4px}.message-body pre{background:#0a0d1a;border:1px solid var(--border);border-radius:8px;padding:12px 14px;overflow-x:auto;margin:10px 0}.message-body pre code{background:none;color:#e8eaf0;padding:0}.message-body blockquote{border-left:3px solid var(--accent);padding-left:12px;color:var(--text-muted);margin:8px 0}.message-body a{color:var(--accent);text-decoration:none}.message-body a:hover{text-decoration:underline}.message-body table{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px}.message-body td,.message-body th{border:1px solid var(--border);padding:7px 12px;text-align:left}.message-body th{background:var(--surface2);font-weight:600}.message-body strong{font-weight:600;color:var(--text)}.input-area{padding:16px 24px 20px;border-top:1px solid var(--border);background:var(--surface)}.input-inner{max-width:820px;margin:0 auto;display:flex;gap:10px;align-items:flex-end}.input-box{flex:1 1;background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:11px 14px;color:var(--text);font-size:14px;font-family:inherit;resize:none;outline:none;line-height:1.5;min-height:46px;max-height:180px;overflow-y:auto;transition:border-color .15s}.input-box:focus{border-color:var(--accent)}.input-box::placeholder{color:var(--text-dim)}.send-btn{width:46px;height:46px;min-width:46px;background:var(--accent);border:none;border-radius:12px;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.send-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.send-btn:disabled{background:var(--surface2);cursor:not-allowed}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);gap:12px}.empty-icon{font-size:48px;opacity:.3}.empty-title{font-size:18px;font-weight:600;color:var(--text)}.empty-desc{font-size:13px;color:var(--text-muted);text-align:center;max-width:340px}.suggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:480px;margin-top:8px}.suggestion{padding:7px 14px;background:var(--surface);border:1px solid var(--border);border-radius:20px;font-size:12.5px;cursor:pointer;color:var(--text-muted);transition:all .15s}.suggestion:hover{background:var(--surface2);color:var(--text);border-color:var(--accent)}@media (max-width:768px){.sidebar{position:fixed;z-index:100;height:100vh;box-shadow:4px 0 20px rgba(0,0,0,.5)}.sidebar.collapsed{width:0}.message-wrapper{padding:0 12px}.input-area{padding:12px 12px 16px}}.sidebar-tabs{display:flex;border-bottom:1px solid var(--border)}.sidebar-tabs .tab{flex:1 1;padding:8px 0;font-size:12px;font-weight:500;text-align:center;background:none;color:var(--text-dim);cursor:pointer;border:none;border-bottom:2px solid transparent;transition:all .15s}.sidebar-tabs .tab.active{color:var(--accent);border-bottom-color:var(--accent)}.sidebar-tabs .tab:hover{color:var(--text-muted)}.sidebar-content{flex:1 1;overflow-y:auto;padding:8px}.sidebar-empty{padding:20px;text-align:center;font-size:12px;color:var(--text-dim)}.conv-item{padding:8px 10px;border-radius:7px;cursor:pointer;transition:background .15s;margin-bottom:2px;position:relative}.conv-item.active,.conv-item:hover{background:var(--surface2)}.conv-item.active{border-left:2px solid var(--accent)}.conv-title{font-size:12.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:20px}.conv-meta{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.conv-meta span{font-size:10px;color:var(--text-dim)}.conv-del{position:absolute;top:8px;right:6px;width:18px;height:18px;border-radius:4px;border:none;background:transparent;color:var(--text-dim);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s}.conv-item:hover .conv-del{opacity:1}.conv-del:hover{background:hsla(0,100%,70%,.15);color:var(--danger)}