:root{--bg-primary: #f8f9fa;--bg-secondary: #ffffff;--bg-tertiary: #e9ecef;--bg-hover: rgba(0, 0, 0, .05);--bg-active: rgba(13, 110, 253, .08);--text-primary: #3b3b3b;--text-secondary: #6c757d;--text-tertiary: #adb5bd;--accent: #0d6efd;--accent-hover: #0b5ed7;--error: #dc3545;--success: #198754;--warning: #ffc107;--border: #dee2e6}.chat-markdown{line-height:1.7;word-break:break-word;overflow-wrap:break-word}.chat-markdown>*:first-child{margin-top:0}.chat-markdown>*:last-child{margin-bottom:0}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3,.chat-markdown h4,.chat-markdown h5,.chat-markdown h6{margin:1.2em 0 .5em;font-weight:600;line-height:1.35}.chat-markdown h1{font-size:1.25rem}.chat-markdown h2{font-size:1.15rem}.chat-markdown h3{font-size:1.05rem}.chat-markdown h4{font-size:1rem}.chat-markdown h5{font-size:.95rem}.chat-markdown h6{font-size:.9rem;color:var(--text-secondary, #6c757d)}.chat-markdown p{margin:.6em 0}.chat-markdown ul,.chat-markdown ol{margin:.6em 0;padding-inline-start:1.5em;list-style-position:outside}.chat-markdown ol{padding-inline-start:1.7em}.chat-markdown li{margin:.3em 0}.chat-markdown li>ul,.chat-markdown li>ol{margin:.3em 0}.chat-markdown li::marker{color:var(--text-secondary, #6c757d)}.chat-markdown ul:has(>li>input[type=checkbox]){padding-inline-start:0;list-style:none}.chat-markdown li>input[type=checkbox]{width:14px;height:14px;margin:0 .5em 0 0;vertical-align:-1px;accent-color:var(--accent, #0d6efd)}.chat-markdown code{background:var(--bg-tertiary);padding:.125rem .375rem;border-radius:4px;font-family:ui-monospace,monospace;font-size:.85em}.chat-markdown pre{background:var(--bg-tertiary);padding:1rem;border-radius:8px;overflow-x:auto;margin:.75rem 0;max-width:100%;box-sizing:border-box}.chat-markdown pre code{background:none;padding:0}.chat-markdown .chat-code{margin:.75rem 0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--code-bg, #f8fafc)}.chat-markdown .chat-code-bar{display:flex;align-items:center;gap:8px;height:26px;padding:0 10px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.chat-markdown .chat-code-lang{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,Consolas,monospace;font-size:10.5px;letter-spacing:.04em;color:var(--text-secondary, #6c757d)}.chat-markdown .chat-code-copy{flex:0 0 auto;height:20px;padding:0 6px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-secondary, #6c757d);font-size:11px;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.chat-markdown .chat-code-copy:hover{border-color:var(--border);background:var(--bg-primary);color:var(--text-primary)}.chat-markdown .chat-code-copy.is-done{border-color:#16a34a73;background:rgba(22,163,74,.12);color:#15803d}.chat-markdown .chat-code pre.chat-code-pre{margin:0;border-radius:0;background:transparent;padding:12px}:root{--code-bg: #f8fafc;--code-ink: #1f2937;--code-comment: #6b7280;--code-keyword: #cf222e;--code-string: #0a3069;--code-number: #0550ae;--code-function: #8250df;--code-variable: #953800;--code-tag: #116329;--code-meta: #0550ae;--code-deletion: #b91c1c}[data-theme=dark]{--code-bg: #0d1117;--code-ink: #e6edf3;--code-comment: #8b949e;--code-keyword: #ff7b72;--code-string: #a5d6ff;--code-number: #79c0ff;--code-function: #d2a8ff;--code-variable: #ffa657;--code-tag: #7ee787;--code-meta: #79c0ff;--code-deletion: #ffa198}.chat-markdown .hljs{color:var(--code-ink, #1f2937);background:transparent}.chat-markdown .hljs-comment,.chat-markdown .hljs-quote{color:var(--code-comment);font-style:italic}.chat-markdown .hljs-keyword,.chat-markdown .hljs-selector-tag,.chat-markdown .hljs-literal,.chat-markdown .hljs-doctag,.chat-markdown .hljs-name{color:var(--code-keyword)}.chat-markdown .hljs-string,.chat-markdown .hljs-regexp,.chat-markdown .hljs-addition{color:var(--code-string)}.chat-markdown .hljs-number,.chat-markdown .hljs-symbol,.chat-markdown .hljs-bullet,.chat-markdown .hljs-meta{color:var(--code-number)}.chat-markdown .hljs-title,.chat-markdown .hljs-title.function_,.chat-markdown .hljs-title.class_,.chat-markdown .hljs-section{color:var(--code-function)}.chat-markdown .hljs-attr,.chat-markdown .hljs-attribute,.chat-markdown .hljs-property,.chat-markdown .hljs-variable,.chat-markdown .hljs-params,.chat-markdown .hljs-template-variable{color:var(--code-variable)}.chat-markdown .hljs-tag,.chat-markdown .hljs-selector-id,.chat-markdown .hljs-selector-class{color:var(--code-tag)}.chat-markdown .hljs-built_in,.chat-markdown .hljs-type,.chat-markdown .hljs-meta .hljs-keyword{color:var(--code-meta)}.chat-markdown .hljs-deletion{color:var(--code-deletion)}.chat-markdown .hljs-emphasis{font-style:italic}.chat-markdown .hljs-strong{font-weight:600}.chat-markdown .hljs-link{text-decoration:underline}.chat-markdown blockquote{margin:.75em 0;padding:.35em .9em .35em 1em;border-left:3px solid color-mix(in srgb,var(--accent, #0d6efd) 55%,transparent);border-radius:0 8px 8px 0;background:color-mix(in srgb,var(--text-primary, #1f2937) 4%,transparent);color:var(--text-secondary)}.chat-markdown blockquote p{margin:.35em 0}.chat-markdown table{display:table;border-collapse:collapse;margin:.75rem 0;width:100%;max-width:100%;font-size:inherit}.chat-markdown thead{display:table-header-group}.chat-markdown tbody{display:table-row-group}.chat-markdown tr{display:table-row}.chat-markdown th,.chat-markdown td{display:table-cell;border:1px solid var(--border);padding:.5rem .75rem;text-align:left;vertical-align:top}.chat-markdown th{background:var(--bg-tertiary);font-weight:600}.chat-markdown .chat-table{margin:.75rem 0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg-primary)}.chat-markdown .chat-table-bar{display:flex;align-items:center;gap:6px;height:26px;padding:0 10px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.chat-markdown .chat-table-gap{flex:1 1 auto}.chat-markdown .chat-table-copy{flex:0 0 auto;height:20px;padding:0 6px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-secondary, #6c757d);font-size:11px;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.chat-markdown .chat-table-copy:hover{border-color:var(--border);background:var(--bg-primary);color:var(--text-primary)}.chat-markdown .chat-table-copy.is-done{border-color:#16a34a73;background:rgba(22,163,74,.12);color:#15803d}.chat-markdown .chat-table-scroll{overflow-x:auto;overflow-y:hidden;padding:10px}.chat-markdown .chat-table .chat-table-scroll table{width:100%;min-width:max-content;margin:0;border-collapse:collapse;font-size:.9em}.chat-markdown .chat-table .chat-table-scroll th,.chat-markdown .chat-table .chat-table-scroll td{border:0;border-bottom:1px solid var(--border);padding:8px 10px;text-align:left;vertical-align:top;white-space:nowrap}.chat-markdown .chat-table-scroll thead th{background:transparent;font-weight:600;color:var(--text-primary);border-bottom-color:color-mix(in srgb,var(--text-primary, #1f2937) 26%,transparent)}.chat-markdown .chat-table-scroll tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--text-primary, #1f2937) 3.5%,transparent)}.chat-markdown .chat-table-scroll th.is-num,.chat-markdown .chat-table-scroll td.is-num{text-align:right;font-variant-numeric:tabular-nums}.chat-markdown a{color:var(--accent);text-decoration:none}.chat-markdown a:hover{text-decoration:underline;text-underline-offset:2px}.chat-markdown hr{border:none;border-top:1px solid var(--border);margin:1.2em 0}.chat-markdown img,.chat-markdown video{max-width:100%;height:auto;vertical-align:middle}.chat-file-chip-group{display:inline-flex;align-items:center;vertical-align:text-bottom;transform:translateY(2px);margin:2px 4px;max-width:280px;border-radius:6px;overflow:hidden;border:1px solid rgba(13,110,253,.35);background:rgba(13,110,253,.08);height:22px;line-height:1}.chat-file-chip-icon{width:14px;height:14px;flex-shrink:0}.chat-file-chip-text{display:inline-flex;align-items:center;flex-shrink:1;min-width:0}.chat-file-chip-dir{font-size:12px;line-height:1.4;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.chat-file-chip-name{font-size:12px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.chat-file-chip-folder-icon{width:14px;height:14px;flex-shrink:0}.chat-file-chip{border:none;cursor:pointer;font-size:12px;padding:0 6px;color:#333;font-family:inherit;background:transparent;display:inline-flex;align-items:center;gap:4px;height:100%;line-height:1}.chat-file-chip--preview{min-width:0}.chat-file-chip--folder{border-left:1px solid rgba(13,110,253,.2);color:#0d6efd;justify-content:center}.chat-file-chip:hover{background:rgba(13,110,253,.14)}.message-item.user .chat-file-chip,.user-bubble .chat-file-chip{color:#1e283cf2}.message-item.user .chat-file-chip--folder,.user-bubble .chat-file-chip--folder{border-left-color:#1e283c59;color:#1e283cbf}.message-item.user .chat-file-chip:hover,.user-bubble .chat-file-chip:hover{background:rgba(255,255,255,.28)}.chat-markdown .chat-kb-chunk-link{display:inline;margin:0 2px;padding:0;border:none;background:none;font:inherit;line-height:inherit;vertical-align:baseline;cursor:pointer;text-decoration:none}.chat-markdown .chat-kb-chunk-link-prefix{display:inline;margin-right:2px;padding:0 4px;border-radius:4px;background:rgba(37,99,235,.1);color:#2563eb;font-size:.82em;font-weight:600;text-decoration:none}.chat-markdown .chat-kb-chunk-link-label{color:#2563eb;text-decoration:underline;text-decoration-color:#2563eb73;text-underline-offset:2px}.chat-markdown .chat-kb-chunk-link:hover .chat-kb-chunk-link-label,.chat-markdown .chat-kb-chunk-link:focus-visible .chat-kb-chunk-link-label{color:#1d4ed8;text-decoration-color:#1d4ed8}.chat-markdown .chat-kb-chunk-link:focus-visible{outline:2px solid rgba(37,99,235,.35);outline-offset:2px;border-radius:4px}*{margin:0;padding:0;box-sizing:border-box}:root{--scrollbar-thumb: rgba(13, 110, 253, .22);--scrollbar-thumb-hover: rgba(13, 110, 253, .42);--scrollbar-thumb-active: rgba(13, 110, 253, .55)}:where(*){scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}:where(*)::-webkit-scrollbar{width:6px;height:6px}:where(*)::-webkit-scrollbar-track{background:transparent}:where(*)::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}:where(*)::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}:where(*)::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active)}:where(*)::-webkit-scrollbar-corner{background:transparent}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh}#app{min-height:100vh;background:var(--bg-primary)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.header .logo{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:1.1rem}.header .username{font-size:.875rem;color:var(--text-secondary);font-weight:400}.header-actions{display:flex;gap:.5rem}.main{flex:1;overflow:hidden;display:flex;flex-direction:column}.footer{padding:1rem 1.5rem;background:var(--bg-secondary);border-top:1px solid var(--border)}.status-bar{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary);margin-bottom:.75rem}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.online{background:var(--success)}.status-dot.offline{background:var(--error)}.workspace-path{margin-left:.5rem;opacity:.7}.input-row{display:flex;gap:.75rem}.input-row textarea{flex:1;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:.5rem;color:var(--text-primary);font-size:.9rem;resize:none;font-family:inherit}.input-row textarea:focus{outline:none;border-color:var(--accent)}.input-row textarea:disabled{opacity:.5}.input-row button{padding:.75rem 1.5rem;background:var(--accent);color:#fff;border:none;border-radius:.5rem;font-size:.9rem;cursor:pointer;transition:background .2s}.input-row button:hover:not(:disabled){background:var(--accent-hover)}.input-row button:disabled{opacity:.5;cursor:not-allowed}.messages{flex:1;overflow-y:auto;padding:1.5rem;background:var(--bg-primary)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary)}.empty-icon{font-size:3rem;margin-bottom:1rem}.empty .tip{font-size:.875rem;opacity:.7}.message{display:flex;gap:1rem;margin-bottom:1.25rem}.message.user{flex-direction:row-reverse}.avatar{width:36px;height:36px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.message.assistant .avatar{background:var(--accent);color:#fff}.content{max-width:70%;padding:.875rem 1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:.25rem 1rem 1rem}.message.user .content{background:var(--accent);color:#fff;border-color:var(--accent);border-top-left-radius:1rem;border-top-right-radius:.25rem}.content pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:.9rem;line-height:1.5;margin:0}.tool-call{display:flex;flex-direction:column;gap:.5rem}.tool-badge{display:inline-block;font-size:.75rem;background:var(--accent);color:#fff;padding:.25rem .5rem;border-radius:4px;margin-bottom:.25rem}.message.loading .content{display:flex;align-items:center}.dots:after{content:"";animation:dots 1.5s infinite}@keyframes dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-secondary);padding:1.5rem;border-radius:1rem;width:90%;max-width:480px;max-height:80vh;overflow-y:auto}.modal.modal-lg{max-width:600px}.modal h3{margin-bottom:1.25rem;font-size:1.1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:.5rem;color:var(--text-primary);font-size:.9rem;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent)}.input-with-btn{display:flex;gap:.5rem}.input-with-btn input{flex:1}.input-with-btn button{padding:.75rem 1rem;background:var(--bg-tertiary);border:none;border-radius:.5rem;color:var(--text-primary);cursor:pointer}.input-with-btn button:hover{background:var(--accent);color:#fff}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.modal-actions button{padding:.625rem 1.25rem;border:none;border-radius:.5rem;font-size:.9rem;cursor:pointer}.modal-actions button:first-child{background:var(--bg-tertiary);color:var(--text-primary)}.modal-actions button:last-child{background:var(--accent);color:#fff}.modal-btn-group{display:flex;justify-content:flex-end;gap:.75rem}.modal-btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1.25rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid transparent;min-width:72px}.modal-btn--secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border)}.modal-btn--secondary:hover{background:color-mix(in srgb,var(--bg-tertiary) 90%,var(--accent) 10%);border-color:var(--accent);color:var(--accent)}.modal-btn--secondary:active{background:color-mix(in srgb,var(--bg-tertiary) 80%,var(--accent) 20%)}.modal-btn--primary{background:var(--accent);color:#fff}.modal-btn--primary:hover{background:var(--accent-hover)}.modal-btn--primary:active{background:color-mix(in srgb,var(--accent) 85%,#000 15%)}.modal-btn--danger{background:#d03050;color:#fff}.modal-btn--danger:hover{background:color-mix(in srgb,#d03050 85%,#000 15%)}.modal-btn--danger:active{background:color-mix(in srgb,#d03050 75%,#000 25%)}.modal-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-text{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem .5rem;font-size:1.1rem}.btn-text:hover{color:var(--text-primary)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-sm{padding:.25rem .75rem;font-size:.8rem;background:var(--bg-tertiary);color:var(--text-primary);border:none;border-radius:4px;cursor:pointer}.btn-sm:hover{background:var(--accent);color:#fff}.btn-danger{background:var(--error)!important;color:#fff!important}.error-msg{color:var(--error);font-size:.875rem;margin-bottom:.5rem}:root{--tooltip-bg: rgba(0, 0, 0, .85);--tooltip-text: #ffffff}[data-theme=dark]{--tooltip-bg: rgba(255, 255, 255, .9);--tooltip-text: #1a1a2e}.n-tooltip{background:var(--tooltip-bg)!important;color:var(--tooltip-text)!important;font-size:.8rem;padding:.375rem .625rem!important;border-radius:4px!important;max-width:300px}.n-tooltip .n-tooltip-ref{color:var(--tooltip-text)!important}*:has(.chat-surface-wrapper){min-width:0;overflow-x:hidden}
