.loading-container{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background-color:#ffffffe6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999}.loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.loading-spinner{margin-bottom:16px}.loading-spinner.small{width:24px;height:24px}.loading-spinner.medium{width:40px;height:40px}.loading-spinner.large{width:60px;height:60px}.spinner-ring{position:relative;width:100%;height:100%}.spinner-ring div{position:absolute;inset:0;margin:auto;border:3px solid transparent;border-top:3px solid #1890ff;border-radius:50%;animation:spin 1.2s cubic-bezier(.5,0,.5,1) infinite}.spinner-ring div:nth-child(1){animation-delay:-.45s;border-top-color:#1890ff}.spinner-ring div:nth-child(2){animation-delay:-.3s;border-top-color:#52c41a;width:75%;height:75%}.spinner-ring div:nth-child(3){animation-delay:-.15s;border-top-color:#faad14;width:50%;height:50%}.spinner-ring div:nth-child(4){border-top-color:#ff4d4f;width:25%;height:25%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{font-size:14px;color:#666;font-weight:500;letter-spacing:.5px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@media (max-width: 768px){.loading-container{background-color:#fffffff2}.loading-spinner.medium{width:32px;height:32px}.loading-text{font-size:12px}}@media (prefers-color-scheme: dark){.loading-container{background-color:#000000e6}.loading-text{color:#ccc}}: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}*{box-sizing:border-box}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;-webkit-tap-highlight-color:transparent}h1{font-size:3.2em;line-height:1.1}#root{width:100%;height:100%}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}.ant-table-wrapper{clear:both;max-width:100%;height:100%}.ant-table-wrapper .ant-spin-nested-loading{position:relative;height:100%}.ant-table-wrapper .ant-spin-nested-loading .ant-spin-container{position:relative;transition:opacity .3s;height:100%;display:flex;flex-direction:column}.ant-table-wrapper .ant-table{flex:auto;overflow:hidden}.ant-table-wrapper .ant-table-container{position:relative;height:100%;display:flex;flex-direction:column}.ant-table-wrapper .ant-table .ant-table-body{overflow-y:auto!important}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}*{color-scheme:light!important}.home-view{width:100%;height:100%;background:linear-gradient(180deg,#fafbfe,#f7f9fd 60%,#f6f7fb)}.home-content{margin:0 auto;background:#fff;border-radius:8px;padding:48px;box-shadow:0 2px 8px #0000001a}.home-content h1{text-align:center;color:#1890ff;font-size:32px;margin-bottom:32px;font-weight:600}.welcome-section{text-align:center}.welcome-section>p{font-size:18px;color:#666;margin-bottom:48px;line-height:1.6}.feature-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:32px}.feature-card{background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;padding:32px 24px;text-align:center;transition:all .3s ease}.feature-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #0000001a;border-color:#1890ff}.feature-card h3{color:#1890ff;font-size:20px;margin-bottom:16px;font-weight:600}.feature-card p{color:#666;font-size:14px;line-height:1.5;margin:0}@media (max-width: 768px){.home-content{padding:24px}.home-content h1{font-size:24px}.feature-cards{grid-template-columns:1fr}}.home-view{height:100vh;display:flex;flex-direction:column;background-color:#f9fafb;max-width:500px;margin:0 auto;background:#fff;color-scheme:light;color:#1f2937}.chat-header{height:48px;background:#fff;border-bottom:1px solid #e5e7eb;padding:0 16px;box-shadow:0 2px 4px #0000001a;color-scheme:light}.header-content{height:100%;display:flex;align-items:center;justify-content:space-between}.header-left{flex:1}.header-title{flex:1;text-align:center;font-size:18px;font-weight:600;color:#1f2937;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-right{flex:1;display:flex;justify-content:flex-end}.add-button{width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:#1f2937;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.add-button:hover{background:#f3f4f6;color:#374151}.chat-main{flex:1;overflow-y:auto;padding:12px;background:#f9fafb;display:flex;flex-direction:column;gap:16px;color-scheme:light;color:#1f2937}.avatar{width:44px;height:44px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;font-size:32px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease}.avatar-bot{border-radius:50%;overflow:hidden}.avatar-user{width:44px;height:44px}.avatar-img,.user-img{width:100%;height:100%}.message-content{max-width:75%;word-wrap:break-word}.message-bubble{padding:8px 16px;border-radius:10px;box-shadow:0 2px 8px #0000001a;margin-bottom:4px;color-scheme:light;width:fit-content}.message-bubble.user{background:linear-gradient(135deg,#4c9bff,#2e7af5);color:#fff;border:none;box-shadow:0 6px 16px #2e7af540;align-self:flex-end}.message-bubble.bot{background:#fff;color:#222;border:none;box-shadow:0 6px 16px #ebecedc9}.message-bubble p{margin:0;line-height:1.75}.message-timestamp{font-size:12px;color:#9ca3af;display:block;font-size:.75rem;color-scheme:light}.message-container.user .message-timestamp{text-align:right}.input-area{background:#fff;border-top:1px solid #e5e7eb;padding:12px;box-shadow:0 -2px 8px #0000001a;color-scheme:light}.input-mode-switch{width:40px;height:40px;min-height:40px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-size:16px;flex-shrink:0;padding:0}.input-mode-switch .icon-container{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:42px}.input-mode-switch.disabled{color:#555;cursor:not-allowed}.input-mode-switch.disabled:hover{color:#9ca3af;transform:none}.voice-input-container{flex:1;height:44px;display:flex;flex-direction:column;align-items:center}.voice-button-large{width:100%;height:100%;border-radius:40px;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-size:16px}.voice-button-large:hover{transform:scale(1.05);box-shadow:0 6px 16px #3b82f666}.voice-button-large:active{transform:scale(.95)}.voice-button-large.normal{background:#f2f3f5;color:#86909c}.voice-button-large.normal:hover{background:#2563eb;color:#fff}.voice-button-large.disabled{background:#d1d5db;color:#6b7280;cursor:not-allowed;box-shadow:none}.voice-button-large.disabled:hover{transform:none;box-shadow:none}.voice-button-large.recording-pulse{background:#4f7cee;color:#fff;animation:recording-pulse 1.5s infinite}.voice-button-large.voice-canceling{background:linear-gradient(45deg,#f59e0b,#f97316);color:#fff;animation:shake .5s ease-in-out}.voice-button-large::placeholder{font-size:16px}@keyframes recording-pulse{0%,to{box-shadow:0 0 #4f7ceeb3}50%{box-shadow:0 0 0 10px #ef444400}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.voice-button-content{display:flex;align-items:center;gap:12px}.voice-button-text{font-size:14px;font-weight:500}.keyboard-input-container{flex:1;display:flex;align-items:flex-end;gap:8px;transition:all .2s ease}.text-input-wrapper{flex:1;display:flex;align-items:flex-end;transition:all .2s ease}.text-input{width:100%;padding:8px 16px;background:#f1f3f9;border:1px solid #e6e9f2;border-radius:8px;background:#f2f3f5;resize:none;line-height:1.75;min-height:44px;max-height:120px;height:44px;overflow-y:hidden;font-family:inherit;font-size:16px;outline:none;transition:border-color .2s ease,height .2s ease;box-sizing:border-box;display:block;color:#1f2937;color-scheme:light}.text-input::-webkit-scrollbar{width:4px}.text-input::-webkit-scrollbar-track{background:transparent}.text-input::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:2px}.text-input::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.text-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.text-input.disabled{background-color:#f5f5f5;color:#999;cursor:not-allowed;color-scheme:light}.send-button{width:42px;height:42px;min-height:42px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;font-size:16px;flex-shrink:0;padding:0;font-size:28px;color:#86909c}.send-button.active{color:#fff;background:linear-gradient(135deg,#4c9bff,#2e7af5)}.send-button.active:hover{transform:rotate(-90deg);background:#2563eb;transform:translateY(-1px)}.send-button.disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}.send-button.disabled:hover{transform:none}.input-container.has-multiline .send-button,.input-container.has-multiline .input-mode-switch{align-self:flex-end;margin-bottom:0}.input-container.has-multiline .text-input-wrapper,.input-container.has-multiline .keyboard-input-container{align-items:flex-end}.message-bubble-left{border-radius:18px 18px 18px 4px}.message-bubble-right{border-radius:18px 18px 4px}.typing-indicator{width:100%;display:inline-flex;justify-content:space-around;align-items:center;gap:4px}.typing-indicator span{width:8px;height:8px;background-color:#1d6cf5;border-radius:50%;animation:typing 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.message-bubble.bot:has(>.message-content-wrapper>.typing-indicator):not(:has(.markdown-content)),.message-bubble.user:has(>.voice-message>.typing-indicator.voice-typing-indicator){display:inline-flex;align-items:center;min-height:40px}.message-bubble.bot:has(>.message-content-wrapper>.typing-indicator):not(:has(.markdown-content)) .typing-indicator,.message-bubble.user:has(>.voice-message>.typing-indicator.voice-typing-indicator) .typing-indicator{width:auto;justify-content:center}.voice-wave{display:flex;align-items:center;gap:3px;height:24px}.voice-wave span{width:3px;background-color:#fff;border-radius:3px;animation:voice 1s infinite ease-in-out}.voice-wave span:nth-child(1){height:10px;animation-delay:-.5s}.voice-wave span:nth-child(2){height:16px;animation-delay:-.3s}.voice-wave span:nth-child(3){height:20px;animation-delay:-.1s}.voice-wave span:nth-child(4){height:16px;animation-delay:.1s}.voice-wave span:nth-child(5){height:10px;animation-delay:.3s}@keyframes voice{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}.voice-message-container{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.voice-recording-hint{animation:fade-in-up .3s ease-out}.voice-canceling{animation:shake .5s ease-in-out;background:linear-gradient(45deg,#f59e0b,#f97316)!important}.input-mode-switch{transition:all .3s ease;background:#fff}.input-mode-switch:hover{transform:scale(1.05)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.home-view{max-width:100%}.message-bubble-left,.message-bubble-right{max-width:85%}.input-container,.keyboard-input-container,.text-input-wrapper{align-items:flex-end}}.overflow-y-auto::-webkit-scrollbar{width:4px}.overflow-y-auto::-webkit-scrollbar-track{background:transparent}.overflow-y-auto::-webkit-scrollbar-thumb{background:#9ca3af4d;border-radius:2px}.overflow-y-auto::-webkit-scrollbar-thumb:hover{background:#9ca3af80}textarea{max-height:120px;resize:none;line-height:1.5}button:not(:disabled):hover{transform:translateY(-1px);transition:transform .2s ease}.recognition-success{background-color:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#059669}.recognition-failed{background-color:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:#d97706}.recognition-error{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#dc2626}.loading-dots{display:inline-flex;align-items:center;gap:4px}.loading-dots span{width:6px;height:6px;background-color:currentColor;border-radius:50%;animation:loading-dots 1.4s infinite ease-in-out both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes loading-dots{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.recording-duration{font-family:Courier New,monospace;font-weight:700;color:#ef4444}.voice-play-button{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;cursor:pointer}.voice-play-button:hover{transform:scale(1.1)}.voice-play-button.playing{background-color:#ef4444;color:#fff}.message-container{display:flex;align-items:flex-start;gap:8px}.message-container.user{justify-content:flex-end}.message-container.bot{justify-content:flex-start}.message-content{max-width:75%;word-wrap:break-word;display:flex;flex-direction:column}.message-content.user{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border-radius:18px 18px 4px;padding:.75rem 1rem;box-shadow:0 2px 8px #3b82f633}.message-content.bot{background:#fff;color:#1f2937;border-radius:18px 18px 18px 4px;padding:.75rem 1rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e5e7eb}.recognition-result{margin-top:.5rem;padding:.5rem;border-radius:8px;font-size:.875rem;line-height:1.4}.recognition-result.success{background-color:#10b9811a;border:1px solid rgba(16,185,129,.2);color:#059669}.recognition-result.failed{background-color:#f59e0b1a;border:1px solid rgba(245,158,11,.2);color:#d97706}.recognition-result.error{background-color:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#dc2626}.input-area{background:#fff;border-top:1px solid #e5e7eb;padding:.75rem;box-shadow:0 -2px 8px #0000001a}.input-container{display:flex;align-items:center;gap:8px;max-width:100%}.recording-status{position:absolute;top:-40px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.875rem;white-space:nowrap;z-index:10}.microphone-permission-hint{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;color:#92400e;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem;display:flex;align-items:center;gap:.5rem}.error-message{background:linear-gradient(135deg,#fee2e2,#fecaca);border:1px solid #f87171;color:#991b1b;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem;display:flex;align-items:center;gap:.5rem}.success-message{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid #34d399;color:#065f46;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem;display:flex;align-items:center;gap:.5rem}.reference-info{margin-top:8px;padding:6px 8px;background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:4px;font-size:11px;color:#0369a1;color-scheme:light}.reference-info small{display:block;font-size:11px;color:#0369a1;font-style:italic}.voice-message{display:flex;align-items:center;gap:8px}.voice-icon{color:#1890ff;font-size:14px;flex-shrink:0}.voice-message p{margin:0;flex:1}.message-bubble.user .voice-message .voice-typing-indicator span{background-color:#ffffffeb}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;padding:2rem;color-scheme:light}.empty-state-content{text-align:center;max-width:300px}.empty-state-icon{margin-bottom:1.5rem}.empty-state-icon .empty-state-icon-img{width:100px;height:100px;border-radius:50%;overflow:hidden}.empty-state-title{font-size:1.25rem;font-weight:600;color:#374151;margin-bottom:.75rem;color-scheme:light}.empty-state-description{font-size:.875rem;color:#6b7280;line-height:1.5;margin-bottom:1.5rem;color-scheme:light}.empty-state-tips{display:flex;justify-content:center;gap:2rem}.tip-item{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#6b7280;font-size:.75rem}.tip-item i{font-size:1.25rem;color:#1890ff}.markdown-content{line-height:1.6;color:inherit;color-scheme:light}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin:1rem 0 .5rem;font-weight:600;line-height:1.25}.markdown-content h1{font-size:1.5rem}.markdown-content h2{font-size:1.25rem}.markdown-content h3{font-size:1.125rem}.markdown-content h4{font-size:1rem}.markdown-content h5{font-size:.875rem}.markdown-content h6{font-size:.75rem}.markdown-content p{margin:0;line-height:1.6}.markdown-content ul,.markdown-content ol{margin:.5rem 0;padding-left:1.5rem}.markdown-content li{margin:.25rem 0}.markdown-content img{max-width:100%;height:auto}.markdown-content blockquote{margin:.5rem 0;padding:.5rem 1rem;border-left:4px solid #e5e7eb;background-color:#f9fafb;font-style:italic}.markdown-content .code-block{margin:.5rem 0;padding:1rem;background-color:#f3f4f6;border-radius:6px;overflow-x:auto;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;line-height:1.4}.markdown-content .inline-code{padding:.125rem .25rem;background-color:#f3f4f6;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem}.markdown-content .table-wrapper{margin:.5rem 0;overflow-x:auto}.markdown-content .markdown-table{width:100%;border-collapse:collapse;font-size:.875rem}.markdown-content .markdown-table th,.markdown-content .markdown-table td{padding:.5rem;border:1px solid #e5e7eb;text-align:left}.markdown-content .markdown-table th{background-color:#f9fafb;font-weight:600}.markdown-content .markdown-link{color:#3b82f6;text-decoration:none}.markdown-content .markdown-link:hover{text-decoration:underline}.markdown-content strong{font-weight:600}.markdown-content em{font-style:italic}.markdown-content hr{margin:1rem 0;border:none;border-top:1px solid #e5e7eb}.message-bubble.user .markdown-content{color:#fff}.message-bubble.user .markdown-content .code-block{background-color:#ffffff1a;color:#fff}.message-bubble.user .markdown-content .inline-code{background-color:#fff3;color:#fff}.message-bubble.user .markdown-content .markdown-link{color:#93c5fd}.message-bubble.user .markdown-content blockquote{background-color:#ffffff1a;border-left-color:#ffffff4d}.message-bubble.user .markdown-content .markdown-table th{background-color:#ffffff1a}.message-bubble.user .markdown-content .markdown-table th,.message-bubble.user .markdown-content .markdown-table td{border-color:#fff3}.scroll-to-bottom-button{position:fixed;bottom:120px;right:20px;width:48px;height:48px;border-radius:50%;background:#3b82f6;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #3b82f64d;transition:all .3s ease;z-index:1000;animation:fade-in .3s ease-out}.scroll-to-bottom-button:hover{background:#2563eb;transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.scroll-to-bottom-button:active{transform:translateY(0)}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.scroll-to-bottom-button{bottom:100px;right:16px;width:44px;height:44px}}@media (prefers-color-scheme: dark){.home-view,.chat-header,.chat-main,.input-area,.message-bubble,.text-input,.markdown-content,.reference-info,.empty-state,.empty-state-title,.empty-state-description{color-scheme:light!important;background-color:inherit!important;color:inherit!important}.message-bubble.bot{background:#fff!important;color:#1f2937!important}.text-input{background:#f2f3f5!important;color:#1f2937!important}.chat-main{background:#f9fafb!important}.input-area{background:#fff!important}}:root{--color-primary: #1890ff;--color-secondary: #52c41a;--color-danger: #ff4d4f;--color-warning: #faad14;--color-text: #333333;--color-text-secondary: #666666;--color-border: #d9d9d9;--color-background: #ffffff;--color-background-light: #f5f5f5;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-size-small: 12px;--font-size-normal: 14px;--font-size-large: 16px;--font-size-xlarge: 20px;--border-radius-small: 4px;--border-radius-medium: 8px;--border-radius-large: 12px;--shadow-light: 0 2px 4px rgba(0, 0, 0, .1);--shadow-medium: 0 4px 8px rgba(0, 0, 0, .1);--shadow-heavy: 0 8px 16px rgba(0, 0, 0, .15)}
