pre code.hljs{padding:1em;display:block;overflow-x:auto}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}.history-open-file-btn[data-v-19f4fb83]{color:#93c5fd;cursor:pointer;background:#3b82f626;border:1px solid #3b82f6;border-radius:8px;width:100%;margin-bottom:10px;padding:12px 16px;font-size:14px;transition:background .15s}.history-open-file-btn[data-v-19f4fb83]:hover{color:#e2e8f0;background:#3b82f647}.history-open-hint[data-v-19f4fb83]{margin-bottom:16px}.history-legacy-label[data-v-19f4fb83]{color:#64748b;margin-bottom:8px;font-size:12px}.factor-panel[data-v-eea0e2c3]{flex-direction:column;gap:10px;display:flex}.factor-hint[data-v-eea0e2c3]{color:#94a3b8;margin:0;font-size:12px;line-height:1.4}.factor-config[data-v-eea0e2c3]{background:#1e293b66;border:1px solid #334155;border-radius:8px;padding:12px}.form-row[data-v-eea0e2c3]{gap:8px;display:flex}.form-row[data-v-eea0e2c3]>*{flex:1;min-width:0}.combo-weights[data-v-eea0e2c3]{border:1px dashed #475569;border-radius:6px;margin-top:8px;padding:8px}.combo-weights legend[data-v-eea0e2c3]{color:#94a3b8;font-size:12px}.weight-row[data-v-eea0e2c3]{gap:8px;margin-bottom:4px;display:flex}.weight-row label[data-v-eea0e2c3]{color:#cbd5e1;flex:1;align-items:center;gap:4px;font-size:12px;display:flex}.weight-row input[data-v-eea0e2c3]{color:#e2e8f0;text-align:center;background:#1e293b;border:1px solid #475569;border-radius:4px;width:56px;padding:3px 6px;font-size:12px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body{color:#e2e8f0;background:#0f172a}.app{flex-direction:column;height:100vh;display:flex}.main{flex:1;display:flex;overflow:hidden}.header{z-index:10;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 24px;display:flex;position:relative}.header-left{align-items:center;gap:10px;display:flex}.logo{font-size:28px}.header-left h1{color:#f1f5f9;font-size:18px;font-weight:600}.header-right{gap:4px;display:flex}.tab-btn{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:8px 16px;font-size:14px;transition:all .15s}.tab-btn:hover{color:#e2e8f0;background:#334155}.tab-btn.active{color:#fff;background:#3b82f6;border-color:#3b82f6}.save-btn,.upload-btn,.history-btn{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #334155;border-radius:8px;margin-left:4px;padding:8px 12px;font-size:13px;transition:all .15s}.save-btn:hover,.upload-btn:hover,.history-btn:hover{color:#e2e8f0;background:#334155;border-color:#3b82f6}.save-btn:disabled,.upload-btn:disabled{opacity:.5;cursor:not-allowed}.chat-panel{border-right:1px solid #334155;flex-direction:column;flex:1;min-width:0;display:flex}.messages{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-track{background:0 0}.messages::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}.msg{gap:12px;max-width:85%;display:flex}.msg.user{flex-direction:row-reverse;align-self:flex-end}.msg.bot{align-self:flex-start}.msg-avatar{background:#334155;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.msg.user .msg-avatar{background:#3b82f6}.msg-content{min-width:0}.msg-name{color:#64748b;margin-bottom:4px;font-size:12px}.msg-body{word-break:break-word;background:#1e293b;border-radius:12px;padding:12px 16px;font-size:14px;line-height:1.6}.msg.user .msg-body{color:#fff;background:#3b82f6}.msg-body p{margin:6px 0}.msg-body h1{color:#f1f5f9;margin:12px 0 8px;font-size:18px}.msg-body h2{color:#f1f5f9;margin:10px 0 6px;font-size:16px}.msg-body h3{color:#e2e8f0;margin:8px 0 4px;font-size:14px}.msg-body strong{color:#facc15}.msg-body code{background:#0f172a;border-radius:4px;padding:2px 6px;font-family:SF Mono,Fira Code,monospace;font-size:13px}.msg-body .code-block-wrap{margin:8px 0;position:relative}.msg-body .code-block-toolbar{z-index:1;opacity:0;gap:4px;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.msg-body .code-block-wrap:hover .code-block-toolbar,.msg-body .code-block-toolbar:focus-within{opacity:1}.msg-body .code-run-btn,.msg-body .code-copy-btn{color:#94a3b8;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:6px;padding:4px 8px;font-size:12px;line-height:1;transition:background .15s,color .15s,border-color .15s}.msg-body .code-run-btn:hover:not(:disabled),.msg-body .code-copy-btn:hover{color:#e2e8f0;background:#334155;border-color:#3b82f6}.msg-body .code-run-btn:disabled{opacity:.6;cursor:wait}.msg-body .code-copy-btn.copied{color:#4ade80;border-color:#4ade80}.msg-body pre:not(.code-run-output){background:#0f172a;border:1px solid #334155;border-radius:8px;margin:0;padding:12px 72px 12px 12px;overflow-x:auto}.msg-body pre.code-run-output{color:#cbd5e1;white-space:pre-wrap;word-break:break-word;border-top:none;border-radius:0 0 8px 8px;margin-top:0;padding:10px 12px;font-size:12px;line-height:1.5}.msg-body pre.code-run-output.code-run-error{color:#fca5a5}.msg-body pre code{background:0 0;padding:0}.msg-body table{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.msg-body th,.msg-body td{text-align:left;border:1px solid #334155;padding:6px 10px}.msg-body th{color:#94a3b8;background:#1e293b;font-weight:600}.msg-body blockquote{color:#94a3b8;border-left:3px solid #3b82f6;margin:8px 0;padding-left:12px}.kai-chart{background:#0f172a;border:1px solid #334155;border-radius:8px;margin:10px 0;padding:10px 12px}.kai-chart-title{color:#e2e8f0;margin-bottom:8px;font-size:13px;font-weight:600}.kai-chart-canvas-wrap{height:260px;position:relative}.thinking{letter-spacing:4px;color:#64748b;font-size:24px}.dot{animation:1.4s infinite blink}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes blink{0%,60%{opacity:.3}30%{opacity:1}}.input-area{background:#1e293b;border-top:1px solid #334155;flex-shrink:0;gap:8px;padding:12px 20px;display:flex}.input-area textarea{resize:none;color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:10px;outline:none;flex:1;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .15s}.input-area textarea:focus{border-color:#3b82f6}.input-area textarea::placeholder{color:#475569}.send-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#3b82f6;border:none;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:500;transition:background .15s}.send-btn:hover:not(:disabled){background:#2563eb}.send-btn:disabled{opacity:.5;cursor:not-allowed}.send-btn.stop{background:#dc2626}.send-btn.stop:hover:not(:disabled){background:#b91c1c}.side-panel{flex-shrink:0;width:360px;padding:20px;overflow-y:auto}.side-panel::-webkit-scrollbar{width:6px}.side-panel::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}.panel h3{color:#f1f5f9;margin-bottom:16px;font-size:16px}.toggle-group{border:1px solid #334155;border-radius:8px;gap:0;display:flex;overflow:hidden}.toggle-btn{color:#94a3b8;cursor:pointer;background:#1e293b;border:none;flex:1;padding:6px 12px;font-size:13px;transition:all .15s}.toggle-btn:hover{background:#334155}.toggle-btn.active{color:#fff;background:#3b82f6}.toggle-btn:first-child{border-right:1px solid #334155}.quick-btns{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.chip-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #334155;border-radius:12px;padding:3px 10px;font-family:SF Mono,Fira Code,monospace;font-size:12px;transition:all .15s}.chip-btn:hover{color:#3b82f6;background:#3b82f61a;border-color:#3b82f6}.form-group{margin-bottom:14px}.form-group label{color:#94a3b8;margin-bottom:4px;font-size:13px;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:8px;outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3b82f6}.form-group textarea{resize:vertical;min-height:60px}.form-row{gap:10px;display:flex}.form-row .form-group{flex:1}.action-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:10px;width:100%;margin-top:4px;padding:10px;font-size:15px;font-weight:600;transition:opacity .15s}.action-btn:hover:not(:disabled){opacity:.9}.action-btn:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#1e293b;border:1px solid #334155;border-radius:16px;flex-direction:column;width:520px;max-height:70vh;display:flex;box-shadow:0 20px 60px #00000080}.modal-header{border-bottom:1px solid #334155;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{color:#f1f5f9;font-size:16px}.modal-close{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:18px}.modal-close:hover{color:#e2e8f0;background:#334155}.modal-body{flex:1;padding:16px 20px;overflow-y:auto}.modal-loading{text-align:center;color:#64748b;padding:40px}.modal-empty{text-align:center;color:#64748b;padding:40px 20px}.modal-hint{color:#475569;margin-top:12px;font-size:13px}.history-list{flex-direction:column;gap:8px;display:flex}.history-item{border:1px solid #334155;border-radius:10px;align-items:center;gap:12px;padding:12px 16px;transition:border-color .15s;display:flex}.history-item:hover{border-color:#3b82f6}.history-info{cursor:pointer;flex:1;min-width:0}.history-title{color:#f1f5f9;word-break:break-word;margin-bottom:6px;font-size:14px;font-weight:500}.history-meta{color:#64748b;gap:12px;font-size:12px;display:flex}.history-del{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;padding:6px 10px;font-size:18px;transition:all .15s}.history-del:hover{color:#fff;background:#dc2626}.modal-footer{border-top:1px solid #334155;padding:10px 20px}.modal-footer-hint{color:#64748b;font-size:12px}.title-prompt-label{color:#94a3b8;margin-bottom:8px;font-size:13px;display:block}.title-prompt-input{color:#e2e8f0;background:#0f172a;border:1px solid #475569;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.title-prompt-input:focus{border-color:#3b82f6;outline:none}.title-prompt-footer{justify-content:flex-end;gap:8px;display:flex}.modal-btn{cursor:pointer;border:1px solid #475569;border-radius:8px;padding:8px 16px;font-size:13px}.modal-btn.secondary{color:#94a3b8;background:0 0}.modal-btn.secondary:hover{color:#e2e8f0;background:#334155}.modal-btn.primary{color:#fff;background:#3b82f6;border-color:#3b82f6}.modal-btn.primary:hover:not(:disabled){background:#2563eb}.modal-btn:disabled{opacity:.5;cursor:not-allowed}.drawer-overlay,.drawer-close{display:none}@media (width<=768px){.header{z-index:51;padding:10px 14px;position:relative}.header-left h1{display:none}.header-right{flex-wrap:nowrap;gap:2px;display:flex}.btn-label{display:none}.tab-btn,.save-btn,.upload-btn,.history-btn{margin-left:0;padding:8px;font-size:18px;line-height:1}.chat-panel{border-right:none}.side-panel{z-index:50;background:#0f172a;border-top:1px solid #334155;border-radius:16px 16px 0 0;width:100%;height:75vh;max-height:75vh;padding:40px 16px 24px;transition:transform .25s;position:fixed;inset:auto 0 0;transform:translateY(100%);box-shadow:0 -8px 24px #00000080}.side-panel.drawer-open{transform:translateY(0)}.side-panel:before{content:"";background:#475569;border-radius:2px;width:40px;height:4px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.drawer-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;width:32px;height:32px;font-size:18px;display:block;position:absolute;top:8px;right:12px}.drawer-close:hover{color:#e2e8f0;background:#1e293b}.drawer-overlay{z-index:49;background:#00000080;display:block;position:fixed;inset:0}}
