:root{--bg: #F8FAFB;--bg-secondary: #EFF4F6;--bg-card: #FFFFFF;--bg-elevated: #FFFFFF;--text-primary: #0F1729;--text-secondary: #475569;--text-muted: #94A3B8;--text-inverse: #FFFFFF;--accent: #0284C7;--accent-hover: #0369A1;--accent-light: #E0F2FE;--accent-glow: rgba(2, 132, 199, .15);--accent-subtle: #F0F9FF;--success: #059669;--success-light: #D1FAE5;--warning: #D97706;--warning-light: #FEF3C7;--error: #DC2626;--error-light: #FEE2E2;--border: #E2E8F0;--border-light: #F1F5F9;--border-accent: rgba(2, 132, 199, .2);--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .08), 0 8px 10px -6px rgba(0, 0, 0, .04);--shadow-accent: 0 4px 14px rgba(2, 132, 199, .18);--font-heading: "Poppins", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--transition: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}body[data-theme=dark]{--bg: #0F172A;--bg-secondary: #1E293B;--bg-card: #1E293B;--bg-elevated: #334155;--text-primary: #F1F5F9;--text-secondary: #CBD5E1;--text-muted: #64748B;--text-inverse: #0F172A;--accent: #38BDF8;--accent-hover: #0EA5E9;--accent-light: rgba(56, 189, 248, .15);--accent-glow: rgba(56, 189, 248, .2);--accent-subtle: rgba(56, 189, 248, .08);--success: #34D399;--success-light: rgba(52, 211, 153, .15);--warning: #FBBF24;--warning-light: rgba(251, 191, 36, .15);--error: #F87171;--error-light: rgba(248, 113, 113, .15);--border: #334155;--border-light: #1E293B;--border-accent: rgba(56, 189, 248, .25);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .35), 0 4px 6px -4px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 8px 10px -6px rgba(0, 0, 0, .2);--shadow-accent: 0 4px 14px rgba(56, 189, 248, .2)}body[data-theme=dark] .app-header{background:linear-gradient(135deg,#0f172a,#1e293b,#0f172a);border-bottom:1px solid #334155;box-shadow:0 2px 12px #0000004d}body[data-theme=dark] .viewer-backdrop{background:#0f172af2}body[data-theme=dark] .start-overlay{background:#0f172af7}body[data-theme=dark] .message.user .message-content{background:var(--accent);color:#0f172a}body[data-theme=dark] .markdown-content code{color:var(--accent)}body[data-theme=dark] .markdown-content pre{background:#0f172a;color:#e2e8f0}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg);color:var(--text-primary);line-height:1.6;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{display:flex;flex-direction:column;height:100vh;width:100vw;background:var(--bg)}.app-header{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0;background:linear-gradient(135deg,#0c4a6e,#0369a1,#0284c7);box-shadow:0 2px 12px #0284c733;z-index:10}.header-brand{display:flex;align-items:center;gap:12px}.ai-logo{width:40px;height:40px;flex-shrink:0}.ai-logo svg{width:100%;height:100%}.ai-logo-orbit{animation:orbit-spin 12s linear infinite;transform-origin:20px 20px}.ai-logo-core{animation:core-pulse 3s ease-in-out infinite;transform-origin:20px 20px}.ai-logo-sparkle{animation:sparkle-rotate 4s ease-in-out infinite;transform-origin:20px 20px}.ai-logo-node{animation:node-glow 2.5s ease-in-out infinite}.ai-logo-node-1{animation-delay:0s}.ai-logo-node-2{animation-delay:.4s}.ai-logo-node-3{animation-delay:.8s}.ai-logo-node-4{animation-delay:1.2s}.ai-logo-node-5{animation-delay:1.6s}.ai-logo-node-6{animation-delay:2s}.ai-logo-line{animation:line-pulse 2.5s ease-in-out infinite;opacity:.4}@keyframes orbit-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes core-pulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}}@keyframes sparkle-rotate{0%,to{transform:rotate(0) scale(1);opacity:1}25%{transform:rotate(45deg) scale(.85);opacity:.7}50%{transform:rotate(90deg) scale(1.1);opacity:1}75%{transform:rotate(135deg) scale(.85);opacity:.7}}@keyframes node-glow{0%,to{opacity:.5;r:2}50%{opacity:1;r:2.8}}@keyframes line-pulse{0%,to{opacity:.2}50%{opacity:.6}}.header-brand-text{display:flex;flex-direction:column;gap:0}.header-logo-text{font-family:var(--font-heading);font-size:1.2rem;font-weight:700;color:#fff;letter-spacing:-.5px;line-height:1.2}.header-tagline{font-size:.68rem;color:#ffffffb3;font-weight:400;letter-spacing:.3px;line-height:1}.header-actions{display:flex;align-items:center;gap:12px}.header-product-name{display:flex;align-items:center;gap:6px;padding:5px 14px;border-radius:var(--radius-full);background:#ffffff26;color:#ffffffe6;font-size:.75rem;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.header-product-name i{font-size:.7rem;opacity:.8}.status-badge{padding:5px 14px;border-radius:var(--radius-full);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:#ffffff26;color:#ffffffd9;transition:all var(--transition);display:flex;align-items:center;gap:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.status-badge i{font-size:.65rem}.status-badge.playing{background:#0596694d;color:#a7f3d0}.status-badge.paused{background:#d977064d;color:#fde68a}.theme-toggle-btn{width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:#ffffffd9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);font-size:.85rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.theme-toggle-btn:hover{background:#fff3;color:#fff;transform:rotate(15deg)}.theme-toggle-btn:active{transform:scale(.9)}.main-content{flex:1;display:flex;overflow:hidden;padding:12px;gap:12px;background:var(--bg)}.image-panel{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;overflow:hidden}.image-display-container{flex:2;position:relative;min-height:300px;perspective:1200px}.glass-panel{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:var(--shadow-md);transition:box-shadow var(--transition)}.slide-container{width:100%;height:100%;position:relative;transform-style:preserve-3d;display:flex;align-items:center;justify-content:center}.slide-page{width:100%;height:100%;backface-visibility:hidden;display:flex;align-items:center;justify-content:center}.slide-page.flip-enter{animation:pageFlipIn .6s cubic-bezier(.4,0,.2,1) forwards}.slide-page.flip-exit{animation:pageFlipOut .5s cubic-bezier(.4,0,.2,1) forwards;position:absolute;top:0;left:0}@keyframes pageFlipOut{0%{transform:rotateY(0) scale(1);opacity:1;filter:brightness(1)}50%{transform:rotateY(-90deg) scale(.95);opacity:.5;filter:brightness(.8)}to{transform:rotateY(-180deg) scale(.9);opacity:0;filter:brightness(.6)}}@keyframes pageFlipIn{0%{transform:rotateY(180deg) scale(.9);opacity:0;filter:brightness(.6)}50%{transform:rotateY(90deg) scale(.95);opacity:.5;filter:brightness(.8)}to{transform:rotateY(0) scale(1);opacity:1;filter:brightness(1)}}.slide-page.flip-enter:after,.slide-page.flip-exit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to right,rgba(0,0,0,.1) 0%,transparent 20%,transparent 80%,rgba(0,0,0,.05) 100%);pointer-events:none;border-radius:var(--radius-lg)}.image-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);text-align:center;gap:12px}.image-placeholder i{font-size:3rem;opacity:.3;color:var(--accent)}.image-placeholder p{font-size:.95rem;font-weight:500}.image-grid{position:relative;z-index:1;display:grid;gap:8px;width:100%;height:100%;padding:8px;justify-content:center;align-content:center}.image-grid.grid-1{grid-template-columns:1fr;grid-template-rows:1fr;place-items:center}.image-grid.grid-1 .grid-image{width:100%;height:100%;position:relative}.image-grid.grid-1 .grid-image:hover{transform:none}.image-grid.grid-1 .grid-image img{object-fit:contain;position:relative;z-index:1}.image-grid.grid-1 .grid-image .blur-bg{position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;width:calc(100% + 40px);height:calc(100% + 40px);object-fit:cover;filter:blur(28px) saturate(1.2) brightness(.95);z-index:0;opacity:.6;pointer-events:none}.image-grid.grid-2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.image-grid.grid-3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}.image-grid.grid-3 .grid-image:first-child{grid-row:span 2}.image-grid.grid-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.image-grid.grid-many{grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr}.grid-image{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--bg-secondary);cursor:pointer;transition:all var(--transition);border:2px solid transparent}.grid-image:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--accent)}.grid-image.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow),var(--shadow-md)}.grid-image img{width:100%;height:100%;object-fit:contain;transition:transform var(--transition)}.grid-image-number{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:6px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.grid-image:after{content:"";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;bottom:6px;right:6px;width:28px;height:28px;border-radius:6px;background:#ffffffe6;color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.75rem;opacity:0;transform:scale(.8);transition:all var(--transition);box-shadow:var(--shadow-sm)}.grid-image:hover:after{opacity:1;transform:scale(1)}.grid-image.skeleton{pointer-events:none}.skeleton-loader{width:100%;height:100%;background:linear-gradient(90deg,var(--bg-secondary) 0%,var(--border-light) 50%,var(--bg-secondary) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.image-counter{position:absolute;top:12px;right:12px;padding:5px 12px;border-radius:var(--radius-full);background:var(--accent);font-size:.7rem;font-weight:600;color:#fff;z-index:10;opacity:0;transition:all var(--transition);box-shadow:var(--shadow-accent)}.controls-section{display:flex;align-items:center;justify-content:center;gap:6px;padding:4px 0}.control-btn{width:40px;height:40px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);box-shadow:var(--shadow-xs);font-size:.9rem}.control-btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-accent)}.control-btn:active{transform:scale(.95)}.control-btn.active{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.control-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.progress-section{display:flex;flex-direction:column;gap:6px;padding:4px 0}.progress-bar{height:4px;background:var(--border);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent) 0%,#06B6D4 100%);border-radius:var(--radius-full);width:0%;transition:width .4s ease;position:relative}.progress-fill:after{content:"";position:absolute;right:-4px;top:50%;transform:translateY(-50%);width:10px;height:10px;background:var(--accent);border-radius:50%;border:2px solid white;box-shadow:var(--shadow-sm)}.progress-fill.playing{animation:progress-pulse 2s ease-in-out infinite}@keyframes progress-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.15)}}.section-info{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;height:200px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xs)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-title{font-family:var(--font-heading);font-size:.85rem;font-weight:600;color:var(--text-primary)}.section-badge{padding:3px 10px;border-radius:var(--radius-full);font-size:.65rem;font-weight:700;background:var(--accent);color:#fff;letter-spacing:.5px}.section-content{flex:1;overflow-y:auto;scroll-behavior:smooth;font-size:.85rem;color:var(--text-secondary);line-height:1.75}.section-content::-webkit-scrollbar{width:4px}.section-content::-webkit-scrollbar-track{background:transparent}.section-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.section-content::-webkit-scrollbar-thumb:hover{background:var(--accent)}.section-content p{margin:0}.placeholder-text{color:var(--text-muted);font-style:italic;font-size:.85rem}.voice-only-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;color:var(--text-muted);gap:8px}.voice-only-indicator i{font-size:1.8rem;color:var(--accent)}.key-takeaways{display:none!important}.chat-panel{width:32%;min-width:320px;display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.start-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#fffffff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:100}.start-overlay-content{text-align:center;padding:40px 32px}.start-icon{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--accent) 0%,#06B6D4 100%);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:#fff;font-size:1.75rem;box-shadow:var(--shadow-accent)}.start-overlay-content h2{font-family:var(--font-heading);font-size:1.4rem;font-weight:700;color:var(--text-primary);margin:0 0 6px}.start-overlay-content p{font-size:.85rem;color:var(--text-muted);margin:0 0 24px;max-width:260px;line-height:1.5}.start-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 32px;background:linear-gradient(135deg,var(--accent) 0%,#0369A1 100%);color:#fff;border:none;border-radius:var(--radius);font-family:var(--font-heading);font-size:.95rem;font-weight:600;cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-accent)}.start-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0284c74d}.start-btn:active{transform:translateY(0)}.chat-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;background:var(--bg-card)}.chat-avatar{width:40px;height:40px;border-radius:var(--radius);background:linear-gradient(135deg,var(--accent) 0%,#06B6D4 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;box-shadow:var(--shadow-accent);flex-shrink:0}.chat-avatar.ai-chat-logo{padding:0;overflow:visible}.chat-avatar.ai-chat-logo svg{width:100%;height:100%}.chat-info h2{font-family:var(--font-heading);font-size:.9rem;font-weight:600;color:var(--text-primary)}.chat-info p{font-size:.75rem;color:var(--text-muted)}.chat-status{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--success);font-weight:500}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 6px #05966966;animation:pulse-dot 2s ease-in-out infinite}.status-dot.offline{background:#9ca3af;box-shadow:none;animation:none}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.chat-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px;background:var(--bg);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.message{display:flex;align-items:flex-start;gap:8px}.message.user{flex-direction:row-reverse}.message-avatar{width:30px;height:30px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.8rem}.message.user .message-avatar{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.message.assistant .message-avatar,.message.system .message-avatar{background:var(--accent-light);color:var(--accent)}.message-wrapper{display:flex;flex-direction:column;gap:3px;max-width:82%}.message.user .message-wrapper{align-items:flex-end}.message-content{padding:10px 14px;border-radius:var(--radius-lg);font-size:.85rem;line-height:1.6}.message.user .message-content{background:var(--accent);color:#fff;border-bottom-right-radius:4px;box-shadow:var(--shadow-sm)}.message.assistant .message-content,.message.system .message-content{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-bottom-left-radius:4px;box-shadow:var(--shadow-xs)}.message-time{font-size:.65rem;color:var(--text-muted);font-weight:500;padding:0 4px}.markdown-content{line-height:1.6}.markdown-content p{margin:0 0 6px}.markdown-content p:last-child{margin-bottom:0}.markdown-content ul,.markdown-content ol{margin:6px 0;padding-left:18px}.markdown-content li{margin:3px 0;display:list-item}.markdown-content code{background:var(--accent-subtle);padding:1px 5px;border-radius:4px;font-size:.82em;color:var(--accent);border:1px solid var(--border-light)}.markdown-content pre{background:var(--text-primary);color:#e2e8f0;padding:10px;border-radius:var(--radius-sm);overflow-x:auto;margin:6px 0}.markdown-content pre code{background:transparent;color:inherit;border:none;padding:0}.reference-images{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-light)}.reference-header{font-size:.7rem;color:var(--text-muted);margin-bottom:6px;display:flex;align-items:center;gap:5px;font-weight:500}.reference-header i{color:var(--accent)}.reference-gallery{display:flex;gap:6px;flex-wrap:wrap}.reference-image-card{position:relative;width:72px;height:54px;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;transition:transform var(--transition);border:1px solid var(--border-light)}.reference-image-card:hover{transform:scale(1.05)}.reference-image-card img{width:100%;height:100%;object-fit:cover}.page-badge{position:absolute;bottom:3px;right:3px;font-size:.55rem;padding:1px 5px;background:#000000a6;color:#fff;border-radius:3px}.qa-images{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-light)}.qa-images-header{font-size:.7rem;color:var(--text-muted);margin-bottom:6px;display:flex;align-items:center;gap:5px;font-weight:500}.qa-images-header i{color:var(--accent)}.qa-images-scroll{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.qa-images-scroll::-webkit-scrollbar{height:3px}.qa-images-scroll::-webkit-scrollbar-track{background:transparent}.qa-images-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.qa-image-card{flex-shrink:0;width:90px;height:68px;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;transition:transform var(--transition);border:1px solid var(--border-light)}.qa-image-card:hover{transform:scale(1.05)}.qa-image-card img{width:100%;height:100%;object-fit:cover}.chat-input-section{padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-card)}.input-container{display:flex;gap:8px;align-items:center}.input-container input{flex:1;padding:11px 16px;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--bg);color:var(--text-primary);font-family:var(--font-body);font-size:.85rem;outline:none;transition:all var(--transition)}.input-container input::placeholder{color:var(--text-muted)}.input-container input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input-container input:disabled{background:var(--bg-secondary);color:var(--text-muted);cursor:not-allowed}.input-actions{display:flex;gap:6px}.voice-btn,.send-btn{width:40px;height:40px;border-radius:var(--radius);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);font-size:.9rem;position:relative}.voice-btn[title]:hover:after,.send-btn[title]:hover:after,.mute-btn[title]:hover:after{content:attr(title);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:6px 12px;background:var(--text-primary);color:var(--bg-card);font-size:.7rem;font-weight:500;font-family:var(--font-body);white-space:nowrap;border-radius:6px;pointer-events:none;z-index:50;box-shadow:var(--shadow-md);animation:tooltip-in .15s ease-out}.voice-btn[title]:hover:before,.send-btn[title]:hover:before,.mute-btn[title]:hover:before{content:"";position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--text-primary);pointer-events:none;z-index:50;animation:tooltip-in .15s ease-out}@keyframes tooltip-in{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.voice-btn{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border)}.voice-btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.voice-btn.recording{background:var(--error);border:none;color:#fff;animation:rec-pulse 1.2s infinite;box-shadow:0 0 #dc262666}@keyframes rec-pulse{0%{box-shadow:0 0 #dc262666}70%{box-shadow:0 0 0 8px #dc262600}to{box-shadow:0 0 #dc262600}}.send-btn{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.send-btn:hover{background:var(--accent-hover);box-shadow:var(--shadow-accent);transform:scale(1.05)}.send-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.voice-indicator{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-top:8px;background:var(--error-light);border:1px solid rgba(220,38,38,.15);border-radius:var(--radius);font-size:.8rem;color:var(--error);font-weight:500}.voice-waves{display:flex;align-items:center;gap:2px;height:20px}.voice-waves span{width:3px;height:100%;background:var(--error);border-radius:3px;animation:voice-wave .8s infinite ease-in-out}.voice-waves span:nth-child(1){animation-delay:0ms;height:60%}.voice-waves span:nth-child(2){animation-delay:.1s;height:100%}.voice-waves span:nth-child(3){animation-delay:.2s;height:80%}.voice-waves span:nth-child(4){animation-delay:.3s;height:100%}.voice-waves span:nth-child(5){animation-delay:.4s;height:60%}.cancel-voice{margin-left:auto;width:28px;height:28px;border-radius:9999px;border:none;background:var(--muted);color:var(--foreground);cursor:pointer;display:flex;align-items:center;justify-content:center}.cancel-voice:hover{background:#ef4444;color:#fff}.voice-indicator.processing{background:linear-gradient(135deg,#3b82f61a,#2563eb1a);border:1px solid rgba(59,130,246,.2);color:#3b82f6;justify-content:center}.voice-indicator.processing i{font-size:1.1rem;margin-right:8px}.continuous-voice-btn.listening{background:linear-gradient(135deg,#10b981,#059669);border:none;color:#fff;animation:pulse 2s infinite;box-shadow:0 4px 15px #10b98166}.voice-indicator.continuous-listening{background:linear-gradient(135deg,#10b9811a,#0596691a);border:1px solid rgba(16,185,129,.3);color:#10b981}.voice-indicator.continuous-listening span:not(.voice-waves span){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}body.light-theme .continuous-voice-btn.listening{background:linear-gradient(135deg,#10b981,#059669);color:#fff}body.light-theme .voice-indicator.continuous-listening{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #a7f3d0;color:#059669}.mute-btn.muted{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;color:#fff;box-shadow:0 4px 15px #ef44444d}body.light-theme .mute-btn.muted{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.settings-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:all .3s ease}.settings-modal.active{opacity:1;visibility:visible}.modal-content{width:90%;max-width:400px;background:var(--card);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;transform:scale(.95);transition:transform .3s ease}.settings-modal.active .modal-content{transform:scale(1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:1rem;font-weight:600}.close-btn{width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-btn:hover{background:var(--secondary);color:var(--foreground)}.modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.setting-group{display:flex;flex-direction:column;gap:8px}.setting-group label{font-size:.875rem;color:var(--muted-foreground)}.setting-group select,.setting-group input[type=range]{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--input);color:var(--foreground);font-size:.875rem;outline:none}.setting-group select:focus{border-color:var(--primary)}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}input[type=range]{-webkit-appearance:none;height:6px;background:var(--secondary);border-radius:3px;padding:0}@keyframes voice-wave{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}.cancel-voice{margin-left:auto;width:24px;height:24px;border-radius:50%;border:none;background:#dc26261a;color:var(--error);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.7rem;transition:all var(--transition)}.cancel-voice:hover{background:var(--error);color:#fff}.voice-indicator.processing{background:var(--accent-light);border-color:var(--border-accent);color:var(--accent);justify-content:center}.voice-indicator.processing i{font-size:.95rem}.stop-presentation-btn{width:100%;margin-top:8px;padding:10px 14px;border-radius:var(--radius);border:1px solid rgba(220,38,38,.2);background:var(--error-light);color:var(--error);font-family:var(--font-body);font-size:.8rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all var(--transition)}.stop-presentation-btn:hover{background:var(--error);color:#fff;border-color:var(--error);box-shadow:0 4px 12px #dc262633}.stop-presentation-btn:active{transform:scale(.98)}.image-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .3s ease}.image-viewer.active{opacity:1;visibility:visible}.viewer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.viewer-content{position:relative;display:flex;flex-direction:column;align-items:center;width:95vw;height:95vh;z-index:1;padding:48px 0 72px;justify-content:center}.viewer-image{max-width:90vw;max-height:100%;object-fit:contain;border-radius:var(--radius);box-shadow:var(--shadow-xl);transform:scale(.95);transition:transform .3s ease}.image-viewer.active .viewer-image{transform:scale(1)}.viewer-controls{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg)}.viewer-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.viewer-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-accent)}.viewer-btn:disabled{opacity:.3;cursor:not-allowed}.viewer-counter{color:var(--text-primary);font-size:.85rem;font-weight:600;min-width:50px;text-align:center}.viewer-close{position:absolute;top:8px;right:8px;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);box-shadow:var(--shadow-sm)}.viewer-close:hover{background:var(--error);color:#fff;border-color:var(--error);transform:rotate(90deg)}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-xl);z-index:10000;animation:slideUp .3s ease;max-width:90%;min-width:280px}.toast-error{border-color:#dc262640}.toast-success{border-color:#05966940}.toast-content{display:flex;align-items:center;gap:10px;color:var(--text-primary);font-size:.85rem}.toast-error .toast-content i{color:var(--error)}.toast-success .toast-content i{color:var(--success)}.toast-actions{display:flex;align-items:center;gap:6px}.toast-action-btn{padding:6px 14px;border-radius:var(--radius-sm);border:none;background:var(--accent);color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--transition);white-space:nowrap}.toast-action-btn:hover{background:var(--accent-hover)}.toast-close-btn{width:24px;height:24px;border-radius:6px;border:none;background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.7rem;transition:all var(--transition)}.toast-close-btn:hover{background:var(--border);color:var(--text-primary)}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.typing-dots{display:flex;gap:4px;padding:4px 0}.typing-dots span{width:6px;height:6px;background:var(--accent);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out both}.typing-dots span:nth-child(1){animation-delay:-.32s}.typing-dots span:nth-child(2){animation-delay:-.16s}.typing-dots span:nth-child(3){animation-delay:0s}@keyframes typingBounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus:not(:focus-visible),input:focus:not(:focus-visible){outline:none}@media (max-width: 1024px){.main-content{flex-direction:column;padding:8px;gap:8px}.image-panel{flex:none;width:100%;height:55%}.chat-panel{width:100%;height:45%;min-width:unset}.voice-wave-canvas{height:52px}}@media (max-width: 640px){.app-header{padding:0 12px;height:52px}.header-tagline,.header-product-name{display:none}.main-content{padding:6px;gap:6px}.chat-panel{min-width:unset}.control-btn{width:36px;height:36px}.voice-wave-canvas{height:44px}.voice-wave-bar,.chat-input-section{padding:8px 12px}.input-container input{padding:10px 12px;font-size:.85rem}.voice-btn,.send-btn{width:36px;height:36px;font-size:.8rem}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.thumbnail-strip{display:none}.voice-wave-container{flex-shrink:0;background:var(--bg);animation:vw-slideUp .3s cubic-bezier(.16,1,.3,1);overflow:hidden;border:none!important;margin:0;padding:0}@keyframes vw-slideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.voice-wave-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;gap:12px;background:var(--bg)}.voice-wave-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.voice-wave-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px}.voice-wave-transcript{font-size:.85rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-style:italic}.voice-wave-canvas{display:block;width:100%;height:56px;background:var(--bg)}.voice-wave-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#06b6d4;animation:vw-pulse 1.5s ease-in-out infinite}.voice-wave-dot.speaking{background:#0284c7;animation:vw-pulse .8s ease-in-out infinite}.voice-wave-dot.thinking{background:#a855f7;animation:vw-pulse 1s ease-in-out infinite}@keyframes vw-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}.voice-wave-stop{width:34px;height:34px;border-radius:50%;border:none;flex-shrink:0;background:#dc2626e6;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #dc262640;transition:all .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.voice-wave-stop:hover{background:#dc2626;transform:scale(1.08);box-shadow:0 4px 14px #dc262659}.voice-wave-stop:active{transform:scale(.95)}body[data-theme=dark] .voice-wave-container,body[data-theme=dark] .voice-wave-bar,body[data-theme=dark] .voice-wave-canvas{background:var(--bg)}body[data-theme=dark] .voice-wave-transcript{color:var(--text-secondary)}.va-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,#eef6fd,#e4eef8 35%,#dde8f4 65%,#e8f0fa);animation:va-fadeIn .45s cubic-bezier(.16,1,.3,1);overflow:hidden}@keyframes va-fadeIn{0%{opacity:0}to{opacity:1}}.va-close-btn{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:10;width:52px;height:52px;border-radius:50%;border:1px solid rgba(220,38,38,.15);background:#ffffffb3;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#dc2626;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 2px 12px #dc26261a}.va-close-btn:hover{background:#dc26261a;border-color:#dc26264d;color:#dc2626;transform:translate(-50%) scale(1.08);box-shadow:0 4px 20px #dc26262e}.va-close-btn:active{transform:translate(-50%) scale(.92)}.va-status-pill{position:absolute;top:18px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 16px;background:#ffffff8c;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.7);border-radius:var(--radius-full);box-shadow:0 1px 8px #0284c70f}.va-status-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 6px #05966980;animation:va-dotPulse 2s ease-in-out infinite}@keyframes va-dotPulse{0%,to{box-shadow:0 0 4px #05966966}50%{box-shadow:0 0 10px #059669b3}}.va-status-text{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent)}.va-orb-center{display:flex;align-items:center;justify-content:center;flex-shrink:0}.va-canvas{width:min(75vw,400px)!important;height:min(75vw,400px)!important}.va-status-dot.speaking{background:var(--accent);box-shadow:0 0 6px #0284c780}.va-status-dot.thinking{background:#a855f7;box-shadow:0 0 6px #a855f780;animation:va-dotPulse-think 1s ease-in-out infinite}@keyframes va-dotPulse-think{0%,to{box-shadow:0 0 4px #a855f766}50%{box-shadow:0 0 12px #a855f7cc}}.va-transcript-area{position:absolute;bottom:88px;left:0;right:0;text-align:center;padding:8px 24px}.va-transcript-text{font-family:var(--font-body);font-size:17px;font-weight:600;line-height:1.55;margin:0 auto;max-width:320px;animation:va-textIn .2s ease-out;background:linear-gradient(135deg,#22d3ee,#a855f7 45%,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@keyframes va-textIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.va-transcript-hint{font-family:var(--font-body);font-size:14px;margin:0;display:flex;align-items:center;justify-content:center;gap:7px;background:linear-gradient(135deg,#22d3ee,#a855f7,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.7}.va-transcript-hint .va-hint-icon{-webkit-text-fill-color:initial;color:#a855f7}.va-hint-icon{opacity:.45;animation:va-hintPulse 2.5s ease-in-out infinite}@keyframes va-hintPulse{0%,to{opacity:.35}50%{opacity:.65}}body[data-theme=dark] .va-overlay{background:linear-gradient(160deg,#080e1a,#0c1525 35%,#0a1220 65%,#0d1628)}body[data-theme=dark] .va-close-btn{background:#0f172ab3;border-color:#dc262633;color:#f87171}body[data-theme=dark] .va-close-btn:hover{background:#dc262626;color:#f87171}body[data-theme=dark] .va-status-pill{background:#0f172a80;border-color:#38bdf81a}body[data-theme=dark] .va-transcript-text{background:linear-gradient(135deg,#67e8f9,#c084fc 45%,#f472b6);-webkit-background-clip:text;background-clip:text}body[data-theme=dark] .va-transcript-hint{background:linear-gradient(135deg,#67e8f9,#c084fc,#f472b6);-webkit-background-clip:text;background-clip:text}@media (prefers-reduced-motion: reduce){.va-overlay,.va-status-dot,.va-hint-icon{animation:none!important}}
