pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#98c379}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}:root{--bg: #0f1115;--bg-panel: #171a21;--bg-hover: #1f242e;--border: #262c37;--text: #e6e8eb;--text-dim: #8b93a3;--accent: #4f8cff;--user-bubble: #2b3a55;--ai-bubble: #1c232e;--fs-xs: 15px;--fs-sm: 16px;--fs-base: 17px;--fs-lg: 19px;--fs-xl: 21px;--fs-2xl: 23px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}html,body{overflow:hidden;overscroll-behavior:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);font-size:var(--fs-base)}@supports (height: 100dvh){html,body,#app{height:100dvh}}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:none;border-radius:8px;background:var(--accent);color:#fff;font:inherit;font-size:var(--fs-sm);line-height:1;white-space:nowrap}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,.user-entry:focus-visible,.conv-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-icon{display:inline-block;flex-shrink:0;vertical-align:-.125em}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.icon-only{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;line-height:1}.ellipsis{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}input,textarea,select{font:inherit}input,textarea{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);color:var(--text);outline:none}input:focus,textarea:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-dim);opacity:1}.login-page{height:100%;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:24px 0}.login-card{width:424px;max-width:calc(100% - 32px);margin:auto;display:flex;flex-direction:column;gap:16px;padding:40px;background:var(--bg-panel);border:1px solid var(--border);border-radius:16px}.login-card h1{margin:0;text-align:center}.login-card .subtitle{margin:0 0 16px;text-align:center;color:var(--text-dim)}.login-card .error{margin:0;color:#ff6b6b}.login-card .hint{margin:0;color:var(--text-dim);font-size:var(--fs-xs);text-align:center}.chat-layout{height:100%;display:flex}.sidebar{width:324px;display:flex;flex-direction:column;background:var(--bg-panel);border-right:1px solid var(--border)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid var(--border)}.new-btn{background:var(--accent);height:36px;padding:0 12px;font-size:var(--fs-sm);gap:8px}.conv-list{flex:1;overflow-y:auto;padding:10px}.conv-item{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;cursor:pointer;margin-bottom:2px}.conv-item:hover,.conv-item.active{background:var(--bg-hover)}.conv-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-del,.kb-del{background:transparent;color:var(--text-dim);border:none;border-radius:8px;opacity:.6;transition:color .15s,background .15s,opacity .15s}.conv-del:hover,.kb-del:hover{color:#ff6b6b;background:#ff6b6b1f;opacity:1}.conv-item:hover .conv-del,.kb-item:hover .kb-del{opacity:1}.sidebar-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-top:1px solid var(--border);position:relative}.user-area{position:relative;flex:1;min-width:0}.sidebar-footer .user-entry{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;cursor:pointer;transition:background .15s;width:fit-content}.sidebar-footer .user-entry:hover{background:var(--bg-hover)}.avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;font-size:var(--fs-base);font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-footer .who{color:var(--text);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:162px}.menu-arrow{width:20px;height:20px;color:var(--text-dim);flex-shrink:0}.user-menu{position:absolute;bottom:58px;left:0;min-width:220px;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:8px;box-shadow:0 10px 30px #0000004d;z-index:20}.menu-item{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;height:auto;padding:12px 16px;background:transparent;color:var(--text);border:none;border-radius:8px;font-size:var(--fs-sm);text-align:left;cursor:pointer}.menu-item:hover{background:var(--bg-hover)}.menu-icon{width:20px;height:20px;color:var(--text-dim);flex-shrink:0}.menu-item:hover .menu-icon{color:var(--text)}.logout-btn{background:transparent;color:var(--text-dim);border:1px solid var(--border);height:36px;padding:0 12px;font-size:var(--fs-sm);gap:8px;flex-shrink:0}.logout-btn:hover{color:var(--text);border-color:var(--text-dim)}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.message-list{flex:1;overflow-y:auto;padding:30px;display:flex;flex-direction:column;gap:20px}.empty{margin:auto;color:var(--text-dim)}.msg{display:flex}.msg.user{justify-content:flex-end}.msg.assistant{justify-content:flex-start}.bubble{max-width:70%;padding:16px 20px;border-radius:16px;white-space:pre-wrap;word-break:break-word;line-height:1.6}.msg.user .bubble{background:var(--user-bubble)}.msg.assistant .bubble{background:var(--ai-bubble);border:1px solid var(--border)}.cursor{color:var(--accent);animation:blink .9s steps(2) infinite}@keyframes blink{50%{opacity:0}}.citations{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.citations-title{font-size:var(--fs-xs);color:var(--text-dim);margin-bottom:10px}.citation-item{display:flex;gap:10px;margin-bottom:10px;padding:10px 12px;background:#ffffff08;border-radius:8px}.citation-index{color:var(--accent);font-size:var(--fs-sm);font-weight:600;flex-shrink:0}.citation-body{flex:1;min-width:0}.citation-name{display:block;font-size:var(--fs-sm);color:var(--text);margin-bottom:4px}.citation-snippet{margin:0;font-size:var(--fs-xs);color:var(--text-dim);line-height:1.5;white-space:pre-wrap;word-break:break-word}.citation-files{display:flex;flex-wrap:wrap;gap:8px}.citation-file-chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--accent);background:#4f8cff1f;border:1px solid rgba(79,140,255,.3);padding:4px 12px;border-radius:16px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bubble .markdown{white-space:normal;word-break:break-word;line-height:1.65}.bubble .markdown p{margin:0 0 10px}.bubble .markdown p:last-child{margin-bottom:0}.bubble .markdown h1,.bubble .markdown h2,.bubble .markdown h3,.bubble .markdown h4,.bubble .markdown h5,.bubble .markdown h6{margin:18px 0 8px;font-weight:600;line-height:1.3}.bubble .markdown h1{font-size:1.4em}.bubble .markdown h2{font-size:1.25em}.bubble .markdown h3{font-size:1.12em}.bubble .markdown code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.9em;background:#ffffff14;padding:2px 6px;border-radius:4px}.bubble .markdown pre{background:#0b0e14;border:1px solid var(--border);border-radius:10px;padding:16px;overflow-x:auto;margin:10px 0}.bubble .markdown pre code{background:transparent;padding:0;font-size:var(--fs-sm);white-space:pre}.bubble .markdown ul,.bubble .markdown ol{margin:8px 0;padding-left:28px}.bubble .markdown li{margin:4px 0}.bubble .markdown table{border-collapse:collapse;margin:10px 0;width:100%}.bubble .markdown th,.bubble .markdown td{border:1px solid var(--border);padding:8px 12px;text-align:left}.bubble .markdown th{background:#ffffff0d}.bubble .markdown blockquote{border-left:3px solid var(--accent);margin:10px 0;padding:2px 16px;color:var(--text-dim)}.bubble .markdown a{color:var(--accent)}.bubble .markdown hr{border:none;border-top:1px solid var(--border);margin:16px 0}.bubble .markdown strong{font-weight:600}.input-bar{display:flex;align-items:flex-end;gap:12px;padding:20px 30px;border-top:1px solid var(--border)}.input-bar textarea{flex:1;resize:none;line-height:24px;min-height:50px;max-height:170px;overflow-y:hidden}.input-bar button{min-width:100px;height:50px;align-self:flex-end}.chat-toolbar{display:flex;align-items:center;gap:20px;padding:16px 30px;border-bottom:1px solid var(--border);flex-wrap:wrap;row-gap:12px}.mode-switch{display:flex;gap:8px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:4px}.mode-btn{background:transparent;color:var(--text-dim);height:36px;padding:0 16px;font-size:var(--fs-sm);gap:8px;border-radius:8px}.mode-btn:hover{color:var(--text)}.mode-btn.active{background:var(--accent);color:#fff}.kb-select{display:flex;align-items:center;gap:10px;min-width:0}.kb-label{color:var(--text-dim);font-size:var(--fs-sm);flex-shrink:0}.kb-select select{padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);color:var(--text);outline:none;max-width:100%;min-width:0}.kb-select select:focus{border-color:var(--accent)}.kb-manage-btn{background:transparent;color:var(--text-dim);border:1px solid var(--border);padding:4px 12px;font-size:var(--fs-sm)}.kb-page{height:100%;display:flex;flex-direction:column}.kb-header{display:flex;align-items:center;gap:20px;padding:18px 30px;border-bottom:1px solid var(--border)}.kb-header h1{flex:1;margin:0;font-size:var(--fs-2xl);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kb-header button{flex-shrink:0}.back-btn{background:transparent;color:var(--text-dim);border:1px solid var(--border)}.kb-error{margin:0;padding:12px 30px;color:#ff6b6b;background:#ff6b6b14}.kb-create{display:flex;flex-direction:column;gap:12px;padding:16px 30px;border-bottom:1px solid var(--border)}.kb-create-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.kb-create .metadata-toggle{align-self:flex-start}.kb-create>button{align-self:flex-end;white-space:nowrap}.kb-create-fields input,.kb-create-fields select{max-width:100%}.model-select{padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);color:var(--text);outline:none}.model-select:focus{border-color:var(--accent)}.metadata-toggle{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);color:var(--text-dim);cursor:pointer}.metadata-toggle input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer}.kb-num-field{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);color:var(--text-dim)}.kb-num-field input[type=number]{width:100px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);color:var(--text);outline:none}.kb-num-field input:focus{border-color:var(--accent)}.kb-body{flex:1;display:flex;overflow:hidden}.kb-list{width:350px;border-right:1px solid var(--border);overflow-y:auto;padding:16px}.kb-item{display:flex;align-items:center;justify-content:space-between;padding:16px;border-radius:10px;cursor:pointer;margin-bottom:4px}.kb-item:hover{background:var(--bg-hover)}.kb-item.active{background:var(--bg-hover);border:1px solid var(--accent)}.kb-item-main{display:flex;flex-direction:column;gap:4px;min-width:0}.kb-name{font-weight:600}.kb-meta{font-size:var(--fs-xs);color:var(--text-dim)}.kb-detail{flex:1;overflow-y:auto;padding:30px}.kb-detail-header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}.kb-back-btn{display:none}.kb-detail-header>div:first-of-type{flex:1;min-width:0}.kb-detail-header h2{margin:0 0 8px}.kb-desc{margin:0;color:var(--text-dim);font-size:var(--fs-sm)}.kb-models{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:10px}.kb-model-tag{font-size:var(--fs-xs);color:var(--accent);background:#4f8cff1f;border:1px solid rgba(79,140,255,.3);padding:4px 12px;border-radius:16px}.kb-empty,.kb-empty-docs{color:var(--text-dim);text-align:center;padding:60px 30px;line-height:1.7}.doc-table{width:100%;border-collapse:collapse}.doc-table-wrap{width:100%}.doc-table th,.doc-table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border)}.doc-table th{color:var(--text-dim);font-weight:500;font-size:var(--fs-sm)}.doc-name{max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status{padding:2px 10px;border-radius:12px;font-size:var(--fs-xs);white-space:nowrap}.status.indexed{background:#2ecc7126;color:#2ecc71}.status.failed{background:#ff6b6b26;color:#ff6b6b}.status.pending,.status.parsing,.status.chunking,.status.embedding{background:#4f8cff26;color:var(--accent)}.mini-btn{background:transparent;color:var(--text-dim);border:1px solid var(--border);height:30px;padding:0 10px;font-size:var(--fs-xs);gap:4px}.mini-btn:hover{color:var(--text);border-color:var(--text-dim)}.preview-panel{margin-bottom:24px;border:1px solid var(--border);border-radius:12px;padding:20px;background:var(--bg-panel)}.preview-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.preview-filename{color:var(--text-dim);font-size:var(--fs-sm)}.preview-params{display:flex;gap:20px;margin-bottom:16px}.preview-params label{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-dim)}.preview-params select,.preview-params input{width:auto;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);outline:none}.preview-params input[type=number]{width:112px}.preview-error{color:#ff6b6b;margin:0 0 10px}.preview-loading{color:var(--text-dim);margin:0}.preview-body{max-height:500px;overflow-y:auto}.preview-summary{color:var(--text-dim);font-size:var(--fs-sm);margin:0 0 16px}.preview-summary strong{color:var(--accent)}.preview-chunk-list{display:flex;flex-direction:column;gap:12px}.preview-chunk{border:1px solid var(--border);border-radius:10px;padding:12px 16px}.preview-chunk-head{display:flex;justify-content:space-between;margin-bottom:8px}.preview-chunk-seq{color:var(--accent);font-size:var(--fs-xs);font-weight:600}.preview-chunk-len{color:var(--text-dim);font-size:var(--fs-xs)}.preview-chunk-content{margin:0;font-size:var(--fs-sm);line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text)}.preview-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:18px}.cancel-btn{background:transparent;color:var(--text-dim);border:1px solid var(--border)}.confirm-dialog{max-width:500px}.confirm-message{margin:0 0 24px;font-size:var(--fs-base);line-height:1.6;color:var(--text);word-break:break-word}.confirm-actions{display:flex;justify-content:flex-end;gap:12px}.danger-btn{background:#e5484d;color:#fff}.danger-btn:hover{background:#d9363b}.structure-banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;margin-bottom:16px;background:#2ecc7114;border:1px solid rgba(46,204,113,.3);border-radius:10px;font-size:var(--fs-sm)}.structure-badge{color:#2ecc71;font-weight:600}.structure-reason{color:var(--text-dim)}.structure-recommend{color:var(--accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100}.modal-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:18px;width:100%;max-width:650px;max-height:86vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0006}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:var(--fs-xl)}.modal-close{background:transparent;color:var(--text-dim);border:none;padding:4px;border-radius:8px;transition:color .15s,background .15s}.modal-close:hover{color:var(--text)}.modal-body{padding:24px;overflow-y:auto}.profile-error{color:#ff6b6b;margin:0 0 16px}.profile-success{color:#2ecc71;margin:0 0 16px}.profile-loading{color:var(--text-dim)}.profile-card{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:18px}.profile-card h3{margin:0 0 18px;font-size:var(--fs-base)}.profile-info{display:flex;flex-direction:column;gap:12px}.info-row{display:flex;gap:20px}.info-label{width:100px;flex-shrink:0;color:var(--text-dim);font-size:var(--fs-sm)}.info-value{color:var(--text);font-size:var(--fs-base)}.profile-form{display:flex;flex-direction:column;gap:16px}.profile-form label{display:flex;flex-direction:column;gap:8px;font-size:var(--fs-sm);color:var(--text-dim)}.profile-form input{padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);color:var(--text);outline:none}.profile-form input:focus{border-color:var(--accent)}.profile-form button{align-self:flex-start;margin-top:4px}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:#3a4250}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.retrieval-test{margin-top:30px;padding-top:24px;border-top:1px solid var(--border)}.retrieval-test h3{margin:0 0 8px;font-size:var(--fs-lg)}.retrieval-test-hint{margin:0 0 16px;font-size:var(--fs-xs);color:var(--text-dim)}.retrieval-test-form{display:flex;gap:12px;align-items:center;margin-bottom:16px}.retrieval-test-form input[type=text],.retrieval-test-form input:not([type]){flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);outline:none}.retrieval-test-form input:focus{border-color:var(--accent)}.topk-label{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-dim);white-space:nowrap}.topk-input{width:76px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);outline:none}.retrieval-test-result{margin-top:4px}.retrieval-test-summary{font-size:var(--fs-sm);color:var(--text-dim);margin:0 0 12px}.retrieval-test-summary strong{color:var(--accent)}.retrieval-test-empty{color:var(--text-dim);padding:20px;text-align:center}.retrieval-hit{border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:12px;background:var(--bg)}.retrieval-hit-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.retrieval-hit-rank{color:var(--accent);font-weight:600;font-size:var(--fs-sm)}.retrieval-hit-doc{display:flex;align-items:center;gap:8px;color:var(--text);font-size:var(--fs-sm);flex:1;min-width:0}.retrieval-hit-score{color:var(--text-dim);font-size:var(--fs-xs);flex-shrink:0}.retrieval-hit-content{margin:0;font-size:var(--fs-sm);line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text)}.kb-detail-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.kb-detail-actions button{white-space:nowrap;flex-shrink:0;height:40px;padding:0 18px;font-size:var(--fs-sm);gap:8px}.secondary-btn{background:transparent;color:var(--accent);border:1px solid var(--accent);padding:0 18px;height:40px;border-radius:8px;font-size:var(--fs-sm);transition:background .15s,color .15s}.secondary-btn:hover{background:#4f8cff1f}.rt-page{height:100%;display:flex;flex-direction:column}.rt-header{display:flex;align-items:center;gap:20px;padding:18px 30px;border-bottom:1px solid var(--border)}.rt-header h1{flex:1;margin:0;font-size:var(--fs-2xl)}.rt-body{flex:1;overflow-y:auto;padding:30px;max-width:1076px}.rt-controls{display:flex;gap:12px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.rt-kb{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);color:var(--text-dim);white-space:nowrap}.rt-kb select{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);color:var(--text);outline:none}.rt-controls>input:not([type=number]){flex:1;min-width:300px;padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);outline:none}.rt-controls input:focus,.rt-kb select:focus{border-color:var(--accent)}.rt-topk{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-dim);white-space:nowrap}.rt-rerank-toggle{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-dim);cursor:pointer;white-space:nowrap}.rt-rerank-toggle input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer}.rt-rerank-model{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-dim);white-space:nowrap}.rt-rerank-model.disabled{opacity:.5}.rt-rerank-model select{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);color:var(--text);outline:none}.rt-rerank-model select:focus{border-color:var(--accent)}.rt-result{margin-top:10px}.rt-summary{font-size:var(--fs-sm);color:var(--text-dim);margin:0 0 16px}.rt-summary strong{color:var(--accent)}.rt-empty{color:var(--text-dim);padding:40px;text-align:center}.mm-page{height:100%;display:flex;flex-direction:column}.mm-header{display:flex;align-items:center;gap:20px;padding:18px 30px;border-bottom:1px solid var(--border)}.mm-header h1{flex:1;margin:0;font-size:var(--fs-2xl);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mm-header button{flex-shrink:0}.mm-body{flex:1;overflow-y:auto;padding:30px}.mm-name{font-weight:600}.model-type-tag{padding:2px 12px;border-radius:12px;font-size:var(--fs-xs);white-space:nowrap}.model-type-tag.mt-chat{background:#4f8cff26;color:var(--accent)}.model-type-tag.mt-embedding{background:#1dd1dc26;color:#1dd1dc}.model-type-tag.mt-reranker{background:#ef9f2726;color:#ef9f27}.model-type-tag.mt-classification{background:#d4537e26;color:#d4537e}.model-type-tag.mt-vision{background:#7f77dd26;color:#7f77dd}.model-type-tag.mt-audio{background:#1d9e7526;color:#1d9e75}.mm-modelname{color:var(--text-dim);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:var(--fs-sm)}.mm-actions{display:flex;gap:8px;white-space:nowrap;flex-shrink:0}.mm-actions .mini-btn{flex-shrink:0}.mini-btn.danger{color:#ff6b6b;border-color:#ff6b6b66}.mini-btn.danger:hover{background:#ff6b6b1a}.mm-test-dialog{max-width:800px}.mm-test-output{margin:0;padding:16px;background:var(--bg);border:1px solid var(--border);border-radius:10px;font-size:var(--fs-sm);line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text);max-height:60vh;overflow-y:auto}.mm-form-card{max-width:700px}.mm-form{display:flex;flex-direction:column;gap:16px}.mm-form label{display:flex;flex-direction:column;gap:8px;font-size:var(--fs-sm);color:var(--text-dim)}.mm-form input,.mm-form select{padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);color:var(--text);outline:none;font-size:var(--fs-base)}.mm-form input:focus,.mm-form select:focus{border-color:var(--accent)}.mm-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mm-form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.sidebar-close,.sidebar-toggle,.sidebar-mask{display:none}@media (max-width: 960px){.sidebar{position:fixed;left:0;top:0;bottom:0;width:324px;z-index:50;transform:translate(-100%);transition:transform .25s ease;box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:4px 0 30px #0006}.sidebar-mask{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:49}.sidebar-close{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--text-dim);width:36px;height:36px;padding:0}.sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--text);border:1px solid var(--border);width:40px;height:40px;padding:0;border-radius:8px;flex-shrink:0}.sidebar-toggle svg{width:20px;height:20px}.chat-toolbar{gap:10px;padding:12px 16px;flex-wrap:wrap}.kb-select{flex-wrap:wrap;gap:4px}.message-list{padding:16px;gap:16px}.bubble{max-width:88%;padding:12px 16px}.input-bar{padding:12px 16px;gap:10px}.input-bar textarea{font-size:var(--fs-base)}.input-bar button{min-width:80px;padding:8px 12px}.kb-header,.mm-header,.rt-header{padding:16px 20px;gap:12px;flex-wrap:wrap}.kb-header h1,.mm-header h1,.rt-header h1{font-size:var(--fs-lg)}.kb-body{flex-direction:column;overflow:hidden}.kb-list{width:100%;flex:1;min-height:0;overflow-y:auto;border-right:none;padding:10px}.kb-detail{flex:1;min-height:0;padding:20px;overflow-y:auto}.kb-body:not(.detail-open) .kb-detail{display:none}.kb-body.detail-open .kb-list{display:none}.kb-detail-header{flex-direction:column;align-items:flex-start;gap:16px}.kb-back-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;color:var(--accent);border:none;padding:0;font-size:var(--fs-base)}.kb-detail-actions{width:100%}.kb-detail-actions button{flex:1;justify-content:center;text-align:center}.kb-create{padding:16px 20px}.kb-create-fields{grid-template-columns:1fr}.preview-params{flex-direction:column;gap:10px}.preview-params label{justify-content:space-between}.doc-table-wrap{overflow:visible}.doc-table-wrap .doc-table{display:block;min-width:0;width:100%}.doc-table-wrap .doc-table thead{display:none}.doc-table-wrap .doc-table tbody{display:block}.doc-table-wrap .doc-table tr{display:block;padding:18px 16px;margin-bottom:12px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card, var(--bg))}.doc-table-wrap .doc-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:none;white-space:normal;text-align:right}.doc-table-wrap .doc-table td:before{content:attr(data-label);flex-shrink:0;color:var(--text-dim);font-size:var(--fs-xs);font-weight:500;text-align:left}.doc-table-wrap .doc-table td.doc-name{max-width:none;font-weight:600;font-size:var(--fs-lg);word-break:break-all}.doc-table-wrap .doc-table td:last-child:before{content:none}.doc-table-wrap .doc-table td:last-child{padding-top:12px;justify-content:flex-end}.mm-body{padding:16px}.mm-form-row{grid-template-columns:1fr;gap:12px}.mm-table{display:block;min-width:0;width:100%}.mm-table thead{display:none}.mm-table tbody{display:block}.mm-table tr{display:block;padding:18px 16px;margin-bottom:12px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card, var(--bg))}.mm-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:none;white-space:normal;text-align:right}.mm-table td:before{content:attr(data-label);flex-shrink:0;color:var(--text-dim);font-size:var(--fs-xs);font-weight:500;text-align:left}.mm-table td.mm-name,.mm-table td.mm-modelname{text-align:right;justify-content:space-between}.mm-name{font-size:var(--fs-lg)}.mm-modelname{word-break:break-all}.mm-table .mm-actions{padding-top:12px;justify-content:flex-end;flex-wrap:wrap}.mm-table .mm-actions:before{content:none}.modal-card{max-width:100%;width:calc(100% - 30px);max-height:92vh;margin:0 16px}.login-card{width:calc(100% - 40px);max-width:424px}.rt-body{padding:20px}.rt-controls{flex-direction:column;align-items:stretch}.rt-controls>input:not([type=number]){min-width:0;width:100%}.rt-kb,.rt-rerank-model{width:100%}.rt-kb select,.rt-rerank-model select{flex:1}.rt-controls button{width:100%;justify-content:center;text-align:center}}
