.digital-human-scene[data-v-cfb36bdd]{width:100%;height:100%;position:relative}.three-canvas[data-v-cfb36bdd]{width:100%;height:100%;display:block}.loading-overlay[data-v-cfb36bdd],.error-overlay[data-v-cfb36bdd]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-panel);color:var(--text-dim);gap:12px}.loading-spinner[data-v-cfb36bdd]{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;animation:spin-cfb36bdd .8s linear infinite}@keyframes spin-cfb36bdd{to{transform:rotate(360deg)}}.error-overlay[data-v-cfb36bdd]{color:#f66;font-size:14px;text-align:center;padding:20px}.chat-panel[data-v-6b5f7873]{display:flex;flex-direction:column;height:100%;background:var(--bg-panel)}.messages[data-v-6b5f7873]{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px;display:flex;flex-direction:column;gap:12px}.message[data-v-6b5f7873]{display:flex;gap:8px;max-width:85%}.message.user[data-v-6b5f7873]{align-self:flex-end;flex-direction:row-reverse}.message.assistant[data-v-6b5f7873]{align-self:flex-start}.role-badge[data-v-6b5f7873]{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.message.user .role-badge[data-v-6b5f7873]{background:var(--color-user-badge);color:#fff}.message.assistant .role-badge[data-v-6b5f7873]{background:var(--color-ai-badge);color:#fff}.content[data-v-6b5f7873]{padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.6;word-break:break-word}.message.user .content[data-v-6b5f7873]{background:var(--color-user-bubble);color:#fff;border-bottom-right-radius:4px}.message.assistant .content[data-v-6b5f7873]{background:var(--color-ai-bubble);color:var(--text-secondary);border-bottom-left-radius:4px}.cursor[data-v-6b5f7873]{animation:blink-6b5f7873 .8s infinite;color:var(--color-ai-badge)}@keyframes blink-6b5f7873{50%{opacity:0}}.input-area[data-v-6b5f7873]{display:flex;gap:10px;padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-color);flex-shrink:0}.chat-input[data-v-6b5f7873]{flex:1;padding:10px 14px;border:1px solid var(--border-input);border-radius:8px;background:var(--bg-input);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .2s}.chat-input[data-v-6b5f7873]:focus{border-color:var(--border-focus)}.chat-input[data-v-6b5f7873]::placeholder{color:var(--text-faint)}.chat-input[data-v-6b5f7873]:disabled{opacity:.6}.send-btn[data-v-6b5f7873]{padding:10px 20px;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:14px;cursor:pointer;transition:background .2s}.send-btn[data-v-6b5f7873]:hover:not(:disabled){background:var(--color-primary-hover)}.send-btn[data-v-6b5f7873]:disabled{background:var(--btn-disabled);cursor:not-allowed}.interrupt-btn[data-v-6b5f7873]{width:44px;height:44px;border:none;border-radius:8px;background:var(--color-danger);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s}.interrupt-btn[data-v-6b5f7873]:hover{background:var(--color-danger-hover)}.interrupt-btn svg[data-v-6b5f7873]{width:16px;height:16px}.mic-btn[data-v-6b5f7873]{width:44px;height:44px;border:none;border-radius:50%;background:var(--bg-mic);color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.mic-btn[data-v-6b5f7873]:hover{background:var(--bg-mic-hover);color:var(--text-primary)}.mic-btn .mic-icon[data-v-6b5f7873]{width:22px;height:22px}.mic-btn.voice-mode[data-v-6b5f7873]{background:var(--color-mic-active);color:#fff;box-shadow:0 0 12px var(--shadow-mic)}.mic-btn.voice-mode[data-v-6b5f7873]:hover{background:#45b56a}.mic-btn.voice-listening[data-v-6b5f7873]{background:var(--color-mic-listening);color:#fff;animation:pulse-listen-6b5f7873 1.2s infinite;box-shadow:0 0 16px var(--shadow-listen)}@keyframes pulse-listen-6b5f7873{0%,to{box-shadow:0 0 #e0555580}50%{box-shadow:0 0 0 8px #e0555500}}@media(max-width:768px){.input-area[data-v-6b5f7873]{position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--bg-panel)}.chat-panel[data-v-6b5f7873]{padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}}.admin-page[data-v-a1dc96b7]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--bg-body);display:flex;flex-direction:column}.topbar[data-v-a1dc96b7]{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0;background:var(--bg-panel)}.back-btn[data-v-a1dc96b7]{width:36px;height:36px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card);color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.back-btn[data-v-a1dc96b7]:hover{color:var(--text-primary);border-color:var(--border-input)}.back-btn svg[data-v-a1dc96b7]{width:18px;height:18px}.topbar-title[data-v-a1dc96b7]{font-size:16px;font-weight:600;color:var(--text-primary)}.tabs[data-v-a1dc96b7]{display:flex;gap:0;border-bottom:1px solid var(--border-color);padding:0 12px;flex-shrink:0;background:var(--bg-panel)}.tab[data-v-a1dc96b7]{padding:14px 20px;border:none;background:transparent;color:var(--text-dim);font-size:14px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.tab[data-v-a1dc96b7]:hover{color:var(--text-muted)}.tab.active[data-v-a1dc96b7]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-content[data-v-a1dc96b7]{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px}.text-input[data-v-a1dc96b7]{padding:8px 12px;border:1px solid var(--border-input);border-radius:6px;background:var(--bg-card);color:var(--text-primary);font-size:13px;outline:none;flex:1}.text-input[data-v-a1dc96b7]:focus{border-color:var(--border-focus)}.text-input[data-v-a1dc96b7]::placeholder{color:var(--text-faint)}.sm-btn[data-v-a1dc96b7]{padding:5px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-card);color:var(--text-muted);font-size:12px;cursor:pointer;transition:all .15s}.sm-btn[data-v-a1dc96b7]:hover:not(:disabled){background:var(--bg-mic);color:var(--text-primary)}.sm-btn[data-v-a1dc96b7]:disabled{opacity:.4;cursor:not-allowed}.sm-btn.danger[data-v-a1dc96b7]:hover{background:#fde8e8;border-color:var(--color-danger);color:var(--color-danger)}.btn[data-v-a1dc96b7]{padding:8px 20px;border:none;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.btn.primary[data-v-a1dc96b7]{background:var(--color-primary);color:#fff}.btn.primary[data-v-a1dc96b7]:hover:not(:disabled){background:var(--color-primary-hover)}.btn.primary[data-v-a1dc96b7]:disabled{opacity:.5;cursor:not-allowed}.btn.danger-outline[data-v-a1dc96b7]{background:transparent;color:var(--color-danger);border:1px solid var(--color-danger)}.btn.danger-outline[data-v-a1dc96b7]:hover{background:var(--color-danger);color:#fff}.empty-text[data-v-a1dc96b7]{color:var(--text-faint);font-size:13px;text-align:center;padding:20px 0}.loading-text[data-v-a1dc96b7]{color:var(--text-faint);font-size:13px;text-align:center;padding:10px 0}.kb-list[data-v-a1dc96b7]{display:flex;flex-direction:column;gap:4px}.kb-item[data-v-a1dc96b7]{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--bg-card)}.kb-item.selected[data-v-a1dc96b7]{border-color:var(--border-input)}.kb-header[data-v-a1dc96b7]{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;transition:background .15s}.kb-header[data-v-a1dc96b7]:hover{background:var(--bg-input)}.kb-name[data-v-a1dc96b7]{font-size:14px;color:var(--text-secondary);flex:1}.kb-count[data-v-a1dc96b7]{font-size:12px;color:var(--text-subtle)}.kb-expand-btn[data-v-a1dc96b7]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--color-primary);border-radius:14px;background:#4a90d914;color:var(--color-primary);font-size:12px;cursor:pointer;transition:all .2s}.kb-expand-btn[data-v-a1dc96b7]:hover{background:#4a90d92e}.kb-toggle-btn[data-v-a1dc96b7]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-card);color:var(--text-subtle);font-size:12px;cursor:pointer;transition:all .2s}.kb-toggle-btn[data-v-a1dc96b7]:hover{border-color:var(--color-primary);color:var(--color-primary)}.kb-toggle-btn.enabled[data-v-a1dc96b7]{border-color:var(--color-primary);background:#4a90d91f;color:var(--color-primary);font-weight:600}.expand-arrow[data-v-a1dc96b7]{width:12px;height:12px;transition:transform .2s}.expand-arrow.open[data-v-a1dc96b7]{transform:rotate(180deg)}.kb-actions[data-v-a1dc96b7]{display:flex;gap:6px;flex-shrink:0}.kb-docs[data-v-a1dc96b7]{padding:0 14px 14px;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:8px}.upload-row[data-v-a1dc96b7]{display:flex;align-items:center;gap:10px;padding-top:10px}.upload-hint[data-v-a1dc96b7]{font-size:11px;color:var(--text-faint)}.doc-item[data-v-a1dc96b7]{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-input);border-radius:6px}.doc-name[data-v-a1dc96b7]{flex:1;font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-status[data-v-a1dc96b7]{font-size:11px;padding:2px 6px;border-radius:4px}.doc-status.ready[data-v-a1dc96b7]{background:#d4edda;color:#2d8a44}.doc-status.error[data-v-a1dc96b7]{background:#fde8e8;color:#d04040}.doc-size[data-v-a1dc96b7]{font-size:11px;color:var(--text-faint)}.doc-actions[data-v-a1dc96b7]{display:flex;gap:4px}.create-kb[data-v-a1dc96b7]{display:flex;gap:8px}.info-row[data-v-a1dc96b7]{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text-dim)}.info-row strong[data-v-a1dc96b7]{color:var(--text-secondary)}.session-list[data-v-a1dc96b7]{display:flex;flex-direction:column;gap:8px}.session-item[data-v-a1dc96b7]{padding:10px 14px;background:var(--bg-card);border-radius:8px;font-size:12px;border:1px solid var(--border-color)}.session-meta[data-v-a1dc96b7]{color:var(--text-faint);margin-bottom:4px}.session-user[data-v-a1dc96b7]{color:var(--color-primary);margin-bottom:2px}.session-assistant[data-v-a1dc96b7]{color:var(--color-ai-badge)}.prompt-editor[data-v-a1dc96b7]{width:100%;padding:12px;background:var(--bg-card);border:1px solid var(--border-input);border-radius:8px;color:var(--text-secondary);font-size:13px;font-family:inherit;line-height:1.6;resize:vertical;outline:none}.prompt-editor[data-v-a1dc96b7]:focus{border-color:var(--border-focus)}.prompt-editor[data-v-a1dc96b7]::placeholder{color:var(--text-faint)}.actions-row[data-v-a1dc96b7]{display:flex;justify-content:flex-end;gap:8px}.msg[data-v-a1dc96b7]{padding:8px 12px;border-radius:6px;font-size:13px}.msg.success[data-v-a1dc96b7]{background:#d4edda;color:#2d8a44}.msg.error[data-v-a1dc96b7]{background:#fde8e8;color:#d04040}.search-card[data-v-a1dc96b7]{padding:16px;background:var(--bg-card);border-radius:10px;border:1px solid var(--border-color);display:flex;flex-direction:column;gap:12px}.search-info[data-v-a1dc96b7]{display:flex;align-items:center;justify-content:space-between;font-size:15px;color:var(--text-secondary)}.search-status[data-v-a1dc96b7]{font-size:13px;padding:4px 10px;border-radius:12px}.search-status.on[data-v-a1dc96b7]{background:#d4edda;color:#2d8a44}.search-status.off[data-v-a1dc96b7]{background:var(--bg-input);color:var(--text-subtle)}.search-desc[data-v-a1dc96b7]{font-size:13px;color:var(--text-subtle);line-height:1.6;margin:0}.voice-grid[data-v-a1dc96b7]{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.voice-card[data-v-a1dc96b7]{padding:16px 14px;background:var(--bg-card);border:2px solid var(--border-color);border-radius:12px;cursor:pointer;text-align:center;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:6px}.voice-card[data-v-a1dc96b7]:hover{border-color:var(--border-input);background:var(--bg-mic)}.voice-card.active[data-v-a1dc96b7]{border-color:var(--color-primary);background:var(--bg-mic)}.voice-gender-icon[data-v-a1dc96b7]{font-size:28px;line-height:1}.voice-label[data-v-a1dc96b7]{font-size:15px;font-weight:600;color:var(--text-secondary)}.voice-desc[data-v-a1dc96b7]{font-size:12px;color:var(--text-subtle)}.voice-check[data-v-a1dc96b7]{font-size:12px;color:var(--color-primary);font-weight:600;margin-top:2px}@media(max-width:600px){.tab[data-v-a1dc96b7]{padding:12px 14px;font-size:13px}.tab-content[data-v-a1dc96b7]{padding:12px 14px}}.app-layout[data-v-fb7928b8]{display:flex;width:100vw;height:100vh}.scene-panel[data-v-fb7928b8]{flex:1;min-width:0;position:relative}.chat-panel[data-v-fb7928b8]{width:380px;flex-shrink:0}.top-actions[data-v-fb7928b8]{position:absolute;top:12px;right:12px;z-index:10;display:flex;gap:8px}.top-btn[data-v-fb7928b8]{width:36px;height:36px;border:1px solid var(--border-color);border-radius:50%;background:var(--bg-panel);color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.top-btn[data-v-fb7928b8]:hover{color:var(--text-primary);background:var(--bg-mic-hover);border-color:var(--border-input)}.top-btn svg[data-v-fb7928b8]{width:18px;height:18px}@media(max-width:768px){.app-layout[data-v-fb7928b8]{flex-direction:column}.scene-panel[data-v-fb7928b8]{flex:7;min-height:0}.chat-panel[data-v-fb7928b8]{flex:4;width:100%;min-height:0}.top-actions[data-v-fb7928b8]{display:none}}:root{--bg-body: #1a1a2e;--bg-panel: rgba(22, 22, 40, .95);--bg-card: #222;--bg-input: #1e1e3a;--bg-mic: #2a2a4a;--bg-mic-hover: #3a3a6a;--border-color: #333;--border-input: #444;--border-focus: #6699ff;--text-primary: #eee;--text-secondary: #ddd;--text-muted: #ccc;--text-dim: #999;--text-subtle: #888;--text-faint: #666;--color-user-badge: #4a90d9;--color-user-bubble: #4a90d9;--color-ai-badge: #50c878;--color-ai-bubble: #2a2a4a;--color-primary: #6699ff;--color-primary-hover: #5577dd;--color-danger: #e05555;--color-danger-hover: #d04040;--color-mic-active: #50c878;--color-mic-listening: #e05555;--shadow-mic: rgba(80, 200, 120, .4);--shadow-listen: rgba(224, 85, 85, .5);--btn-disabled: #444}.light-theme{--bg-body: #f7f8fa;--bg-panel: rgba(255, 255, 255, .95);--bg-card: #fff;--bg-input: #f0f4f8;--bg-mic: #e0eaf5;--bg-mic-hover: #d0ddf0;--border-color: #d0dde8;--border-input: #c0d0e0;--border-focus: #4a90d9;--text-primary: #1a2a3a;--text-secondary: #2a3a4a;--text-muted: #4a5a6a;--text-dim: #6a7a8a;--text-subtle: #7a8a9a;--text-faint: #a0b0c0;--color-user-badge: #4a90d9;--color-user-bubble: #4a90d9;--color-ai-badge: #3cb878;--color-ai-bubble: #e8f0fa;--color-primary: #4a90d9;--color-primary-hover: #3a7cc8;--color-danger: #e05555;--color-danger-hover: #d04040;--color-mic-active: #3cb878;--color-mic-listening: #e05555;--shadow-mic: rgba(60, 184, 120, .3);--shadow-listen: rgba(224, 85, 85, .4);--btn-disabled: #c0d0e0}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Microsoft YaHei,sans-serif;background:var(--bg-body);color:var(--text-primary);overflow:hidden;transition:background .3s,color .3s}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}
