:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}html,body{margin:0;padding:0;width:100%;max-width:100vw;height:100%;min-height:100vh;overflow-x:hidden}body{display:flex;flex-direction:column;min-width:0}#root{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;max-width:100%}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.app{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;width:100%;max-width:100%;overflow-x:hidden;background:#12101a;color:#eee;box-sizing:border-box}.header{flex-shrink:0;position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:.75rem 1rem;padding-top:max(.75rem,env(safe-area-inset-top));background:#1a1628;border-bottom:1px solid #2d1f4e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@media(min-width:480px){.header{padding:.75rem 1.5rem;padding-top:max(.75rem,env(safe-area-inset-top))}}.title{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:.05em;background:linear-gradient(135deg,#c084fc,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-status{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.status{font-size:.875rem;padding:.25rem .5rem;border-radius:4px}.status.connected{background:#2d1f4e;color:#c084fc}.status.disconnected{background:#3d1a1a;color:#ff6b6b}.stt-toggle-btn{padding:.35rem .75rem;border-radius:6px;font-size:.8rem;cursor:pointer;border:1px solid #2d1f4e}.stt-toggle-btn.on{background:#7c3aed40;color:#c084fc;border-color:#4c1d95}.stt-toggle-btn.off{background:transparent;color:#6b7a8a}.stt-toggle-btn:hover:not(:disabled){background:#7c3aed26}.stt-toggle-btn:disabled{opacity:.6;cursor:not-allowed}.mic-btn{padding:.75rem;border:1px solid #2d1f4e;border-radius:8px;background:#12101a;color:#a78bfa;cursor:pointer;min-width:48px;display:flex;align-items:center;justify-content:center}.mic-btn .mic-icon{width:1.25rem;height:1.25rem}.mic-btn .mic-listening-dots{font-size:1.2rem}.mic-btn:hover:not(:disabled){background:#7c3aed33;border-color:#4c1d95}.mic-btn:disabled{opacity:.6;cursor:not-allowed}.mic-btn.listening{background:#7c3aed59;border-color:#c084fc;animation:pulse-mic 1s ease-in-out infinite}@keyframes pulse-mic{0%,to{opacity:1}50%{opacity:.7}}.voice-error{font-size:.8rem;color:#ff9f9f;margin:.25rem 0 0}.clear-memory-btn{padding:.35rem .75rem;border:1px solid #2d1f4e;border-radius:6px;background:transparent;color:#a78bfa;font-size:.8rem;cursor:pointer}.clear-memory-btn:hover:not(:disabled){background:#7c3aed33;border-color:#4c1d95}.clear-memory-btn:disabled{opacity:.5;cursor:not-allowed}.main{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;-webkit-overflow-scrolling:touch}@media(min-width:700px){.main{flex-direction:row}}.resize-handle{flex-shrink:0;width:100%;height:8px;cursor:ns-resize;display:flex;align-items:center;justify-content:center;background:#1a1628;border-top:1px solid #2d1f4e;border-bottom:1px solid #2d1f4e;touch-action:none;-webkit-user-select:none;user-select:none}.resize-handle:hover,.resize-handle:active{background:#7c3aed26}@media(min-width:700px){.resize-handle{width:8px;height:100%;cursor:ew-resize;border-top:none;border-bottom:none;border-left:1px solid #2d1f4e;border-right:1px solid #2d1f4e}}.resize-handle-grip{width:32px;height:4px;background:#2d1f4e;border-radius:2px}@media(min-width:700px){.resize-handle-grip{width:4px;height:32px}}.vrm-section{position:relative;display:flex;flex-direction:column;min-height:120px;min-width:120px;background:#12101a;overflow:hidden}@media(min-width:700px){.vrm-section{border-right:none;min-height:0}}.chat-section{min-height:120px;min-width:120px}@media(min-width:700px){.chat-section{min-height:0}}.vrm-canvas{flex:1;width:100%;min-height:0}.vrm-container{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;width:100%}.vrm-status{position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);display:flex;gap:.5rem;pointer-events:none}.vrm-badge{font-size:.85rem;font-weight:600;padding:.35rem .85rem;border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap}.vrm-badge.thinking{background:#7c3aedbf;color:#e9d5ff;border:1px solid rgba(196,132,252,.4)}.vrm-badge.speaking{background:#4f46e5bf;color:#c7d2fe;border:1px solid rgba(129,140,248,.4)}.vrm-load-error{padding:.75rem 1rem;background:#0006;color:#ff9f9f;font-size:.85rem;border-radius:6px;margin:.5rem}.vrm-load-error code{background:#0000004d;padding:.1rem .3rem;border-radius:3px}.vrm-canvas canvas{display:block;width:100%!important;height:100%!important}.vrm-selector{position:absolute;bottom:.75rem;left:.75rem;display:flex;align-items:center;gap:.5rem;z-index:10}.vrm-select-label{font-size:.8rem;color:#ffffffb3}.vrm-select{font-size:.85rem;padding:.35rem .6rem;border-radius:6px;border:1px solid rgba(124,58,237,.5);background:#1a1628e6;color:#e9d5ff;cursor:pointer}.vrm-select:hover,.vrm-select:focus{border-color:#c484fc99;outline:none}.state-bar{display:flex;gap:.5rem;padding:.5rem 1rem;background:#0003}.badge{font-size:.75rem;padding:.2rem .5rem;border-radius:4px}.badge.thinking{background:#2d1f4e;color:#c084fc}.badge.speaking{background:#1a1f3d;color:#818cf8}.badge.listening{background:#1a1a3d;color:#a5b4fc}.chat-section{flex:1 1 0;display:flex;flex-direction:column;gap:.75rem;padding:.75rem;background:#1a1628;border-top:1px solid #2d1f4e;min-height:0;overflow:hidden;-webkit-overflow-scrolling:touch}@media(min-width:700px){.chat-section{border-top:none;padding:1rem}}.chat-history{flex:1;min-height:80px;min-width:0;padding:.75rem;background:#0003;border-radius:8px;font-size:.95rem;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;-webkit-overflow-scrolling:touch}.chat-history .placeholder{color:#6b7a8a;font-style:italic;margin:0}.chat-msg{display:flex;flex-direction:column;gap:.2rem}.chat-msg--user .chat-msg-role{color:#818cf8}.chat-msg--assistant .chat-msg-role{color:#c084fc}.chat-msg--streaming .chat-msg-text{opacity:.9}.chat-msg-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.chat-msg-role{font-size:.75rem;font-weight:600;text-transform:uppercase}.chat-msg-time{font-size:.7rem;color:#ffffff73;flex-shrink:0}.chat-msg-text{margin:0;white-space:pre-wrap;word-break:break-word}.input-row{display:flex;gap:.5rem}.chat-input{flex:1;padding:.75rem;border:1px solid #2d1f4e;border-radius:8px;background:#12101a;color:#eee;font-size:1rem;min-height:44px;-webkit-appearance:none}.chat-input:focus{outline:none;border-color:#c084fc}.chat-input:disabled{opacity:.6;cursor:not-allowed}.send-btn{padding:.75rem 1.25rem;border:none;border-radius:8px;background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;font-weight:600;font-size:1rem;cursor:pointer;min-height:44px;white-space:nowrap}.send-btn:hover:not(:disabled){background:linear-gradient(135deg,#8b5cf6,#6366f1)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.controls{grid-column:2;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;padding:.75rem;background:#16213e;border-radius:8px}.control-group{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.toggle{padding:.25rem .5rem;border:1px solid #0f3460;border-radius:4px;background:#1a1a2e;color:#eee;cursor:pointer;font-size:.8rem}.toggle:hover{background:#0f3460}.nuke-btn{padding:.25rem .5rem;border:1px solid #3d1a1a;border-radius:4px;background:transparent;color:#ff6b6b;cursor:pointer;font-size:.8rem}.nuke-btn:hover{background:#3d1a1a}.modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#000000b3;padding:1rem}.modal-content{max-width:380px;padding:1.5rem;background:#1a1628;border:1px solid #2d1f4e;border-radius:12px}.modal-content h2{margin:0 0 .75rem;font-size:1.2rem;color:#eee}.modal-content p{margin:0 0 1.25rem;color:#c4b5d4;font-size:.95rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.modal-btn{padding:.5rem 1rem;border:1px solid #2d1f4e;border-radius:8px;background:transparent;color:#a78bfa;font-size:.95rem;cursor:pointer}.modal-btn:hover{background:#7c3aed33;border-color:#4c1d95}.modal-btn.primary{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;border-color:transparent}.modal-btn.primary:hover{background:linear-gradient(135deg,#8b5cf6,#6366f1)}@media(max-width:699px){.app{--mobile-nav-height: calc(44px + env(safe-area-inset-bottom, 0px)) ;display:flex;flex-direction:column;padding-bottom:var(--mobile-nav-height);max-width:100vw}.main{position:relative;flex:1;min-width:0;overflow:hidden;flex-direction:column;order:1}.header{max-width:100%;min-width:0}.header-status{min-width:0}.vrm-section{position:absolute;inset:0;z-index:0;min-height:unset;min-width:unset}.vrm-status{bottom:calc(var(--mobile-nav-height) + 22vh + .5rem)}.vrm-badge{font-size:.75rem;padding:.25rem .6rem}.resize-handle{display:none}.chat-section{position:absolute;bottom:0;left:0;right:0;z-index:10;max-height:22vh;min-height:unset;min-width:0;max-width:100%;box-sizing:border-box;background:#12101a40;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-top:1px solid rgba(192,132,252,.08);border-radius:12px 12px 0 0;padding:.4rem .5rem .5rem;display:flex;flex-direction:column;gap:.35rem}.chat-section .chat-history{background:transparent;padding:.25rem 0;min-height:0;max-height:10vh;font-size:.8rem;gap:.35rem}.chat-section .chat-msg-header{margin-bottom:0}.chat-section .chat-msg-role,.chat-section .chat-msg-time{font-size:.65rem}.chat-section .chat-msg-text{font-size:.8rem;line-height:1.3}.chat-section .input-row{gap:.4rem;min-width:0}.chat-section .chat-input{min-width:0;padding:.5rem .6rem;min-height:38px;font-size:.9rem}.chat-section .send-btn{padding:.5rem .75rem;min-height:38px;font-size:.85rem}.chat-section .mic-btn{padding:.5rem;min-width:38px}.chat-section .mic-btn .mic-icon{width:1rem;height:1rem}.header{position:fixed;inset:auto 0 0;z-index:30;padding-top:.4rem;padding-bottom:max(.4rem,env(safe-area-inset-bottom,0px));padding-left:.5rem;padding-right:.5rem;gap:.4rem;background:#12101ae0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid rgba(192,132,252,.1);border-bottom:none}.header .title{font-size:1.1rem}.header .stt-toggle-btn,.header .clear-memory-btn{padding:.25rem .5rem;font-size:.7rem}.header .status{font-size:.7rem;padding:.2rem .4rem}}
