*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#0f1419;color:#e6edf3}.app-shell{display:flex;flex-direction:column;height:100%;min-height:100%;max-width:720px;margin:0 auto;background:#0f1419}.site-header{position:sticky;top:0;z-index:40;flex-shrink:0;border-bottom:1px solid #30363d;background:#0f1419eb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.site-header-inner{padding:.75rem 1rem 1rem;max-width:720px;margin:0 auto}.site-tagline{margin:0 0 .75rem;line-height:1.45}.session-id{display:inline;margin:0 0 0 .4rem;padding:.2rem .45rem;background:#21262d;border-radius:4px;font-size:.72rem;word-break:break-all;vertical-align:baseline}.muted{color:#8b949e;font-size:.875rem}.inline-code{font-size:.8rem;padding:.1rem .3rem;background:#21262d;border-radius:4px}.gen-progress{flex-shrink:0;height:3px;background:#0d1117;border-bottom:1px solid #21262d;overflow:hidden}.gen-progress-bar{height:100%;width:35%;max-width:200px;border-radius:2px;background:linear-gradient(90deg,#238636,#58a6ff,#a371f7,#58a6ff,#238636);background-size:200% 100%;animation:gen-progress-shimmer 1.1s ease-in-out infinite;box-shadow:0 0 12px #58a6ff73}@keyframes gen-progress-shimmer{0%{transform:translate(-120%);background-position:0% center}to{transform:translate(420%);background-position:100% center}}.gen-typing{border-style:dashed;opacity:.95}.gen-typing-line{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin:.35rem 0 0}.gen-typing-label{font-size:.9rem;color:#8b949e;font-style:italic}.gen-typing-dots{display:inline-flex;gap:.2rem;align-items:center;padding-left:.1rem}.gen-dot{width:.35rem;height:.35rem;border-radius:50%;background:#58a6ff;animation:gen-dot-bounce 1.05s ease-in-out infinite both}.gen-dot:nth-child(2){animation-delay:.15s;background:#a371f7}.gen-dot:nth-child(3){animation-delay:.3s;background:#3fb950}@keyframes gen-dot-bounce{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-5px);opacity:1}}.messages-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#30363d #161b22}.messages-scroll::-webkit-scrollbar{width:9px}.messages-scroll::-webkit-scrollbar-track{background:#161b22;border-left:1px solid #30363d}.messages-scroll::-webkit-scrollbar-thumb{background:#30363d;border-radius:5px;border:2px solid #161b22}.messages-scroll::-webkit-scrollbar-thumb:hover{background:#484f58}.messages-scroll-inner{padding:.75rem 1rem 1rem}.messages-heading{margin:0 0 .65rem;font-size:.95rem;font-weight:600;color:#c9d1d9}.panel{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:1rem}.message-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.bubble{padding:.65rem .75rem;border-radius:6px;border:1px solid #30363d}.bubble-system{border-color:#388bfd66}.bubble-user{border-color:#3fb95044}.bubble-assistant{border-color:#a371f744}.role{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#8b949e}.bubble p{margin:.35rem 0 0;white-space:pre-wrap;font-size:.9rem}.site-footer{flex-shrink:0;padding:.65rem 1rem calc(.75rem + env(safe-area-inset-bottom,0px));border-top:1px solid #30363d;background:#161b22fa;box-shadow:0 -8px 32px #00000059}.footer-heading{margin:0 0 .65rem;font-size:.95rem;font-weight:600;color:#c9d1d9}.field-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.label{font-size:.85rem;color:#8b949e}.select{padding:.35rem .5rem;border-radius:6px;border:1px solid #30363d;background:#0d1117;color:inherit}.input{width:100%;margin:.35rem 0 0;padding:.5rem;border-radius:6px;border:1px solid #30363d;background:#0d1117;color:inherit;resize:vertical;min-height:4.5rem}.input-footer{max-height:40vh;scrollbar-width:thin;scrollbar-color:#30363d #0d1117}.input-footer::-webkit-scrollbar{width:9px}.input-footer::-webkit-scrollbar-track{background:#0d1117;border-radius:0 6px 6px 0}.input-footer::-webkit-scrollbar-thumb{background:#30363d;border-radius:5px;border:2px solid #0d1117}.input-footer::-webkit-scrollbar-thumb:hover{background:#484f58}.footer-auto-send-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.65rem .85rem;margin-top:.4rem;padding:.35rem 0}.footer-auto-send-main{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.65rem .85rem;flex:1 1 auto;min-width:0}.stt-switch-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:.65rem;margin-top:.15rem}.stt-switch-row .ui-switch{margin-top:0;flex:1 1 auto;min-width:0}.stt-tts-pause-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;align-self:stretch;min-height:calc(3.1rem + 8px);min-width:4.1rem;padding:0 .5rem;border-radius:14px;border:1px solid #30363d;background:linear-gradient(180deg,#0d1117,#010409);box-shadow:inset 0 1px #ffffff0f,0 4px 20px #00000059;color:#c9d1d9;cursor:pointer;line-height:0;transition:background .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.stt-tts-pause-btn:hover:not(:disabled){border-color:#484f58;color:#e6edf3}.stt-tts-pause-btn:disabled{cursor:not-allowed;opacity:.55}.stt-tts-pause-btn--on{border-color:#58a6ff;background:linear-gradient(165deg,#1f2a3d,#161b22);color:#79c0ff;box-shadow:inset 0 1px #ffffff14,0 0 0 1px #58a6ff40,0 6px 16px #00000059}.stt-tts-pause-btn:focus-visible{outline:2px solid #58a6ff;outline-offset:2px}.stt-tts-pause-btn-svg{display:block;width:3rem;height:auto;max-height:calc(2.6rem + 8px)}.auto-send-controls{display:flex;flex-direction:column;gap:.4rem;flex:1 1 12rem;min-width:0}.auto-send-legend{font-size:.78rem;line-height:1.3;color:#8b949e}.auto-send-toggle-row{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.auto-send-radio-pill{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:0;padding:.28rem .55rem;min-width:2.1rem;border-radius:6px;border:1px solid #30363d;background:#0d1117;color:#c9d1d9;font-size:.78rem;font-weight:500;line-height:1.2;-webkit-user-select:none;user-select:none;transition:background .12s ease,border-color .12s ease,color .12s ease}.auto-send-radio-pill:hover:not(:has(.auto-send-radio-input:disabled)){border-color:#484f58;background:#161b22}.auto-send-radio-pill:has(.auto-send-radio-input:disabled){cursor:not-allowed;opacity:.55}.auto-send-radio-pill--selected{border-color:#58a6ff;background:#1f2a3d;color:#79c0ff}.auto-send-radio-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auto-send-radio-pill:has(.auto-send-radio-input:focus-visible){outline:2px solid #58a6ff;outline-offset:2px}.auto-send-radio-text{pointer-events:none}.auto-send-ring-wrap{position:relative;flex-shrink:0;width:56px;height:56px;overflow:visible}.auto-send-ring-svg{display:block}.auto-send-ring-wrap--counting .auto-send-ring-svg{filter:drop-shadow(0 0 8px rgba(88,166,255,.55)) drop-shadow(0 0 2px rgba(163,113,247,.35))}.auto-send-ring-track{stroke:#484f58;stroke-width:3.25}.auto-send-ring-wrap--counting .auto-send-ring-track{stroke:#21262d;stroke-width:3.75;opacity:1}.auto-send-ring-wrap--paused .auto-send-ring-track{stroke:#9e6a03;stroke-width:3.25;filter:drop-shadow(0 0 4px rgba(210,153,34,.35))}.auto-send-ring-wrap--listening .auto-send-ring-track{stroke:#238636;stroke-width:3.25;filter:drop-shadow(0 0 5px rgba(63,185,80,.35))}.auto-send-ring-wrap--working .auto-send-ring-track{stroke:#58a6ff;stroke-width:3.25;filter:drop-shadow(0 0 4px rgba(88,166,255,.35))}.auto-send-ring-wrap--idle .auto-send-ring-track{stroke:#484f58;stroke-width:3.25}.auto-send-ring-wrap--ttsHold .auto-send-ring-track{stroke:#3d444d;stroke-width:3.25;filter:none}.auto-send-ring-wrap--ttsHold .auto-send-ring-caption{color:#8b949e;font-size:.85rem;font-weight:600}.auto-send-ring-wrap--loading .auto-send-ring-track{stroke:#58a6ff;stroke-width:3.25;opacity:.85}.auto-send-ring-progress-glow{stroke:#58a6ff;stroke-width:7;opacity:.38;pointer-events:none}.auto-send-ring-progress{stroke:#a5d6ff;stroke-width:4;pointer-events:none}.auto-send-ring-wrap--counting .auto-send-ring-progress{stroke:#d8eefc;stroke-width:4.25}.auto-send-ring-caption{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:600;font-variant-numeric:tabular-nums;color:#8b949e;pointer-events:none;line-height:1;text-shadow:0 0 10px rgba(15,20,25,.9),0 1px 2px rgba(0,0,0,.85)}.auto-send-ring-wrap--counting .auto-send-ring-caption{color:#e6f2ff;font-size:.7rem;font-weight:700;letter-spacing:-.02em}.auto-send-ring-wrap--paused .auto-send-ring-caption{color:#d29922;font-size:.85rem}.auto-send-ring-wrap--listening .auto-send-ring-caption{color:#3fb950;font-size:.55rem}.auto-send-ring-wrap--working .auto-send-ring-caption{color:#79c0ff;font-size:.85rem}.auto-send-ring-wrap--loading .auto-send-ring-caption{color:#79c0ff;animation:auto-send-ring-spin .9s linear infinite}@keyframes auto-send-ring-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.footer-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.35rem}.footer-actions-right{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.btn-mic{min-width:8rem;padding-left:.55rem;padding-right:.55rem}.btn-mic-inner{display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.btn-mic-icon{flex-shrink:0;display:block}.btn-mic-text{white-space:nowrap}.btn-mic--on{border-color:#58a6ff;background:#1f2a3d;color:#79c0ff}.btn-mic--on:not(:disabled):hover{border-color:#79c0ff;background:#263449}.hint{margin:0;font-size:.75rem}.error{color:#f85149;font-size:.875rem;margin:0 0 .5rem}.notice{color:#d29922;font-size:.875rem;margin:0 0 .75rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.6rem;padding:.45rem .9rem;border-radius:6px;border:1px solid #30363d;background:#21262d;color:inherit;cursor:pointer;box-sizing:border-box}.btn:disabled{cursor:not-allowed;opacity:.55}.btn.primary{border-color:#238636;background:#238636;color:#fff}.btn.primary:not(:disabled):hover{background:#2ea043}.mode-blocks-row{display:flex;align-items:stretch;gap:0;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #21262d}.mode-blocks-row .mode-block{flex:1;min-width:0;margin:0;padding:0;border:none}.mode-blocks-row .mode-block:not(:first-child){padding-left:.85rem;margin-left:.85rem;border-left:1px solid #21262d}.mode-blocks-row .mode-block-caption{max-width:none}@media(max-width:520px){.mode-blocks-row{flex-direction:column}.mode-blocks-row .mode-block:not(:first-child){padding-left:0;margin-left:0;border-left:none;padding-top:.85rem;margin-top:.85rem;border-top:1px solid #21262d}}.mode-block-title{display:block;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#8b949e}.mode-block-caption{margin:.35rem 0 .65rem;line-height:1.45;max-width:40rem}.mode-block-caption strong{color:#c9d1d9;font-weight:600}.mode-block-warn{margin:0 0 .65rem;font-size:.8rem}.ui-switch{margin-top:.15rem}.ui-switch-track{position:relative;display:flex;gap:2px;padding:4px;border-radius:14px;background:linear-gradient(180deg,#0d1117,#010409);border:1px solid #30363d;box-shadow:inset 0 1px #ffffff0f,0 4px 20px #00000059}.ui-switch-thumb{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 5px);border-radius:11px;background:linear-gradient(165deg,#2d333b,#21262d 45%,#161b22);border:1px solid #484f58;box-shadow:0 1px #ffffff1a inset,0 6px 16px #00000073;z-index:0;transition:transform .32s cubic-bezier(.34,1.4,.64,1),box-shadow .25s ease;pointer-events:none}.ui-switch--client .ui-switch-thumb{transform:translate(calc(100% + 2px))}.ui-switch-glow{position:absolute;top:2px;bottom:2px;left:2px;width:calc(50% - 2px);border-radius:12px;background:radial-gradient(ellipse 80% 70% at 50% 0%,rgba(88,166,255,.22),transparent 55%);z-index:0;opacity:.85;transition:transform .32s cubic-bezier(.34,1.4,.64,1);pointer-events:none}.ui-switch--client .ui-switch-glow{transform:translate(calc(100% + 2px))}.ui-switch--server .ui-switch-thumb{box-shadow:0 1px #ffffff1a inset,0 0 0 1px #2ea04359,0 6px 20px #23863640}.ui-switch--client .ui-switch-thumb{box-shadow:0 1px #ffffff1a inset,0 0 0 1px #58a6ff59,0 6px 20px #58a6ff26}.ui-switch-btn{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;gap:.55rem;min-height:3.1rem;padding:.45rem .5rem;border:none;border-radius:11px;cursor:pointer;font:inherit;color:#8b949e;background:transparent;transition:color .2s ease}.ui-switch-btn:hover{color:#c9d1d9}.ui-switch-btn:focus-visible{outline:2px solid #388bfd;outline-offset:2px}.ui-switch--server .ui-switch-btn:first-of-type,.ui-switch--client .ui-switch-btn:last-of-type{color:#f0f6fc}.ui-switch--server .ui-switch-btn:first-of-type .ui-switch-sub,.ui-switch--client .ui-switch-btn:last-of-type .ui-switch-sub{color:#f0f6fcb8}.ui-switch-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.75;transition:opacity .2s ease}.ui-switch--server .ui-switch-btn:first-of-type .ui-switch-icon,.ui-switch--client .ui-switch-btn:last-of-type .ui-switch-icon{opacity:1;color:#79c0ff}.ui-switch--server .ui-switch-btn:first-of-type .ui-switch-icon{color:#56d364}.ui-switch-text{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:.1rem;min-width:0}.ui-switch-title{font-size:.9rem;font-weight:650;letter-spacing:-.01em}.ui-switch-sub{font-size:.68rem;font-weight:500;letter-spacing:.02em;color:#6e7681}@media(max-width:420px){.ui-switch-btn{flex-direction:column;gap:.25rem;min-height:4rem}.ui-switch-text{align-items:center;text-align:center}}
