@import"https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Sans:wght@300;400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--bg: #0d1117;--surface: #161b24;--surface2: #1e2736;--border: #2a3347;--accent: #f97316;--accent2: #fbbf24;--text: #e8edf5;--text-muted: #7a8ba8;--green: #22c55e;--red: #ef4444;--blue: #3b82f6;--header-bg: linear-gradient(135deg, #0a0f16 0%, #1a2235 100%);--orb-bg: radial-gradient(ellipse at 50% 60%, #1a2538 0%, #0d1117 70%);--chip-hover-bg: rgba(249, 115, 22, .08);--error-bg: rgba(239, 68, 68, .12);--error-border: rgba(239, 68, 68, .3);--error-text: #fca5a5;--input-bg: #1e2736;--shadow: 0 4px 24px rgba(0, 0, 0, .4);--track-line: rgba(249, 115, 22, .04);--transcript-bg: rgba(249, 115, 22, .12);--response-bg: #1e2736;--empty-hint: #7a8ba8;--radius: 14px;font-family:DM Sans,sans-serif;color:var(--text);background:var(--bg);color-scheme:dark}[data-theme=light]{--bg: #f5f7fa;--surface: #ffffff;--surface2: #eef1f6;--border: #d1d9e6;--accent: #f97316;--accent2: #f59e0b;--text: #1a2235;--text-muted: #5a6a82;--green: #16a34a;--red: #dc2626;--blue: #2563eb;--header-bg: linear-gradient(135deg, #ffffff 0%, #f0f4ff 100%);--orb-bg: radial-gradient(ellipse at 50% 60%, #f0f4ff 0%, #f5f7fa 70%);--chip-hover-bg: rgba(249, 115, 22, .1);--error-bg: rgba(220, 38, 38, .08);--error-border: rgba(220, 38, 38, .25);--error-text: #b91c1c;--input-bg: #eef1f6;--shadow: 0 4px 24px rgba(0, 0, 0, .1);--track-line: rgba(249, 115, 22, .06);--transcript-bg: rgba(249, 115, 22, .1);--response-bg: #eef1f6;--empty-hint: #5a6a82;color-scheme:light}html,body,#root{height:100%;width:100%;overflow:hidden}.vb-wrapper{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100%;max-width:680px;margin:0 auto;background:var(--surface);border-left:1px solid var(--border);border-right:1px solid var(--border);position:relative;overflow:hidden;color:var(--text)}.vb-wrapper:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent,transparent 48px,var(--track-line) 48px,var(--track-line) 50px);pointer-events:none;z-index:0}.vb-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--header-bg);border-bottom:2px solid var(--accent);box-shadow:0 2px 20px #f9731626;flex-shrink:0}.vb-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.vb-header-controls{display:flex;align-items:center;gap:8px}.vb-logo{display:flex;align-items:center;gap:12px}.vb-train-icon{font-size:1.8rem;line-height:1;filter:drop-shadow(0 0 8px rgba(249,115,22,.5))}.vb-logo h1{font-family:Syne,sans-serif;font-size:1.35rem;font-weight:800;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1}.vb-subtitle{display:block;font-size:.8rem;color:var(--text)!important;opacity:.85;letter-spacing:.02em;font-weight:500}.vb-lang-switcher{display:flex;gap:6px;background:var(--surface2);padding:6px;border-radius:999px;border:1px solid var(--border);margin-top:10px}.vb-lang-btn{padding:10px 22px;border-radius:999px;border:none;background:transparent;color:var(--text-muted);font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s}.vb-lang-btn.active{background:var(--accent);color:#fff;box-shadow:0 4px 12px #f973164d}.vb-lang-btn:hover:not(.active):not(:disabled){color:var(--text);background:#f973161a}.vb-lang-btn:disabled{opacity:.5;cursor:not-allowed}.vb-theme-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface2);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.vb-theme-btn:hover{border-color:var(--accent);color:var(--accent);background:#f9731614}.vb-status-badge{display:flex;align-items:center;gap:6px;font-size:.7rem;font-weight:500;color:var(--text-muted);background:var(--surface2);padding:4px 10px;border-radius:999px;border:1px solid var(--border)}.vb-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);transition:background .3s}[data-status=idle] .vb-dot{background:var(--green)}[data-status=recording] .vb-dot{background:var(--red);animation:blink .8s step-end infinite}[data-status=processing] .vb-dot{background:var(--accent);animation:blink .6s step-end infinite}[data-status=playing] .vb-dot{background:var(--blue)}[data-status=error] .vb-dot{background:var(--red)}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.vb-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;z-index:1;overflow-y:auto;overflow-x:hidden;background:var(--orb-bg);padding:20px 24px}.vb-orb-area{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%;max-width:360px}.vb-transcript-bubble{display:flex;align-items:flex-start;gap:10px;background:var(--transcript-bg);border:1px solid rgba(249,115,22,.25);border-radius:var(--radius);padding:12px 16px;width:100%;animation:slide-in .25s ease}.vb-transcript-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px}.vb-transcript-text{font-size:.9rem;color:var(--text);line-height:1.5;font-style:italic}.vb-orb-wrapper{display:flex;align-items:center;justify-content:center}.vb-response-bubble{display:flex;align-items:flex-start;gap:10px;background:var(--response-bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;width:100%;animation:slide-in .25s ease}.vb-response-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px}.vb-assistant-emoji{font-size:1.6rem;line-height:1;flex-shrink:0}.vb-assistant-emoji-mini{font-size:1.3rem;line-height:1;vertical-align:sub;margin-right:6px}.vb-response-text{font-size:.9rem;color:var(--text);line-height:1.6}.vb-processing{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;color:var(--text-muted)}.vb-spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.vb-empty{text-align:center;padding:8px 0}.vb-empty-hint{font-size:.82rem;color:var(--empty-hint);line-height:1.5}.vb-mic-btn{position:relative;width:140px;height:140px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s;flex-shrink:0}.vb-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%;background-color:var(--surface2);border:3px solid var(--border);box-shadow:0 6px 24px #0000004d;transition:all .25s}.vb-mic-btn:hover:not(:disabled) .vb-avatar-img{transform:scale(1.06);box-shadow:0 8px 32px #0006}.vb-mic-btn:active:not(:disabled) .vb-avatar-img{transform:scale(.96)}.vb-mic-btn:disabled{opacity:.5;cursor:not-allowed}.vb-mic-btn.recording .vb-avatar-img{box-shadow:0 0 36px #ef444480,0 4px 20px #0000004d;animation:mic-pulse 1.5s ease-in-out infinite}.vb-mic-btn.playing .vb-avatar-img{box-shadow:0 0 36px #3b82f680,0 4px 20px #0000004d}@keyframes mic-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.vb-pulse-ring{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%;border:2px solid var(--red);animation:ring-expand 1.8s ease-out infinite;pointer-events:none}.vb-pulse-ring--delay{animation-delay:.6s;top:-18px;right:-18px;bottom:-18px;left:-18px;opacity:.5}@keyframes ring-expand{0%{transform:scale(.85);opacity:.9}to{transform:scale(1.4);opacity:0}}.vb-error{position:relative;z-index:2;margin:0 16px;padding:10px 14px;background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.82rem;color:var(--error-text);animation:slide-in .2s ease;flex-shrink:0}.vb-error button{background:none;border:none;color:var(--error-text);cursor:pointer;font-size:1rem;padding:0 4px;flex-shrink:0}.vb-suggestions{position:relative;z-index:2;padding:10px 16px 8px;border-top:1px solid var(--border);background:var(--surface);flex-shrink:0}.vb-suggestions-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:8px;font-weight:600}.vb-suggestions-row{display:flex;gap:6px;flex-wrap:wrap}.vb-chip{padding:6px 13px;border-radius:999px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:.73rem;font-family:DM Sans,sans-serif;cursor:pointer;transition:all .2s;white-space:nowrap;line-height:1.4}.vb-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--chip-hover-bg)}.vb-chip:disabled{opacity:.4;cursor:not-allowed}.vb-text-area{position:relative;z-index:2;padding:10px 16px 16px;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.vb-text-form{display:flex;gap:8px;align-items:center}.vb-text-input{flex:1;padding:11px 16px;background:var(--input-bg);border:1px solid var(--border);border-radius:999px;color:var(--text)!important;font-family:DM Sans,sans-serif;font-size:.875rem;outline:none;transition:border-color .2s}.vb-text-input:focus{border-color:var(--accent)}.vb-text-input::placeholder{color:var(--text-muted)}.vb-text-send{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--accent);border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .2s}.vb-text-send:hover:not(:disabled){background:#ea580c;transform:scale(1.05)}.vb-text-send:disabled{opacity:.4;cursor:not-allowed}@keyframes slide-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}@media (max-width: 680px){.vb-wrapper{border-left:none;border-right:none;max-width:100vw}}@media (max-width: 768px){.vb-header{padding:12px 16px}.vb-logo h1{font-size:1.2rem}.vb-train-icon{font-size:1.6rem}.vb-orb-area{max-width:100%}.vb-mic-btn{width:120px;height:120px}.vb-suggestions{padding:9px 14px 7px}.vb-main{padding:16px 20px}}@media (max-width: 480px){.vb-header{padding:10px 12px}.vb-logo h1{font-size:1.05rem}.vb-train-icon{font-size:1.4rem}.vb-subtitle{font-size:.7rem}.vb-mic-btn{width:100px;height:100px}.vb-suggestions{padding:8px 12px 6px}.vb-chip{font-size:.69rem;padding:5px 10px}.vb-text-input{font-size:.82rem;padding:10px 14px}.vb-text-send{width:40px;height:40px}.vb-lang-btn{padding:8px 16px;font-size:.85rem}.vb-main{padding:14px 16px}.vb-orb-area{gap:16px}.vb-history-panel{width:calc(100vw - 32px);right:16px}.vb-history-toggle{right:14px;bottom:72px;width:42px;height:42px}}@media (max-width: 360px){.vb-header{padding:8px 10px}.vb-logo h1{font-size:.95rem}.vb-train-icon{font-size:1.2rem}.vb-subtitle{display:none}.vb-mic-btn{width:90px;height:90px}.vb-chip{font-size:.65rem;padding:4px 9px}.vb-text-input{font-size:.78rem;padding:9px 12px}.vb-text-send{width:36px;height:36px}.vb-lang-btn{padding:7px 12px;font-size:.78rem}.vb-main{padding:10px 12px}.vb-orb-area{gap:12px}.vb-history-panel{width:calc(100vw - 20px);right:10px}.vb-history-toggle{right:10px;bottom:68px;width:38px;height:38px}.vb-status-badge{font-size:.62rem;padding:3px 8px}}@media (max-height: 500px) and (orientation: landscape){.vb-header{padding:6px 14px}.vb-mic-btn{width:84px;height:84px}.vb-main{padding:8px 16px;justify-content:flex-start}.vb-orb-area{gap:10px}.vb-suggestions{padding:6px 12px 4px}.vb-suggestions-row{flex-wrap:nowrap;overflow-x:auto}.vb-chip{flex-shrink:0}}.vb-history-toggle{position:absolute;bottom:80px;right:20px;width:48px;height:48px;border-radius:50%;background:var(--surface2);border:1px solid var(--border);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow);z-index:20;transition:all .2s}.vb-history-toggle:hover{background:var(--accent);color:#fff;transform:scale(1.05)}.vb-history-panel{position:absolute;bottom:80px;right:20px;width:320px;max-width:calc(100% - 40px);max-height:40vh;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px #0000004d;z-index:30;display:flex;flex-direction:column;overflow:hidden;animation:slide-in .2s ease}.vb-history-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface2);border-bottom:1px solid var(--border)}.vb-history-header h3{font-size:.9rem;font-weight:600;margin:0;color:var(--text)}.vb-history-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:1.1rem;padding:4px}.vb-history-close:hover{color:var(--text)}.vb-history-content{padding:12px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.vb-history-item{font-size:.82rem;padding-bottom:12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.vb-history-item:last-child{border-bottom:none;padding-bottom:0}.vb-history-q{color:var(--text);font-weight:500}.vb-history-a{color:var(--text-muted);line-height:1.4}.vb-history-time{font-size:.7rem;color:var(--text-muted);align-self:flex-end;opacity:.7}.vb-source-mini{font-size:.7rem;font-weight:600;margin-left:6px}.vb-response-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.vb-source-badge{font-size:11px;font-weight:600;letter-spacing:.3px;padding:2px 8px;border-radius:20px;background:#ffffff14}.vb-source-mini{font-size:12px;margin-left:4px}.vb-rag-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#22c55e;background:#22c55e1a;padding:4px 12px;border-radius:20px;border:1px solid rgba(34,197,94,.2);margin-top:12px}.vb-admin-btn{background:none;border:1px solid rgba(255,255,255,.15);color:#ffffffb3;width:34px;height:34px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s}.vb-admin-btn:hover{background:#ffffff1a}.vb-subtitle{font-size:11px;color:#ffffff73;letter-spacing:.5px}.vb-history{width:100%;max-width:640px;margin:0 auto 16px;padding:0 16px}.vb-history-label{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:#ffffff4d;margin-bottom:8px}.vb-history-item{background:#ffffff0a;border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:10px 12px;margin-bottom:6px;position:relative}.vb-history-q{font-size:12px;color:#ffffff8c;margin-bottom:4px}.vb-history-a{font-size:13px;color:#fffc}.vb-history-time{position:absolute;top:8px;right:10px;font-size:10px;color:#ffffff40}.admin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.admin-panel{background:#0f1117;border:1px solid rgba(255,255,255,.12);border-radius:20px;width:100%;max-width:600px;max-height:85vh;overflow-y:auto;box-shadow:0 24px 80px #0009}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.admin-title{display:flex;align-items:center;gap:12px;font-size:22px}.admin-title h2{font-size:18px;font-weight:700;color:#fff;margin:0}.admin-title p{font-size:12px;color:#22c55e;margin:0}.admin-close{background:#ffffff14;border:none;color:#fff9;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:14px;transition:all .2s}.admin-close:hover{background:#ff50504d;color:#fff}.admin-stats{display:flex;align-items:center;gap:0;padding:12px 24px;background:#22c55e0f;border-bottom:1px solid rgba(255,255,255,.06)}.admin-stat{flex:1;display:flex;flex-direction:column;align-items:center}.stat-num{font-size:22px;font-weight:800;color:#22c55e;line-height:1}.stat-label{font-size:10px;color:#fff6;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.admin-refresh{background:none;border:1px solid rgba(255,255,255,.1);color:#ffffff80;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.admin-refresh:hover{background:#ffffff14}.admin-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.08);padding:0 24px;gap:4px}.admin-tab{background:none;border:none;border-bottom:2px solid transparent;color:#ffffff73;font-size:13px;font-weight:500;padding:12px 16px;cursor:pointer;transition:all .2s}.admin-tab.active{color:#22c55e;border-bottom-color:#22c55e}.admin-tab:hover{color:#ffffffbf}.admin-content{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.admin-help{font-size:13px;color:#fff6;margin:0}.admin-field{display:flex;flex-direction:column;gap:6px}.admin-field label{font-size:12px;font-weight:600;color:#ffffff8c;text-transform:uppercase;letter-spacing:.5px}.admin-input{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 14px;color:#fff;font-size:14px;outline:none;transition:border-color .2s}.admin-input:focus{border-color:#22c55e80}.admin-textarea{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 14px;color:#fff;font-size:13px;font-family:JetBrains Mono,monospace;resize:vertical;outline:none;transition:border-color .2s}.admin-textarea:focus{border-color:#22c55e80}.admin-dropzone{border:2px dashed rgba(255,255,255,.15);border-radius:12px;padding:16px;text-align:center;transition:border-color .2s;cursor:pointer}.admin-dropzone:hover{border-color:#22c55e66}.admin-dropzone-label{display:block;color:#fff6;font-size:13px;cursor:pointer;padding:8px 0}.admin-dropzone-label:hover{color:#22c55ecc}.admin-file-list{margin-top:10px}.admin-file-item{display:flex;align-items:center;justify-content:space-between;background:#22c55e14;border-radius:8px;padding:6px 10px;margin-bottom:4px;font-size:12px;color:#ffffffb3}.admin-file-item button{background:none;border:none;color:#ff5050b3;cursor:pointer;font-size:12px}.admin-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:#fff9;cursor:pointer}.admin-checkbox input{cursor:pointer;accent-color:#22c55e}.admin-ingest-btn{background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:12px;padding:12px 24px;color:#fff;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.admin-ingest-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px #22c55e59}.admin-ingest-btn:disabled{opacity:.6;cursor:not-allowed}.admin-spin{display:inline-block;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.admin-result{border-radius:10px;padding:12px 16px;font-size:13px;line-height:1.5}.admin-result.success{background:#22c55e1f;color:#86efac;border:1px solid rgba(34,197,94,.2)}.admin-result.error{background:#ef44441f;color:#fca5a5;border:1px solid rgba(239,68,68,.2)}.admin-test-result{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px}.test-field{font-size:13px;color:#ffffffb3;display:flex;gap:8px;align-items:flex-start}.test-field strong{color:#fff6;min-width:70px}.source-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase}.source-rag{background:#22c55e26;color:#22c55e}.source-static{background:#60a5fa26;color:#60a5fa}.source-fallback{background:#f59e0b26;color:#f59e0b}.test-response{color:#fff;font-size:14px;line-height:1.6;margin:6px 0 0}.admin-ns-list h3{font-size:14px;color:#fff9;margin-bottom:10px}.admin-ns-item{display:flex;justify-content:space-between;align-items:center;background:#ffffff0a;border-radius:8px;padding:8px 12px;margin-bottom:6px}.ns-name{font-size:13px;color:#fff;font-weight:600}.ns-count{font-size:12px;color:#fff6}.admin-empty{color:#ffffff4d;font-size:13px;font-style:italic}.admin-danger-zone{border:1px solid rgba(239,68,68,.2);border-radius:12px;padding:16px;background:#ef44440d}.admin-danger-zone h3{font-size:14px;color:#f87171;margin-bottom:6px}.admin-danger-zone p{font-size:13px;color:#ffffff73;margin-bottom:12px}.admin-clear-btn{background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:10px 20px;color:#f87171;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.admin-clear-btn:hover{background:#ef444440}
