*{margin:0;padding:0;box-sizing:border-box}:root{background-color:var(--bg-primary)}body{margin:0;padding:0;overflow:hidden;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.voice-captions-container{position:fixed;bottom:120px;left:50%;transform:translate(-50%);max-width:600px;width:90%;max-height:50vh;background:var(--bg-elevated);border:var(--border-1) solid var(--border-primary);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-xl);z-index:var(--z-modal);overflow:hidden}.voice-messages{max-height:50vh;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);scrollbar-width:thin;scrollbar-color:var(--color-primary-light) var(--border-primary)}.voice-messages::-webkit-scrollbar{width:6px}.voice-messages::-webkit-scrollbar-track{background:var(--border-primary);border-radius:var(--radius-sm)}.voice-messages::-webkit-scrollbar-thumb{background:var(--color-primary-light);border-radius:var(--radius-sm)}.voice-messages::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.voice-message{display:flex;animation:fadeInVoice var(--duration-slow) var(--ease-out)}.voice-message.user{justify-content:flex-end}.voice-message.assistant{justify-content:flex-start}.voice-message-content{max-width:85%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);word-wrap:break-word;line-height:var(--leading-normal);font-size:var(--text-base)}.voice-message.user .voice-message-content{background:var(--accent-primary);color:var(--text-inverse);border-bottom-right-radius:var(--radius-sm)}.voice-message.assistant .voice-message-content{background:var(--bg-elevated);color:var(--text-primary);border-bottom-left-radius:var(--radius-sm)}.voice-message-content h1,.voice-message-content h2,.voice-message-content h3,.voice-message-content h4,.voice-message-content h5,.voice-message-content h6{font-weight:var(--font-bold);line-height:var(--leading-tight)}.voice-message-content h1{font-size:var(--text-xl);margin-top:var(--space-2);margin-bottom:var(--space-1);padding-bottom:var(--space-1);border-bottom:var(--border-2) solid var(--accent-primary);color:var(--accent-primary);font-weight:var(--font-bold)}.voice-message-content h1:first-child{margin-top:0}.voice-message-content h2{font-size:var(--text-lg);margin-top:var(--space-2);margin-bottom:var(--space-1);color:var(--accent-primary);font-weight:var(--font-bold);border-left:var(--border-4) solid var(--accent-primary);padding-left:var(--space-3)}.voice-message-content h2:first-child{margin-top:0}.voice-message-content h3{font-size:var(--text-base);margin-top:var(--space-2);margin-bottom:var(--space-1)}.voice-message-content ul,.voice-message-content ol{margin:var(--space-1) 0;padding-left:var(--space-6)}.voice-message-content li{margin:var(--space-1) 0;line-height:var(--leading-snug);padding-left:var(--space-1)}.voice-message-content ul>li{position:relative}.voice-message-content ul>li::marker{color:var(--accent-primary);font-size:1.1em}.voice-message-content ol>li::marker{color:var(--accent-primary);font-weight:var(--font-semibold)}.voice-message-content li>p{margin:var(--space-1) 0}.voice-message-content ul ul,.voice-message-content ol ul,.voice-message-content ul ol,.voice-message-content ol ol{margin:var(--space-2) 0;padding-left:var(--space-5)}.voice-message-content strong,.voice-message-content b{font-weight:var(--font-semibold);color:inherit}.voice-message-content p{margin:var(--space-1) 0}.voice-message-content p:first-child{margin-top:0}.voice-message-content p:last-child{margin-bottom:0}@keyframes fadeInVoice{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stop-button{position:fixed;bottom:40px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:linear-gradient(135deg,var(--color-error) 0%,var(--color-error-dark) 100%);color:var(--text-inverse);border:none;border-radius:var(--radius-full);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-all);box-shadow:var(--shadow-md);z-index:var(--z-modal)}.stop-button:hover{transform:translate(-50%) scale(1.05);box-shadow:var(--shadow-lg)}.stop-button svg{width:20px;height:20px}.back-to-chat-button{position:fixed;top:var(--space-6);left:var(--space-6);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--color-primary-lighter);border:var(--border-2) solid var(--color-primary);border-radius:var(--radius-full);color:var(--text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-all);z-index:var(--z-modal);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.back-to-chat-button:hover{background:var(--color-primary-light);transform:scale(1.05)}@media (max-width: 768px){.voice-captions-container{bottom:100px;width:95%;max-height:45vh}.voice-messages{max-height:45vh;padding:var(--space-3);gap:var(--space-3)}.voice-message-content{max-width:90%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.stop-button{bottom:var(--space-6);padding:var(--space-3) var(--space-5);font-size:var(--text-sm)}.back-to-chat-button{top:var(--space-4);left:var(--space-4);padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}}@media (max-width: 480px){.voice-captions-container{bottom:80px;width:92%;max-height:40vh}.voice-messages{max-height:40vh;padding:var(--space-3);gap:var(--space-2)}.voice-message-content{max-width:92%;padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.stop-button{bottom:var(--space-4);padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}.stop-button svg{width:16px;height:16px}.back-to-chat-button{top:var(--space-3);left:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);gap:var(--space-2)}.back-to-chat-button svg{width:16px;height:16px}}.light-theme .voice-captions-container{background:rgba(255,255,255,.95);border:var(--border-1) solid var(--border-primary)}.light-theme .voice-message.user .voice-message-content{color:var(--text-primary)}:root{--color-primary: #8b5cf6;--color-primary-hover: #7c3aed;--color-primary-active: #6d28d9;--color-primary-light: rgba(139, 92, 246, .1);--color-primary-lighter: rgba(139, 92, 246, .05);--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-success: #10b981;--color-success-light: rgba(16, 185, 129, .1);--color-warning: #f59e0b;--color-warning-light: rgba(245, 158, 11, .1);--color-error: #ef4444;--color-error-dark: #cc0000;--color-error-light: rgba(239, 68, 68, .1);--color-info: #3b82f6;--color-info-light: rgba(59, 130, 246, .1);--color-accent-secondary: #6366f1;--color-accent-tertiary: #1a1f35;--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-elevated: rgba(255, 255, 255, .05);--bg-sunken: rgba(0, 0, 0, .2);--bg-overlay: rgba(0, 0, 0, .5);--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--text-muted: #64748b;--text-inverse: #1a202c;--border-primary: rgba(255, 255, 255, .1);--border-secondary: rgba(255, 255, 255, .05);--border-accent: var(--color-primary);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--border-0: 0;--border-1: 1px;--border-2: 2px;--border-4: 4px;--border-8: 8px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--z-base: 0;--z-dropdown: 10;--z-sticky: 20;--z-fixed: 30;--z-modal-backdrop: 40;--z-modal: 50;--z-popover: 60;--z-tooltip: 70;--duration-instant: 0ms;--duration-fast: .1s;--duration-normal: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--transition-colors: color var(--duration-normal) var(--ease-in-out), background-color var(--duration-normal) var(--ease-in-out), border-color var(--duration-normal) var(--ease-in-out);--transition-opacity: opacity var(--duration-normal) var(--ease-in-out);--transition-transform: transform var(--duration-normal) var(--ease-in-out);--transition-all: all var(--duration-normal) var(--ease-in-out);--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px}.light-theme{--color-primary: #7c3aed;--color-primary-hover: #6d28d9;--color-primary-active: #5b21b6;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-elevated: rgba(0, 0, 0, .02);--bg-sunken: rgba(0, 0, 0, .05);--bg-overlay: rgba(0, 0, 0, .3);--color-gradient-start: #f0f4ff;--color-gradient-end: #fef3f8;--text-primary: #1a202c;--text-secondary: #4a5568;--text-tertiary: #718096;--text-muted: #a0aec0;--text-inverse: #f8fafc;--border-primary: rgba(0, 0, 0, .1);--border-secondary: rgba(0, 0, 0, .05)}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*:focus-visible{outline:var(--border-2) solid var(--color-primary);outline-offset:var(--space-1)}:root{--bg-gradient: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-primary) 50%, var(--color-accent-tertiary) 100%);--accent-gradient: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent-secondary) 100%);--user-bg: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent-secondary) 100%);--user-text: #ffffff;--assistant-bg: var(--bg-elevated);--assistant-text: var(--text-primary)}.light-theme{--bg-gradient: linear-gradient(135deg, var(--color-gradient-start) 0%, var(--bg-primary) 50%, var(--color-gradient-end) 100%);--accent-gradient: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent-secondary) 100%);--user-bg: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent-secondary) 100%);--user-text: #ffffff;--assistant-bg: var(--bg-secondary);--assistant-text: var(--text-primary)}.chat-container{display:flex;flex-direction:column;height:100vh;width:100vw;background:var(--bg-gradient);color:var(--text-primary);position:relative}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;width:100vw;gap:var(--space-6)}.loading-spinner{position:relative}.spinner-icon{animation:spin 1s var(--ease-linear) infinite;color:var(--color-primary);filter:drop-shadow(0 0 8px var(--color-primary-light))}.loading-text{font-size:var(--text-base);color:var(--text-secondary);font-weight:var(--font-medium);letter-spacing:.5px}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6) var(--space-8);background:var(--bg-secondary);border-bottom:var(--border-1) solid var(--border-primary);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative}.chat-header h1{font-size:var(--text-xs);font-weight:var(--font-semibold);margin:0;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;flex:1;text-align:center}.refresh-button{width:36px;height:36px;border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-all);opacity:.6;position:absolute;right:var(--space-6)}.refresh-button:hover{opacity:1;background:var(--color-primary-lighter);color:var(--color-primary);transform:rotate(180deg)}.refresh-button:active{transform:rotate(180deg) scale(.95)}.refresh-button svg{width:20px;height:20px}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-6) var(--space-8);display:flex;flex-direction:column;gap:var(--space-4);position:relative;scroll-behavior:smooth}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:var(--radius-sm)}.chat-messages::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:var(--radius-sm);transition:var(--transition-colors)}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--accent-secondary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;height:100%;color:var(--text-muted);font-size:.875rem;gap:0;text-align:center;padding:4rem 2rem 2rem}.empty-state-content{display:flex;flex-direction:column;align-items:center;gap:1.25rem;margin-bottom:3rem}.empty-state-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;box-shadow:0 4px 12px #00000026;border:3px solid var(--border-color)}.empty-state h2{display:block;font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0}.empty-state p{margin:0;font-weight:400;font-size:1rem;color:var(--text-secondary)}.starter-questions{width:100%;max-width:600px;padding:0 1rem}.starter-questions-label{font-size:.75rem;color:var(--text-secondary);margin-bottom:1rem;font-weight:500;text-align:center;letter-spacing:.5px}.starter-questions-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.starter-question{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.75rem 1rem;font-size:.8125rem;color:var(--text-primary);text-align:left;cursor:pointer;transition:all .2s ease;font-family:inherit;line-height:1.6;min-height:44px;box-shadow:none;width:100%;position:relative;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.starter-question:hover:not(:disabled){background:rgba(139,92,246,.08);border-color:#8b5cf64d;transform:translateY(-1px);box-shadow:0 2px 8px #8b5cf626}.starter-question:active:not(:disabled){transform:translateY(0)}.starter-question:disabled{opacity:.5;cursor:not-allowed}.starter-question:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.light-theme .starter-question{background:rgba(139,92,246,.05);border-color:#8b5cf626;color:var(--text-primary)}.light-theme .starter-question:hover:not(:disabled){background:rgba(139,92,246,.12);border-color:var(--accent-primary)}@media (max-width: 480px){.starter-questions{padding:0 .75rem;margin-top:1.5rem}.starter-questions-grid{gap:.625rem}.starter-question{font-size:.8125rem;padding:.75rem .875rem;min-height:44px}.starter-questions-label{font-size:.75rem;margin-bottom:.75rem}}@media (min-width: 481px) and (max-width: 1024px){.starter-questions-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1025px){.starter-questions-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.starter-question{padding:1rem 1.25rem}}.message{display:flex;gap:.875rem;animation:fadeIn .3s cubic-bezier(.4,0,.2,1);align-items:flex-start}.message.user{flex-direction:row-reverse;justify-content:flex-start}.message.assistant{flex-direction:row;justify-content:flex-start}.message-avatar{width:36px;height:36px;min-width:36px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--accent-primary);margin-top:.25rem;cursor:help;border-radius:0;border:none;transition:all .2s ease}.message-avatar:hover{transform:scale(1.05)}.message.user .message-avatar{background:transparent;color:var(--accent-primary)}.message.assistant .message-avatar{background:transparent;color:var(--accent-secondary)}.message-wrapper{display:flex;flex-direction:column;gap:0;max-width:75%;position:relative}.message.user .message-wrapper{align-items:flex-end;max-width:70%}.message.assistant .message-wrapper{align-items:flex-start;max-width:80%}.message-header,.message.user .message-header{display:none}.message-sender{font-weight:600;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:.8rem;margin-bottom:.25rem}.message-timestamp{color:#ffffff80;font-size:.65rem;position:absolute;bottom:.25rem;left:.5rem;display:inline-block}.message.user .message-timestamp{left:auto;right:.5rem}.light-theme .message-timestamp{color:#00000073}.message-content{padding:.625rem .875rem 1.75rem;border-radius:.5rem;word-wrap:break-word;overflow-wrap:anywhere;word-break:break-word;line-height:1.4;max-width:100%;box-shadow:var(--shadow-md);transition:box-shadow .2s;font-size:.875rem;position:relative;min-width:0;overflow:hidden}.message-content>*{max-width:100%;overflow-wrap:anywhere;word-break:break-word}.message-content:hover{box-shadow:var(--shadow-lg)}.message.user .message-content{background:var(--user-bg);color:var(--user-text);border-bottom-right-radius:.125rem;max-width:100%;width:fit-content;min-width:80px}.message.assistant .message-content{background:rgba(255,255,255,.12);color:var(--assistant-text);border-bottom-left-radius:.125rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:100%;width:fit-content;min-width:100px;line-height:1.35}.light-theme .message.assistant .message-content{background:var(--assistant-bg);border:1px solid rgba(139,92,246,.1)}.light-theme .input-wrapper{background:var(--bg-primary);border-color:#8b5cf633}.light-theme .input-wrapper:focus-within{background:var(--bg-secondary);border-color:var(--accent-primary);box-shadow:0 0 0 3px #7c3aed1a}.light-theme .mic-button-inline{background:rgba(124,58,237,.08)}.light-theme .mic-button-inline:hover:not(:disabled){background:rgba(124,58,237,.15)}.light-theme .send-button{box-shadow:0 4px 12px #7c3aed40}.light-theme .voice-mode-button-minimal{background:rgba(124,58,237,.06);border-color:#7c3aed40}.light-theme .message-content h1{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.light-theme .message-content h2{color:var(--accent-primary);border-left-color:var(--accent-primary)}.light-theme .message-content ul>li::marker,.light-theme .message-content ol>li::marker{color:var(--accent-primary)}.light-theme .message-content blockquote{border-left-color:var(--accent-primary)}.light-theme .message-content strong,.light-theme .message-content b{color:var(--text-primary)}.light-theme .read-more-inline{color:var(--accent-primary)}.light-theme .read-more-inline:hover{background:rgba(124,58,237,.08)}.light-theme .typing-dot{background:var(--color-primary)}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{font-weight:700;line-height:1.3;color:var(--text-primary)}.message-content h1{font-size:1.25rem;margin-top:.5rem;margin-bottom:.25rem;padding-bottom:.25rem;border-bottom:2px solid var(--accent-primary);color:var(--accent-primary);font-weight:700}.message-content h1:first-child{margin-top:0}.message-content h2{font-size:1.125rem;margin-top:.375rem;margin-bottom:.25rem;color:var(--accent-primary);font-weight:700;border-left:3px solid var(--accent-primary);padding-left:.75rem}.message-content h2:first-child{margin-top:0}.message-content h3{font-size:1.0625rem;margin-top:.375rem;margin-bottom:.25rem;color:var(--text-primary);font-weight:650}.message-content h3:first-child{margin-top:0}.message-content h4,.message-content h5,.message-content h6{font-size:1rem;margin-top:.45rem;margin-bottom:.25rem}.message-content p{margin:.125rem 0;line-height:1.4}.message-content p:first-child{margin-top:0}.message-content p:last-child{margin-bottom:0}.message-content code{background:rgba(0,0,0,.25);padding:.15rem .4rem;border-radius:.3rem;font-family:Fira Code,Consolas,Monaco,Courier New,monospace;font-size:.9em;border:1px solid rgba(255,255,255,.1)}.message-content pre{background:rgba(0,0,0,.35);padding:.75rem 1rem;border-radius:.4rem;overflow-x:auto;margin:.6rem 0;border:1px solid rgba(255,255,255,.1)}.message-content pre code{background:none;padding:0;border:none;font-size:.875rem;line-height:1.4}.message-content ul,.message-content ol{margin:.25rem 0;padding-left:1.75rem}.message-content li{margin:.125rem 0;line-height:1.4;padding-left:.25rem}.message-content ul>li{position:relative}.message-content ul>li::marker{color:var(--accent-primary);font-size:1.1em}.message-content ol>li::marker{color:var(--accent-primary);font-weight:600}.message-content li>p{margin:.25rem 0}.message-content ul ul,.message-content ol ul,.message-content ul ol,.message-content ol ol{margin:.5rem 0;padding-left:1.5rem}.message-content strong,.message-content b{font-weight:700;color:var(--text-primary)}.message-content em,.message-content i{font-style:italic}.message-content blockquote{border-left:3px solid var(--accent-primary);padding-left:.75rem;margin:.6rem 0;color:var(--text-secondary);font-style:italic}.message-content blockquote p{margin:.3rem 0}.message-content hr{border:none;border-top:1px solid var(--border-color);margin:.8rem 0}.message-content a{color:var(--accent-primary);text-decoration:none;transition:color .2s;word-break:break-all;overflow-wrap:anywhere}.message-content a:hover{color:var(--accent-secondary);text-decoration:underline}.message-content table{border-collapse:collapse;width:100%;margin:.6rem 0;font-size:.95rem;display:block;overflow-x:auto;max-width:100%}.message-content th,.message-content td{border:1px solid var(--border-color);padding:.4rem .6rem;text-align:left}.message-content th{background:rgba(139,92,246,.1);font-weight:600}.typing{display:flex;gap:.5rem;align-items:center;padding:.5rem 0}.typing-dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary);animation:typingDot 1.4s infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.message-actions{display:flex;gap:.25rem;align-items:center;flex-wrap:nowrap;padding:0;background:transparent;border:none;margin-top:.25rem}.message.user .message-actions{flex-direction:row-reverse;justify-content:flex-start}.message.assistant .message-actions{justify-content:flex-start}.action-button{background:rgba(139,92,246,.1);border:1px solid rgba(139,92,246,.2);border-radius:.5rem;padding:.4rem .75rem;color:var(--accent-primary);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:.4rem;outline:none}.action-button:hover{background:rgba(139,92,246,.2);border-color:#8b5cf666;transform:translateY(-1px);box-shadow:0 2px 8px #8b5cf633}.action-button:active{transform:translateY(0);box-shadow:none}.action-button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.action-button svg{width:16px;height:16px}.read-more{background:transparent;border-color:#8b5cf633;opacity:.8}.read-more:hover{background:rgba(139,92,246,.1);border-color:#8b5cf666;opacity:1}.read-more-inline{display:inline-block;margin-top:.75rem;padding:.5rem 1rem;background:transparent;border:none;color:var(--accent-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;width:100%;text-align:center}.read-more-inline:hover{background:rgba(139,92,246,.08);transform:translateY(-1px)}.read-more-inline:active{transform:translateY(0)}.copy-button{width:28px;height:28px;padding:0;justify-content:center;border-radius:50%;opacity:.5;background:transparent;border:none;display:flex;align-items:center}.copy-button svg{width:16px;height:16px}.copy-button:hover{opacity:.9;background:rgba(255,255,255,.1);transform:scale(1.05)}.tts-button{width:28px;height:28px;padding:0;justify-content:center;border-radius:50%;opacity:.5;transition:all .2s ease;background:transparent;border:none;display:flex;align-items:center}.tts-button svg{width:16px;height:16px}.tts-button:hover{opacity:.9;background:rgba(255,255,255,.1);transform:scale(1.05)}.tts-button.active{opacity:1;background:transparent;transform:scale(1.15)}.tts-button:disabled{opacity:.4;cursor:not-allowed}.tts-button .spinner{animation:spin 1s linear infinite}.reaction-button{width:28px;height:28px;padding:0;justify-content:center;border-radius:50%;opacity:.5;transition:all .2s ease;background:transparent;border:none;display:flex;align-items:center}.reaction-button svg{width:16px;height:16px}.reaction-button:hover{opacity:.9;background:rgba(255,255,255,.1);transform:scale(1.05)}.reaction-button.active{opacity:1;transform:scale(1.15)}.reaction-button.liked.active{color:var(--color-success)}.reaction-button.disliked.active{color:var(--color-error)}.reaction-button:disabled{opacity:.3;cursor:not-allowed}.reaction-button .spinner{animation:spin 1s linear infinite}.message-citations{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.citations-header{display:flex;align-items:center;gap:.5rem;font-size:.6875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.75px;margin-bottom:.75rem;background:none;border:none;padding:.5rem;margin:-.5rem -.5rem .75rem;border-radius:6px;cursor:pointer;transition:all .2s ease;width:calc(100% + 1rem)}.citations-header:hover{background:rgba(139,92,246,.05);color:var(--text-primary)}.citations-toggle-icon{margin-left:auto;transition:transform .2s ease}.citations-toggle-icon.expanded{transform:rotate(180deg)}.citations-count{background:rgba(139,92,246,.15);color:var(--accent-primary);padding:.125rem .5rem;border-radius:12px;font-size:.6875rem;font-weight:600}.citations-list{display:flex;flex-direction:column;gap:.5rem}@media (min-width: 769px){.citations-list{flex-direction:row;flex-wrap:wrap;gap:.75rem}.citation-card{flex:1 1 calc(33.333% - .5rem);min-width:0}}.citation-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.75rem;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;text-decoration:none;color:inherit;display:block;animation:fadeInUp .3s ease-out;animation-fill-mode:backwards}.citation-card:nth-child(1){animation-delay:0ms}.citation-card:nth-child(2){animation-delay:50ms}.citation-card:nth-child(3){animation-delay:.1s}.citation-card:nth-child(4){animation-delay:.15s}.citation-card:nth-child(5){animation-delay:.2s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.citation-card:hover{background:rgba(139,92,246,.08);border-color:#8b5cf64d;transform:translateY(-1px);box-shadow:0 2px 8px #8b5cf626}.citation-card:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.citation-image{width:100%;height:auto;max-height:120px;object-fit:cover;border-radius:6px;margin-bottom:.5rem}.citation-content{display:flex;flex-direction:column;gap:.25rem}.citation-number{font-size:.625rem;color:var(--accent-primary);font-weight:700}.citation-title{font-size:.75rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.citation-description{font-size:.6875rem;color:var(--text-secondary);margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.citation-url{font-size:.625rem;color:var(--accent-primary);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:.25rem;margin-top:.25rem}.citation-url:hover{text-decoration:underline}.citations-loading{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary);padding:.5rem}.citations-loading .spinner{animation:spin 1s linear infinite}.citations-warning{font-size:.6875rem;color:var(--color-warning);padding:.5rem;background:var(--color-warning-light);border-radius:6px;margin-top:.5rem}@media (max-width: 768px){.citation-card{padding:.625rem}.citation-image{max-height:100px}.citation-title{font-size:.8125rem}.citation-description{font-size:.6875rem}}@media (max-width: 400px){.citation-image{display:none}}.scroll-indicator{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background:rgba(139,92,246,.2);border:1px solid rgba(139,92,246,.4);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--accent-primary);animation:bounce 2s infinite;cursor:pointer;z-index:10;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scroll-indicator:hover{background:rgba(139,92,246,.3);box-shadow:var(--shadow-lg)}.chat-input-container{display:flex;gap:.625rem;padding:1rem 1.5rem;background:var(--bg-secondary);border-top:1px solid var(--border-color);box-shadow:0 -4px 6px -1px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-items:center}.input-wrapper{flex:1;position:relative;display:flex;align-items:center;background:var(--bg-tertiary);border:2px solid rgba(139,92,246,.25);border-radius:1.25rem;padding:.625rem 1rem;transition:all .3s cubic-bezier(.4,0,.2,1);min-height:48px;max-height:200px;overflow:hidden}.input-wrapper:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px #8b5cf61f;background:rgba(139,92,246,.05)}.chat-input{flex:1;background:transparent;border:none;padding:.25rem .5rem;color:var(--text-primary);font-size:.95rem;font-family:inherit;resize:none;min-height:24px;max-height:200px;outline:none;line-height:1.5;overflow-y:auto;overflow-x:hidden;transition:height .1s ease;word-wrap:break-word;overflow-wrap:anywhere;white-space:pre-wrap}.chat-input::placeholder{color:var(--text-muted);opacity:.6}.chat-input::-webkit-scrollbar{width:4px}.chat-input::-webkit-scrollbar-thumb{background:var(--accent-primary);border-radius:2px}.send-button{background:var(--accent-gradient);border:none;border-radius:50%;width:48px;height:48px;min-width:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);color:#fff;box-shadow:var(--shadow-md)}.send-button:hover:not(:disabled){transform:scale(1.05);box-shadow:0 0 20px #8b5cf666}.send-button:active:not(:disabled){transform:scale(.95)}.send-button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.send-button:disabled{opacity:.4;cursor:not-allowed;transform:scale(.9)}.send-button.has-text{transform:scale(1.1);box-shadow:0 0 25px #8b5cf680,var(--shadow-lg);animation:pulse-glow 2s ease-in-out infinite}.send-button.has-text:hover:not(:disabled){transform:scale(1.15);box-shadow:0 0 30px #8b5cf699}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #8b5cf666,var(--shadow-md)}50%{box-shadow:0 0 30px #8b5cf699,var(--shadow-lg)}}.mic-button-inline{background:rgba(139,92,246,.08);border:none;width:36px;height:36px;min-width:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);color:var(--accent-primary);border-radius:50%;margin-right:.5rem;flex-shrink:0}.mic-button-inline:hover:not(:disabled){background:rgba(139,92,246,.15);transform:scale(1.05)}.mic-button-inline:active:not(:disabled){transform:scale(.95)}.mic-button-inline.recording{background:var(--color-error-light);color:var(--color-error);animation:pulse-recording 1.5s ease-in-out infinite}.mic-button-inline.transcribing{background:var(--color-info-light);color:var(--color-info);animation:spin 1s linear infinite}.mic-button-inline:disabled{opacity:.5;cursor:not-allowed}.voice-mode-button-minimal{background:rgba(139,92,246,.08);border:1.5px solid rgba(139,92,246,.3);border-radius:.75rem;padding:.625rem .75rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);color:var(--accent-primary);flex-shrink:0}.voice-mode-button-minimal:hover{background:rgba(139,92,246,.15);border-color:#8b5cf680;transform:scale(1.05);box-shadow:0 0 12px #8b5cf633}.voice-mode-button-minimal:active{transform:scale(.95)}.voice-mode-button-minimal:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}@keyframes pulse-recording{0%,to{box-shadow:0 0 #ef4444b3}50%{box-shadow:0 0 0 10px #ef444400}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes typingDot{0%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-10px);opacity:1}}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}@media (max-width: 768px){.chat-header{padding:1rem 1.25rem}.chat-header h1{font-size:.7rem}.voice-mode-button{width:40px;height:40px}.chat-messages{padding:1rem;gap:1.25rem}.message-avatar{width:28px;height:28px;min-width:28px}.message-avatar svg{width:20px;height:20px}.message-wrapper{max-width:calc(100% - 38px)}.message-content{padding:.5rem .75rem 1.5rem;font-size:.8125rem;line-height:1.35}.message-header{font-size:.8rem}.message-timestamp{font-size:.7rem}.action-button{padding:.35rem .6rem;font-size:.75rem}.chat-input-container{padding:1rem 1.25rem}.chat-input{padding:.875rem 1.25rem;font-size:.95rem}.send-button{width:40px;height:40px;min-width:40px}}@media (max-width: 480px){.chat-header{padding:.875rem 1rem}.chat-header h1{font-size:.65rem}.voice-mode-button{width:36px;height:36px}.voice-mode-button svg{width:20px;height:20px}.chat-messages{padding:.75rem;gap:1rem}.message{gap:.5rem}.message-avatar{width:24px;height:24px;min-width:24px}.message-avatar svg{width:16px;height:16px}.message-wrapper{max-width:calc(100% - 32px)}.message-header{font-size:.75rem;gap:.5rem}.message-sender{font-size:.75rem}.message-timestamp{font-size:.65rem}.message-content{padding:.5rem .625rem 1.5rem;font-size:.8125rem;line-height:1.35}.action-button{padding:.3rem .5rem;font-size:.7rem;gap:.3rem}.action-button svg{width:14px;height:14px}.copy-button{width:32px;height:32px;opacity:.6}.copy-button svg{width:16px;height:16px}.tts-button{width:32px;height:32px;opacity:.6}.tts-button svg{width:16px;height:16px}.scroll-indicator{width:32px;height:32px}.scroll-indicator svg{width:18px;height:18px}.chat-input-container{padding:.875rem 1rem;gap:.75rem}.chat-input{padding:.75rem 1rem;font-size:.9rem;border-radius:.75rem}.send-button{width:36px;height:36px;min-width:36px}.send-button svg{width:18px;height:18px}}
