:root{--bg:#0d1117;--bg2:#161b22;--bg3:#21262d;--border:#30363d;--text:#c9d1d9;--text2:#8b949e;--text3:#484f58;--accent:#58a6ff;--accent2:#1f6feb;--green:#238636;--green2:#3fb950;--red:#f85149;--terminal-bg:#0d1117;--input-bg:#0d1117;--shadow:#0006}body.light-theme{--bg:#f6f8fa;--bg2:#fff;--bg3:#e1e4e8;--border:#d0d7de;--text:#24292f;--text2:#57606a;--text3:#8b949e;--accent:#0969da;--accent2:#0550ae;--green:#1a7f37;--green2:#1a7f37;--red:#cf222e;--terminal-bg:#fff;--input-bg:#f6f8fa;--shadow:#0000001f}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}#root{flex-direction:column;height:100%;display:flex}.login-page{justify-content:center;align-items:center;height:100%;display:flex}.login-card{background:var(--bg2);border:1px solid var(--border);text-align:center;border-radius:16px;width:380px;max-width:90vw;padding:48px 40px;box-shadow:0 8px 32px #0006}.login-card h1{color:var(--accent);margin-bottom:6px;font-size:22px;font-weight:700}.login-card .subtitle{color:var(--text2);margin-bottom:32px;font-size:13px}.login-card .divider{background:var(--border);height:1px;margin:24px 0}.tg-btn{color:#fff;cursor:pointer;background:#54a9eb;border:none;border-radius:8px;align-items:center;gap:10px;padding:12px 28px;font-size:15px;font-weight:600;transition:background .15s,transform .1s;display:inline-flex}.tg-btn:hover{background:#3d99e0}.tg-btn:active{transform:scale(.97)}.error-msg{color:#f85149;min-height:20px;margin-top:16px;font-size:13px}.logo-icon{background:linear-gradient(135deg, var(--accent2), var(--accent));border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 16px;display:flex}.logo-icon svg{fill:#fff;width:28px;height:28px}.header{background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;padding:16px 24px;display:flex}.header h1{color:var(--accent);font-size:18px}.header .status{color:var(--text2);margin-left:auto;font-size:12px}.logout-btn{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin-left:8px;padding:6px 8px;transition:all .15s;display:flex}.logout-btn:hover{background:var(--bg3);color:var(--red);border-color:var(--red)}.sidebar-toggle{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:6px 8px;transition:background .15s;display:flex}.sidebar-toggle:hover{background:var(--bg3)}.sidebar-toggle svg{width:20px;height:20px;fill:var(--text)}.container{flex:1;min-height:0;display:flex;position:relative}.sidebar{background:var(--bg2);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:280px;min-width:280px;padding:12px;transition:margin-left .25s,opacity .2s;display:flex;overflow-y:auto}.sidebar.collapsed{opacity:0;pointer-events:none;margin-left:-280px}.sidebar h3{text-transform:uppercase;color:var(--text2);margin-bottom:8px;padding:0 8px;font-size:12px}.session-card{cursor:pointer;border:1px solid #0000;border-radius:8px;margin-bottom:6px;padding:10px 12px;transition:all .15s}.session-card:hover{background:var(--bg3)}.session-card.active{background:color-mix(in srgb, var(--accent2) 13%, transparent);border-color:var(--accent2)}.session-card .name{font-size:14px;font-weight:600}.session-card .meta{color:var(--text2);margin-top:2px;font-size:11px}.session-card .dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot.live{background:#3fb950}.dot.dead{background:#f85149}.actions{border-top:1px solid var(--border);margin-top:12px;padding:12px 8px}.actions button{background:var(--bg3);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:6px;margin-bottom:6px;padding:8px;font-size:13px}.actions button:hover{background:var(--border)}.actions button.danger{color:var(--red)}.filter-bar{z-index:10;align-items:center;gap:6px;display:flex;position:absolute;top:8px;right:12px}.filter-btn{background:var(--bg3);border:1px solid var(--border);color:var(--text2);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:all .15s;display:flex}.filter-btn:hover{color:var(--accent);border-color:var(--accent)}.filter-btn.has-filter{color:var(--accent);border-color:var(--accent2)}.filter-dropdown{background:var(--bg2);border:1px solid var(--border);min-width:180px;box-shadow:0 8px 24px var(--shadow);border-radius:8px;padding:8px 12px;display:none;position:absolute;top:32px;right:0}.filter-dropdown.open{display:block}.fd-row{color:var(--text);justify-content:space-between;align-items:center;padding:4px 0;font-size:12px;display:flex}.fd-row label{cursor:pointer;align-items:center;gap:6px;display:flex}.fd-row input[type=checkbox]{accent-color:var(--green);cursor:pointer}.terminal-area{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}#terminal{white-space:pre-wrap;word-wrap:break-word;background:var(--terminal-bg);-webkit-user-select:text;user-select:text;cursor:text;flex:1;padding:12px 16px;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;line-height:1.5;overflow-y:auto}#terminal a{color:var(--accent);text-underline-offset:2px;cursor:pointer;pointer-events:auto;text-decoration:underline}#terminal a:hover{color:var(--accent2);-webkit-text-decoration-color:var(--accent2);text-decoration-color:var(--accent2)}.input-bar{background:var(--bg2);border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;min-height:68px;padding:12px 16px 12px 130px;display:flex}.input-bar input[type=text],.input-bar input:not([type]){background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:24px;outline:none;flex:1;padding:12px 18px;font-family:JetBrains Mono,monospace;font-size:14px}.input-bar input:focus{border-color:var(--accent)}#btn-send{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1f6feb,#58a6ff);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s;display:flex;box-shadow:0 2px 10px #1f6feb4d}#btn-send:hover{transform:scale(1.05);box-shadow:0 4px 14px #1f6feb66}#btn-send svg{width:22px;height:22px}#mic-btn,#upload-btn{background:var(--bg3);border:1px solid var(--border);width:48px;height:48px;color:var(--text2);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;transition:all .2s;display:flex}#mic-btn:hover,#upload-btn:hover{background:var(--border);color:var(--text)}#mic-btn.recording{color:#fff;background:#da3633;border-color:#da3633;animation:1s infinite pulse}#upload-btn.uploading{opacity:.5;pointer-events:none}.upload-preview{background:var(--bg2);border-bottom:1px solid var(--border);color:var(--text2);align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:none;position:relative}.upload-preview.show{display:flex}.upload-preview .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.upload-remove{background:var(--bg3);border:1px solid var(--border);width:24px;height:24px;color:var(--red);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;transition:all .15s;display:flex}.upload-remove:hover{background:var(--red);color:#fff;border-color:var(--red)}.upload-preview img,.upload-preview video{border:1px solid var(--border);border-radius:6px;max-height:80px}.voice-queue{background:var(--bg2);border-bottom:1px solid var(--border);flex-direction:column;gap:6px;max-height:240px;padding:8px 12px;display:flex;overflow-y:auto}.voice-item{background:var(--bg3);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:13px;transition:all .15s;display:flex}.voice-item:hover{background:var(--border)}.voice-item .vi-icon{flex-shrink:0;font-size:18px}.voice-item .vi-status{color:var(--text2);flex-shrink:0;font-size:12px}.voice-item .vi-text{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;display:none;overflow:hidden}.voice-item.done .vi-text{display:block}.voice-item.done .vi-status{color:var(--green2)}.voice-item.error .vi-status{color:var(--red)}.voice-item .vi-send{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:6px;flex-shrink:0;padding:6px 12px;font-size:12px;font-weight:600;transition:background .15s;display:none}.voice-item .vi-send:hover{background:var(--green2)}.voice-item.done .vi-send{display:block}.voice-item .vi-remove{background:var(--bg2);border:1px solid var(--border);width:28px;height:28px;color:var(--text3);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.voice-item .vi-remove:hover{background:var(--red);color:#fff;border-color:var(--red)}.voice-item.sent .vi-remove{display:none}.prompt-color{color:var(--accent)}.bullet-color{color:var(--green2)}.dim-color{color:var(--text3)}.modal{z-index:100;background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal.show{display:flex}.modal-content{background:var(--bg2);border:1px solid var(--border);border-radius:12px;width:400px;max-width:90vw;padding:24px}.modal-content h3{margin-bottom:16px}.modal-content input{background:var(--input-bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;outline:none;margin-bottom:12px;padding:8px 12px;font-size:14px}.modal-content input:focus{border-color:var(--accent)}.modal-content .btns{justify-content:flex-end;gap:8px;display:flex}.modal-content .btns button{cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px}.modal-content .btns .cancel{background:var(--bg3);color:var(--text)}.modal-content .btns .confirm{background:var(--green);color:#fff}.settings-modal-wide{width:440px;max-height:85vh;overflow-y:auto}.settings-row{border-bottom:1px solid var(--bg3);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.settings-row:last-child{border-bottom:none}.settings-row label{color:var(--text);font-size:13px}.settings-row .desc{color:var(--text2);margin-top:2px;font-size:11px}.settings-divider{background:var(--border);height:1px;margin:16px 0 12px}.settings-section-title{color:var(--text2);margin-bottom:8px;font-size:13px;font-weight:600}.gs-textarea{background:var(--input-bg);border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;border-radius:6px;outline:none;margin-bottom:8px;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:12px}.gs-textarea:focus{border-color:var(--accent)}.toggle{flex-shrink:0;width:40px;height:22px;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle .slider{cursor:pointer;background:var(--border);border-radius:22px;transition:all .2s;position:absolute;inset:0}.toggle .slider:before{content:"";background:var(--text);border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;bottom:3px;left:3px}.toggle input:checked+.slider{background:var(--green)}.toggle input:checked+.slider:before{transform:translate(18px)}.floating-mic-wrap{z-index:60;flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:fixed;bottom:10px;left:16px}.floating-mic-group{align-items:center;gap:12px;display:flex}.floating-mic{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1f6feb,#58a6ff);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s;display:flex;box-shadow:0 2px 10px #1f6feb4d}.floating-mic:hover{transform:scale(1.08);box-shadow:0 3px 12px #1f6feb66}.floating-mic.recording{background:linear-gradient(135deg,#da3633,#f85149);animation:1s infinite pulse;box-shadow:0 4px 16px #da363380}.floating-mic.processing{background:linear-gradient(135deg,#d29922,#e3b341);animation:.5s infinite pulse;box-shadow:0 4px 16px #d2992266}.floating-history{background:var(--bg3);border:1px solid var(--border);width:40px;height:40px;color:var(--text2);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.floating-history:hover{background:var(--border);color:var(--text);transform:scale(1.08)}.voice-history-panel{z-index:61;background:var(--bg2);border:1px solid var(--border);width:300px;max-height:250px;box-shadow:0 4px 16px var(--shadow);border-radius:10px;padding:10px;display:none;position:fixed;bottom:90px;left:24px;overflow-y:auto}.voice-history-panel.open{display:block}.voice-history-header{color:var(--text2);text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:600}.voice-history-list{flex-direction:column;gap:4px;display:flex}.vh-item{cursor:pointer;color:var(--text);word-break:break-word;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;transition:background .15s;display:flex}.vh-item:hover{background:var(--bg3)}.vh-item .vh-resend{background:var(--green);color:#fff;cursor:pointer;opacity:0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;transition:opacity .15s;display:flex}.vh-item:hover .vh-resend{opacity:1}.floating-mic-notif{background:var(--bg2);border:1px solid var(--border);color:var(--text);max-width:260px;box-shadow:0 4px 16px var(--shadow);word-break:break-word;border-radius:10px;padding:8px 12px;font-size:12px;animation:.3s notifIn}.floating-mic-notif.fade-out{animation:.3s forwards notifOut}.mobile-sessions{display:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}.voice-item.uploading .vi-icon{animation:1s linear infinite spin}@keyframes notifIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes notifOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}@media (width<=768px){.header{gap:8px;padding:10px 12px}.header h1{font-size:14px}.sidebar-toggle{display:none}.logout-btn{width:32px;height:32px}.sidebar{display:none!important}.mobile-sessions{background:var(--bg2);border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0;gap:10px;padding:8px 12px;display:flex;overflow-x:auto}.mobile-sessions::-webkit-scrollbar{display:none}.ms-item{cursor:pointer;flex-direction:column;flex-shrink:0;align-items:center;gap:4px;min-width:56px;display:flex}.ms-avatar{background:var(--bg3);border:2px solid var(--border);width:48px;height:48px;color:var(--text2);border-radius:50%;justify-content:center;align-items:center;font-size:16px;font-weight:700;transition:all .15s;display:flex;position:relative}.ms-item.active .ms-avatar{border-color:var(--accent);background:var(--accent2);color:#fff}.ms-item .ms-dot{border-radius:50%;width:8px;height:8px;position:absolute;bottom:2px;right:2px}.ms-item .ms-dot.live{background:var(--green2)}.ms-item .ms-dot.dead{background:var(--red)}.ms-name{color:var(--text3);text-overflow:ellipsis;white-space:nowrap;text-align:center;max-width:56px;font-size:10px;overflow:hidden}.ms-item.active .ms-name{color:var(--accent)}.ms-add{background:var(--bg3);border:2px dashed var(--border);width:48px;height:48px;color:var(--text3);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;transition:all .15s;display:flex}.ms-add:hover{border-color:var(--accent);color:var(--accent)}.input-bar{flex-wrap:nowrap;gap:4px!important;min-height:48px!important;padding:6px!important}.input-bar input{border-radius:16px;min-width:0;padding:6px 10px;font-size:12px}.floating-mic-wrap{align-items:center;flex-direction:row!important;position:static!important;bottom:auto!important;left:auto!important}.floating-mic-group{gap:4px}.floating-mic{width:36px!important;height:36px!important}.floating-mic svg{width:14px;height:14px}.floating-history{width:30px!important;height:30px!important}.floating-history svg{width:12px;height:12px}#mic-btn,#upload-btn{font-size:14px;width:36px!important;height:36px!important}#btn-send{width:36px!important;height:36px!important}#btn-send svg{width:14px!important;height:14px!important}}
