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}html{font-size:125%}html[data-density=compact]{font-size:100%}html[data-density=spacious]{font-size:150%}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);font-size:.875rem}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;height:2rem;padding:0 .75rem;border:none;border-radius:.375rem;background:var(--accent);color:#fff;font:inherit;font-size:.8125rem;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:.375rem}.icon-only{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;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:.625rem .75rem;border:1px solid var(--border);border-radius:.5rem;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}.login-card{width:21.25rem;display:flex;flex-direction:column;gap:.75rem;padding:2rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:.75rem}.login-card h1{margin:0;text-align:center}.login-card .subtitle{margin:0 0 .75rem;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:.75rem;text-align:center}.chat-layout{height:100%;display:flex}.sidebar{width:16.25rem;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:.875rem;border-bottom:1px solid var(--border)}.new-btn{background:var(--accent);height:1.75rem;padding:0 .625rem;font-size:.8125rem;gap:.375rem}.conv-list{flex:1;overflow-y:auto;padding:.5rem}.conv-item{display:flex;align-items:center;justify-content:space-between;padding:.625rem;border-radius:.5rem;cursor:pointer;margin-bottom:.125rem}.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:.375rem;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:.75rem .875rem;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:.375rem;padding:.375rem .5rem;border-radius:.5rem;cursor:pointer;transition:background .15s;width:fit-content}.sidebar-footer .user-entry:hover{background:var(--bg-hover)}.avatar{width:1.75rem;height:1.75rem;border-radius:50%;background:var(--accent);color:#fff;font-size:.875rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-footer .who{color:var(--text);font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:8.125rem}.menu-arrow{width:1rem;height:1rem;color:var(--text-dim);flex-shrink:0}.user-menu{position:absolute;bottom:2.875rem;left:0;min-width:11rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:.625rem;padding:.375rem;box-shadow:0 .5rem 1.5rem #0000004d;z-index:20}.menu-divider{height:1px;margin:.375rem .25rem;background:var(--border)}.menu-group-label{padding:.375rem .75rem .25rem;font-size:.75rem;color:var(--text-dim)}.density-dot{width:1rem;height:1rem;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.density-dot:before{content:"";width:.5rem;height:.5rem;border-radius:50%;border:1px solid var(--border)}.density-item.active{color:var(--accent)}.density-item.active .density-dot:before{background:var(--accent);border-color:var(--accent)}.density-scale{margin-left:auto;color:var(--text-dim);font-size:.75rem;font-variant-numeric:tabular-nums}.menu-item{display:flex;align-items:center;justify-content:flex-start;gap:.625rem;width:100%;height:auto;padding:.5625rem .75rem;background:transparent;color:var(--text);border:none;border-radius:.375rem;font-size:.8125rem;text-align:left;cursor:pointer}.menu-item:hover{background:var(--bg-hover)}.menu-icon{width:1rem;height:1rem;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:1.75rem;padding:0 .625rem;font-size:.8125rem;gap:.375rem;flex-shrink:0}.logout-btn:hover{color:var(--text);border-color:var(--text-dim)}.chat-main{flex:1;display:flex;flex-direction:column}.message-list{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.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:.75rem 1rem;border-radius:.75rem;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:.75rem;padding-top:.625rem;border-top:1px solid var(--border)}.citations-title{font-size:.75rem;color:var(--text-dim);margin-bottom:.5rem}.citation-item{display:flex;gap:.5rem;margin-bottom:.5rem;padding:.5rem .625rem;background:#ffffff08;border-radius:.375rem}.citation-index{color:var(--accent);font-size:.8125rem;font-weight:600;flex-shrink:0}.citation-body{flex:1;min-width:0}.citation-name{display:block;font-size:.8125rem;color:var(--text);margin-bottom:.25rem}.citation-snippet{margin:0;font-size:.75rem;color:var(--text-dim);line-height:1.5;white-space:pre-wrap;word-break:break-word}.citation-files{display:flex;flex-wrap:wrap;gap:.375rem}.citation-file-chip{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--accent);background:#4f8cff1f;border:1px solid rgba(79,140,255,.3);padding:.1875rem .625rem;border-radius:.75rem;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 .5rem}.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:.875rem 0 .375rem;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:.125rem .3125rem;border-radius:.25rem}.bubble .markdown pre{background:#0b0e14;border:1px solid var(--border);border-radius:.5rem;padding:.75rem;overflow-x:auto;margin:.5rem 0}.bubble .markdown pre code{background:transparent;padding:0;font-size:.8125rem;white-space:pre}.bubble .markdown ul,.bubble .markdown ol{margin:.375rem 0;padding-left:1.375rem}.bubble .markdown li{margin:.1875rem 0}.bubble .markdown table{border-collapse:collapse;margin:.5rem 0;width:100%}.bubble .markdown th,.bubble .markdown td{border:1px solid var(--border);padding:.375rem .625rem;text-align:left}.bubble .markdown th{background:#ffffff0d}.bubble .markdown blockquote{border-left:3px solid var(--accent);margin:.5rem 0;padding:.125rem .75rem;color:var(--text-dim)}.bubble .markdown a{color:var(--accent)}.bubble .markdown hr{border:none;border-top:1px solid var(--border);margin:.75rem 0}.bubble .markdown strong{font-weight:600}.input-bar{display:flex;align-items:stretch;gap:.625rem;padding:1rem 1.5rem;border-top:1px solid var(--border)}.input-bar textarea{flex:1;resize:none}.input-bar button{min-width:5rem;height:auto;align-self:stretch}.chat-toolbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--border)}.mode-switch{display:flex;gap:.375rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:.5rem;padding:.1875rem}.mode-btn{background:transparent;color:var(--text-dim);height:1.75rem;padding:0 .75rem;font-size:.8125rem;gap:.375rem;border-radius:.375rem}.mode-btn:hover{color:var(--text)}.mode-btn.active{background:var(--accent);color:#fff}.kb-select{display:flex;align-items:center;gap:.5rem}.kb-label{color:var(--text-dim);font-size:.8125rem}.kb-select select{padding:.375rem .625rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg-panel);color:var(--text);outline:none}.kb-select select:focus{border-color:var(--accent)}.kb-manage-btn{background:transparent;color:var(--text-dim);border:1px solid var(--border);padding:.25rem .625rem;font-size:.8125rem}.kb-page{height:100%;display:flex;flex-direction:column}.kb-header{display:flex;align-items:center;gap:1rem;padding:.875rem 1.5rem;border-bottom:1px solid var(--border)}.kb-header h1{flex:1;margin:0;font-size:1.125rem;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:.625rem 1.5rem;color:#ff6b6b;background:#ff6b6b14}.kb-create{display:flex;flex-direction:column;gap:.625rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--border)}.kb-create-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:.625rem}.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:.625rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg-panel);color:var(--text);outline:none}.model-select:focus{border-color:var(--accent)}.metadata-toggle{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-dim);cursor:pointer}.metadata-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.kb-num-field{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-dim)}.kb-num-field input[type=number]{width:5rem;padding:.5rem .625rem;border:1px solid var(--border);border-radius:.5rem;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:17.5rem;border-right:1px solid var(--border);overflow-y:auto;padding:.75rem}.kb-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-radius:.5rem;cursor:pointer;margin-bottom:.25rem}.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:.25rem;min-width:0}.kb-name{font-weight:600}.kb-meta{font-size:.75rem;color:var(--text-dim)}.kb-detail{flex:1;overflow-y:auto;padding:1.5rem}.kb-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.kb-back-btn{display:none}.kb-detail-header>div:first-of-type{flex:1;min-width:0}.kb-detail-header h2{margin:0 0 .375rem}.kb-desc{margin:0;color:var(--text-dim);font-size:.8125rem}.kb-models{margin:.625rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}.kb-model-tag{font-size:.75rem;color:var(--accent);background:#4f8cff1f;border:1px solid rgba(79,140,255,.3);padding:.1875rem .625rem;border-radius:.75rem}.kb-empty,.kb-empty-docs{color:var(--text-dim);text-align:center;padding:3rem 1.5rem;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:.625rem .75rem;border-bottom:1px solid var(--border)}.doc-table th{color:var(--text-dim);font-weight:500;font-size:.8125rem}.doc-name{max-width:20rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status{padding:.125rem .5rem;border-radius:.625rem;font-size:.75rem;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:1.5rem;padding:0 .5rem;font-size:.75rem;gap:.25rem}.mini-btn:hover{color:var(--text);border-color:var(--text-dim)}.preview-panel{margin-bottom:1.25rem;border:1px solid var(--border);border-radius:.625rem;padding:1rem;background:var(--bg-panel)}.preview-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.preview-filename{color:var(--text-dim);font-size:.8125rem}.preview-params{display:flex;gap:1rem;margin-bottom:.75rem}.preview-params label{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-dim)}.preview-params select,.preview-params input{width:auto;padding:.375rem .625rem;border:1px solid var(--border);border-radius:.375rem;background:var(--bg);color:var(--text);outline:none}.preview-params input[type=number]{width:5.625rem}.preview-error{color:#ff6b6b;margin:0 0 .5rem}.preview-loading{color:var(--text-dim);margin:0}.preview-body{max-height:25rem;overflow-y:auto}.preview-summary{color:var(--text-dim);font-size:.8125rem;margin:0 0 .75rem}.preview-summary strong{color:var(--accent)}.preview-chunk-list{display:flex;flex-direction:column;gap:.625rem}.preview-chunk{border:1px solid var(--border);border-radius:.5rem;padding:.625rem .75rem}.preview-chunk-head{display:flex;justify-content:space-between;margin-bottom:.375rem}.preview-chunk-seq{color:var(--accent);font-size:.75rem;font-weight:600}.preview-chunk-len{color:var(--text-dim);font-size:.75rem}.preview-chunk-content{margin:0;font-size:.8125rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text)}.preview-actions{display:flex;justify-content:flex-end;gap:.625rem;margin-top:.875rem}.cancel-btn{background:transparent;color:var(--text-dim);border:1px solid var(--border)}.confirm-dialog{max-width:25rem}.confirm-message{margin:0 0 1.25rem;font-size:.875rem;line-height:1.6;color:var(--text);word-break:break-word}.confirm-actions{display:flex;justify-content:flex-end;gap:.625rem}.danger-btn{background:#e5484d;color:#fff}.danger-btn:hover{background:#d9363b}.structure-banner{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .75rem;margin-bottom:.75rem;background:#2ecc7114;border:1px solid rgba(46,204,113,.3);border-radius:.5rem;font-size:.8125rem}.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:.875rem;width:100%;max-width:32.5rem;max-height:86vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 1rem 3rem #0006}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:1.0625rem}.modal-close{background:transparent;color:var(--text-dim);border:none;padding:.25rem;border-radius:.375rem;transition:color .15s,background .15s}.modal-close:hover{color:var(--text)}.modal-body{padding:1.25rem;overflow-y:auto}.profile-error{color:#ff6b6b;margin:0 0 .75rem}.profile-success{color:#2ecc71;margin:0 0 .75rem}.profile-loading{color:var(--text-dim)}.profile-card{background:var(--bg);border:1px solid var(--border);border-radius:.625rem;padding:1rem;margin-bottom:.875rem}.profile-card h3{margin:0 0 .875rem;font-size:.875rem}.profile-info{display:flex;flex-direction:column;gap:.625rem}.info-row{display:flex;gap:1rem}.info-label{width:5rem;flex-shrink:0;color:var(--text-dim);font-size:.8125rem}.info-value{color:var(--text);font-size:.875rem}.profile-form{display:flex;flex-direction:column;gap:.75rem}.profile-form label{display:flex;flex-direction:column;gap:.375rem;font-size:.8125rem;color:var(--text-dim)}.profile-form input{padding:.625rem .75rem;border:1px solid var(--border);border-radius:.5rem;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:.25rem}*::-webkit-scrollbar{width:.5rem;height:.5rem}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:.25rem}*::-webkit-scrollbar-thumb:hover{background:#3a4250}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.retrieval-test{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.retrieval-test h3{margin:0 0 .375rem;font-size:.9375rem}.retrieval-test-hint{margin:0 0 .75rem;font-size:.75rem;color:var(--text-dim)}.retrieval-test-form{display:flex;gap:.625rem;align-items:center;margin-bottom:.75rem}.retrieval-test-form input[type=text],.retrieval-test-form input:not([type]){flex:1;padding:.5625rem .75rem;border:1px solid var(--border);border-radius:.5rem;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:.375rem;font-size:.8125rem;color:var(--text-dim);white-space:nowrap}.topk-input{width:3.75rem;padding:.5rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg);color:var(--text);outline:none}.retrieval-test-result{margin-top:.25rem}.retrieval-test-summary{font-size:.8125rem;color:var(--text-dim);margin:0 0 .625rem}.retrieval-test-summary strong{color:var(--accent)}.retrieval-test-empty{color:var(--text-dim);padding:1rem;text-align:center}.retrieval-hit{border:1px solid var(--border);border-radius:.5rem;padding:.75rem;margin-bottom:.625rem;background:var(--bg)}.retrieval-hit-head{display:flex;align-items:center;gap:.625rem;margin-bottom:.5rem;flex-wrap:wrap}.retrieval-hit-rank{color:var(--accent);font-weight:600;font-size:.8125rem}.retrieval-hit-doc{display:flex;align-items:center;gap:.375rem;color:var(--text);font-size:.8125rem;flex:1;min-width:0}.retrieval-hit-score{color:var(--text-dim);font-size:.75rem;flex-shrink:0}.retrieval-hit-content{margin:0;font-size:.8125rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text)}.kb-detail-actions{display:flex;align-items:center;gap:.625rem;flex-shrink:0}.kb-detail-actions button{white-space:nowrap;flex-shrink:0;height:2rem;padding:0 .875rem;font-size:.8125rem;gap:.375rem}.secondary-btn{background:transparent;color:var(--accent);border:1px solid var(--accent);padding:0 .875rem;height:2rem;border-radius:.375rem;font-size:.8125rem;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:1rem;padding:.875rem 1.5rem;border-bottom:1px solid var(--border)}.rt-header h1{flex:1;margin:0;font-size:1.125rem}.rt-body{flex:1;overflow-y:auto;padding:1.5rem;max-width:53.75rem}.rt-controls{display:flex;gap:.625rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.rt-kb{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-dim);white-space:nowrap}.rt-kb select{padding:.5625rem .625rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg-panel);color:var(--text);outline:none}.rt-controls>input:not([type=number]){flex:1;min-width:15rem;padding:.5625rem .75rem;border:1px solid var(--border);border-radius:.5rem;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:.375rem;font-size:.8125rem;color:var(--text-dim);white-space:nowrap}.rt-rerank-toggle{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-dim);cursor:pointer;white-space:nowrap}.rt-rerank-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.rt-rerank-model{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-dim);white-space:nowrap}.rt-rerank-model.disabled{opacity:.5}.rt-rerank-model select{padding:.5rem .625rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg-panel);color:var(--text);outline:none}.rt-rerank-model select:focus{border-color:var(--accent)}.rt-result{margin-top:.5rem}.rt-summary{font-size:.8125rem;color:var(--text-dim);margin:0 0 .75rem}.rt-summary strong{color:var(--accent)}.rt-empty{color:var(--text-dim);padding:2rem;text-align:center}.mm-page{height:100%;display:flex;flex-direction:column}.mm-header{display:flex;align-items:center;gap:1rem;padding:.875rem 1.5rem;border-bottom:1px solid var(--border)}.mm-header h1{flex:1;margin:0;font-size:1.125rem;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:1.5rem}.mm-name{font-weight:600}.model-type-tag{padding:.125rem .625rem;border-radius:.625rem;font-size:.75rem;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:.8125rem}.mm-actions{display:flex;gap:.375rem;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:40rem}.mm-test-output{margin:0;padding:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:.5rem;font-size:.8125rem;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:35rem}.mm-form{display:flex;flex-direction:column;gap:.75rem}.mm-form label{display:flex;flex-direction:column;gap:.375rem;font-size:.8125rem;color:var(--text-dim)}.mm-form input,.mm-form select{padding:.625rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg-panel);color:var(--text);outline:none;font-size:.875rem}.mm-form input:focus,.mm-form select:focus{border-color:var(--accent)}.mm-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.mm-form-actions{display:flex;justify-content:flex-end;gap:.625rem;margin-top:1rem}.sidebar-close,.sidebar-toggle,.sidebar-mask{display:none}@media (max-width: 960px){.sidebar{position:fixed;left:0;top:0;bottom:0;width:16.25rem;z-index:50;transform:translate(-100%);transition:transform .25s ease;box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:.25rem 0 1.5rem #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:1.75rem;height:1.75rem;padding:0}.sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--text);border:1px solid var(--border);width:2rem;height:2rem;padding:0;border-radius:.375rem;flex-shrink:0}.sidebar-toggle svg{width:1.125rem;height:1.125rem}.chat-toolbar{gap:.5rem;padding:.625rem .75rem;flex-wrap:wrap}.kb-select{flex-wrap:wrap;gap:.25rem}.message-list{padding:.75rem;gap:.75rem}.bubble{max-width:88%;padding:.625rem .75rem}.input-bar{padding:.625rem .75rem;gap:.5rem}.input-bar textarea{font-size:1rem}.input-bar button{min-width:4rem;padding:.375rem .625rem}.kb-header,.mm-header,.rt-header{padding:.75rem 1rem;gap:.625rem;flex-wrap:wrap}.kb-header h1,.mm-header h1,.rt-header h1{font-size:1rem}.kb-body{flex-direction:column;overflow:hidden}.kb-list{width:100%;flex:1;min-height:0;overflow-y:auto;border-right:none;padding:.5rem}.kb-detail{flex:1;min-height:0;padding:1rem;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:.75rem}.kb-back-btn{display:inline-flex;align-items:center;gap:.25rem;background:transparent;color:var(--accent);border:none;padding:0;font-size:.875rem}.kb-detail-actions{width:100%}.kb-detail-actions button{flex:1;justify-content:center;text-align:center}.kb-create{padding:.75rem 1rem}.kb-create-fields{grid-template-columns:1fr}.preview-params{flex-direction:column;gap:.5rem}.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:.875rem .75rem;margin-bottom:.625rem;border:1px solid var(--border);border-radius:.625rem;background:var(--bg-card, var(--bg))}.doc-table-wrap .doc-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.375rem 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:.75rem;font-weight:500;text-align:left}.doc-table-wrap .doc-table td.doc-name{max-width:none;font-weight:600;font-size:.9375rem;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:.625rem;justify-content:flex-end}.mm-body{padding:.75rem}.mm-form-row{grid-template-columns:1fr;gap:.625rem}.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:.875rem .75rem;margin-bottom:.625rem;border:1px solid var(--border);border-radius:.625rem;background:var(--bg-card, var(--bg))}.mm-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.375rem 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:.75rem;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:.9375rem}.mm-modelname{word-break:break-all}.mm-table .mm-actions{padding-top:.625rem;justify-content:flex-end;flex-wrap:wrap}.mm-table .mm-actions:before{content:none}.modal-card{max-width:100%;width:calc(100% - 1.5rem);max-height:92vh;margin:0 .75rem}.login-card{width:calc(100% - 2rem);max-width:21.25rem}.rt-body{padding:1rem}.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}}
