:root,[data-theme=light]{--bg:#fff;--bg-secondary:#f7f8fa;--bg-hover:#f1f3f6;--border:#e6e8ec;--border-strong:#d6d9df;--text:#0e1320;--text-muted:#5b6472;--text-placeholder:#9aa2af;--bubble-agent-bg:#f1f3f6;--bubble-agent-text:#0e1320;--bubble-user-bg:linear-gradient(140deg, #5fb4de 0%, #3a5cc8 100%);--bubble-user-text:#fff;--accent:#2f95b8;--accent-hover:#227d9c;--accent-soft:#2f95b81f;--brand-gradient:linear-gradient(135deg, #5fb4de 0%, #3a5cc8 100%);--brand-gradient-hover:linear-gradient(135deg, #4fa7d5 0%, #2f4fbf 100%);--input-bg:#f7f8fa;--input-border:#e2e5ea;--input-focus-border:#2f95b8;--modal-bg:#fff;--modal-shadow:0 1px 2px #0f172a0a, 0 20px 40px -12px #0f172a2e;--overlay-bg:#0d121e47;--choice-bg:#f1f3f6;--choice-active-bg:#2f95b8;--choice-active-text:#fff;--record:#ef4444;--record-soft:#ef44441a;--record-ring:0 0 0 3px #ef444447;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 1px 2px #0f172a0d, 0 2px 6px #0f172a0a;--shadow-md:0 2px 4px #0f172a0a, 0 8px 16px #0f172a0f;--shadow-lg:0 0 0 1px #0f172a08, 0 2px 6px #0f172a0a, 0 18px 40px -14px #0f172a24;--ring:0 0 0 3px #2f95b847;--ease:cubic-bezier(.2, .8, .2, 1)}[data-theme=dark]{--bg:#0f1115;--bg-secondary:#181b22;--bg-hover:#232733;--border:#252935;--border-strong:#313745;--text:#edeef2;--text-muted:#9aa3b2;--text-placeholder:#5a6375;--bubble-agent-bg:#1d2029;--bubble-agent-text:#edeef2;--bubble-user-bg:linear-gradient(140deg, #4ea5d4 0%, #2f4fbf 100%);--bubble-user-text:#fff;--accent:#5fb4de;--accent-hover:#7cc4e6;--accent-soft:#5fb4de24;--brand-gradient:linear-gradient(135deg, #5fb4de 0%, #3a5cc8 100%);--brand-gradient-hover:linear-gradient(135deg, #7cc4e6 0%, #4a6cd8 100%);--input-bg:#14171d;--input-border:#272c38;--input-focus-border:#5fb4de;--modal-bg:#181b22;--modal-shadow:0 1px 2px #0006, 0 24px 48px -12px #0009;--overlay-bg:#05070c99;--choice-bg:#232733;--choice-active-bg:#2f95b8;--choice-active-text:#fff;--record:#ef4444;--record-soft:#ef444424;--record-ring:0 0 0 3px #ef444459;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 2px #0006, 0 2px 6px #0000004d;--shadow-md:0 2px 4px #0006, 0 8px 20px #00000059;--shadow-lg:0 0 0 1px #ffffff0a, 0 2px 8px #0006, 0 24px 56px -18px #0000008c;--ring:0 0 0 3px #5fb4de59}[data-text-size=small] .bubble p{font-size:12px}[data-text-size=medium] .bubble p{font-size:14px}[data-text-size=large] .bubble p{font-size:16px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-feature-settings:"cv11", "ss01", "ss03";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);color:var(--text);height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background .2s,color .2s;overflow:hidden}#root{height:100%}.icon-btn:focus-visible,.tab:focus-visible,.tab-close:focus-visible,.tabs-arrow:focus-visible:not(:disabled),.send-btn:focus-visible,.mic-btn:focus-visible,.login-btn:focus-visible,.settings-tab:focus-visible,.choice-btn:focus-visible,.tone-btn:focus-visible,.toggle:focus-visible,.history-delete-btn:focus-visible,.toast-action:focus-visible,.toast-close:focus-visible,.md-code-copy:focus-visible{box-shadow:var(--ring);outline:none}.app-shell{background:radial-gradient(ellipse 80% 55% at 85% -10%, #5fb4de38, transparent 55%), radial-gradient(ellipse 70% 50% at 10% 110%, #3a5cc82e, transparent 55%), radial-gradient(ellipse 40% 30% at 50% 50%, #2f95b80f, transparent 60%), var(--bg);height:100%;padding:min(3vw,28px) min(3vw,24px);overflow:hidden}[data-theme=dark] .app-shell{background:radial-gradient(ellipse 80% 55% at 85% -10%, #5fb4de24, transparent 55%), radial-gradient(ellipse 70% 50% at 10% 110%, #3a5cc82e, transparent 55%), var(--bg)}.app-shell:before{content:"";pointer-events:none;opacity:.5;background-image:radial-gradient(#0f172a0f 1px,#0000 1px);background-size:24px 24px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 40%,#0000 80%);mask-image:radial-gradient(#000 40%,#0000 80%)}.app-shell{position:relative}[data-theme=dark] .app-shell:before{background-image:radial-gradient(#ffffff0d 1px,#0000 1px)}.app-layout{z-index:1;flex-direction:column;width:100%;max-width:880px;height:100%;min-height:0;margin:0 auto;display:flex;position:relative}.app-main-sole{max-width:100%;margin:0 auto}.app-main{width:100%;min-width:0;max-width:100%;height:100%;min-height:0;overflow:hidden}.app-card{border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);background:var(--bg);width:100%;min-width:0;max-width:100%;height:100%;overflow:hidden}.sidepanel.app-card:not(.app-card--compact){contain:inline-size;width:100%;height:100%}.app-card.app-card--compact,.sidepanel.app-card--compact{width:100%;max-width:440px;height:auto;margin:auto}.app-main--centered{justify-content:center;align-items:center;height:auto;min-height:100%;display:flex}@media (width<=980px){.app-main.app-main--centered{justify-content:center;align-items:center;height:auto;min-height:calc(100vh - 24px);display:flex;overflow:visible}}.streaming-pill{color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums;margin-right:2px;padding:0 6px 0 2px;font-size:12px;font-weight:500;animation:1.1s ease-in-out infinite streaming-fade}[data-theme=dark] .streaming-pill{color:#7dd3fc}@keyframes streaming-fade{0%,to{opacity:.7}50%{opacity:1}}.sidepanel{background:var(--bg);flex-direction:column;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}@media (width<=980px){.app-shell{padding:12px;overflow:hidden}}@media (width<=520px){.app-shell{padding:8px;overflow-y:auto}.app-layout{min-height:100%}}.icon-btn{cursor:pointer;width:28px;height:28px;color:var(--text-muted);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.tabs-bar{background:linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg) 100%);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0;align-items:center;padding-right:8px;display:flex}.tabs{flex:1;align-items:center;gap:2px;min-width:0;padding:0 6px 0 2px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.tabs-arrow{cursor:pointer;width:24px;height:36px;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .15s;display:flex}.tabs-arrow:hover:not(:disabled){color:var(--text)}.tabs-arrow:disabled{color:var(--border);cursor:default}.tabs-arrow-left{padding-left:2px}.tabs-arrow-right{padding-right:2px}.tab-wrap{max-width:220px;color:var(--text-muted);border-bottom:2px solid #0000;flex-shrink:0;align-items:center;transition:color .15s,border-color .15s;display:inline-flex}.tab-wrap:hover{color:var(--text)}.tab-wrap-active{color:var(--text);border-bottom-color:var(--text);font-weight:600}.tab{min-width:0;font-size:13px;font-weight:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;padding:8px 2px 8px 10px;transition:color .15s;display:flex}.tab-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tab-close{cursor:pointer;width:22px;height:22px;color:var(--text-muted);opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-left:2px;padding:0;transition:opacity .15s,background .15s,color .15s;display:inline-flex}.tab-wrap:hover .tab-close,.tab-wrap-active .tab-close{opacity:1}.tab-close:hover{background:var(--bg-hover);color:var(--text)}.messages{scrollbar-gutter:stable;flex-direction:column;flex:1;min-height:0;padding:22px 18px 18px;display:flex;overflow-y:auto}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-track{background:0 0}.messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.messages::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.message-row{width:100%;min-width:0;max-width:740px;margin:14px auto 0;display:flex}.message-row:first-child{margin-top:0}.message-row.agent{justify-content:flex-start}.message-row.user{justify-content:flex-end}.message-row.agent+.message-row.agent,.message-row.user+.message-row.user{margin-top:4px}.message-row.agent+.message-row.user,.message-row.user+.message-row.agent{margin-top:18px}.bubble{border-radius:var(--radius-lg);min-width:0;max-width:min(82%,620px);box-shadow:var(--shadow-xs);word-wrap:break-word;overflow-wrap:anywhere;padding:11px 15px;line-height:1.55;position:relative}.message-row.agent .bubble{background:var(--bubble-agent-bg);color:var(--bubble-agent-text);border-bottom-left-radius:8px}.message-row.user .bubble{background:var(--bubble-user-bg);color:var(--bubble-user-text);border-bottom-right-radius:8px;box-shadow:0 1px 2px #2f5cc82e,0 6px 14px -6px #2f5cc84d}.message-row.agent+.message-row.agent .bubble{border-top-left-radius:8px}.message-row.user+.message-row.user .bubble{border-top-right-radius:8px}.bubble p{font-size:14px}.bubble-attachments{flex-direction:column;gap:6px;margin-bottom:6px;display:flex}.attachment-item{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.bubble-attachments .attachment-item{background:#0000000f;border-radius:10px;padding:7px 10px}[data-theme=dark] .bubble-attachments .attachment-item{background:#ffffff12}.attachment-thumb{background:var(--bg-hover);width:34px;height:34px;color:var(--text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.attachment-img{object-fit:cover;width:100%;height:100%}.attachment-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.attachment-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.attachment-size{color:var(--text-muted);font-size:11px}.time{opacity:.55;font-variant-numeric:tabular-nums;letter-spacing:.02em;margin-top:5px;font-size:10.5px;display:block}.message-row.user .time{color:#fff}:is(.message-row.agent:has(+.message-row.agent) .bubble .time,.message-row.user:has(+.message-row.user) .bubble .time){display:none}.tool-calls{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.tool-call-indicator{background:#0f172a0a;border:1px solid #0f172a0f;border-radius:8px;align-items:center;gap:8px;padding:5px 10px;font-size:12px;display:flex}[data-theme=dark] .tool-call-indicator{background:#ffffff0a;border-color:#ffffff0f}.tool-call-indicator.tool-running{color:var(--accent)}.tool-call-indicator.tool-done{color:var(--text-muted)}.tool-call-indicator.tool-error{color:#ef4444}.tool-icon{flex-shrink:0;align-items:center;display:flex}.tool-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tool-name{opacity:.5;white-space:nowrap;margin-left:auto;font-size:11px}@keyframes tool-spin{to{transform:rotate(360deg)}}.tool-spinner{animation:.8s linear infinite tool-spin}.bubble p{margin:0 0 6px;line-height:1.55}.bubble p:last-of-type{margin-bottom:0}.bubble .msg-list{margin:0 0 6px;padding-left:16px;line-height:1.55}.bubble .msg-list li{margin-bottom:2px}.bubble .inline-code{background:#00000026;border-radius:4px;padding:1px 5px;font-family:monospace;font-size:12px}.bubble .code-block{white-space:pre;background:#0003;border-radius:6px;margin:4px 0;padding:10px 12px;font-family:monospace;font-size:12px;overflow-x:auto}.page-actions-card{background:#77c8d212;border:1px solid #77c8d240;border-radius:8px;margin-top:8px;overflow:hidden}.page-actions-card-header{color:#77c8d2;letter-spacing:.02em;text-transform:uppercase;background:#77c8d21f;align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:600;display:flex}.page-actions-list{flex-direction:column;gap:2px;padding:6px 4px;display:flex}.page-action-row{border-radius:5px;align-items:center;gap:6px;padding:4px 8px;display:flex}.page-action-icon{color:#77c8d2;flex-shrink:0;align-items:center;display:flex}.page-action-label{color:var(--text);flex-shrink:0;font-size:12px;font-weight:500}.page-action-value{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:12px;overflow:hidden}.typing-indicator{gap:4px;padding:4px 0;display:flex}.typing-dot{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite typing-bounce}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.input-wrapper{border-top:1px solid var(--border);background:var(--bg);border-bottom-left-radius:calc(var(--radius-2xl) - 1px);border-bottom-right-radius:calc(var(--radius-2xl) - 1px);flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:hidden}.attachments-preview{scrollbar-width:none;flex-direction:row;gap:8px;padding:10px 14px 6px;display:flex;overflow:auto visible}.attachments-preview::-webkit-scrollbar{display:none}.attach-card{border:1.5px solid var(--border);background:var(--bg-secondary);border-radius:10px;flex-shrink:0;align-items:center;gap:8px;width:160px;padding:7px 28px 7px 8px;display:flex;position:relative}.attach-card-remove{background:var(--text-muted);color:#fff;cursor:pointer;opacity:.7;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;padding:0;transition:opacity .15s,background .15s;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.attach-card:hover .attach-card-remove{opacity:1}.attach-card-remove:hover{background:var(--text)}.composer{border:1.5px solid var(--input-border);border-radius:var(--radius-lg);background:var(--input-bg);transition:border-color .18s var(--ease), background .18s var(--ease), box-shadow .18s var(--ease);margin:10px 14px 0;position:relative}.composer:hover:not(:focus-within){border-color:var(--border-strong)}.composer:focus-within{border-color:var(--input-focus-border);background:var(--bg);box-shadow:var(--ring)}.composer--recording,.composer--recording:focus-within,.composer--recording:hover:not(:focus-within){border-color:var(--record);box-shadow:var(--record-ring);background:var(--bg)}.composer-row{align-items:flex-end;gap:2px;min-width:0;padding:4px;display:flex}.composer-input{min-width:0;min-height:40px;max-height:160px;color:var(--text);resize:none;background:0 0;border:none;outline:none;flex:1;align-self:stretch;padding:10px 8px 10px 12px;font-family:inherit;font-size:14px;line-height:1.5;overflow-y:auto}.composer-input::placeholder{color:var(--text-placeholder)}.composer-actions{flex-shrink:0;align-self:flex-end;align-items:center;gap:2px;display:flex}.mic-btn,.send-btn{cursor:pointer;width:40px;height:40px;transition:background .18s var(--ease), color .18s var(--ease), transform .15s var(--ease), box-shadow .18s var(--ease), filter .18s var(--ease);border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.mic-btn{color:var(--text-muted);background:0 0}.mic-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.mic-btn:active:not(:disabled){transform:scale(.94)}.mic-btn.mic-recording,.mic-btn.mic-recording:hover{color:var(--record);background:var(--record-soft)}.mic-btn.mic-starting,.mic-btn.mic-transcribing{color:var(--text-muted);cursor:progress}.mic-spinner{transform-origin:50%;animation:.9s linear infinite mic-spinner-rotate}@keyframes mic-spinner-rotate{to{transform:rotate(360deg)}}.recording-strip{border-bottom:1px solid var(--border);background:var(--record-soft);border-top-left-radius:calc(var(--radius-lg) - 2px);border-top-right-radius:calc(var(--radius-lg) - 2px);animation:recording-strip-in .18s var(--ease);align-items:center;gap:10px;padding:8px 10px 8px 12px;display:flex}@keyframes recording-strip-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.recording-dot{background:var(--record);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.2s ease-in-out infinite recording-dot-pulse}@keyframes recording-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}.recording-timer{font-variant-numeric:tabular-nums;color:var(--record);letter-spacing:.01em;flex-shrink:0;min-width:34px;font-size:12px;font-weight:600}.recording-waveform{flex:1;align-items:center;gap:2px;min-width:0;height:18px;display:flex;overflow:hidden}.recording-wave-bar{background:var(--record);transform-origin:50%;opacity:.3;border-radius:2px;flex:1;min-width:2px;max-width:3px;height:100%;transition:transform 90ms linear,opacity .16s linear}.recording-stop-btn{background:var(--record);color:#fff;letter-spacing:.01em;cursor:pointer;height:28px;transition:filter .15s var(--ease), transform .12s var(--ease), box-shadow .18s var(--ease);border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #ef444447}.recording-stop-btn:hover{filter:brightness(1.08)}.recording-stop-btn:active{transform:scale(.96)}.recording-stop-btn:focus-visible{outline:none;box-shadow:0 1px 2px #ef444452,0 0 0 3px #ef444459}.toast-stack{pointer-events:none;z-index:5;flex-direction:column;gap:6px;margin-bottom:8px;display:flex;position:absolute;bottom:100%;left:12px;right:12px}.toast{pointer-events:auto;border:1px solid var(--border);border-left:3px solid var(--text-muted);background-color:var(--bg);color:var(--text);border-radius:8px;align-items:center;gap:8px;padding:8px 10px 8px 12px;font-size:13px;line-height:1.35;animation:.18s ease-out toast-in;display:flex;box-shadow:0 6px 20px #00000038}.toast-msg{word-break:break-word;flex:1}.toast-error{background-image:linear-gradient(#e53e3e14,#e53e3e14);border-color:#e53e3e73 #e53e3e73 #e53e3e73 #e53e3e}.toast-success{background-image:linear-gradient(#38a16914,#38a16914);border-color:#38a16973 #38a16973 #38a16973 #38a169}.toast-info{border-left-color:var(--accent,#4a7cff)}.toast-action{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:6px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:500;transition:background .15s}.toast-action:hover{background:#ffffff14}.toast-close{width:18px;height:18px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:inline-flex}.toast-close:hover{background:var(--bg-hover);color:var(--text)}@keyframes toast-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.send-btn{background:var(--brand-gradient);color:#fff;box-shadow:0 1px 2px #2f5cc833,0 6px 16px -6px #2f5cc866}.send-btn:hover:not(:disabled){background:var(--brand-gradient-hover);transform:translateY(-1px);box-shadow:0 2px 4px #2f5cc838,0 10px 20px -6px #2f5cc873}.send-btn:active:not(:disabled){filter:brightness(.97);transform:translateY(0)}.send-btn:disabled{background:var(--border-strong);color:var(--text-placeholder);cursor:not-allowed;box-shadow:none}.page-btn{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.page-btn:hover{background:var(--bg-hover);color:var(--text)}.page-btn.page-active{color:#77c8d2;background:#77c8d21f}.page-btn.page-active:hover{background:#77c8d233}.page-context-bar{background:#77c8d214;border-top:1px solid #77c8d226;border-bottom:1px solid #77c8d226;align-items:center;gap:6px;padding:5px 12px;display:flex}.page-context-dot{background:#77c8d2;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2s ease-in-out infinite page-dot-pulse}.page-context-label{color:#77c8d2;letter-spacing:.01em;font-size:11px}@keyframes page-dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.composer-hint{text-align:center;color:var(--text-placeholder);min-height:28px;transition:color .18s var(--ease);flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:7px 14px 9px;font-size:11px;line-height:1.35;display:flex}.composer-hint-shortcut{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.composer-hint-dot{color:var(--text-placeholder);opacity:.45}.composer-hint kbd{background:var(--bg-hover);color:var(--text-muted);border:1px solid var(--border);text-align:center;border-radius:4px;min-width:16px;padding:1px 5px;font-family:inherit;font-size:10.5px;font-weight:500;line-height:1.35}.composer-hint--recording{color:var(--record);font-weight:500}.composer-hint--transcribing{color:var(--text-muted);font-weight:500}.composer-hint-dots{gap:3px;margin-left:4px;display:inline-flex}.composer-hint-dots span{opacity:.4;background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.2s ease-in-out infinite composer-hint-dot}.composer-hint-dots span:nth-child(2){animation-delay:.15s}.composer-hint-dots span:nth-child(3){animation-delay:.3s}@keyframes composer-hint-dot{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@media (hover:none) and (pointer:coarse){.composer-hint--shortcuts{display:none}}.settings-overlay{background:var(--overlay-bg);z-index:100;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.settings-modal{background:var(--modal-bg);box-shadow:var(--modal-shadow);border-radius:14px;flex-direction:column;width:100%;max-width:340px;display:flex;overflow:hidden}.settings-header{justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.settings-header-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.settings-title{color:var(--text);font-size:1.07em;font-weight:700}.settings-tabs{border-bottom:1px solid var(--border);gap:2px;padding:0 16px;display:flex;overflow-x:auto}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab{cursor:pointer;color:var(--text-muted);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;padding:8px 10px;font-size:12px;transition:color .15s,border-color .15s}.settings-tab:hover{color:var(--text)}.settings-tab-active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.settings-body{flex-direction:column;gap:18px;max-height:420px;padding:16px;display:flex;overflow-y:auto}.settings-body::-webkit-scrollbar{width:4px}.settings-body::-webkit-scrollbar-track{background:0 0}.settings-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.settings-section{flex-direction:column;gap:8px;display:flex}.settings-section-header{flex-direction:column;gap:2px;display:flex}.settings-section-label{color:var(--text);font-size:13px;font-weight:600}.settings-section-sub{color:var(--text-muted);font-size:11px}.btn-group{gap:6px;display:flex}.btn-grid-2x2{grid-template-columns:1fr 1fr;gap:6px;display:grid}.choice-btn{border:1.5px solid var(--border);background:var(--choice-bg);color:var(--text);cursor:pointer;text-align:center;border-radius:8px;flex:1;padding:7px 10px;font-size:12px;transition:background .15s,border-color .15s,color .15s}.choice-btn:hover{border-color:var(--accent)}.choice-active{font-weight:500;background:var(--choice-active-bg)!important;border-color:var(--choice-active-bg)!important;color:var(--choice-active-text)!important}.tone-list{flex-direction:column;gap:6px;display:flex}.tone-btn{border:1.5px solid var(--border);background:var(--choice-bg);color:var(--text);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:10px 14px;transition:background .15s,border-color .15s,color .15s;display:flex}.tone-btn:hover{border-color:var(--accent)}.tone-btn.choice-active .tone-sub{color:#ffffffbf}.tone-label{font-size:13px;font-weight:500}.tone-sub{color:var(--text-muted);font-size:11px}.toggle-list{flex-direction:column;gap:6px;display:flex}.toggle-row{border:1.5px solid var(--border);background:var(--choice-bg);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.toggle-row-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.toggle{background:var(--border);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:40px;height:22px;padding:0;transition:background .2s;position:relative}.toggle-on{background:var(--accent)}.toggle-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle-on .toggle-thumb{transform:translate(18px)}.privacy-info{border:1.5px solid var(--border);background:var(--choice-bg);border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.privacy-info-icon{color:var(--text-muted);flex-shrink:0;margin-top:1px}.privacy-info-title{color:var(--text);margin-bottom:3px;font-size:13px;font-weight:500}.privacy-info-sub{color:var(--text-muted);font-size:11px;line-height:1.45}.history-list{flex-direction:column;gap:4px;max-height:380px;padding:8px;display:flex;overflow-y:auto}.history-list::-webkit-scrollbar{width:4px}.history-list::-webkit-scrollbar-track{background:0 0}.history-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.history-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;flex-direction:row;align-items:center;gap:8px;padding:10px 12px;transition:background .15s;display:flex}.history-item-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.history-item:hover,.history-item-active{background:var(--bg-hover)}.history-item-top{justify-content:space-between;align-items:center;display:flex}.history-item-name{color:var(--text);font-size:13px;font-weight:600}.history-item-time{color:var(--text-muted);font-size:11px}.history-item-preview{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.history-empty{color:var(--text-muted);text-align:center;padding:24px 0;font-size:13px}.history-item-empty{font-style:italic}.history-item-closed-badge{color:var(--text-muted);background:var(--bg-hover);text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:500}.history-delete-btn{cursor:pointer;width:28px;height:28px;color:var(--text-muted);opacity:0;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:opacity .15s,background .15s,color .15s;display:flex}.history-item:hover .history-delete-btn{opacity:1}.history-delete-btn:hover{background:var(--bg-hover);color:var(--text)}.messages-empty{text-align:center;max-width:460px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;margin:auto;padding:40px 24px;display:flex}.messages-empty-icon{border-radius:var(--radius-lg);background:var(--accent-soft);width:56px;height:56px;color:var(--accent);place-items:center;display:grid;box-shadow:inset 0 0 0 1px #2f95b82e,0 6px 16px -10px #2f95b866}.messages-empty-title{color:var(--text);letter-spacing:-.005em;font-size:16px;font-weight:600}.messages-empty-text{color:var(--text-muted);font-size:13px;line-height:1.6}.messages-empty-examples{flex-direction:column;gap:6px;width:100%;margin-top:4px;display:flex}.messages-empty-example{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text);text-align:left;cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease), transform .12s var(--ease);align-items:center;gap:8px;padding:9px 12px;font-size:12.5px;display:inline-flex}.messages-empty-example:hover{background:var(--bg-hover);border-color:var(--border-strong)}.messages-empty-example:active{transform:scale(.99)}.messages-empty-example-icon{color:var(--text-muted);flex-shrink:0}.loading-card{justify-content:center;align-items:center;max-width:360px;min-height:260px;padding:36px 28px;display:flex}.loading-card-body{flex-direction:column;align-items:center;gap:22px;display:flex}.loading-card-spinner{justify-content:center;align-items:center;width:72px;height:72px;display:flex;position:relative}.loading-card-logo{width:44px;height:44px;box-shadow:none;background:0 0;border:none;animation:2.4s ease-in-out infinite loading-card-logo-pulse;display:block}.loading-card-ring{width:100%;height:100%;animation:1.1s linear infinite loading-card-rotate;position:absolute;inset:0}.loading-card-ring-track{fill:none;stroke:var(--border);stroke-width:3px}.loading-card-ring-arc{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;stroke-dasharray:47 188.5;transform-origin:50%}.loading-card-meta{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.loading-card-title{color:var(--text);letter-spacing:-.01em;font-size:15px;font-weight:600}.loading-card-caption{color:var(--text-muted);letter-spacing:.01em;align-items:baseline;gap:2px;font-size:13px;display:inline-flex}.loading-card-dots{gap:3px;margin-left:2px;display:inline-flex}.loading-card-dots span{opacity:.3;background:currentColor;border-radius:999px;width:3px;height:3px;animation:1.2s ease-in-out infinite loading-card-dot}.loading-card-dots span:nth-child(2){animation-delay:.18s}.loading-card-dots span:nth-child(3){animation-delay:.36s}@keyframes loading-card-rotate{to{transform:rotate(360deg)}}@keyframes loading-card-logo-pulse{0%,to{transform:scale(1)}50%{transform:scale(.96)}}@keyframes loading-card-dot{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-1px)}}.login-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:0;padding:48px 32px 40px;display:flex;position:relative}.login-logo{justify-content:center;align-items:center;margin-bottom:20px;display:inline-flex;position:relative}.login-logo-img{width:72px;height:72px;box-shadow:none;object-fit:contain;background:0 0;border:none;display:block}[data-theme=dark] .login-logo-img{filter:invert()}.login-title{letter-spacing:-.02em;color:var(--text);margin:0 0 8px;font-size:24px;font-weight:700;line-height:1.2}.login-subtitle{color:var(--text-muted);max-width:320px;margin:0 0 28px;font-size:14px;line-height:1.5}.login-features{flex-direction:column;gap:10px;width:100%;max-width:300px;margin-bottom:28px;display:flex}.login-feature{color:var(--text-muted);text-align:left;align-items:center;gap:10px;font-size:13px;display:flex}.login-feature-icon{background:var(--accent-soft);width:24px;height:24px;color:var(--accent);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.login-btn{border-radius:var(--radius-md);background:var(--brand-gradient);color:#fff;letter-spacing:.01em;cursor:pointer;width:100%;max-width:300px;transition:transform .18s var(--ease), box-shadow .18s var(--ease), filter .18s var(--ease);border:none;justify-content:center;align-items:center;gap:10px;padding:12px 18px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #2f5cc840,0 10px 24px -8px #2f5cc880}.login-btn:hover:not(:disabled){background:var(--brand-gradient-hover);transform:translateY(-1px);box-shadow:0 2px 4px #2f5cc847,0 14px 30px -8px #2f5cc88c}.login-btn:active:not(:disabled){filter:brightness(.97);transform:translateY(0)}.login-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.login-error{color:#ef4444;text-align:center;border-radius:var(--radius-sm);background:#ef444414;border:1px solid #ef444438;max-width:300px;margin-top:8px;padding:8px 12px;font-size:12px}.md-body{font-size:inherit;word-wrap:break-word;overflow-wrap:anywhere;min-width:0;line-height:1.55}.md-body>:first-child{margin-top:0}.md-body>:last-child{margin-bottom:0}.md-body p{margin:0 0 8px}.md-body p:last-child{margin-bottom:0}.md-body a{color:var(--accent);word-break:break-all;text-decoration:underline}.md-body a:hover{color:var(--accent-hover)}.md-body strong{font-weight:600}.md-body em{font-style:italic}.md-body code{word-break:break-word;background:#00000012;border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.88em}[data-theme=dark] .md-body code{background:#ffffff14}.md-body pre{background:#00000014;border-radius:8px;margin:8px 0;padding:10px 12px;font-size:12.5px;line-height:1.5;overflow-x:auto}.md-body pre code{font-size:inherit;background:0 0;padding:0}.md-body blockquote{border-left:3px solid var(--border);color:var(--text-muted);margin:6px 0;padding:2px 10px}.md-body ul,.md-body ol{margin:4px 0 8px;padding-left:22px}.md-body li{margin:2px 0}.md-body li>p{margin:0}.md-body h1,.md-body h2,.md-body h3,.md-body h4,.md-body h5,.md-body h6{margin:10px 0 6px;font-weight:600;line-height:1.25}.md-body h1{font-size:1.3em}.md-body h2{font-size:1.2em}.md-body h3{font-size:1.1em}.md-body h4,.md-body h5,.md-body h6{font-size:1em}.md-body hr{border:none;border-top:1px solid var(--border);margin:10px 0}.md-body table{border-collapse:collapse;margin:6px 0;font-size:12.5px}.md-body th,.md-body td{border:1px solid var(--border);text-align:left;padding:4px 8px}.md-body th{background:#0000000a;font-weight:600}.message-row.user .md-body code{background:#fff3}.message-row.user .md-body pre{background:#ffffff26}.message-row.user .md-body a{color:#fff;text-decoration:underline}.md-body .md-table-wrap{max-width:100%;margin:6px 0;overflow-x:auto}.md-body .md-table-wrap table{margin:0}.md-body .md-code-block{background:#1b1d23;border-radius:10px;max-width:100%;margin:10px 0;font-size:12.5px;overflow:hidden;box-shadow:0 1px 2px #00000040,0 0 0 1px #0006}[data-theme=light] .md-body .md-code-block{box-shadow:0 1px 2px #0f172a1f,0 0 0 1px #0f172a0f}.md-body .md-code-header{color:#c8c8d0;text-transform:lowercase;letter-spacing:.3px;background:#ffffff0a;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:6px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:flex}.md-body .md-code-lang{opacity:.75;font-weight:500}.md-body .md-code-copy{color:#c8c8d0;cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;border-radius:5px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:11px;display:inline-flex}.md-body .md-code-copy:hover{color:#fff;background:#ffffff14}.md-body .md-code-block pre{scrollbar-width:thin;border-radius:0;margin:0;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12.5px;line-height:1.55;overflow-x:auto;color:#e6e6e8!important;background:0 0!important}.md-body .md-code-block pre::-webkit-scrollbar{height:6px}.md-body .md-code-block pre::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:999px}.md-body .md-code-block pre::-webkit-scrollbar-thumb:hover{background:#ffffff40}.md-body .md-code-block pre>div{min-width:fit-content}.md-streaming-cursor{background:var(--text);vertical-align:text-bottom;border-radius:1px;width:7px;height:14px;margin-left:2px;animation:1s steps(2,start) infinite md-cursor-blink;display:inline-block}@keyframes md-cursor-blink{to{visibility:hidden}}.message-row.user .md-streaming-cursor{background:#fff}@media (prefers-reduced-motion:reduce){body,.app-shell{transition:none}.loading-card-logo,.loading-card-ring,.loading-card-dots span,.recording-dot,.mic-spinner,.recording-strip,.composer-hint-dots span,.tool-spinner,.typing-dot,.md-streaming-cursor,.streaming-pill,.toast{animation:none}.recording-wave-bar,.composer,.composer-input,.icon-btn,.tab-wrap,.tab,.tab-close,.send-btn,.mic-btn{transition:none}}
