.chat-header[data-v-42a159d9]{height:var(--header-height);display:flex;align-items:center;padding:0 8px;background:var(--color-bg);border-bottom:1px solid var(--color-divider);flex-shrink:0;z-index:10}.menu-btn[data-v-42a159d9]{width:40px;height:40px;border:none;background:transparent;color:var(--color-text);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition)}.menu-btn[data-v-42a159d9]:active{background:var(--color-bg-tertiary)}.title[data-v-42a159d9]{flex:1;text-align:center;font-size:16px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spacer[data-v-42a159d9]{width:40px}.message-row[data-v-7c6701d8]{display:flex;gap:8px;max-width:85%;animation:fadeIn .3s ease}.message-row.user[data-v-7c6701d8]{flex-direction:row-reverse;margin-left:auto}.avatar[data-v-7c6701d8]{width:32px;height:32px;border-radius:var(--radius-full);background:var(--color-primary-bg);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.bubble-area[data-v-7c6701d8]{display:flex;flex-direction:column;gap:2px;min-width:0}.message-row.user .bubble-area[data-v-7c6701d8]{align-items:flex-end}.bubble[data-v-7c6701d8]{padding:10px 14px;border-radius:var(--radius-lg);font-size:15px;line-height:1.5;word-break:break-word;position:relative}.bubble.user[data-v-7c6701d8]{background:var(--color-primary);color:#fff;border-bottom-right-radius:var(--radius-sm)}.bubble.assistant[data-v-7c6701d8]{background:var(--color-bg-tertiary);color:var(--color-text);border-bottom-left-radius:var(--radius-sm)}.bubble.failed[data-v-7c6701d8]{background:#ff76751a;color:var(--color-danger)}.content[data-v-7c6701d8]{display:inline}.status-dot[data-v-7c6701d8]{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5;margin-left:6px;animation:pulse 1s infinite}.transcribing-dots[data-v-7c6701d8]{display:inline-flex;align-items:center;gap:4px;padding:2px 0}.transcribing-dots .dot[data-v-7c6701d8]{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.6;animation:voice-pulse-7c6701d8 1.4s infinite ease-in-out}.transcribing-dots .dot[data-v-7c6701d8]:nth-child(2){animation-delay:.2s}.transcribing-dots .dot[data-v-7c6701d8]:nth-child(3){animation-delay:.4s}@keyframes voice-pulse-7c6701d8{0%,60%,to{transform:scale(.8);opacity:.4}30%{transform:scale(1.2);opacity:1}}.streaming-cursor[data-v-7c6701d8]{display:inline-block;width:2px;height:1em;margin-left:2px;background:currentColor;vertical-align:text-bottom;animation:cursor-blink-7c6701d8 1s infinite step-end}@keyframes cursor-blink-7c6701d8{0%,50%{opacity:1}51%,to{opacity:0}}.meta[data-v-7c6701d8]{display:flex;align-items:center;gap:8px;padding:0 4px}.time[data-v-7c6701d8]{font-size:11px;color:var(--color-text-hint)}.retry-btn[data-v-7c6701d8]{border:none;background:transparent;color:var(--color-danger);font-size:11px;cursor:pointer;padding:0;text-decoration:underline}.message-list[data-v-ba080bc1]{flex:1;overflow-y:auto;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.empty-state[data-v-ba080bc1]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 20px}.empty-icon[data-v-ba080bc1]{color:var(--color-primary-light);margin-bottom:8px}.empty-text[data-v-ba080bc1]{font-size:16px;font-weight:600;color:var(--color-text)}.empty-hint[data-v-ba080bc1]{font-size:13px;color:var(--color-text-hint);text-align:center}.message-wrapper[data-v-ba080bc1]{animation:fadeIn .3s ease}.retry-bar[data-v-ba080bc1]{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px;font-size:13px;color:var(--color-danger)}.retry-bar button[data-v-ba080bc1]{border:1px solid var(--color-danger);background:transparent;color:var(--color-danger);padding:4px 12px;border-radius:var(--radius-full);font-size:13px;cursor:pointer}.voice-dialog-overlay[data-v-3b0d2c46]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(4px)}.voice-dialog[data-v-3b0d2c46]{background:#fff;border-radius:var(--radius-lg);padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:16px;min-width:200px;box-shadow:var(--shadow-lg)}.pulse-rings[data-v-3b0d2c46]{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center}.ring[data-v-3b0d2c46]{position:absolute;border-radius:50%;border:2px solid var(--color-primary);opacity:0;animation:ring-pulse-3b0d2c46 2s infinite ease-out}.ring-1[data-v-3b0d2c46]{width:60px;height:60px;animation-delay:0s}.ring-2[data-v-3b0d2c46]{width:60px;height:60px;animation-delay:.5s}.ring-3[data-v-3b0d2c46]{width:60px;height:60px;animation-delay:1s}@keyframes ring-pulse-3b0d2c46{0%{transform:scale(.8);opacity:.8}to{transform:scale(2);opacity:0}}.mic-icon[data-v-3b0d2c46]{width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;z-index:1}.dialog-text[data-v-3b0d2c46]{font-size:15px;color:var(--color-text);font-weight:500}.stop-btn[data-v-3b0d2c46]{padding:8px 24px;border:none;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;font-size:14px;cursor:pointer;transition:all var(--transition)}.stop-btn[data-v-3b0d2c46]:active{transform:scale(.95)}.cancel-btn[data-v-3b0d2c46]{border:none;background:transparent;color:var(--color-text-hint);font-size:13px;cursor:pointer;padding:4px 8px}.dialog-fade-enter-active[data-v-3b0d2c46],.dialog-fade-leave-active[data-v-3b0d2c46]{transition:opacity .2s ease}.dialog-fade-enter-from[data-v-3b0d2c46],.dialog-fade-leave-to[data-v-3b0d2c46]{opacity:0}.input-bar[data-v-652fd4f1]{display:flex;align-items:flex-end;gap:8px;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:var(--color-bg);border-top:1px solid var(--color-divider);flex-shrink:0}.voice-btn[data-v-652fd4f1]{width:40px;height:40px;border:none;border-radius:var(--radius-full);background:var(--color-primary-bg);color:var(--color-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all var(--transition)}.voice-btn[data-v-652fd4f1]:active{transform:scale(.92)}.voice-btn.active[data-v-652fd4f1]{background:var(--color-danger);color:#fff}.voice-btn.disabled[data-v-652fd4f1]{background:var(--color-bg-tertiary);color:var(--color-text-hint);cursor:not-allowed}.input-area[data-v-652fd4f1]{flex:1;background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:8px 14px;display:flex;align-items:center;min-height:40px}.text-input[data-v-652fd4f1]{width:100%;border:none;background:transparent;outline:none;resize:none;font-size:15px;line-height:1.5;color:var(--color-text);font-family:inherit;max-height:100px}.text-input[data-v-652fd4f1]::placeholder{color:var(--color-text-hint)}.send-btn[data-v-652fd4f1]{width:40px;height:40px;border:none;border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-hint);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all var(--transition)}.send-btn.active[data-v-652fd4f1]{background:var(--color-primary);color:#fff}.send-btn[data-v-652fd4f1]:active{transform:scale(.92)}.send-btn[data-v-652fd4f1]:disabled{cursor:not-allowed}.sidebar[data-v-4b564f5c]{position:absolute;top:0;left:0;width:85%;max-width:340px;height:100%;background:var(--color-bg);z-index:100;display:flex;flex-direction:column;box-shadow:2px 0 16px #0000001a}.sidebar-header[data-v-4b564f5c]{padding:12px;border-bottom:1px solid var(--color-divider)}.new-chat-btn[data-v-4b564f5c]{width:100%;height:44px;border:1px dashed var(--color-primary-light);background:var(--color-primary-bg);color:var(--color-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;gap:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition)}.new-chat-btn[data-v-4b564f5c]:active{background:var(--color-primary);color:#fff}.conversation-list[data-v-4b564f5c]{flex:1;overflow-y:auto;padding:8px}.conversation-item[data-v-4b564f5c]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition);position:relative}.conversation-item[data-v-4b564f5c]:active{background:var(--color-bg-tertiary)}.conversation-item.active[data-v-4b564f5c]{background:var(--color-primary-bg)}.conv-icon[data-v-4b564f5c]{width:32px;height:32px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);flex-shrink:0}.conversation-item.active .conv-icon[data-v-4b564f5c]{background:var(--color-primary);color:#fff}.conv-info[data-v-4b564f5c]{flex:1;min-width:0}.conv-title[data-v-4b564f5c]{font-size:14px;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-time[data-v-4b564f5c]{font-size:12px;color:var(--color-text-hint);margin-top:2px}.conv-delete[data-v-4b564f5c]{width:28px;height:28px;border:none;background:transparent;color:var(--color-text-hint);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all var(--transition);flex-shrink:0}.conversation-item:hover .conv-delete[data-v-4b564f5c],.conversation-item:active .conv-delete[data-v-4b564f5c]{opacity:1}.conv-delete[data-v-4b564f5c]:active{color:var(--color-danger);background:#ff76751a}.empty-hint[data-v-4b564f5c]{text-align:center;color:var(--color-text-hint);font-size:14px;padding:40px 0}.sidebar-enter-active[data-v-4b564f5c],.sidebar-leave-active[data-v-4b564f5c]{transition:transform .3s cubic-bezier(.4,0,.2,1)}.sidebar-enter-from[data-v-4b564f5c],.sidebar-leave-to[data-v-4b564f5c]{transform:translate(-100%)}.toast[data-v-4f4a45d1]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#2d3436e6;color:#fff;padding:12px 20px;border-radius:var(--radius-md);font-size:14px;z-index:2000;max-width:80%;text-align:center;line-height:1.5;backdrop-filter:blur(8px);box-shadow:var(--shadow-md)}.toast.error[data-v-4f4a45d1]{background:#ff7675f2}.toast-enter-active[data-v-4f4a45d1],.toast-leave-active[data-v-4f4a45d1]{transition:opacity .25s ease,transform .25s ease}.toast-enter-from[data-v-4f4a45d1],.toast-leave-to[data-v-4f4a45d1]{opacity:0;transform:translate(-50%,-50%) scale(.9)}.app-root[data-v-2d45d6ce]{width:100%;height:100%;position:relative;overflow:hidden}.sidebar-overlay[data-v-2d45d6ce]{position:absolute;inset:0;background:#0006;z-index:90}.main-area[data-v-2d45d6ce]{width:100%;height:100%;display:flex;flex-direction:column;transition:transform var(--transition)}.overlay-enter-active[data-v-2d45d6ce],.overlay-leave-active[data-v-2d45d6ce]{transition:opacity var(--transition)}.overlay-enter-from[data-v-2d45d6ce],.overlay-leave-to[data-v-2d45d6ce]{opacity:0}:root{--color-primary: #6C5CE7;--color-primary-light: #A29BFE;--color-primary-bg: #F0EEFF;--color-success: #00B894;--color-danger: #FF7675;--color-warning: #FDCB6E;--color-text: #2D3436;--color-text-secondary: #636E72;--color-text-hint: #B2BEC3;--color-bg: #FFFFFF;--color-bg-secondary: #F5F6FA;--color-bg-tertiary: #ECEEF5;--color-border: #E3E6F0;--color-divider: #ECEEF5;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--transition: .25s cubic-bezier(.4, 0, .2, 1);--header-height: 52px;--input-height: 56px;--max-width: 480px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:15px;color:var(--color-text);background:var(--color-bg-secondary);-webkit-font-smoothing:antialiased}#app{width:100%;height:100%;max-width:var(--max-width);margin:0 auto;background:var(--color-bg);display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:0 0 40px #0000000a}::-webkit-scrollbar{width:0;height:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideOutLeft{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes fadeInBg{0%{opacity:0}to{opacity:1}}
