:root{--stage-bg:#1b1d2e;--fg:#f2f3fa;--muted:#a7abc4;--panel:#161826f5;--line:#ffffff1a;--accent:#ff7eb6;--accent-2:#8f7bff;--listen:#4fd1a5;--think:#ffc65c;--danger:#ff6b6b;--radius:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--fg);background:radial-gradient(ellipse at 50% 30%, color-mix(in srgb, var(--stage-bg) 70%, #6b5cff 30%), var(--stage-bg) 70%);-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#stage{touch-action:none;width:100%;height:100%;position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer}.icon-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff14;border:0;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.icon-btn:hover{background:#ffffff29}.topbar{padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;pointer-events:none;align-items:center;gap:12px;display:flex;position:fixed;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.persona-name{letter-spacing:.02em;font-size:1.1rem;font-weight:700}.status{white-space:nowrap;color:var(--muted);background:#ffffff14;border-radius:99px;margin-right:auto;padding:4px 10px;font-size:.8rem}.status[data-state=listening]{color:#0c2a20;background:var(--listen)}.status[data-state=thinking]{color:#3a2800;background:var(--think)}.status[data-state=speaking]{color:#3b0a22;background:var(--accent)}.subtitles{left:50%;bottom:calc(env(safe-area-inset-bottom) + 112px);pointer-events:none;flex-direction:column;gap:8px;width:min(720px,100% - 32px);display:flex;position:fixed;transform:translate(-50%)}.subtitles.hidden{display:none}.line{border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:30vh;margin:0;padding:10px 14px;line-height:1.4;display:-webkit-box;overflow:hidden}.line:empty{display:none}.line.user{background:#6e5ae6cc;align-self:flex-end;max-width:85%}.line.ai{background:#0e0e1cc7;align-self:flex-start}.line.interim{opacity:.7;font-style:italic}.controls{padding:16px 16px calc(env(safe-area-inset-bottom) + 16px);align-items:center;gap:12px;max-width:760px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.text-form{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);background:#0e0e1cd1;border-radius:99px;flex:1;align-items:center;gap:6px;min-width:0;padding:4px 4px 4px 16px;display:flex}.text-form input{min-width:0;color:var(--fg);background:0 0;border:0;outline:0;flex:1;padding:8px 0;font-size:16px}.mic-btn{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border:0;border-radius:50%;flex:none;place-items:center;width:72px;height:72px;transition:transform .15s;display:grid;position:relative;box-shadow:0 8px 24px #8f7bff73}.mic-btn:active{transform:scale(.94)}.mic-ring{border:3px solid var(--listen);opacity:0;transform:scale(calc(1 + var(--level,0) * .35));border-radius:50%;transition:transform 80ms linear;position:absolute;inset:-6px}.mic-btn .ico-stop{display:none}body[data-state=listening] .mic-btn{background:var(--listen)}body[data-state=listening] .mic-ring{opacity:1}body[data-state=speaking] .mic-btn .ico-mic,body[data-state=thinking] .mic-btn .ico-mic{display:none}body[data-state=speaking] .mic-btn .ico-stop,body[data-state=thinking] .mic-btn .ico-stop{display:block}body[data-state=thinking] .mic-btn{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 12px #ffc65c40}}.loader{color:var(--muted);pointer-events:none;place-content:center;justify-items:center;gap:14px;display:grid;position:fixed;inset:0}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{top:calc(env(safe-area-inset-top) + 68px);border-radius:var(--radius);border:1px solid var(--danger);z-index:30;background:#46141eeb;width:min(560px,100% - 32px);padding:12px 16px;font-size:.9rem;position:fixed;left:50%;transform:translate(-50%)}.toast.info{background:#14283ceb;border-color:#5aa9ff}[hidden]{display:none!important}.panel{background:var(--panel);border-left:1px solid var(--line);z-index:20;width:min(440px,100%);padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.panel-head{justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.panel-head h2{margin:0;font-size:1.15rem}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;padding:0 12px;display:flex;overflow-x:auto}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:10px 12px}.tabs button[aria-selected=true]{color:var(--fg);border-bottom-color:var(--accent)}.panel-body{padding:16px 16px calc(env(safe-area-inset-bottom) + 24px);flex-direction:column;flex:1;gap:14px;display:flex;overflow-y:auto}.field{flex-direction:column;gap:6px;font-size:.9rem;display:flex}.field>span{color:var(--muted)}.field.inline{flex-direction:row;justify-content:space-between;align-items:center;gap:12px}.field input[type=text],.field input[type=password],.field input[type=url],.field input[type=number],.field select,.field textarea{border:1px solid var(--line);width:100%;color:var(--fg);font:inherit;background:#ffffff0d;border-radius:10px;padding:9px 11px;font-size:16px}.field textarea{resize:vertical;min-height:140px;line-height:1.4}.field input[type=range]{width:100%;accent-color:var(--accent)}.field input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.field input[type=color]{background:0 0;border:0;width:48px;height:32px}.row{align-items:center;gap:8px;display:flex}.row>.grow{flex:1;min-width:0}.hint{color:var(--muted);margin:0;font-size:.8rem;line-height:1.45}.hint a{color:var(--accent)}.btn{border:1px solid var(--line);white-space:nowrap;background:#ffffff14;border-radius:10px;padding:9px 14px}.btn:hover{background:#ffffff26}.btn.primary{background:var(--accent-2);border-color:#0000}.btn.danger{color:var(--danger)}h3{margin:8px 0 0;font-size:.95rem}.avatar-list{flex-direction:column;gap:8px;display:flex}.avatar-item{border:1px solid var(--line);background:#ffffff0a;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.avatar-item.active{border-color:var(--accent);background:#ff7eb61f}.avatar-item .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}@media (width<=520px){.mic-btn{width:64px;height:64px}.subtitles{bottom:calc(env(safe-area-inset-bottom) + 100px)}}.gesture-menu{top:calc(env(safe-area-inset-top) + 64px);border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);z-index:15;flex-direction:column;min-width:170px;padding:6px;display:flex;position:fixed;right:16px}.gesture-menu button{text-align:left;background:0 0;border:0;border-radius:10px;padding:10px 12px}.gesture-menu button:hover{background:#ffffff14}.gesture-menu .stop{color:var(--muted);border-top:1px solid var(--line);border-radius:0 0 10px 10px}.field .secret{-webkit-text-security:disc;font-family:monospace}.field .secret.revealed{-webkit-text-security:none}.field .saved{color:var(--listen);margin-left:6px;font-size:.8rem}.memory-item{align-items:flex-start}.memory-item .grow{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.memory-text{overflow-wrap:anywhere;line-height:1.4}body:has(#panel:not([hidden])) .toast{top:auto;bottom:calc(env(safe-area-inset-bottom) + 24px)}.ar-btn{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border:0;border-radius:99px;align-items:center;gap:6px;height:42px;padding:0 14px;font-weight:700;display:flex;box-shadow:0 6px 18px #8f7bff66}.dialog{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);width:min(480px,100% - 32px);color:var(--fg);padding:0}.dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#05050f99}.dialog-body{flex-direction:column;gap:12px;padding:20px;display:flex}.dialog-body h2{margin:0;font-size:1.15rem}.dialog-body p,.dialog-body ol{margin:0;font-size:.95rem;line-height:1.45}.dialog-body ol{flex-direction:column;gap:6px;padding-left:20px;display:flex}.dialog-body a{color:var(--accent)}.dialog-input{border:1px solid var(--line);color:inherit;background:#ffffff0f;border-radius:10px;padding:10px 12px;font-size:16px}.dialog-input.secret{-webkit-text-security:disc}.dialog-input.secret.revealed{-webkit-text-security:none}.dialog-error{color:var(--danger);min-height:1.2em}.dialog-error:empty{display:none}.dialog-actions{justify-content:flex-end}.vault-status{border-radius:10px;padding:10px 12px;font-size:.95rem;line-height:1.4}.vault-status small{opacity:.8;font-size:.8rem;display:block}.vault-status.on{color:var(--listen);background:#4fd1a526;border:1px solid #4fd1a599}.vault-status.off{border:1px solid var(--line);color:var(--muted);background:#ffffff0d}.locked-key{color:var(--listen);-webkit-user-select:none;user-select:none;background:#4fd1a514;border:1px dashed #4fd1a599;border-radius:10px;padding:9px 11px}.picker{border:1px solid var(--line);background:#0a0a16bf;border-radius:12px;flex-direction:column;gap:8px;margin-top:6px;padding:8px;display:flex}.picker[hidden]{display:none}.picker-filter{border:1px solid var(--line);color:inherit;background:#ffffff0f;border-radius:10px;padding:9px 11px;font-size:16px}.picker-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;gap:2px;max-height:min(50vh,320px);display:flex;overflow-y:auto}.picker-list button{text-align:left;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:10px 12px}.picker-list button[hidden]{display:none}.picker-list button:hover,.picker-list button:focus-visible{background:#ffffff14}.picker-list button.current{background:#8f7bff40}.picker-list small{opacity:.6;font-size:.75rem;display:block}#ui:xr-overlay{touch-action:none;background:0 0}.ar-btn.unavailable{opacity:.45;filter:grayscale();box-shadow:none}.ar-btn[aria-pressed=true]{outline-offset:2px;outline:2px solid #fff}.vault-status.ready{color:var(--think);background:#ffc65c1f;border:1px solid #ffc65c80}:root{--cgt:#d6101c}.brand{background:#fff;border-radius:6px;width:auto;height:34px;padding:2px}.mic-btn{background:linear-gradient(135deg, #ff3b3b, var(--cgt))}.welcome{left:50%;bottom:calc(env(safe-area-inset-bottom) + 100px);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-left:4px solid var(--cgt);background:#0e0e1cd1;flex-direction:column;gap:10px;width:min(720px,100% - 32px);padding:14px;display:flex;position:fixed;transform:translate(-50%)}.welcome[hidden]{display:none}.welcome-text{margin:0;line-height:1.45}.suggestions{flex-wrap:wrap;gap:8px;display:flex}.chip{color:inherit;font:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;border-radius:99px;padding:9px 14px;font-size:.92rem}.chip:active{background:var(--cgt);border-color:var(--cgt)}.privacy{color:var(--muted);margin:0;font-size:.75rem}body[data-state=listening] .welcome,body[data-state=thinking] .welcome,body[data-state=speaking] .welcome{display:none}.thinking{border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--muted);background:#0e0e1cc7;align-self:flex-start;align-items:center;gap:10px;padding:10px 14px;font-size:.92rem;display:flex}.thinking[hidden]{display:none}.dots{gap:5px;display:inline-flex}.dots i{background:var(--cgt);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite bounce}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}body[data-state=thinking] .line.ai:empty+.thinking{margin-top:0}.sources{border-radius:var(--radius);pointer-events:auto;background:#0e0e1cb3;flex-wrap:wrap;align-self:flex-start;align-items:center;gap:6px 10px;padding:8px 12px;font-size:.82rem;display:flex}.sources[hidden]{display:none}.sources span{color:var(--muted)}.sources a{color:#ffb3b8;text-decoration:underline}
