:root{--bg-deep:#0b1020;--bg-card:#151b2a;--bg-sidebar:#0d1322;--bg-input:#1e2435;--border-color:#1e2435;--border-light:#2a2f3e;--text-primary:#eae4dc;--text-secondary:#cbc3b0;--text-muted:#9a9fac;--text-dim:#7a7f8e;--text-darker:#5a5f6e;--gold:#c9a03d;--gold-light:#d4af37;--gold-bg:#c9a03d1a;--danger:#e06b6b;--success:#4caf50}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-deep);min-height:100vh;color:var(--text-secondary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;overflow-x:hidden}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border-light);text-align:center;border-radius:16px;width:100%;max-width:380px;padding:48px 40px}.login-logo{background:linear-gradient(135deg, var(--gold), var(--gold-light));width:72px;height:72px;color:var(--bg-deep);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:28px;font-weight:700;display:flex}.login-title{color:var(--text-primary);margin-bottom:4px;font-size:22px;font-weight:600}.login-sub{color:var(--text-dim);margin-bottom:32px;font-size:13px}.input-group{text-align:left;margin-bottom:20px}.input-group label{color:var(--text-muted);letter-spacing:1px;margin-bottom:6px;font-size:12px;display:block}.input-group input{background:var(--bg-input);border:1px solid var(--border-light);width:100%;color:var(--text-primary);border-radius:8px;outline:none;padding:12px 14px;font-size:15px;transition:border-color .2s}.input-group input:focus{border-color:var(--gold)}.login-btn{background:var(--gold);width:100%;color:var(--bg-deep);cursor:pointer;border:none;border-radius:8px;margin-top:8px;padding:12px;font-size:15px;font-weight:600;transition:opacity .2s}.login-btn:hover{opacity:.85}.login-btn:disabled{opacity:.4;cursor:not-allowed}.login-error{color:var(--danger);margin-top:12px;font-size:13px}.chat-page{flex-direction:column;height:100vh;display:flex;overflow:hidden}.top-bar{background:var(--bg-deep);border-bottom:1px solid var(--bg-input);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.top-bar .left{align-items:center;gap:12px;display:flex}.top-bar .avatar{background:linear-gradient(135deg, var(--gold), var(--gold-light));width:36px;height:36px;color:var(--bg-deep);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.top-bar .name{color:var(--text-primary);font-size:15px;font-weight:600}.agent-switch{border:1px solid var(--border-light,#e5e4e7);color:var(--gold,#aa3bff);cursor:pointer;background:0 0;border-radius:6px;outline:none;padding:4px 8px;font-size:13px;transition:border-color .2s}.agent-switch:hover{border-color:var(--gold,#aa3bff)}.top-bar .actions{gap:8px;display:flex}.top-bar .actions button{border:1px solid var(--border-light);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:6px 10px;font-size:12px;transition:all .2s}.top-bar .actions button:hover{border-color:var(--gold);color:var(--gold)}.chat-layout{flex:1;min-height:0;display:flex;overflow:hidden}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--bg-input);flex-direction:column;flex-shrink:0;width:240px;min-width:240px;display:flex;overflow:hidden}.agent-panel{border-bottom:1px solid var(--bg-input);flex-shrink:0;padding:6px 0}.agent-panel-title{color:var(--text-dim);letter-spacing:1px;text-transform:uppercase;padding:0 14px 4px;font-size:11px}.agent-list{max-height:210px;overflow-y:auto}.agent-item{cursor:pointer;border-radius:0;align-items:center;gap:8px;padding:5px 14px;transition:background .15s;display:flex;position:relative}.agent-item:hover{background:var(--accent-bg,#aa3bff0d)}.agent-item.active{background:var(--accent-bg,#aa3bff1a);border-left:3px solid var(--gold,#aa3bff);padding-left:11px}.agent-item.disabled{opacity:.45;cursor:not-allowed}.agent-item.disabled:hover{background:0 0}.agent-icon{text-align:center;flex-shrink:0;width:24px;font-size:16px}.agent-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:500;overflow:hidden}.agent-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.agent-dot.online{background:#4caf50;box-shadow:0 0 4px #4caf5080}.agent-dot.offline{background:#bdbdbd}.conv-search{padding:6px 14px 2px}.conv-search-input{box-sizing:border-box;border:1px solid var(--bg-input,#e5e4e7);width:100%;color:var(--text-primary);background:0 0;border-radius:6px;outline:none;padding:6px 10px;font-size:12px;transition:border-color .2s}.conv-search-input:focus{border-color:var(--gold,#aa3bff)}.conv-search-input::placeholder{color:var(--text-dim,#999)}.sidebar-header{border-bottom:1px solid var(--bg-input);justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.sidebar-header span{color:var(--text-dim);letter-spacing:1px;font-size:12px}.sidebar-header button{background:var(--gold);color:var(--bg-deep);cursor:pointer;border:none;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:600}.sidebar-header button:hover{opacity:.85}.sidebar-inner{flex-direction:column;height:100%;display:flex;overflow:hidden}.conversation-list{flex:1;padding:4px 0;overflow-y:auto}.conversation-list::-webkit-scrollbar{width:4px}.conversation-list::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}.conv-item{cursor:pointer;border-left:3px solid #0000;padding:0;transition:all .2s;position:relative}.conv-item:hover{background:var(--bg-card)}.conv-item.active{background:var(--bg-card);border-left-color:var(--gold)}.conv-main{flex:1;align-items:center;min-width:0;padding:10px 14px;display:flex}.conv-item .pin-icon{flex-shrink:0;margin-right:4px;font-size:11px}.conv-item .conv-text{flex:1;min-width:0}.conv-item .title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.conv-item .time{color:var(--text-darker);margin-top:2px;font-size:11px}.conv-item .del-btn{opacity:0;color:var(--text-darker);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:14px;transition:all .2s}.conv-item:hover .del-btn{opacity:1}.conv-item .del-btn:hover{color:var(--danger);background:#e06b6b1a}.conv-item .menu-btn{opacity:0;color:var(--text-darker);cursor:pointer;z-index:2;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:4px 8px;font-size:14px;transition:all .2s;position:relative}.conv-item:hover .menu-btn{opacity:1}.conv-item .menu-btn:hover{color:var(--text-primary);background:var(--bg-input)}.rename-input{background:var(--bg-input);border:1px solid var(--gold);width:100%;color:var(--text-primary);border-radius:4px;outline:none;padding:4px 8px;font-family:inherit;font-size:13px}.conv-menu{background:var(--bg-card);border:1px solid var(--border-light);z-index:100;border-radius:8px;min-width:120px;padding:4px;position:absolute;top:32px;right:14px;box-shadow:0 4px 16px #0006}.conv-menu button{width:100%;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:8px 12px;font-size:12px;transition:all .15s;display:block}.conv-menu button:hover{background:var(--bg-input);color:var(--text-primary)}.conv-menu .menu-danger:hover{color:var(--danger)}.sidebar-footer{border-top:1px solid var(--bg-input);flex-shrink:0;margin-top:auto;padding:8px 14px}.sidebar-footer .user-card{align-items:center;gap:8px;display:flex}.sidebar-footer .user-card .dot{background:var(--success);border-radius:50%;flex-shrink:0;width:6px;height:6px}.sidebar-footer .user-card .uname{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.sidebar-footer .user-card .spark{color:var(--gold);font-size:11px}.main-area{background:var(--bg-deep);flex-direction:column;flex:1;min-width:0;display:flex}.messages-container{flex-direction:column;flex:1;gap:16px;min-height:0;padding:20px;display:flex;overflow-y:auto}.messages-container::-webkit-scrollbar{width:4px}.messages-container::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}.message{gap:10px;max-width:80%;animation:.3s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse;align-self:flex-end}.message.assistant{align-self:flex-start}.message .avatar-mini{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:flex}.message.user .avatar-mini{background:var(--gold);color:var(--bg-deep)}.message.assistant .avatar-mini{background:linear-gradient(135deg, var(--gold), var(--gold-light));color:var(--bg-deep)}.message .bubble{word-break:break-word;border-radius:12px;min-width:0;max-width:100%;padding:10px 14px;font-size:14px;line-height:1.6}.message.user .bubble{background:var(--gold);color:var(--bg-deep);border-bottom-right-radius:4px}.message.user .bubble p,.message.user .bubble li,.message.user .bubble blockquote,.message.user .bubble code,.message.user .bubble strong,.message.user .bubble em{color:inherit}.message.user .bubble code{background:#0000001f}.message.user .bubble pre{color:var(--text-secondary);background:#0a0e1a}.message.user .bubble pre code{color:var(--text-secondary)}.message.user .bubble blockquote{border-left-color:var(--bg-deep);color:var(--bg-deep);opacity:.8}.message.assistant .bubble{background:var(--bg-card);border:1px solid var(--border-light);color:var(--text-secondary);border-bottom-left-radius:4px}.message .bubble p{margin-bottom:8px}.message .bubble p:last-child{margin-bottom:0}.message .bubble code{background:#ffffff14;border-radius:4px;padding:2px 6px;font-family:SF Mono,Fira Code,monospace;font-size:13px}.message .bubble pre{border:1px solid var(--border-light);background:#0a0e1a;border-radius:8px;max-width:100%;margin:8px 0;padding:12px;overflow-x:auto}.message .bubble pre code{white-space:pre;background:0 0;padding:0;font-size:13px}.message .bubble ul,.message .bubble ol{margin:8px 0;padding-left:20px}.message .bubble blockquote{border-left:3px solid var(--gold);color:var(--text-muted);margin:8px 0;padding-left:12px}.msg-footer{justify-content:flex-end;align-items:center;gap:6px;margin-top:6px;display:flex;position:relative}.msg-time{color:var(--text-darker);opacity:.6;font-size:10px}.message.assistant .msg-time{color:#3a3f4e}.msg-footer .copy-btn{opacity:0;color:var(--text-dim);cursor:pointer;background:#0003;border:none;border-radius:4px;padding:2px 6px;font-size:11px;line-height:1.4;transition:all .2s}.message:hover .copy-btn{opacity:1}.copy-btn:hover{color:var(--gold);background:#c9a03d33}.copy-btn.copied{color:var(--success);opacity:1;background:#4caf5033}.message .bubble table{border-collapse:collapse;max-width:100%;margin:8px 0;font-size:13px;display:block;overflow-x:auto}.message .bubble th,.message .bubble td{border:1px solid var(--border-light);text-align:left;padding:6px 10px}.message .bubble th{background:var(--bg-input);color:var(--text-muted)}.message.assistant.streaming .bubble:after{content:"▊";color:var(--gold);margin-left:2px;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.empty-state{color:var(--text-dim);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.empty-state .icon{opacity:.3;font-size:48px}.empty-state .text{font-size:14px}.input-area{border-top:1px solid var(--bg-input);background:var(--bg-deep);padding:12px 20px 20px}.input-row{align-items:flex-end;gap:8px;display:flex}.input-row textarea{background:var(--bg-input);border:1px solid var(--border-light);color:var(--text-primary);resize:none;border-radius:10px;outline:none;flex:1;min-height:44px;max-height:200px;padding:12px 14px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color .2s}.input-row textarea:focus{border-color:var(--gold)}.input-row textarea::placeholder{color:var(--text-darker)}.send-btn{background:var(--gold);width:44px;height:44px;color:var(--bg-deep);cursor:pointer;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;transition:opacity .2s;display:flex}.send-btn:hover{opacity:.85}.send-btn:disabled{opacity:.3;cursor:not-allowed}.mobile-menu-btn{display:none}@media (width<=768px){.sidebar{z-index:1000;width:260px;height:100vh;transition:left .3s;position:fixed;top:0;left:-260px;box-shadow:4px 0 20px #00000080}.sidebar.mobile-visible{left:0}.sidebar .sidebar-inner{z-index:2;background:var(--bg-sidebar);flex-direction:column;height:100%;display:flex;position:relative}.sidebar-overlay{z-index:1;background:#00000080;position:fixed;inset:0}.sidebar.mobile-visible{display:flex}.mobile-menu-btn{border:1px solid var(--border-light);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:6px 10px;font-size:16px;transition:all .2s;display:inline-flex}.mobile-menu-btn:hover{border-color:var(--gold);color:var(--gold)}.chat-page{height:100dvh}.chat-layout{flex:1;min-height:0;overflow:hidden}.main-area{flex-direction:column;flex:1;min-height:0;display:flex}.messages-container{flex:1;min-height:0;padding:12px;overflow:hidden auto}.input-area{padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px)) 12px;background:var(--bg-deep);z-index:10;flex-shrink:0;position:sticky;bottom:0}.input-row textarea{min-height:44px;max-height:160px;font-size:16px}.top-bar{flex-shrink:0}.message{max-width:90%}.login-card{padding:32px 24px}}.knowledge-page{background:var(--bg-deep);flex-direction:column;height:100vh;display:flex;overflow:hidden}.knowledge-page .top-bar .avatar{background:0 0;font-size:22px}.kb-btn{border:1px solid var(--border-light);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:6px 10px;font-size:12px;transition:all .2s}.kb-btn:hover{border-color:var(--gold);color:var(--gold)}.back-btn{border:1px solid var(--border-light);color:var(--gold);cursor:pointer;background:0 0;border-radius:6px;padding:6px 10px;font-size:12px;transition:all .2s}.back-btn:hover{border-color:var(--gold);background:var(--gold-bg)}.upload-zone{border:2px dashed var(--border-light);text-align:center;cursor:pointer;border-radius:12px;flex-shrink:0;margin:16px 20px;padding:32px 20px;transition:all .2s}.upload-zone:hover{border-color:var(--gold);background:var(--gold-bg)}.upload-zone.drag-over{border-color:var(--gold);background:var(--gold-bg);transform:scale(1.01)}.upload-zone .upload-icon{margin-bottom:8px;font-size:36px}.upload-zone .upload-text{color:var(--text-secondary);margin-bottom:6px;font-size:15px}.upload-zone .upload-hint{color:var(--text-darker);font-size:12px}.upload-status{color:var(--gold);font-size:15px}.doc-list-header{color:var(--text-darker);letter-spacing:1px;flex-shrink:0;padding:8px 20px;font-size:12px}.doc-list{flex:1;padding:0 20px 20px;overflow-y:auto}.doc-list::-webkit-scrollbar{width:4px}.doc-list::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}.doc-empty{text-align:center;color:var(--text-darker);padding:40px;font-size:14px}.doc-item{background:var(--bg-card);border:1px solid var(--border-light);border-radius:10px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;transition:all .2s;display:flex}.doc-item:hover{border-color:var(--gold)}.doc-icon{flex-shrink:0;font-size:24px}.doc-info{flex:1;min-width:0}.doc-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;font-size:14px;overflow:hidden}.doc-meta{color:var(--text-darker);font-size:12px}.doc-del-btn{opacity:0;color:var(--text-darker);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:18px;transition:all .2s}.doc-item:hover .doc-del-btn{opacity:1}.doc-del-btn:hover{color:var(--danger);background:#e06b6b1a}
