:root{--sidebar-w: 240px;--header-h: 52px;--conv-max-w: 720px;--bg: #ffffff;--bg-sidebar: #f9f9f9;--border: #e5e5e5;--text: #0d0d0d;--text-muted: #8e8ea0;--user-bg: #f4f4f4;--accent: #10a37f;--accent-hover: #0d8c6d}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}.app-layout{display:flex;height:100%}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:20}.main{margin-left:var(--sidebar-w);height:100%;display:flex;flex-direction:column;overflow:hidden;flex:1}.sidebar-header{height:var(--header-h);padding:0 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-logo{width:28px;height:28px;background:var(--accent);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;flex-shrink:0}.sidebar-title{font-size:14px;font-weight:600}.sidebar-new-chat{margin:12px 12px 4px;padding:9px 14px;background:transparent;border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .15s;text-align:left}.sidebar-new-chat:hover{background:#efefef}.sidebar-section-label{padding:16px 16px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-weight:600}.sidebar-sep{border:none;border-top:1px solid var(--border);margin:4px 12px}.sidebar-footer{margin-top:auto;padding:12px 16px;border-top:1px solid var(--border);font-size:11px;color:#bbb}.sidebar-footer a{color:#bbb;text-decoration:none;cursor:pointer}.sidebar-footer a:hover{color:#888}.intent-legend{padding:0 10px 4px}.intent-row-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;font-size:12px;color:#555}.i-dot{width:9px;height:9px;border-radius:2px;flex-shrink:0}.d-product{background:#10a37f}.d-recommend{background:#2563eb}.d-rule{background:#d97706}.d-irrelevant{background:#ef4444}.intent-toggle-row{padding:4px 16px 8px;display:flex;align-items:center;gap:8px;font-size:12px;color:#666}.toggle-track{width:32px;height:17px;background:#ccc;border-radius:9px;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}.toggle-track.on{background:var(--accent)}.toggle-thumb{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px #00000040}.toggle-track.on .toggle-thumb{left:17px}body.hide-intent .intent-meta{display:none!important}.sidebar-stats{padding:4px 16px 0;font-size:12px;color:#666;line-height:2}.sidebar-stats b{color:var(--accent)}.history-list{flex:1;overflow-y:auto;min-height:0;padding:0 8px 8px}.history-list::-webkit-scrollbar{width:4px}.history-list::-webkit-scrollbar-thumb{background:#e0e0e0;border-radius:2px}.history-item{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:6px;cursor:pointer;font-size:12px;color:#444;margin-bottom:1px}.history-item:hover{background:#efefef}.history-item.active{background:#e5f5ef;color:var(--accent);font-weight:500}.history-item-icon{font-size:13px;flex-shrink:0;opacity:.6}.history-item-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item-del{opacity:0;font-size:15px;color:#aaa;flex-shrink:0;padding:0 2px;cursor:pointer;border:none;background:none;line-height:1;transition:color .15s}.history-item:hover .history-item-del{opacity:1}.history-item-del:hover{color:#ef4444}.history-empty{text-align:center;font-size:12px;color:#ccc;padding:16px 0}.profile-toggle-btn{display:flex;align-items:center;gap:6px;width:calc(100% - 32px);margin:6px 16px 0;padding:6px 8px;border-radius:6px;border:none;background:none;cursor:pointer;font-size:12px;color:#555;text-align:left}.profile-toggle-btn:hover{background:#efefef}.profile-panel{display:none;margin:4px 12px 8px;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12px;background:#fff}.profile-panel.open{display:block}.profile-field{margin-bottom:6px}.profile-field label{display:block;color:#888;margin-bottom:2px;font-size:11px}.profile-field input,.profile-field textarea,.profile-field select{width:100%;box-sizing:border-box;border:1px solid #e0e0e0;border-radius:4px;padding:3px 6px;font-size:12px;font-family:inherit;outline:none;resize:vertical}.profile-field input:focus,.profile-field textarea:focus{border-color:var(--accent)}.profile-save-btn{width:100%;padding:5px;border:none;border-radius:5px;background:var(--accent);color:#fff;font-size:12px;cursor:pointer;margin-top:4px}.profile-save-btn:hover{opacity:.88}.profile-uid{font-size:10px;color:#bbb;word-break:break-all;margin-top:6px;line-height:1.5}.profile-uid span{cursor:pointer;text-decoration:underline}.profile-uid span:hover{color:#888}.topbar{height:var(--header-h);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0;background:var(--bg)}.topbar-title{font-size:14px;font-weight:600;color:var(--text-muted)}.topbar-right{display:flex;align-items:center;gap:14px}.topbar-username{font-size:12px;color:var(--text-muted)}.topbar-logout-btn{font-size:12px;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:4px;padding:2px 10px;cursor:pointer}.topbar-logout-btn:hover{color:var(--text);border-color:var(--text-muted)}.status-indicator{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.status-dot{width:7px;height:7px;border-radius:50%;background:#ccc;transition:background .3s}.status-dot.online{background:#22c55e;box-shadow:0 0 5px #22c55e88}.status-dot.offline{background:#ef4444;box-shadow:0 0 5px #ef444488}.upload-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:6px;border:1px solid rgba(99,102,241,.35);background:#6366f112;color:#4f46e5;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}.upload-btn:hover{background:#6366f124}#messages,.messages-area{flex:1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.messages-area::-webkit-scrollbar{width:5px}.messages-area::-webkit-scrollbar-thumb{background:#e0e0e0;border-radius:3px}.conv-wrap{max-width:var(--conv-max-w);margin:0 auto;padding:32px 24px 12px}.welcome{display:flex;flex-direction:column;align-items:center;gap:20px;padding:80px 24px 40px;text-align:center;max-width:var(--conv-max-w);margin:0 auto}.welcome-icon{font-size:48px}.welcome h2{font-size:24px;font-weight:700}.welcome-sub{font-size:14px;color:var(--text-muted);line-height:1.65}.hint-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:520px;margin-top:8px}.hint-card{border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:13px;color:#444;cursor:pointer;text-align:left;line-height:1.5;transition:border-color .15s,box-shadow .15s;background:#fff}.hint-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #10a37f1f;color:var(--accent)}.msg{display:flex;gap:14px;padding:18px 0}.msg.user{flex-direction:row-reverse}.msg-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;margin-top:2px}.av-user{background:#e0e0e0;font-size:13px;font-weight:700;color:#555}.av-bot{background:var(--accent);color:#fff}.msg-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.msg.user .msg-content{align-items:flex-end}.user-bubble{background:var(--user-bg);border-radius:16px 16px 4px;padding:10px 16px;font-size:14px;line-height:1.65;max-width:85%;word-break:break-word;white-space:pre-wrap}.bot-text{font-size:14px;line-height:1.75;word-break:break-word}.bot-text h1,.bot-text h2,.bot-text h3{margin:.7em 0 .3em;font-weight:700}.bot-text h1{font-size:18px}.bot-text h2{font-size:16px}.bot-text h3{font-size:14px}.bot-text p{margin:.4em 0}.bot-text ul,.bot-text ol{margin:.4em 0 .4em 1.4em}.bot-text li{margin:.25em 0}.bot-text strong{font-weight:700}.bot-text em{font-style:italic;color:#555}.bot-text code{background:#f0f0f0;border-radius:4px;padding:1px 5px;font-family:Consolas,monospace;font-size:12.5px}.bot-text pre{background:#f7f7f8;border:1px solid #e5e5e5;border-radius:8px;padding:12px 14px;overflow-x:auto;margin:.5em 0;font-size:12.5px}.bot-text pre code{background:none;padding:0}.bot-text blockquote{border-left:3px solid #d0d0d0;margin:.4em 0;padding-left:12px;color:#666}.bot-text table{border-collapse:collapse;margin:.6em 0;font-size:13px;max-width:100%;display:block;overflow-x:auto}.bot-text th,.bot-text td{border:1px solid #e0e0e0;padding:7px 14px;text-align:left;white-space:nowrap}.bot-text th{background:#f0f4ff;font-weight:600;color:#1e40af}.bot-text tr:nth-child(2n) td{background:#fafafa}.bot-text hr{border:none;border-top:1px solid #e5e5e5;margin:.6em 0}.intent-meta{display:flex;flex-direction:column;gap:5px}.intent-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:20px;font-size:11px;font-weight:600;align-self:flex-start}.ib-product{background:#d1fae5;color:#065f46}.ib-recommend{background:#dbeafe;color:#1e40af}.ib-rule{background:#fef3c7;color:#92400e}.ib-irrelevant{background:#fee2e2;color:#991b1b}.intent-badge .conf{opacity:.65;font-weight:400;margin-left:2px}.doc-chips{display:flex;flex-wrap:wrap;gap:5px}.doc-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:5px;font-size:11px;color:#52525b}.source-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}.source-card{border:1px solid #e5e7eb;border-radius:10px;background:#fafafa;padding:10px 12px}.source-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.source-title{font-size:12px;font-weight:600;color:#111827}.source-company{font-size:11px;color:#6b7280;margin-top:2px}.source-meta{margin-top:6px;font-size:11px;color:#6b7280;line-height:1.5;word-break:break-all}.source-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.source-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:28px;padding:0 10px;border-radius:7px;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:11px;text-decoration:none;cursor:pointer}.source-btn:hover{border-color:#9ca3af;background:#f9fafb}.source-btn.primary{border-color:#10a37f40;color:#0f766e;background:#10a37f14}.source-btn.primary:hover{background:#10a37f24}.doc-preview-wrap{margin-top:2px}.doc-preview-wrap details{border:1px solid #e5e5e5;border-radius:8px;overflow:hidden}.doc-preview-wrap summary{padding:6px 12px;font-size:12px;color:#888;cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}.doc-preview-wrap summary::-webkit-details-marker{display:none}.doc-preview-wrap summary:before{content:"▶";font-size:9px;transition:transform .2s;color:#aaa}.doc-preview-wrap details[open] summary:before{transform:rotate(90deg)}.doc-preview-content{padding:8px 12px 10px;font-size:12px;color:#555;line-height:1.6;white-space:pre-wrap;word-break:break-word;max-height:280px;overflow-y:auto;border-top:1px solid #e5e5e5;background:#fafafa}.thinking{display:flex;gap:5px;align-items:center;padding:6px 0}.thinking span{width:6px;height:6px;border-radius:50%;background:#ccc;animation:bounce 1.2s infinite ease-in-out}.thinking span:nth-child(2){animation-delay:.2s}.thinking span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}.cursor{display:inline-block;width:2px;height:1em;background:var(--text);vertical-align:text-bottom;margin-left:1px;animation:blink .7s step-end infinite}@keyframes blink{50%{opacity:0}}.elapsed{font-size:11px;color:#ccc;margin-top:4px}.error-text{color:#ef4444;font-size:13px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:8px 12px}.input-wrap{flex-shrink:0;padding:16px 24px 20px;background:var(--bg)}.input-inner{max-width:var(--conv-max-w);margin:0 auto}.input-box-wrap{display:flex;align-items:flex-end;border:1px solid #d0d0d0;border-radius:14px;background:#fff;padding:10px 14px;box-shadow:0 1px 6px #0000000f;transition:border-color .15s,box-shadow .15s}.input-box-wrap:focus-within{border-color:#b0b0b0;box-shadow:0 2px 10px #0000001a}.input-box-wrap textarea{flex:1;border:none;outline:none;resize:none;font-size:14px;line-height:1.6;min-height:22px;max-height:160px;font-family:inherit;color:var(--text);background:transparent}.input-box-wrap textarea::placeholder{color:#bbb}.send-btn{width:32px;height:32px;background:var(--accent);border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:8px;transition:background .15s,transform .1s}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:active:not(:disabled){transform:scale(.9)}.send-btn:disabled{background:#e0e0e0;cursor:not-allowed}.input-hint{text-align:center;font-size:11px;color:#ccc;margin-top:8px}.narrowing-wrap{margin:10px 0 6px}.narrowing-q{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:8px}.narrowing-meta{font-size:11px;color:#6b7280;margin-bottom:6px}.narrowing-opts{display:flex;flex-wrap:wrap;gap:8px}.narrowing-btn{padding:7px 18px;border-radius:18px;border:1.5px solid #93c5fd;background:#eff6ff;color:#1e40af;font-size:13px;cursor:pointer;transition:all .15s}.narrowing-btn:hover{background:#dbeafe;border-color:#60a5fa}.narrowing-btn.selected{background:#2563eb;color:#fff;border-color:#2563eb;cursor:default}.narrowing-btn:disabled{opacity:.6;cursor:default}.narrowing-slots{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.narrowing-slot-tag{font-size:11px;padding:3px 10px;border-radius:12px;background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.adv-panel-dims{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.adv-panel-chip{padding:7px 16px;border-radius:18px;border:1.5px solid #6ee7b7;background:#ecfdf5;color:#065f46;font-size:13px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px}.adv-panel-chip:hover{background:#d1fae5;border-color:#34d399}.adv-panel-chip.selected{background:#059669;color:#fff;border-color:#059669;cursor:default}.adv-panel-chip:disabled{opacity:.6;cursor:default}.adv-chip-count{font-size:11px;opacity:.75}.adv-panel-textarea{width:100%;box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:8px;padding:8px 12px;font-size:13px;color:#374151;resize:none;margin-top:6px;font-family:inherit}.adv-panel-textarea:focus{outline:none;border-color:#6ee7b7}.adv-panel-textarea:disabled{background:#f9fafb;color:#9ca3af}.adv-panel-actions{display:flex;gap:10px;margin-top:10px}.adv-panel-submit{padding:8px 22px;border-radius:18px;border:none;background:#059669;color:#fff;font-size:13px;cursor:pointer;transition:background .15s}.adv-panel-submit:hover:not(:disabled){background:#047857}.adv-panel-submit:disabled{background:#d1d5db;cursor:not-allowed}.adv-panel-skip{padding:8px 18px;border-radius:18px;border:1.5px solid #d1d5db;background:transparent;color:#6b7280;font-size:13px;cursor:pointer;transition:all .15s}.adv-panel-skip:hover{background:#f3f4f6}.post-filter-wrap{margin:14px 0 6px;border-top:1px solid #e5e7eb;padding-top:12px}.post-filter-header{font-size:13px;color:#374151;margin-bottom:10px}.post-filter-dim{margin-bottom:12px}.post-filter-q{font-size:13px;font-weight:600;color:#1e293b;margin-bottom:6px}.post-filter-opts{display:flex;flex-wrap:wrap;gap:8px}.post-filter-btn{padding:6px 16px;border-radius:18px;border:1.5px solid #a78bfa;background:#f5f3ff;color:#5b21b6;font-size:13px;cursor:pointer;transition:all .15s}.post-filter-btn:hover{background:#ede9fe;border-color:#7c3aed}.post-filter-btn.selected{background:#7c3aed;color:#fff;border-color:#7c3aed;cursor:default}.post-filter-btn:disabled{opacity:.6;cursor:default}.debug-panel{display:none;position:fixed;top:0;right:0;bottom:0;width:560px;background:#1e1e2e;color:#cdd6f4;z-index:100;flex-direction:column;box-shadow:-4px 0 20px #00000059;font-family:Consolas,JetBrains Mono,monospace}.debug-panel.open{display:flex}.debug-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#181825;border-bottom:1px solid #313244;flex-shrink:0}.debug-header-left{display:flex;align-items:center;gap:10px}.debug-title{font-size:13px;font-weight:700;color:#cba6f7;letter-spacing:.05em}.debug-badge{font-size:10px;background:#313244;color:#a6e3a1;padding:2px 8px;border-radius:10px}.debug-close{background:none;border:none;color:#6c7086;font-size:18px;cursor:pointer;line-height:1;padding:0 4px}.debug-close:hover{color:#f38ba8}.debug-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#181825;border-bottom:1px solid #313244;flex-shrink:0}.debug-toolbar select,.debug-toolbar input{background:#313244;border:1px solid #45475a;color:#cdd6f4;border-radius:5px;padding:4px 8px;font-size:12px;font-family:inherit}.debug-toolbar button{background:#313244;border:1px solid #45475a;color:#cdd6f4;border-radius:5px;padding:4px 10px;font-size:12px;cursor:pointer;font-family:inherit}.debug-toolbar button:hover{background:#45475a}.debug-body{flex:1;overflow-y:auto;padding:0}.debug-body::-webkit-scrollbar{width:4px}.debug-body::-webkit-scrollbar-thumb{background:#45475a;border-radius:2px}.log-row{border-bottom:1px solid #313244;padding:10px 14px;font-size:11.5px;line-height:1.5;cursor:pointer;transition:background .1s}.log-row:hover{background:#24273a}.log-row.error-row{border-left:3px solid #f38ba8}.log-row-top{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.log-q{color:#cdd6f4;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-time{color:#6c7086;font-size:10px;flex-shrink:0}.log-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.lc{padding:1px 7px;border-radius:10px;font-size:10.5px}.lc-intent{background:#313244;color:#cba6f7}.lc-product{background:#1e2030;color:#89dceb}.lc-ok{background:#1e2030;color:#a6e3a1}.lc-warn{background:#1e2030;color:#fab387}.lc-err{background:#2a0a0a;color:#f38ba8}.lc-neutral{background:#313244;color:#a6adc8}.debug-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#1e1e2e;border:1px solid #313244;color:#cba6f7;border-radius:6px;font-size:12px;cursor:pointer;transition:background .15s;margin:8px 16px}.debug-btn:hover{background:#313244}.editor-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#1118277a;z-index:140;padding:16px;align-items:center;justify-content:center}.editor-overlay.open{display:flex}.editor-panel{width:min(1440px,calc(100vw - 32px));height:min(940px,calc(100vh - 32px));min-width:680px;min-height:400px;background:#fff;border-radius:16px;box-shadow:0 24px 80px #00000038;display:flex;flex-direction:column;overflow:hidden;position:relative}.editor-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border);background:#fcfcfc}.editor-title{font-size:14px;font-weight:700}.editor-subtitle{font-size:12px;color:#6b7280;margin-top:3px}.editor-toolbar{display:flex;align-items:center;gap:8px}.editor-toolbar button,.editor-toolbar a{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 12px;border-radius:8px;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:12px;text-decoration:none;cursor:pointer}.editor-toolbar .save-btn{border-color:#10a37f4d;background:#10a37f14;color:#0f766e}.editor-toolbar .restore-btn{border-color:#ea580c4d;background:#ea580c14;color:#c2410c}.editor-toolbar .restore-btn:hover{background:#ea580c26!important}.editor-toolbar button:hover,.editor-toolbar a:hover{background:#f3f4f6}.editor-body{flex:1;display:grid;grid-template-columns:minmax(340px,1fr) minmax(420px,1fr);min-height:0}.editor-body.three-pane{grid-template-columns:minmax(260px,1fr) minmax(300px,1fr) minmax(380px,1fr)}.editor-pane{min-width:0;min-height:0;display:flex;flex-direction:column}.editor-pane+.editor-pane{border-left:1px solid var(--border)}.editor-pane-header{padding:10px 14px;border-bottom:1px solid var(--border);font-size:12px;color:#6b7280;background:#fcfcfc}.editor-textarea-wrap{flex:1;position:relative;overflow:hidden;min-height:0}.editor-textarea-wrap textarea{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none;outline:none;resize:none;padding:14px 16px;font-size:13px;line-height:1.65;font-family:Consolas,JetBrains Mono,monospace;color:#111827;background:transparent;z-index:2}.editor-page-highlight{position:absolute;left:0;width:100%;pointer-events:none;display:none;background:#fef08a59;border-left:3px solid #eab308;z-index:1;transition:top .05s}.editor-pane iframe{flex:1;width:100%;border:none;background:#f9fafb}.editor-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;color:#9ca3af;font-size:13px;text-align:center}.editor-status{padding:9px 14px;border-top:1px solid var(--border);font-size:12px;color:#6b7280;background:#fcfcfc}.editor-page-nav{display:none;align-items:center;gap:6px;padding:4px 12px;border-bottom:1px solid var(--border);background:#f8fafc;flex-shrink:0;font-size:12px;color:#6b7280}.editor-page-nav.has-pages{display:flex}.editor-page-nav .pnav-btn{padding:2px 8px;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:12px;color:#374151;cursor:pointer;line-height:1.4}.editor-page-nav .pnav-btn:disabled{opacity:.35;cursor:default}.editor-page-nav .pnav-btn:not(:disabled):hover{background:#f3f4f6}.editor-page-nav .pnav-cur{width:36px;padding:1px 4px;border:1px solid #1a73e8;border-radius:4px;font-size:12px;font-weight:600;color:#1a73e8;text-align:center;outline:none}.pdf-preview-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;align-items:center;justify-content:center}.pdf-preview-overlay.open{display:flex}.pdf-preview-box{width:92vw;max-width:1100px;height:90vh;background:#fff;border-radius:12px;box-shadow:0 16px 48px #0000004d;display:flex;flex-direction:column;overflow:hidden}.pdf-preview-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid #e5e7eb;background:#f9fafb;flex-shrink:0}.pdf-preview-title{font-size:13px;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 40px)}.pdf-preview-close{background:none;border:none;font-size:20px;color:#6b7280;cursor:pointer;line-height:1;padding:0 4px}.pdf-preview-close:hover{color:#111}.pdf-preview-body{flex:1;overflow:hidden}.pdf-preview-body iframe{width:100%;height:100%;border:none}.diff-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:3000;align-items:center;justify-content:center}.diff-overlay.open{display:flex}.diff-box{background:#fff;border-radius:12px;width:min(1200px,96vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 40px #00000038;overflow:hidden}.diff-header{padding:16px 20px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.diff-header h3{margin:0;font-size:15px;flex:1}.diff-stat{font-size:12px}.diff-stat .add{color:#166534;background:#dcfce7;padding:2px 8px;border-radius:20px;margin-right:6px}.diff-stat .del{color:#991b1b;background:#fee2e2;padding:2px 8px;border-radius:20px}.diff-body{flex:1;overflow-y:auto;font-family:Consolas,JetBrains Mono,monospace;font-size:12px;line-height:1.6}.diff-page-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;border-bottom:1px solid var(--border);background:#f9fafb}.diff-page-tab{background:#fff;border:1px solid #d1d5db;color:#374151;padding:3px 10px;border-radius:24px;font-size:12px;cursor:pointer;white-space:nowrap}.diff-page-tab.active{background:#1a73e8;color:#fff;border-color:#1a73e8}.diff-tab-stat{font-size:11px;opacity:.75;margin-left:4px}.sdiff-col-headers{display:flex;border-bottom:2px solid #e5e7eb;background:#f3f4f6;position:sticky;top:0;z-index:10}.sdiff-header-cell{flex:1;padding:4px 10px;font-size:12px;font-weight:600;color:#374151;text-align:center}.sdiff-header-cell:first-child{border-right:1px solid #d1d5db}.sdiff-row{display:flex;font-family:Consolas,JetBrains Mono,monospace;font-size:12px;line-height:1.6}.sdiff-cell{flex:1;padding:0 4px;white-space:pre-wrap;word-break:break-all;min-width:0;overflow:hidden}.sdiff-cell:first-child{border-right:1px solid #e5e7eb}.sdiff-cell.sdiff-del{background:#ffebe9}.sdiff-cell.sdiff-add{background:#e6ffec}.sdiff-cell.sdiff-empty{background:#fafafa}.sdiff-pfx{width:12px;display:inline-block;flex-shrink:0;-webkit-user-select:none;user-select:none;color:#9ca3af}.sdiff-ln{width:30px;display:inline-block;flex-shrink:0;color:#9ca3af;-webkit-user-select:none;user-select:none;text-align:right;padding-right:6px;font-size:11px}.sdiff-skip{background:#f0f6ff;color:#1a73e8;padding:2px 10px;font-size:11px;font-family:monospace;border-top:1px solid #dbeafe;border-bottom:1px solid #dbeafe}.diff-footer{padding:12px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}.diff-footer .btn-cancel{background:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:7px 18px;border-radius:7px;cursor:pointer}.diff-footer .btn-confirm{background:#1a73e8;color:#fff;border:none;padding:7px 18px;border-radius:7px;cursor:pointer;font-weight:600}.diff-footer .btn-confirm:hover{background:#1558b0}.upload-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#0000007a;align-items:center;justify-content:center}.upload-overlay.open{display:flex}.upload-modal{background:var(--bg);border-radius:16px;width:560px;max-width:96vw;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #00000047;display:flex;flex-direction:column}.um-header{display:flex;align-items:center;justify-content:space-between;padding:22px 28px 0}.um-header h3{margin:0;font-size:17px;font-weight:700}.um-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;cursor:pointer;font-size:18px;color:#6b7280;border:none;background:none;transition:background .15s}.um-close:hover{background:#f3f4f6}.um-body{padding:20px 28px 28px;display:flex;flex-direction:column;gap:18px}.um-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.um-mode-card{border:2px solid var(--border);border-radius:12px;padding:22px 18px;cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s;display:flex;flex-direction:column;gap:10px}.um-mode-card:hover{border-color:#818cf8;background:#6366f10a;box-shadow:0 4px 16px #6366f11f}.um-mode-icon{font-size:30px;line-height:1}.um-mode-title{font-size:14px;font-weight:700;color:#111827}.um-mode-desc{font-size:12px;color:#6b7280;line-height:1.55}.um-mode-badge{align-self:flex-start;font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;margin-top:2px}.um-mode-badge.quick{background:#dbeafe;color:#1d4ed8}.um-mode-badge.kb{background:#ede9fe;color:#6d28d9}.um-back{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#6b7280;cursor:pointer;border:none;background:none;padding:0;margin-bottom:-4px}.um-back:hover{color:#374151}.um-field{display:flex;flex-direction:column;gap:5px}.um-field label{font-size:12px;color:#6b7280;font-weight:600}.um-field input,.um-field textarea{border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;outline:none;transition:border-color .15s;font-family:inherit;resize:none}.um-field input:focus,.um-field textarea:focus{border-color:#818cf8}.um-dropzone{border:2px dashed var(--border);border-radius:10px;padding:26px 16px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;color:#6b7280;font-size:13px}.um-dropzone.drag-over{border-color:#818cf8;background:#6366f10a}.um-dropzone.has-file{border-color:#10a37f;background:#10a37f0a;color:#0f766e}.um-progress{display:none;flex-direction:column;gap:6px;font-size:12px;color:#6b7280}.um-progress.visible{display:flex}.um-progress-bar-wrap{height:5px;background:#e5e7eb;border-radius:3px;overflow:hidden}.um-progress-bar{height:100%;background:#818cf8;border-radius:3px;transition:width .3s;width:0%}.um-kb-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.um-kb-list-label{font-size:12px;font-weight:600;color:#6b7280}.um-btn-new-kb{font-size:12px;padding:4px 12px;border-radius:6px;background:#4f46e5;color:#fff;border:none;cursor:pointer}.um-btn-new-kb:hover{background:#4338ca}.um-kb-create-box{background:#f5f3ff;border:1px solid #c4b5fd;border-radius:8px;padding:12px;margin-bottom:10px;display:flex;flex-direction:column;gap:8px}.um-kb-create-box input{border:1px solid var(--border);border-radius:6px;padding:7px 10px;font-size:13px;outline:none}.um-kb-create-box input:focus{border-color:#818cf8}.um-kb-create-footer{display:flex;justify-content:flex-end;gap:8px}.um-kb-list{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto}.um-kb-item{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:8px;padding:9px 12px;cursor:pointer;transition:border-color .15s,background .15s}.um-kb-item:hover{border-color:#818cf8;background:#6366f10a}.um-kb-item.selected{border-color:#4f46e5;background:#4f46e50f}.um-kb-item-icon{font-size:16px;flex-shrink:0}.um-kb-item-info{flex:1;min-width:0}.um-kb-item-name{font-size:13px;font-weight:600;color:#111827}.um-kb-item-meta{font-size:11px;color:#9ca3af;margin-top:1px}.um-kb-item-del{font-size:13px;color:#d1d5db;border:none;background:none;cursor:pointer;flex-shrink:0;padding:2px}.um-kb-item-del:hover{color:#ef4444}.um-kb-empty{font-size:12px;color:#9ca3af;text-align:center;padding:14px 0}.um-kb-file-panel{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.um-kb-file-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.um-kb-file-title{font-size:12px;font-weight:600;color:#374151;flex:1}.um-btn-upload-file{font-size:11px;padding:4px 10px;border-radius:6px;background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;cursor:pointer}.um-btn-upload-file:hover{background:#dcfce7}.um-ftable{width:100%;border-collapse:collapse;font-size:12px}.um-ftable th{color:#9ca3af;font-weight:600;padding:4px 6px;border-bottom:1px solid #f3f4f6;text-align:left}.um-ftable td{padding:7px 6px;border-bottom:1px solid #f9fafb;vertical-align:middle}.um-fstatus{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 7px;border-radius:20px}.um-fstatus.uploaded{background:#f3f4f6;color:#6b7280}.um-fstatus.parsing{background:#fef3c7;color:#92400e}.um-fstatus.parsed{background:#dbeafe;color:#1e40af}.um-fstatus.indexing{background:#ede9fe;color:#5b21b6}.um-fstatus.indexed{background:#dcfce7;color:#166534}.um-fstatus.parse_failed,.um-fstatus.index_failed{background:#fee2e2;color:#991b1b}.um-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding-top:4px}.um-footer button{padding:8px 20px;border-radius:8px;font-size:13px;border:1px solid var(--border);cursor:pointer;font-weight:600;transition:background .15s}.um-footer .um-btn-primary{background:#4f46e5;color:#fff;border-color:#4f46e5}.um-footer .um-btn-primary:hover{background:#4338ca}.um-footer .um-btn-primary:disabled{opacity:.45;cursor:default}.um-msg{font-size:12px;min-height:16px}.um-msg.ok{color:#0f766e}.um-msg.err{color:#b91c1c}.kb-md-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:9999;align-items:center;justify-content:center}.kb-md-overlay.open{display:flex}.kb-md-box{background:#fff;border-radius:12px;width:min(740px,95vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000040}.kb-md-box header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e5e7eb;flex-shrink:0;font-size:13px;font-weight:600;color:#111827}.kb-md-box header button{background:none;border:none;font-size:18px;cursor:pointer;color:#6b7280}.kb-md-content{flex:1;overflow-y:auto;padding:16px;font-size:12px;white-space:pre-wrap;line-height:1.7;color:#374151;font-family:monospace}@media(max-width:980px){.editor-overlay{padding:12px}.editor-panel{width:calc(100vw - 24px);height:calc(100vh - 24px)}.editor-body{grid-template-columns:1fr}.editor-pane+.editor-pane{border-left:none;border-top:1px solid var(--border)}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);padding:16px}.login-card{width:100%;max-width:360px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:32px 24px;box-shadow:0 4px 24px #00000014}.login-title{text-align:center;font-size:20px;font-weight:700;color:var(--text);margin-bottom:4px}.login-subtitle{text-align:center;font-size:13px;color:var(--text-muted);margin-bottom:20px}.login-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--user-bg);border-radius:8px;padding:4px;margin-bottom:16px}.login-tab{border:none;background:transparent;border-radius:6px;padding:8px 12px;font-size:13px;cursor:pointer;color:var(--text-muted);transition:all .15s}.login-tab.active{background:#fff;color:var(--text);font-weight:500;box-shadow:0 1px 3px #00000014}.login-error{background:#fef2f2;color:#dc2626;font-size:13px;padding:8px 12px;border-radius:6px;margin-bottom:12px}.login-fields{display:flex;flex-direction:column;gap:12px}.login-field label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:4px}.login-field input{width:100%;border:1px solid var(--border);border-radius:6px;padding:8px 12px;font-size:14px;outline:none;transition:border-color .15s}.login-field input:focus{border-color:var(--accent)}.login-field-error{font-size:12px;color:#dc2626;margin-top:4px}.login-btn{margin-top:8px;width:100%;height:40px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.login-btn:hover:not(:disabled){background:var(--accent-hover)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-send-code-btn{white-space:nowrap;border:1px solid var(--border);border-radius:6px;padding:0 12px;font-size:13px;background:none;cursor:pointer;color:var(--text)}.login-send-code-btn:disabled{opacity:.5;cursor:not-allowed}.login-toast{position:fixed;top:24px;left:50%;transform:translate(-50%);background:#dc2626;color:#fff;font-size:13px;padding:10px 20px;border-radius:6px;box-shadow:0 2px 12px #00000026;z-index:9999;white-space:nowrap;animation:toast-in .25s ease}.login-toast.fading{animation:toast-out .3s ease forwards}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-10px)}}
