.phonecall{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background-color:#0a1f56;background-position:center;background-repeat:no-repeat;background-size:cover;font-family:sans-serif;color:#fff}.phonecall__gate{display:flex;flex-direction:column;align-items:center;gap:1.25em;padding:2em;background-color:#0a1f56db;-webkit-backdrop-filter:blur(2em);backdrop-filter:blur(2em);border-radius:.75em;max-width:28em;text-align:center}.phonecall__gate-hint{margin:0;font-size:1.1em}.phonecall__error{margin:0;color:#ff9b9b}.phonecall__start{border:none;border-radius:2em;padding:.85em 2em;font-size:1.1em;cursor:pointer;background-color:#27ae60;color:#fff;transition:transform .12s,background-color .12s}.phonecall__start:hover{background-color:#2ecc71;transform:scale(1.04)}.phonecall__panel{display:flex;flex-direction:column;width:30em;max-width:calc(100% - 3em);height:40em;max-height:calc(100% - 3em);background-color:#0a1f56db;-webkit-backdrop-filter:blur(2em);backdrop-filter:blur(2em);border-radius:.75em;padding:1.5em;box-sizing:border-box}.phonecall__messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:1em;scroll-behavior:smooth}.phonecall__msg{display:flex;align-items:flex-end;gap:.5em;max-width:22em;margin-right:auto}.phonecall__msg--streaming{opacity:.75}.phonecall__avatar{width:1.8em;height:1.8em;border-radius:50%;object-fit:cover;flex:0 0 auto}.phonecall__msg-text{background-color:#3a4471;border-radius:.5em .5em .5em 0;padding:.5em .9em}.phonecall__footer{display:flex;align-items:center;justify-content:center;gap:1em;padding-top:1.25em}.phonecall__status{margin:0;opacity:.8}.phonecall__hangup{border:none;border-radius:1.5em;padding:.6em 1.4em;font-size:.95em;cursor:pointer;background-color:#c0392b;color:#fff}.phonecall__hangup:hover{background-color:#e74c3c}.phonecall__ptt{border:none;border-radius:1.5em;padding:.6em 1.4em;font-size:.95em;cursor:pointer;background-color:#3a4471;color:#fff;user-select:none;-webkit-user-select:none;touch-action:none;transition:transform .12s,background-color .12s}.phonecall__ptt:hover{background-color:#4a5481}.phonecall__ptt--active{background-color:#27ae60;transform:scale(1.05)}.phonecall__ptt svg{width:1.05em;height:1.05em;vertical-align:-.18em;display:inline-block}.phonecall__contact-card{display:flex;flex-direction:column;align-items:center;gap:1.25em;padding:2em;background-color:#0a1f56db;-webkit-backdrop-filter:blur(2em);backdrop-filter:blur(2em);border-radius:.75em;max-width:22em;width:calc(100% - 3em);text-align:center}.phonecall__contact-avatar{width:140px;height:140px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 4px #ffffff14}.phonecall__contact-avatar--pulsing{animation:phonecall-avatar-pulse 1.6s ease-out infinite}@keyframes phonecall-avatar-pulse{0%{box-shadow:0 0 0 4px #ffffff1f,0 0 0 6px #ffffff2e}70%{box-shadow:0 0 0 18px #fff0,0 0 0 34px #fff0}to{box-shadow:0 0 0 4px #ffffff1f,0 0 0 6px #fff0}}.phonecall__calling-hint{margin:0;font-size:1rem;letter-spacing:.04em;color:#ffffffc7;animation:phonecall-calling-fade 1.4s ease-in-out infinite}@keyframes phonecall-calling-fade{0%,to{opacity:.55}50%{opacity:1}}.phonecall__contact-name{margin:0;font-size:1.75rem;font-weight:600;line-height:1.15}.phonecall__action-row{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:1em;margin:.25em 0}.phonecall__action-button{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);background-color:#ffffff0f;color:#fff;cursor:pointer;transition:transform .12s,background-color .12s;padding:0}.phonecall__action-button svg{width:22px;height:22px}.phonecall__action-button:not(.phonecall__action-button--disabled):hover{background-color:#ffffff1f;transform:translateY(-1px)}.phonecall__action-row .phonecall__action-button:not(.phonecall__action-button--disabled){background-color:#27ae60;border-color:#27ae60}.phonecall__action-row .phonecall__action-button:not(.phonecall__action-button--disabled):hover{background-color:#2ecc71}.phonecall__action-button--disabled{opacity:.35;cursor:not-allowed}.phonecall__contact-role{margin:.25em 0 0;color:#ffffffb3;font-size:.95rem}.phonecall__contact-quote{margin:0;font-style:italic;color:#ffffffb3;font-size:.95rem;max-width:20em;text-align:center}.phonecall__call{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5em;padding:2em;width:100%;max-width:28em}.phonecall__call-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.25em;padding:1em}.phonecall__call-portrait{width:220px;height:220px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 4px #ffffff14;transition:width .25s ease,height .25s ease;position:relative;z-index:1}.phonecall__call--transcript .phonecall__call-portrait{width:88px;height:88px}.phonecall__call-name{margin:0;font-size:1.75rem;font-weight:600;line-height:1.15;position:relative;z-index:1;transition:font-size .25s ease}.phonecall__call--transcript .phonecall__call-name{font-size:1.15rem;opacity:.85}.phonecall__wave-bars{position:absolute;top:1em;left:50%;width:220px;height:220px;transform:translate(-50%);pointer-events:none;opacity:0;transition:opacity .2s ease;z-index:0}.phonecall__call--transcript .phonecall__wave-bars{width:88px;height:88px}.phonecall__wave-bars--active{opacity:1}.phonecall__wave-bar{position:absolute;bottom:50%;left:50%;width:3px;margin-left:-1.5px;background-color:#ffffffc7;border-radius:1.5px;transform-origin:50% 100%;transform:rotate(var(--angle, 0deg)) translateY(-110px);animation:phonecall-wave-bar var(--duration, 1s) ease-in-out var(--delay, 0s) infinite alternate}.phonecall__call--transcript .phonecall__wave-bar{transform:rotate(var(--angle, 0deg)) translateY(-44px)}@keyframes phonecall-wave-bar{0%{height:4px;opacity:.55}to{height:var(--max-h, 18px);opacity:1}}.phonecall__call-transcript{max-width:28em;min-height:4.5em;text-align:center;font-size:1.1rem;line-height:1.45;color:#ffffffeb;text-shadow:0 1px 4px rgba(0,0,0,.3)}.phonecall__call-controls{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25em}.phonecall__call-control-row{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:1.5em}.phonecall__call-control{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);background-color:#ffffff0f;color:#fff;cursor:pointer;transition:transform .12s,background-color .12s,border-color .12s,color .12s;padding:0}.phonecall__call-control svg{width:26px;height:26px}.phonecall__call-control:hover:not(:disabled){background-color:#ffffff1f;transform:translateY(-1px)}.phonecall__call-control:disabled{cursor:default;opacity:.55}.phonecall__call-control--active{background-color:#fff;border-color:#fff;color:#0a1f56}.phonecall__call-control--active:hover:not(:disabled){background-color:#ffffffeb}.phonecall__call-control--danger{background-color:#e74c3c;border-color:#e74c3c}.phonecall__call-control--danger:hover:not(:disabled){background-color:#ec5b4d}.phonecall__call-control--large{width:76px;height:76px}.phonecall__call-control--large svg{width:30px;height:30px}.phonecall__ptt-wrap{position:relative;display:grid;place-items:center}.phonecall__call-control--ptt{user-select:none;-webkit-user-select:none;touch-action:none}.phonecall__ptt-hint{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(4px);white-space:nowrap;background-color:#0a1f56f2;color:#fff;padding:.4em .7em;border-radius:.6em;font-size:.8em;pointer-events:none;opacity:0;transition:opacity .18s,transform .18s}.phonecall__ptt-hint--visible{opacity:1;transform:translate(-50%) translateY(0)}.phonecall__call-control--hinting{animation:phonecall-ptt-flicker .7s ease-in-out 1}@keyframes phonecall-ptt-flicker{0%{opacity:1}12%{opacity:.25}24%{opacity:1}36%{opacity:.35}48%{opacity:1}60%{opacity:.3}72%{opacity:1}to{opacity:1}}@media (prefers-reduced-motion: reduce){.phonecall__call-control--hinting{animation:none}}.app{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.app__header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;gap:.5rem}.app__logo-img{display:block;height:1.5rem;width:auto}.app__logo-button{display:inline-flex;align-items:center;padding:0;border:none;background:none;cursor:pointer;transition:opacity .15s}.app__logo-button:hover:not(:disabled){opacity:.8}.app__logo-button:disabled{cursor:default;opacity:.5}.app__live-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.app__live-dot--on{background:var(--success);box-shadow:0 0 6px color-mix(in srgb,var(--success) 60%,transparent)}.app__live-dot--off{background:var(--text-muted)}.app__header-actions{display:inline-flex;align-items:center;gap:.5rem}.app__icon-button{width:32px;height:32px;display:grid;place-items:center;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--bg-input, rgba(255, 255, 255, .04));color:var(--text, #e2e8f0);cursor:pointer;transition:background-color .15s,color .15s,opacity .15s}.app__icon-button:hover:not(:disabled){background:var(--border);color:var(--accent-hover)}.app__icon-button:disabled{opacity:.35;cursor:not-allowed}.undo-branch{position:relative;display:inline-flex}.undo-branch__count{position:absolute;top:-4px;right:-4px;min-width:14px;height:14px;padding:0 3px;border-radius:7px;background:var(--accent, #6366f1);color:#fff;font-size:.625rem;line-height:14px;text-align:center}.undo-branch__panel{position:absolute;top:calc(100% + 6px);right:0;z-index:200;width:min(360px,calc(100vw - 2rem));max-height:50vh;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0006;padding:.5rem}.undo-branch__header{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:.25rem .5rem .5rem}.undo-branch__empty{font-size:.8125rem;color:var(--text-muted);padding:.5rem}.undo-branch__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.undo-branch__row{display:flex;align-items:baseline;gap:.5rem;padding:.375rem .5rem;border-radius:6px;font-size:.8125rem}.undo-branch__row:hover{background:var(--bg-input, rgba(255, 255, 255, .04))}.undo-branch__actor{flex:0 0 auto;font-weight:600;font-size:.6875rem;color:var(--text-muted)}.undo-branch__actor--human{color:var(--actor-human)}.undo-branch__actor--agent{color:var(--actor-agent)}.undo-branch__actor--system{color:var(--actor-system)}.undo-branch__text{flex:1 1 auto;color:var(--text, #e2e8f0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory{position:relative;display:inline-flex}.inventory__count{position:absolute;top:-4px;right:-4px;min-width:14px;height:14px;padding:0 3px;border-radius:7px;background:var(--accent, #6366f1);color:#fff;font-size:.625rem;line-height:14px;text-align:center}.inventory__panel{position:absolute;top:calc(100% + 6px);right:0;z-index:200;width:min(360px,calc(100vw - 2rem));max-height:50vh;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0006;padding:.5rem}.inventory__header{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:.25rem .5rem .5rem}.inventory__empty{font-size:.8125rem;color:var(--text-muted);padding:.5rem}.inventory__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.inventory__row{display:flex;flex-direction:column;gap:.125rem;padding:.375rem .5rem;border-radius:6px;font-size:.8125rem}.inventory__row:hover{background:var(--bg-input, rgba(255, 255, 255, .04))}.inventory__facet{font-weight:600;font-size:.6875rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory__values{display:flex;flex-direction:column;gap:.125rem}.inventory__value{color:var(--text, #e2e8f0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory__value-key{color:var(--text-muted);margin-right:.375rem}.bubble--undone{opacity:.4;filter:grayscale(1);pointer-events:none}.app__title{display:inline-flex;align-items:center;gap:.4rem}.app__version{font-size:.75rem;font-weight:500;color:var(--text-muted);letter-spacing:.01em}.app__version--mismatch{color:#d97706;cursor:help}.app__version-warn{font-size:.8125rem}.app__main{flex:1;overflow:hidden;display:flex;flex-direction:column}.app__footer{flex-shrink:0;border-top:1px solid var(--border)}.app__unconfigured{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:.9375rem}.app__start-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100%;padding:2rem;text-align:center}.app__start-gate-hint{margin:0;color:var(--text-muted);font-size:1rem}.app__start-button{padding:.75rem 2rem;border-radius:.5rem;border:none;background:var(--accent-hover);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .15s ease}.app__start-button:disabled{opacity:.6;cursor:not-allowed}.app__start-gate-error{margin:0;color:#c0392b;font-size:.875rem}.app__start-qr{display:var(--start-qr-display, block);margin:0;max-width:100%}.app__start-qr img{display:block;max-width:100%;height:auto;border-radius:.5rem}.app__start-qr-caption{margin-top:.5rem;color:var(--text-muted);font-size:.875rem}.app__dialpad{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100%;padding:2rem;text-align:center}.app__dialpad-hint{margin:0;color:var(--text-muted);font-size:1rem}.app__dialpad-display{width:12rem;height:2.75rem;text-align:center;font-size:1.5rem;font-weight:600;letter-spacing:.18em;background:var(--bg-input);border:1px solid var(--border);border-radius:.5rem;color:var(--text);transition:border-color .15s}.app__dialpad-display:focus{outline:none;border-color:var(--accent)}.app__dialpad-display::placeholder{color:var(--text-muted);letter-spacing:.3em;font-weight:400}.app__dialpad-display:disabled{opacity:.6;cursor:not-allowed}.app__dialpad-grid{display:grid;grid-template-columns:repeat(3,4.25rem);gap:.6rem}.app__dialpad-key{display:flex;flex-direction:column;align-items:center;justify-content:center;width:4.25rem;height:3.5rem;background:var(--bg-input);border:1px solid var(--border);border-radius:.75rem;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.app__dialpad-key:hover:not(:disabled){border-color:var(--accent)}.app__dialpad-key:active:not(:disabled){background:var(--border)}.app__dialpad-key:disabled{opacity:.5;cursor:not-allowed}.app__dialpad-key-digit{font-size:1.4rem;font-weight:600;line-height:1.1}.app__dialpad-key-letters{font-size:.6rem;letter-spacing:.12em;color:var(--text-muted)}.app__dialpad-key--dial{background:var(--accent);border-color:var(--accent);color:#fff}.app__dialpad-key--dial .app__dialpad-key-digit{color:#fff}.app__dialpad-status{margin:0;color:var(--text-muted);font-size:.875rem}.app__dialpad-error{margin:0;color:#c0392b;font-size:.875rem}.conversation{display:flex;flex-direction:column;height:100%;overflow:hidden}.conversation__error-banner{flex-shrink:0;padding:.4rem 1.25rem;border-bottom:1px solid var(--border);font-size:.8125rem;color:var(--danger);background:var(--bg-surface)}.conversation__messages{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.conversation__empty{color:var(--text-muted);text-align:center;padding:3rem 0;font-size:.9375rem}.rpg-stage{height:100%;display:flex;flex-direction:column;padding:1.5rem;overflow:hidden}.rpg-stage--empty{align-items:center;justify-content:center;color:var(--text-muted)}.rpg-stage__panel{display:flex;align-items:flex-start;flex:1 1 auto;min-height:0}.rpg-stage__avatar{display:block;width:clamp(96px,16vh,192px);height:clamp(96px,16vh,192px);border-radius:var(--avatar-radius);object-fit:var(--avatar-fit);margin-bottom:.75rem}.rpg-stage__bubble{flex:1;display:flex;flex-direction:column;max-height:100%;min-height:0;overflow:hidden;background:var(--rpg-bubble-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem}.rpg-stage__name{color:var(--actor-agent);font-weight:600;letter-spacing:.04em;margin-bottom:.5rem}.rpg-stage__body{color:var(--rpg-bubble-text);font-size:clamp(1.1rem,2.2vh,1.6rem);line-height:1.6;word-break:break-word;flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.rpg-stage__handoff{align-self:flex-end;margin-top:1rem}.handoff__cta{padding:.5rem 1.25rem;background:var(--accent);color:var(--bg);border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:1rem;letter-spacing:.04em;cursor:pointer}.handoff__cta:hover:not(:disabled){background:var(--accent-hover)}.handoff__cta:disabled{opacity:.6;cursor:default}.handoff__busy{display:inline-block;padding:.5rem 1.25rem;background:var(--accent);color:var(--bg);border-radius:var(--radius);font-family:inherit;font-size:1rem;letter-spacing:.04em;opacity:.85}.handoff__error{display:block;margin-top:.4rem;color:var(--danger, #c0392b);font-size:.85rem}.rpg-stage__thinking{display:flex;gap:.4rem;align-self:flex-start;margin-top:1rem;padding:.25rem}.rpg-stage__thinking span{width:.6rem;height:.6rem;border-radius:var(--radius);background:var(--accent);animation:rpg-thinking-pulse 1s ease-in-out infinite}.rpg-stage__thinking span:nth-child(2){animation-delay:.15s}.rpg-stage__thinking span:nth-child(3){animation-delay:.3s}@keyframes rpg-thinking-pulse{0%,to{opacity:.25}50%{opacity:1}}.bubble{max-width:780px;width:100%}.bubble--agent{background:var(--agent);border:1px solid var(--border);border-radius:var(--radius);padding:.875rem 1rem}.bubble--follower{margin-left:var(--follower-bubble-indent)}.bubble--human{background:var(--human);border:1px solid #1a4a2a;border-radius:var(--radius);padding:.875rem 1rem;margin-left:auto}.bubble--system-wrapper{display:flex;flex-direction:column;align-items:center;max-width:600px;margin:0 auto;gap:.5rem}.bubble--system{display:flex;align-items:center;gap:.5rem;padding:.375rem .875rem;background:var(--system);border:1px solid var(--system-border);border-radius:999px;font-size:.8125rem;color:#d97706;width:100%}.bubble--system--expandable{cursor:pointer;-webkit-user-select:none;user-select:none}.bubble--system--expandable:hover{border-color:#d97706;background:#fbbf241a}.bubble__chevron{font-size:.625rem;opacity:.7;margin-left:auto}.bubble__context-panel{width:100%;background:var(--bg-surface);border:1px solid var(--system-border);border-radius:var(--radius);padding:.75rem 1rem}.bubble__transition-icon{font-size:.875rem;opacity:.7}.bubble__transition-text{opacity:.9;font-family:var(--font-mono)}.bubble__actor-pill-wrapper{display:flex;flex-direction:column;gap:.375rem;margin-bottom:.5rem}.bubble__actor-pill-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.bubble__actor-pill{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .65rem;border:1px solid;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.03em;width:fit-content}.model-switcher{position:relative;display:inline-flex;align-items:center;gap:.25rem}.model-switcher__select,.model-switcher__wand{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.7rem;font-weight:600;color:var(--model-switcher-text);background:var(--model-switcher-bg);border:1px solid var(--model-switcher-border);border-radius:999px;cursor:pointer}.model-switcher__wand{padding:.2rem .4rem}.model-switcher__select:disabled,.model-switcher__wand:disabled{opacity:.5;cursor:default}.model-switcher__label{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-switcher__spin{animation:model-switcher-spin .9s linear infinite}@keyframes model-switcher-spin{to{transform:rotate(360deg)}}.model-switcher__panel{position:absolute;top:calc(100% + .25rem);left:0;z-index:200;min-width:12rem;padding:.25rem;display:flex;flex-direction:column;gap:.1rem;background:var(--model-switcher-panel-bg);border:1px solid var(--model-switcher-panel-border);border-radius:.5rem;box-shadow:0 8px 24px #00000059}.model-switcher__option{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;font-size:.72rem;color:inherit;background:transparent;border:none;border-radius:.35rem;text-align:left;cursor:pointer}.model-switcher__option:hover{background:var(--model-switcher-option-hover)}.model-switcher__option--active{color:var(--model-switcher-text);font-weight:700}.model-switcher__primary-tag{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.6}.bubble__regenerating{opacity:.7;font-style:italic}.bubble__voice-direction,.rpg-stage__voice-direction{display:inline-flex;align-items:center;width:fit-content;padding:.12rem .5rem;background:var(--voice-direction-bg);border:1px solid var(--voice-direction-border);border-radius:var(--voice-direction-radius);color:var(--voice-direction-text);font-size:var(--voice-direction-font-size);font-style:italic;opacity:var(--voice-direction-opacity)}.bubble__voice-direction{margin:0}.rpg-stage__voice-direction{margin:.15rem 0 .35rem;font-family:var(--font-base)}.bubble__actor-pill--agent{color:var(--actor-agent)}.bubble__actor-pill--human{color:var(--actor-human)}.bubble__actor-pill--system{color:var(--actor-system)}.bubble__actor-pill--expandable{cursor:pointer;-webkit-user-select:none;user-select:none}.bubble__actor-avatar{width:var(--avatar-size);height:var(--avatar-size);border-radius:var(--avatar-radius);object-fit:var(--avatar-fit);flex-shrink:0;border:1px solid currentColor}.bubble__actor-pill--expandable:hover{opacity:.75}.bubble__header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.bubble__actor{font-size:.8125rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.bubble__body{font-size:.9375rem;line-height:1.65;word-break:break-word}.jsonforms-block{border:1px solid var(--border);border-radius:8px;padding:1rem;margin:.75em 0;background:#0000004d}.jsonforms-block--review{border:none;padding:0;margin:.25em 0;background:transparent}.jsonforms-block--review .control{display:flex;flex-direction:column;gap:.1rem;margin-bottom:.4rem}.jsonforms-block--review label{font-size:.75rem;color:var(--text-muted)}.jsonforms-block--review input,.jsonforms-block--review textarea,.jsonforms-block--review select{background:transparent!important;border:none!important;border-radius:0!important;padding:0!important;width:auto!important;color:var(--text)!important;-webkit-text-fill-color:var(--text);opacity:1!important;cursor:default!important;font-size:.9375rem;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:none!important}.jsonforms-block--review .choice-control input[type=radio]{display:none!important}.jsonforms-block--review .choice-control__option{border:none!important;background:transparent!important;padding:0!important;cursor:default!important;opacity:1!important}.jsonforms-block--review .choice-control__option:not(.is-selected){display:none!important}.jsonforms-block--review .choice-control__option-desc{display:none!important}.review-field{display:flex;flex-direction:column;gap:.1rem;margin:.25em 0}.review-field__label{font-size:.75rem;color:var(--text-muted)}.review-field__value{font-size:.9375rem;color:var(--text)}.review-input-answer{font-size:.9375rem;color:var(--text);white-space:pre-wrap}.files-review{display:flex;flex-direction:column;gap:.35rem}.files-review__title{font-size:.75rem;color:var(--text-muted)}.files-review__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.files-review__row{display:flex;align-items:center;gap:.5rem;font-size:.9375rem}.files-review__name{color:var(--text)}.files-review__name--link{color:var(--accent);text-decoration:none}.files-review__name--link:hover{text-decoration:underline}.files-review__icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;font-size:.8rem;line-height:1;flex:0 0 auto}.files-review__icon--done{color:#34d399}.files-review__icon--error{color:#f87171}.files-review__spinner{width:.9rem;height:.9rem;flex:0 0 auto;border:2px solid var(--text-muted);border-top-color:transparent;border-radius:50%;animation:files-review-spin .7s linear infinite}@keyframes files-review-spin{to{transform:rotate(360deg)}}.chat-input{padding:.75rem 1.25rem 1rem;background:var(--input-bar-bg)}.chat-input__error{font-size:.8125rem;color:#f87171;margin-bottom:.5rem;padding:.4rem .75rem;background:#f8717114;border-radius:6px}.chat-input__row{display:flex;gap:.625rem;align-items:flex-end}.chat-input__textarea{flex:1;background:var(--input-field-bg);border:1px solid var(--input-field-border);border-radius:10px;color:var(--input-bar-text);font-family:inherit;font-size:var(--input-bar-font-size);line-height:1.5;padding:.625rem .875rem;resize:none;min-height:44px;max-height:180px;overflow-y:auto;transition:border-color .15s;field-sizing:content}.chat-input__textarea:focus{outline:none;border-color:var(--accent)}.chat-input__textarea:disabled{opacity:.5;cursor:not-allowed}.chat-input__send{background:var(--accent);border:none;border-radius:var(--submit-radius);color:var(--submit-text);font-family:inherit;cursor:pointer;font-size:1.1rem;height:44px;width:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color .15s}.chat-input__send:hover:not(:disabled){background:var(--accent-hover)}.chat-input__send:disabled{opacity:.4;cursor:not-allowed}.chat-input__hint{font-size:.75rem;color:var(--text-muted);margin-top:.375rem;text-align:center}.chat-input__actions{display:flex;align-items:center;justify-content:flex-end;gap:.625rem}.chat-input__actions .chat-input__hint{margin-top:0}.chat-input__actions .chat-input__send--form{align-self:center}.chat-input__form,.chat-input__form .vertical-layout,.chat-input__form .horizontal-layout{display:flex;flex-direction:column;gap:.625rem}.chat-input__form .horizontal-layout{flex-direction:row;align-items:flex-end}.chat-input__form .vertical-layout-item,.chat-input__form .horizontal-layout-item,.chat-input__form .control{display:flex;flex-direction:column;gap:.25rem}.chat-input__form label{font-size:.8125rem;color:var(--input-bar-label)}.chat-input__form input[type=text],.chat-input__form input[type=number],.chat-input__form input[type=email],.chat-input__form input[type=url],.chat-input__form input[type=password],.chat-input__form input[type=date],.chat-input__form input[type=time],.chat-input__form input[type=datetime-local],.chat-input__form input:not([type]),.chat-input__form textarea,.chat-input__form select{background:var(--input-field-bg);border:1px solid var(--input-field-border);border-radius:8px;color:var(--input-bar-text);font-family:inherit;font-size:var(--input-bar-font-size);line-height:1.5;padding:.5rem .75rem;width:100%;box-sizing:border-box;transition:border-color .15s}.chat-input__form input:focus,.chat-input__form textarea:focus,.chat-input__form select:focus{outline:none;border-color:var(--accent)}.chat-input__form input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent)}.chat-input__form .validation{font-size:.75rem;color:#f87171}.chat-input__send--form{width:auto;height:auto;padding:.6rem 1.25rem;font-size:var(--input-bar-font-size);align-self:flex-end}.chat-input__advanced{margin-top:.25rem;border-top:1px solid var(--border);padding-top:.5rem}.chat-input__advanced[open]{padding-bottom:.25rem}.chat-input__advanced-summary{cursor:pointer;color:var(--text-muted);font-size:.8125rem;padding:.375rem 0;-webkit-user-select:none;user-select:none;list-style:revert;transition:color .15s}.chat-input__advanced-summary:hover{color:var(--text)}.chat-input__advanced-summary:focus{outline:none;color:var(--accent)}.settings__toggle{background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;font-size:1.1rem;padding:.3rem .6rem;line-height:1;transition:color .15s,border-color .15s}.settings__toggle:hover{color:var(--text);border-color:var(--accent)}.settings__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.settings__panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;padding:2rem;width:min(520px,calc(100vw - 2rem));display:flex;flex-direction:column;gap:1rem}.settings__title{font-size:1.125rem;font-weight:600}.settings__hint{font-size:.875rem;color:var(--text-muted);line-height:1.5}.settings__hint code{background:#ffffff14;padding:.1em .35em;border-radius:4px;font-family:var(--font-mono);font-size:.85em}.settings__field{display:flex;flex-direction:column;gap:.375rem}.settings__label{font-size:.8125rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.settings__input{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:.9375rem;padding:.5rem .75rem;transition:border-color .15s}.settings__input:focus{outline:none;border-color:var(--accent)}.settings__actions{display:flex;gap:.75rem;margin-top:.5rem}.settings__save{background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9375rem;font-weight:500;padding:.6rem 1.25rem;transition:background-color .15s}.settings__save:hover:not(:disabled){background:var(--accent-hover)}.settings__save:disabled{opacity:.4;cursor:not-allowed}.settings__cancel{background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;font-size:.9375rem;padding:.6rem 1.25rem;transition:color .15s,border-color .15s}.settings__cancel:hover{color:var(--text);border-color:var(--text-muted)}.file-upload-control{display:flex;flex-direction:column;gap:8px;margin:8px 0}.file-upload-control__label{font-size:13px;color:var(--text-muted)}.file-upload-control__dropzone{border:2px dashed var(--border, #4a4a4a);border-radius:8px;padding:18px;text-align:center;cursor:pointer;color:var(--text-muted);transition:border-color .1s ease,background-color .1s ease;-webkit-user-select:none;user-select:none}.file-upload-control__dropzone:hover,.file-upload-control__dropzone.is-dragging{border-color:var(--accent, #4ea1ff);background-color:#4ea1ff0f;color:var(--text)}.file-upload-control__dropzone.is-disabled{cursor:not-allowed;opacity:.6}.file-upload-control__chips{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.file-upload-chip{position:relative;display:flex;align-items:center;gap:6px;padding:6px 28px 6px 10px;border-radius:6px;background:#ffffff0a;border:1px solid var(--border, #3a3a3a);overflow:hidden}.file-upload-chip.is-uploading{background:linear-gradient(to right,rgba(78,161,255,.12) var(--pct, 0%),transparent var(--pct, 0%))}.file-upload-chip.is-done{border-color:#50be6466}.file-upload-chip.is-error{border-color:#dc505080}.file-upload-chip__name{font-weight:500}.file-upload-chip__name--link{color:var(--accent);text-decoration:none}.file-upload-chip__name--link:hover{text-decoration:underline}.markdown-preview{display:flex;flex-direction:column;gap:6px}.markdown-preview__label{color:var(--text-muted);font-size:12px}.markdown-preview__status{color:var(--text-muted);font-size:13px;padding:8px 0}.markdown-preview__status--error{color:var(--danger, #e06c75)}.markdown-preview__body{border:1px solid var(--border);border-radius:8px;padding:14px 18px;max-height:480px;overflow:auto;line-height:1.55}.markdown-preview__body>:first-child{margin-top:0}.markdown-preview__body>:last-child{margin-bottom:0}.markdown-preview__body pre{overflow:auto}.file-upload-chip__size,.file-upload-chip__pct{color:var(--text-muted);font-size:12px}.file-upload-chip__bar{position:absolute;left:0;bottom:0;height:2px;background:var(--accent, #4ea1ff);transition:width .12s ease}.file-upload-chip__error{color:#ff7878f2;font-size:12px}.file-upload-chip__remove{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;color:var(--text-muted);font-size:18px;line-height:1}.file-upload-chip__remove:hover{color:var(--text)}.drive-host{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1.5rem;padding:2rem;text-align:center;color:var(--text)}.drive-host--loading{color:var(--text-muted)}.drive-gathering,.drive-running,.drive-results{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}.drive-gathering__hint{font-size:1.1rem;color:var(--text-muted)}.drive-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,240px));gap:1.5rem;justify-content:center;width:100%}.drive-slot{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:0}.drive-slot__qr-wrap{position:relative;display:inline-block}.drive-slot__qr{display:block;width:100%;height:auto;max-width:240px}.drive-slot__watermark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-12deg);padding:.25em .75em;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--danger);border:3px solid var(--danger);border-radius:.25rem;background:color-mix(in srgb,var(--bg) 70%,transparent)}.drive-slot__caption{font-size:.9rem;color:var(--text-muted)}.drive-start-button{padding:.75rem 2rem;font-size:1.1rem;font-weight:600;color:var(--accent-contrast, #fff);background:var(--accent);border:none;border-radius:.5rem;cursor:pointer}.drive-start-button:disabled{opacity:.5;cursor:default}.drive-donut__label{font-weight:700;fill:var(--text)}.drive-running__hint,.drive-results__hint{color:var(--text-muted)}.drive-results__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.drive-error{color:var(--danger)}.drive-waiting__sub{color:var(--text-muted);margin:0}.drive-waiting__spinner{width:2rem;height:2rem;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:drive-waiting-spin .9s linear infinite}@keyframes drive-waiting-spin{to{transform:rotate(360deg)}}.drive-contribution-timer{display:inline-flex;align-items:center;margin-right:.5rem}.conversation__system-notice{align-self:center;margin:.75rem auto .25rem;padding:.4rem .9rem;font-size:.9rem;font-style:italic;color:var(--text-muted);background:color-mix(in srgb,var(--text) 6%,transparent);border-radius:.5rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--bg-surface: #1a1d27;--bg-input: #12151f;--border: #2a2d3a;--text: #e2e8f0;--text-muted: #6b7280;--accent: #6366f1;--accent-hover: #818cf8;--agent: #1e293b;--human: #0f2d1a;--system: #1c1a0d;--system-border: #4a4010;--radius: 12px;--follower-bubble-indent: 2rem;--success: #34d399;--danger: #f87171;--warning: #fbbf24;--actor-agent: #818cf8;--actor-human: #34d399;--actor-system: #fbbf24;--model-switcher-bg: rgba(129, 140, 248, .12);--model-switcher-border: rgba(129, 140, 248, .4);--model-switcher-text: var(--actor-agent);--model-switcher-panel-bg: #1e293b;--model-switcher-panel-border: rgba(148, 163, 184, .25);--model-switcher-option-hover: rgba(129, 140, 248, .18);--voice-direction-bg: rgba(129, 140, 248, .1);--voice-direction-border: rgba(129, 140, 248, .35);--voice-direction-text: var(--actor-agent);--voice-direction-font-size: .72rem;--voice-direction-radius: 10px;--voice-direction-opacity: .85;--avatar-size: 1.25rem;--avatar-radius: 50%;--avatar-fit: cover;--font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--rpg-bubble-bg: var(--agent);--rpg-bubble-text: var(--text);--input-bar-bg: var(--bg-surface);--input-field-bg: var(--bg-input);--input-field-border: var(--border);--input-bar-text: var(--text);--input-bar-label: var(--text-muted);--input-bar-font-size: .9375rem;--submit-text: #fff;--submit-radius: 10px;--mic-idle-color: var(--text-muted);--mic-recording-color: var(--danger);--mic-busy-color: var(--accent);--scenario-backdrop-display: none;--scenario-backdrop-image-rendering: auto;--start-qr-display: block;--drive-slot-claimed-opacity: .25;--drive-donut-track-color: var(--border);--drive-donut-progress-color: var(--accent);--drive-donut-size: 240;--layout-mode: stream;--chunk-audio-url: none;--click-audio-url: none;--request-input-audio-url: none;--tts-playback: off;--voice-speed: 1;--panel-enter-y: 0px;--panel-enter-opacity-from: 1;--panel-enter-duration: 0s}html,body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:var(--bg);color:var(--text);font-family:var(--font-base);font-size:15px;line-height:1.6}.mic-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--mic-idle-color);cursor:pointer;opacity:.7;transition:opacity .15s ease,color .15s ease,background .15s ease}.mic-button:hover:not(:disabled){opacity:1;background:#7f7f7f26}.mic-button:disabled{cursor:default;opacity:.5}.mic-button[data-state=recording]{color:var(--mic-recording-color);opacity:1;animation:mic-pulse 1.2s ease-in-out infinite}.mic-button[data-state=transcribing]{color:var(--mic-busy-color);opacity:1}.mic-button__spinner{animation:mic-spin .8s linear infinite}@keyframes mic-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes mic-spin{to{transform:rotate(360deg)}}#root{height:100dvh;display:flex;flex-direction:column}.scenario-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;display:var(--scenario-backdrop-display, none);background-image:var(--scenario-bg-image, none);background-size:cover;background-position:center;background-repeat:no-repeat;image-rendering:var(--scenario-backdrop-image-rendering, auto)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.message-content p{margin-bottom:.75em}.message-content p:last-child{margin-bottom:0}.message-content h1,.message-content h2,.message-content h3{margin:1em 0 .5em;font-weight:600}.message-content ul,.message-content ol{padding-left:1.5em;margin-bottom:.75em}.message-content li{margin-bottom:.25em}.message-content code{background:#ffffff14;padding:.15em .4em;border-radius:4px;font-family:var(--font-mono);font-size:.875em}.message-content pre{background:#0006;border:1px solid var(--border);border-radius:8px;padding:1em;overflow-x:auto;margin:.75em 0}.message-content pre code{background:none;padding:0}.message-content blockquote{border-left:3px solid var(--accent);padding-left:1em;color:var(--text-muted);margin:.75em 0}.message-content table{border-collapse:collapse;width:100%;margin:.75em 0}.message-content th,.message-content td{border:1px solid var(--border);padding:.4em .75em;text-align:left}.message-content th{background:#ffffff0d}.streaming-cursor:after{content:"▋";animation:blink 1s step-end infinite;color:var(--accent)}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}
