.disassembly-instructions{position:fixed;top:.75rem;left:.75rem;right:.75rem;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem;z-index:99;box-shadow:0 16px 32px rgba(0,0,0,.15),0 0 0 1px rgba(255,255,255,.08);backdrop-filter:blur(20px);animation:slideInLeft .5s ease-out;max-height:calc(100vh - 1.5rem);overflow-y:auto}@media (min-width:768px){.disassembly-instructions{top:1.5rem;left:1.5rem;right:auto;max-width:360px;padding:1.5rem;border-radius:16px}}.instructions-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}@media (min-width:768px){.instructions-header{gap:1rem;margin-bottom:1.5rem}}.instructions-icon{width:2.5rem;height:2.5rem;background:var(--gradient-primary);color:var(--primary-foreground);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 8px 16px var(--primary-shadow)}@media (min-width:768px){.instructions-icon{width:3rem;height:3rem;border-radius:14px;box-shadow:0 12px 24px var(--primary-shadow)}}.instructions-header h3{margin:0;font-size:1rem;font-weight:700;color:var(--foreground)}@media (min-width:768px){.instructions-header h3{font-size:1.125rem;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}}.instructions-content{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}@media (min-width:768px){.instructions-content{gap:1rem;margin-bottom:1.5rem}}.control-section{margin-bottom:.75rem}.control-section:last-of-type{margin-bottom:0}.section-title{font-size:.7rem;font-weight:700;color:var(--primary-accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;display:flex;align-items:center;gap:.375rem}@media (min-width:768px){.section-title{font-size:.75rem}}.touch-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--card);border:2px solid var(--border);border-radius:6px;font-size:1.125rem;box-shadow:0 2px 4px rgba(0,0,0,.1)}@media (min-width:768px){.touch-icon{width:2.5rem;height:2.5rem;border-radius:10px;font-size:1.25rem;box-shadow:0 4px 8px rgba(0,0,0,.12)}}.mouse-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--card);border:2px solid var(--border);border-radius:6px;color:var(--primary-accent);box-shadow:0 2px 4px rgba(0,0,0,.1)}@media (min-width:768px){.mouse-icon{width:2.5rem;height:2.5rem;border-radius:10px;box-shadow:0 4px 8px rgba(0,0,0,.12)}}.control-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:8px;transition:all .3s ease}@media (min-width:768px){.control-item{gap:1.25rem;padding:1rem;border-radius:12px}}.control-item:hover{background:rgba(var(--primary-rgb),.1)}.key-badge{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--card);border:2px solid var(--border);border-radius:6px;font-size:.875rem;font-weight:700;color:var(--foreground);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;box-shadow:0 2px 4px rgba(0,0,0,.1)}@media (min-width:768px){.key-badge{width:2.5rem;height:2.5rem;border-radius:10px;font-size:1rem;font-weight:800;box-shadow:0 4px 8px rgba(0,0,0,.12)}}.control-item span{font-size:.8rem;color:var(--muted-foreground);line-height:1.4;font-weight:500}@media (min-width:768px){.control-item span{font-size:.9rem;line-height:1.5}}.instructions-note{font-size:.75rem;color:var(--muted-foreground);line-height:1.5;padding:.75rem;background:var(--muted);border-radius:8px;border-left:3px solid var(--primary-accent)}@media (min-width:768px){.instructions-note{font-size:.8rem;line-height:1.6;padding:1rem;border-radius:10px;border-left-width:4px}}.instructions-close-btn{display:flex;align-items:center;gap:.5rem;background:var(--gradient-primary);border:2px solid var(--border);color:white;padding:.625rem .875rem;border-radius:6px;margin-bottom:2rem;cursor:pointer;font-size:.75rem;font-weight:600;transition:all .3s ease;outline:none}@media (min-width:768px){.instructions-close-btn{padding:.75rem 1rem;margin-bottom:2rem;border-radius:8px;font-size:.8rem}}.instructions-close-btn:hover{color:var(--foreground);border-color:var(--primary-accent);background:var(--muted)}.instructions-close-btn:focus-visible{outline:2px solid var(--primary-accent);outline-offset:2px}.ai-assistant-btn{position:fixed;top:.75rem;left:50%;transform:translateX(-50%);background:var(--gradient-primary);border:none;color:white;padding:.75rem 1.25rem;border-radius:16px;cursor:pointer;font-size:.8rem;font-weight:600;z-index:50;transition:all .3s ease;box-shadow:0 4px 16px var(--primary-shadow);display:flex;align-items:center;gap:.5rem;outline:none;white-space:nowrap;min-width:fit-content}@media (min-width:768px){.ai-assistant-btn{top:1.5rem;padding:.875rem 1.75rem;border-radius:25px;font-size:.875rem;gap:.625rem;box-shadow:0 8px 25px var(--primary-shadow)}}.ai-assistant-btn:hover{transform:translateX(-50%) translateY(-1px);box-shadow:0 8px 25px var(--primary-shadow)}@media (min-width:768px){.ai-assistant-btn:hover{transform:translateX(-50%) translateY(-2px);box-shadow:0 12px 35px var(--primary-shadow)}}.ai-assistant-btn:focus-visible{outline:2px solid var(--primary-foreground);outline-offset:2px}.ai-btn-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.status-indicator{position:fixed;top:.75rem;right:.75rem;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.1);backdrop-filter:blur(20px);min-width:220px;max-width:calc(100vw - 1.5rem);animation:slideInRight .5s ease-out}@media (min-width:768px){.status-indicator{top:1.5rem;right:1.5rem;border-radius:16px;padding:1.25rem;min-width:260px;max-width:320px}}.control-row{max-width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.875rem}.control-row:last-of-type{margin-bottom:0}.control-label{font-size:.7rem;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.375rem;flex-shrink:0;min-width:3.5rem}@media (min-width:768px){.control-label{font-size:.75rem}}.slider-control{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.slider{flex:1;height:3px;background:var(--muted);border-radius:2px;outline:none;cursor:pointer;min-width:60px}@media (min-width:768px){.slider{height:4px;min-width:100px}}.slider::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;background:var(--primary-accent);cursor:pointer;border:2px solid var(--card);box-shadow:0 2px 6px rgba(0,0,0,.2);transition:all .2s ease}@media (min-width:768px){.slider::-webkit-slider-thumb{width:16px;height:16px}}.slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 4px 12px rgba(var(--primary-rgb),.4)}.value-display{font-size:.7rem;font-weight:700;color:var(--primary-accent);min-width:2.5rem;text-align:right;background:rgba(var(--primary-rgb),.1);padding:.2rem .4rem;border-radius:4px}@media (min-width:768px){.value-display{font-size:.75rem}}.color-input{width:28px;height:22px;border:1px solid var(--border);border-radius:4px;cursor:pointer;background:none;padding:0;flex-shrink:0}@media (min-width:768px){.color-input{width:32px;height:24px}}.color-input::-webkit-color-swatch-wrapper{padding:0;border:none;border-radius:inherit}.color-input::-webkit-color-swatch{border:none;border-radius:inherit}.opacity-slider{flex:0.8}.progress-container{margin-bottom:.875rem;display:flex;align-items:center;gap:.5rem}.progress-bar{flex:1;height:6px;background:var(--muted);border-radius:3px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}@media (min-width:768px){.progress-bar{height:8px;border-radius:4px}}.progress-fill{height:100%;background:var(--gradient-primary);border-radius:inherit;transition:width .8s ease;box-shadow:0 0 8px rgba(var(--primary-rgb),.5)}.progress-text{font-size:.7rem;font-weight:700;color:var(--primary-accent);min-width:2.5rem;text-align:center}@media (min-width:768px){.progress-text{font-size:.75rem}}.status-row{display:flex;justify-content:center;padding-top:.75rem;border-top:1px solid var(--border);margin-top:.875rem}.status-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border-radius:8px;font-size:.75rem;font-weight:600}.status-badge.ready{background:rgba(34,197,94,.1);color:var(--success);border:1px solid rgba(34,197,94,.3)}.status-badge.animating{background:rgba(59,130,246,.1);color:var(--primary-accent);border:1px solid rgba(59,130,246,.3)}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--success);animation:pulse 2s ease-in-out infinite;box-shadow:0 0 8px var(--success)}@media (min-width:768px){.status-dot{width:8px;height:8px}}.status-spinner{width:10px;height:10px;border:2px solid rgba(59,130,246,.3);border-top:2px solid var(--primary-accent);border-radius:50%;animation:spin 1s linear infinite}@media (min-width:768px){.status-spinner{width:12px;height:12px}.status-indicator{top:1.5rem;right:1.5rem;border-radius:16px;padding:1.5rem;min-width:280px;max-width:360px}}.status-header{justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.status-header,.status-title{display:flex;align-items:center}.status-title{gap:.5rem;margin:0;font-size:.875rem;font-weight:700;color:var(--foreground)}@media (min-width:768px){.status-title{font-size:1rem}}.status-close-btn{background:transparent;border:1px solid var(--border);color:var(--muted-foreground);padding:.5rem;border-radius:6px;cursor:pointer;transition:all .3s ease;outline:none;display:flex;align-items:center;justify-content:center}.status-close-btn:hover{color:var(--foreground);border-color:var(--primary-accent);background:var(--muted)}.status-close-btn:focus-visible{outline:2px solid var(--primary-accent);outline-offset:2px}.show-controls-btn,.show-status-btn{position:fixed;background:var(--gradient-primary);border:2px solid var(--border);color:var(--foreground);padding:.75rem 1rem;border-radius:20px;cursor:pointer;font-size:.75rem;font-weight:600;z-index:50;transition:all .3s ease;box-shadow:0 4px 16px rgba(0,0,0,.1);display:flex;align-items:center;gap:.5rem;outline:none;animation:slideInUp .5s ease-out;white-space:nowrap}@media (min-width:768px){.show-controls-btn,.show-status-btn{padding:1rem 1.25rem;border-radius:25px;font-size:.8rem;gap:.75rem;box-shadow:0 8px 24px rgba(0,0,0,.1)}}.show-controls-btn{bottom:1rem;left:1rem}@media (min-width:768px){.show-controls-btn{bottom:1.5rem;left:1.5rem}}.show-status-btn{bottom:1rem;right:1rem}@media (min-width:768px){.show-status-btn{bottom:1.5rem;right:1.5rem}}.show-controls-btn:hover,.show-status-btn:hover{color:var(--foreground);border-color:var(--primary-accent);background:var(--card);box-shadow:0 8px 25px rgba(var(--primary-rgb),.3);transform:translateY(-2px)}.show-controls-btn:focus-visible,.show-status-btn:focus-visible{outline:2px solid var(--primary-accent);outline-offset:2px}.control-buttons{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:.875rem;background:rgba(255,255,255,.1);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.1);z-index:100;min-width:240px;max-width:calc(100vw - 2rem)}@media (min-width:768px){.control-buttons{bottom:2rem;gap:1rem;padding:1rem;border-radius:16px;min-width:280px;max-width:none}}.btn-control{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;height:2.5rem;padding:0 .75rem;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#fafafa;border-radius:10px;font-size:.8rem;font-weight:600;font-family:inherit;text-decoration:none;outline:none;cursor:pointer;transition:all .2s ease;overflow:hidden;user-select:none;white-space:nowrap;width:100%}@media (min-width:768px){.btn-control{height:2.75rem;padding:0 1rem;border-radius:12px;font-size:.875rem;gap:.5rem}}.btn-control:focus-visible{outline:2px solid var(--primary-accent);outline-offset:2px}.btn-control:hover:not(:disabled){background:rgba(59,130,246,.8);box-shadow:0 4px 12px rgba(59,130,246,.25)}.btn-control-active,.btn-control:hover:not(:disabled){color:#ffffff;border-color:#3b82f6;transform:translateY(-1px)}.btn-control-active{background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 4px 14px rgba(59,130,246,.3)}.btn-control-active:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 20px rgba(59,130,246,.4);transform:translateY(-2px)}.btn-control-secondary{background:rgba(100,116,139,.8);color:#cbd5e1;border-color:rgba(100,116,139,.5)}.btn-control-secondary:hover:not(:disabled){background:rgba(59,130,246,.8);color:#ffffff;border-color:#3b82f6;box-shadow:0 4px 14px rgba(59,130,246,.25)}.btn-control:disabled{opacity:.5;cursor:not-allowed;background:rgba(100,116,139,.3);color:rgba(203,213,225,.6);border-color:rgba(100,116,139,.3);transform:none;box-shadow:none;pointer-events:none}.btn-control .btn-icon{flex-shrink:0}.btn-control .btn-text{font-weight:600;letter-spacing:.025em}@keyframes slideInRight{0%{opacity:0;transform:translateX(30px) scale(.9)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:480px){.disassembly-instructions{top:.5rem;left:.5rem;right:.5rem;padding:.875rem;border-radius:10px}.status-indicator{top:auto;bottom:calc(80px);left:.5rem;right:.5rem;padding:1rem;border-radius:10px;min-width:100%}.ai-assistant-btn{top:.5rem;font-size:.75rem;padding:.625rem 1rem;border-radius:14px}.control-buttons{bottom:.5rem;left:.5rem;right:.5rem;transform:none;gap:.5rem;padding:.75rem;border-radius:10px;min-width:calc(100vw - 1rem)}.btn-control{height:2.25rem;font-size:.75rem;gap:.25rem;padding:0 .5rem;border-radius:8px}.show-controls-btn,.show-status-btn{bottom:5rem;padding:.625rem .875rem;font-size:.7rem;border-radius:16px}.show-controls-btn{left:.5rem}.show-status-btn{right:.5rem}.status-label{font-size:.65rem}.status-value{font-size:.7rem}.distance-number-input{width:50px;height:18px;font-size:.65rem}.distance-value,.opacity-value{font-size:.6rem;min-width:1.75rem}.color-picker{width:24px;height:18px}}@media (prefers-contrast:high){.disassembly-instructions,.status-indicator{border-width:2px;box-shadow:none}.btn-control,.instructions-close-btn,.show-controls-btn,.show-status-btn,.status-close-btn{border-width:2px}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.ai-assistant-btn,.control-buttons,.disassembly-instructions,.show-controls-btn,.show-status-btn,.status-indicator{display:none!important}}.value-input{width:3.5rem;height:1.75rem;font-size:.7rem;font-weight:600;color:var(--foreground);background:var(--card);border:1px solid var(--border);border-radius:4px;padding:0 .25rem;text-align:center;outline:none;transition:all .2s ease}.value-input:focus{border-color:var(--primary-accent);box-shadow:0 0 0 2px rgba(var(--primary-rgb),.1)}.value-input:hover{border-color:var(--muted-foreground)}@media (min-width:768px){.value-input{width:4rem;height:2rem;font-size:.75rem}}.node-count{font-size:.7rem;font-weight:500;color:var(--muted-foreground);opacity:.8}@media (min-width:768px){.node-count{font-size:.75rem}}.tree-toggle-btn{position:fixed;top:.75rem;left:.75rem;background:var(--card);border:1px solid var(--border);color:var(--foreground);padding:.5rem;border-radius:8px;cursor:pointer;z-index:40;transition:all .2s ease;box-shadow:0 2px 8px rgba(0,0,0,.1);display:flex;align-items:center;justify-content:center;outline:none;width:2.5rem;height:2.5rem}@media (min-width:768px){.tree-toggle-btn{top:1.5rem;left:1.5rem;width:2.75rem;height:2.75rem;border-radius:10px}}.tree-toggle-btn:hover{background:var(--muted);border-color:var(--primary-accent);transform:translateX(2px)}.tree-toggle-btn:focus-visible{outline:2px solid var(--primary-accent);outline-offset:2px}.object-tree-panel{position:fixed;top:.75rem;left:.75rem;bottom:.75rem;width:calc(100% - 1.5rem);max-width:280px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.15);backdrop-filter:blur(20px);z-index:40;display:flex;flex-direction:column;overflow:hidden;animation:slideInLeft .3s ease-out}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@media (min-width:768px){.object-tree-panel{top:1.5rem;left:1.5rem;bottom:1.5rem;max-width:320px;border-radius:16px}}.tree-header{justify-content:space-between;padding:.875rem 1rem;border-bottom:1px solid var(--border);background:var(--muted);flex-shrink:0;gap:.5rem}.tree-header,.tree-header-left{display:flex;align-items:center}.tree-header-left{flex:1;min-width:0}.tree-header-right{flex-shrink:0}.tree-header-right,.tree-title{display:flex;align-items:center;gap:.5rem}.tree-title{margin:0;font-size:.875rem;font-weight:700;color:var(--foreground)}@media (min-width:768px){.tree-title{font-size:1rem}}.tree-header-stat{display:inline-flex;align-items:center;gap:.25rem;margin:.2rem;font-size:.5rem;font-weight:600;color:var(--muted-foreground);background:var(--card);padding:.25rem .5rem;border-radius:4px;border:1px solid var(--border);white-space:nowrap}@media (min-width:768px){.tree-header-stat{font-size:.75rem;padding:.3rem .6rem}}.tree-close-btn{background:transparent;border:1px solid var(--border);color:var(--muted-foreground);padding:.5rem;border-radius:6px;cursor:pointer;transition:all .2s ease;outline:none;display:flex;align-items:center;justify-content:center}.tree-close-btn:hover{color:var(--foreground);border-color:var(--primary-accent);background:var(--card)}.tree-close-btn:focus-visible{outline:2px solid var(--primary-accent);outline-offset:2px}.tree-stats{display:flex-wrap;align-items:center;gap:.5rem;padding:.75rem 1rem;background:rgba(var(--primary-rgb),.05);border-bottom:1px solid var(--border);font-size:.8rem;color:var(--muted-foreground);flex-shrink:0}.tree-stat{font-weight:600}.tree-stat-separator{opacity:.5}.tree-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:.5rem}.tree-content::-webkit-scrollbar{width:8px}.tree-content::-webkit-scrollbar-track{background:var(--muted);border-radius:4px}.tree-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.tree-content::-webkit-scrollbar-thumb:hover{background:var(--muted-foreground)}.tree-node{margin-bottom:.25rem}.tree-node-content{display:flex;align-items:center;gap:.375rem;padding:.375rem .5rem;border-radius:6px;cursor:pointer;transition:all .15s ease;font-size:.8rem;color:var(--foreground)}.tree-node-content:hover{background:var(--muted)}.tree-expand-btn{background:transparent;border:none;color:var(--muted-foreground);padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;width:16px;height:14px;flex-shrink:0;outline:none;transition:transform .2s ease}.tree-expand-btn:hover{color:var(--foreground)}.tree-spacer{width:16px;height:16px;flex-shrink:0}.tree-node-icon{font-size:.35rem;opacity:.7}.tree-node-name{font-size:.75rem;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.tree-node-badge{background:rgba(var(--primary-rgb),.15);color:var(--primary-accent);padding:.125rem .375rem;border-radius:4px;font-size:.35rem;font-weight:700;flex-shrink:0}.tree-node-children{margin-left:1rem}.three21-bot-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:overlayFadeIn .4s ease}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.three21-bot-container{width:100%;max-width:90vw;height:90vh;background:#1f2937;border:1px solid #374151;border-radius:20px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,.15);animation:containerSlideIn .3s ease}.three21-bot-container:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:#3b82f6}@keyframes containerSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.three21-bot-header{background:#111827;border-bottom:1px solid #374151;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.three21-bot-header:before{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:#3b82f6;opacity:.2}.header-content{gap:.75rem;flex:1}.bot-avatar,.header-content{display:flex;align-items:center}.bot-avatar{width:3rem;height:3rem;background:#3b82f6;border-radius:14px;justify-content:center;font-size:1.25rem;color:white;box-shadow:0 4px 12px rgba(59,130,246,.25)}.bot-info h3{color:#f9fafb;margin:0;font-size:1.125rem;font-weight:700}.bot-status{color:#9ca3af;font-size:.8rem;display:block;margin-top:.25rem;font-weight:500}.selected-part{background:#eff6ff;border:1px solid #dbeafe;padding:.5rem .875rem;border-radius:12px;color:#3b82f6;font-size:.8rem;font-weight:600}.sizecx{line-height:1}.close-button,.sizecx{font-size:2rem;display:flex;align-items:center;justify-content:center}.close-button{background:#f3f4f6;border:1px solid #d1d5db;color:#1d3e75ff;width:2.5rem;height:2.5rem;border-radius:12px;cursor:pointer;margin-left:.5rem;transition:all .2s ease;padding:0}.header-controls{gap:.5rem}.header-controls,.tts-button{display:flex;align-items:center}.tts-button{background:#f3f4f6;border:1px solid #d1d5db;color:#6b7280;width:2.5rem;height:2.5rem;border-radius:12px;cursor:pointer;font-size:1rem;transition:all .2s ease;justify-content:center}.tts-button.active{background:#10b981;border-color:#059669;color:white}.tts-button:hover{background:#e5e7eb;border-color:#9ca3af}.tts-button.active:hover{background:#059669}.tts-button:disabled{opacity:.5;cursor:not-allowed}.speech-button{background:#f3f4f6;border:1px solid #d1d5db;color:#6b7280;width:2.5rem;height:2.5rem;border-radius:12px;cursor:pointer;font-size:1rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.speech-button.listening{background:#ef4444;border-color:#dc2626;color:white}.speech-button:hover{background:#e5e7eb;border-color:#9ca3af}.speech-button.listening:hover{background:#dc2626}.speech-button:disabled{opacity:.5;cursor:not-allowed}.icon-pulse{animation:pulse 1.5s infinite}.input-container{flex:1;position:relative;width:full}.speech-feedback{position:absolute;top:-3.5rem;left:0;right:0;background:#1f2937;border:1px solid #10b981;border-radius:12px;padding:.75rem;font-size:.8rem;color:#10b981;z-index:1000;box-shadow:0 4px 12px rgba(16,185,129,.15)}.speech-status{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.speech-indicator{font-weight:600;display:flex;align-items:center;gap:.5rem}.auto-send-indicator{font-size:.7rem;color:#f59e0b;font-weight:500;background:rgba(245,158,11,.1);padding:.25rem .5rem;border-radius:6px;border:1px solid rgba(245,158,11,.3)}.interim-text{color:#9ca3af;font-style:italic;background:#374151;padding:.5rem;border-radius:8px;border:1px solid #4b5563;margin-top:.5rem}.speech-error{position:absolute;top:-3rem;left:0;right:0;background:#1f2937;border:1px solid #ef4444;border-radius:12px;padding:.75rem;font-size:.8rem;color:#ef4444;z-index:1000;box-shadow:0 4px 12px rgba(239,68,68,.15)}.icon-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.close-button:hover{background:#e5e7eb;color:#374151}.three21-bot-messages{flex:1;overflow-y:auto;padding:1rem 1.5rem;gap:1rem;background:#1f2937}.message,.three21-bot-messages{display:flex;flex-direction:column}.message{gap:.375rem}.message.user{align-self:flex-end;align-items:flex-end;max-width:80%}.message.assistant{width:100%;align-self:flex-start;align-items:flex-start}.message-content{padding:1rem 1.25rem;border-radius:16px;font-size:1rem;line-height:1.5;position:relative;word-wrap:break-word}.message.user .message-content{width:100%;max-width:100%;background:linear-gradient(135deg,#3b82f6,#2563eb);color:white;border-bottom-right-radius:4px;box-shadow:0 4px 12px rgba(59,130,246,.25)}.message.assistant .message-content{width:100%;background:#1f2937;color:#f9fafb;border:1px solid #374151;border-bottom-left-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.message-timestamp{font-size:.7rem;color:#9ca3af;margin:0 1.25rem;font-weight:500}.screenshot-indicator{margin-top:.75rem;padding:.5rem .875rem;background:#eff6ff;border:1px solid #dbeafe;border-radius:10px;font-size:.8rem;color:#3b82f6;font-weight:600;display:inline-flex;align-items:center;gap:.5rem}.message-screenshot{margin-bottom:.75rem;overflow:hidden}.screenshot-image{width:100%;max-width:400px;height:auto;display:block;border-radius:10px}@media (max-width:768px){.screenshot-image{max-width:100%}}.typing-indicator{display:inline-flex;gap:.3rem;align-items:center;padding:.625rem 1rem;background:#1f2937;border:1px solid #374151;border-radius:16px;border-bottom-left-radius:4px}.typing-indicator span{width:.4rem;height:.4rem;background:#3b82f6;border-radius:50%;animation:typingBounce 1.4s ease-in-out infinite}.typing-indicator span:first-child{animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typingBounce{0%,80%,to{opacity:.4;transform:scale(.8) translateY(0)}40%{opacity:1;transform:scale(1.1) translateY(-3px)}}.three21-bot-input{background:#111827;border-top:1px solid #374151;padding:1rem 1.5rem}.quick-actions{display:flex;gap:.75rem;margin-bottom:.75rem;align-items:center;flex-wrap:wrap}.quick-action-btn{background:#1f2937;border:1px solid #374151;color:#f9fafb;padding:.5rem .875rem;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;display:flex;align-items:center;gap:.5rem}.quick-action-btn:hover:not(:disabled){background:#374151;border-color:#9ca3af;transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.quick-action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.screenshot-ready{color:#10b981;font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.input-form{display:flex;align-items:flex-end}.message-input{flex:1;width:100%;background:#1f2937;border:1px solid #374151;border-radius:14px;padding:.875rem 1rem;color:#f9fafb;outline:none;transition:all .2s ease;resize:none;min-height:2.75rem;max-height:7rem;line-height:1.4}.message-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.1)}.message-input::placeholder{color:#6b7280}.send-button{background:#3b82f6;border:none;color:white;width:2.75rem;height:2.75rem;border-radius:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(59,130,246,.25);flex-shrink:0}.send-button:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px rgba(59,130,246,.3)}.send-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.mic-button{background:#1f2937;border:1px solid #374151;color:#9ca3af;width:2.75rem;height:2.75rem;border-radius:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mic-button:hover:not(:disabled){background:#374151;color:#f9fafb;border-color:#9ca3af;transform:translateY(-1px)}.mic-button.listening{background:#ef4444;border-color:#ef4444;color:white;animation:pulse 1.5s infinite}.mic-button:disabled{opacity:.5;cursor:not-allowed}.loader-spin{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:white;border-radius:50%;animation:spin .8s linear infinite}.tool-call-container{background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:1rem;margin:.75rem 0;box-shadow:0 4px 12px rgba(0,0,0,.2)}.tool-call-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #334155}.tool-icon{font-size:1.25rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.tool-name{font-weight:600;color:#f1f5f9;font-size:.9rem}.tool-status{margin-left:auto;font-size:.75rem;padding:.25rem .75rem;border-radius:12px}.tool-status.searching{background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);animation:pulse 1.5s infinite}.tool-status.complete{background:rgba(34,197,94,.15);color:#4ade80;border:1px solid rgba(34,197,94,.3)}.tool-call-body{gap:.75rem}.tool-call-body,.tool-param{display:flex;flex-direction:column}.tool-param{gap:.25rem}.tool-params-row{display:flex;flex-wrap:wrap;gap:.75rem}.tool-param-small{display:flex;align-items:center;gap:.5rem;background:rgba(30,41,59,.6);padding:.5rem .75rem;border-radius:8px;border:1px solid #334155}.param-label{color:#94a3b8;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.param-value{color:#e2e8f0;font-size:.85rem;font-weight:500}.tool-result{margin-top:.5rem;border-top:1px solid #334155;padding-top:.75rem}.result-success{color:#4ade80}.result-count{font-weight:600;font-size:.85rem;margin-bottom:.75rem;padding:.5rem .75rem;background:rgba(34,197,94,.1);border-left:3px solid #4ade80;border-radius:4px}.paper-preview,.result-preview{display:flex;flex-direction:column;gap:.5rem}.paper-preview{padding:.75rem;background:rgba(30,41,59,.5);border-radius:8px;border:1px solid #334155}.paper-title{color:#f1f5f9;font-size:.85rem;font-weight:500;line-height:1.4}.paper-year{color:#94a3b8;font-size:.75rem;font-weight:400}.paper-citations{color:#fbbf24;font-size:.75rem;font-weight:500}.scholar-results-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem;max-height:500px;overflow-y:auto;padding-right:.5rem}.scholar-results-list::-webkit-scrollbar{width:6px}.scholar-results-list::-webkit-scrollbar-track{background:rgba(30,41,59,.4);border-radius:3px}.scholar-results-list::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}.scholar-results-list::-webkit-scrollbar-thumb:hover{background:#64748b}.scholar-paper-card{display:flex;gap:.75rem;padding:.875rem;background:rgba(30,41,59,.4);border:1px solid #334155;border-radius:8px;transition:all .2s ease}.scholar-paper-card:hover{background:rgba(30,41,59,.6);border-color:#475569;transform:translateX(4px)}.paper-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:white;font-weight:700;font-size:.75rem;border-radius:6px;flex-shrink:0;box-shadow:0 2px 4px rgba(59,130,246,.3)}.paper-content{flex:1;display:flex;flex-direction:column;gap:.5rem;min-width:0;overflow:hidden}.paper-title-link{color:#60a5fa;font-weight:600;font-size:.875rem;line-height:1.4;text-decoration:none;transition:color .2s ease;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto}.paper-title-link:hover{color:#93c5fd;text-decoration:underline}.paper-authors{color:#cbd5e1;font-size:.75rem}.paper-attribution,.paper-authors{line-height:1.4;margin:0;word-wrap:break-word}.paper-attribution{color:#94a3b8;font-size:.7rem;font-style:italic}.paper-snippet{color:#94a3b8;font-size:.75rem;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-wrap:break-word}.paper-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.7rem;align-items:center}.paper-citations,.paper-publication,.paper-source,.paper-type,.paper-year{padding:.25rem .5rem;background:rgba(51,65,85,.5);border-radius:4px;color:#cbd5e1;font-weight:500;white-space:nowrap}.paper-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.paper-links a{font-size:.7rem;color:#60a5fa;text-decoration:none;padding:.25rem .5rem;background:rgba(59,130,246,.1);border-radius:4px;border:1px solid rgba(59,130,246,.3);transition:all .2s ease;white-space:nowrap}.paper-links a:hover{background:rgba(59,130,246,.2);border-color:rgba(59,130,246,.5);color:#93c5fd}@media (max-width:768px){.scholar-paper-card{flex-direction:column;gap:.5rem;padding:.75rem}.paper-number{width:24px;height:24px;font-size:.7rem}.paper-title-link{font-size:.8rem}.paper-attribution,.paper-authors,.paper-snippet{font-size:.7rem}.paper-meta{gap:.375rem;font-size:.65rem}.paper-citations,.paper-links a,.paper-publication,.paper-source,.paper-type,.paper-year{padding:.2rem .4rem;font-size:.65rem}.tool-call-container{padding:.75rem}.scholar-results-list{max-height:400px}}.more-results{color:#60a5fa;font-size:.75rem;font-weight:500;text-align:center;padding:.5rem;background:rgba(59,130,246,.1);border-radius:6px;border:1px dashed #3b82f6}.result-error{color:#f87171;background:rgba(239,68,68,.1);border-left:3px solid #ef4444;border-radius:4px}.result-empty,.result-error{font-size:.85rem;padding:.75rem}.result-empty{color:#94a3b8;text-align:center;background:rgba(30,41,59,.4);border-radius:6px;border:1px dashed #475569}.markdown-h1{font-size:clamp(1.25rem,4vw,1.5rem);margin:1.5rem 0 1rem;font-weight:700;border-bottom:2px solid #374151;padding-bottom:.5rem}.markdown-h1,.markdown-h2{color:#f9fafb;line-height:1.3}.markdown-h2{font-size:clamp(1.1rem,3vw,1.25rem);margin:1.25rem 0 .75rem;font-weight:600;border-bottom:1px solid #374151;padding-bottom:.375rem}.markdown-h3{color:#e5e7eb;font-size:clamp(1rem,2.5vw,1.125rem);margin:1rem 0 .5rem}.markdown-h3,.markdown-h4{font-weight:600;line-height:1.4}.markdown-h4{color:#d1d5db;font-size:1rem;margin:.875rem 0 .375rem}.markdown-h5{color:#d1d5db;font-size:.925rem;margin:.75rem 0 .25rem}.markdown-h5,.markdown-h6{font-weight:600;line-height:1.4}.markdown-h6{color:#9ca3af;font-size:.875rem;margin:.5rem 0 .25rem}.markdown-p{margin:.75rem 0;line-height:1.75;color:#f9fafb;font-size:clamp(.875rem,2vw,.95rem)}.markdown-ol,.markdown-ul{margin:.75rem 0;padding-left:1.5rem;line-height:1.75}.markdown-ol{list-style-type:decimal}.markdown-li{margin:.375rem 0;line-height:1.6;color:#f9fafb;font-size:clamp(.875rem,2vw,.95rem)}.markdown-li::marker{color:#3b82f6;font-weight:600}.markdown-strong{color:#60a5fa;font-weight:700}.markdown-em{color:#93c5fd;font-style:italic}.markdown-code-inline{background:#374151;color:#fbbf24;padding:.15rem .4rem;border-radius:4px;font-family:SF Mono,Monaco,Consolas,Courier New,monospace;font-size:.875em;border:1px solid #4b5563}.tool-status{font-size:.8rem;padding:.5rem .75rem;border-radius:8px;margin:.5rem 0;display:flex;align-items:center;gap:.5rem;font-weight:500}.tool-status.searching{background:rgba(59,130,246,.1);color:#60a5fa;border:1px solid rgba(59,130,246,.2)}.tool-status.success{background:rgba(16,185,129,.1);color:#34d399;border:1px solid rgba(16,185,129,.2)}.tool-status.error{background:rgba(239,68,68,.1);color:#f87171;border:1px solid rgba(239,68,68,.2)}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.markdown-pre{background:#1f2937;border:1px solid #374151;border-radius:8px;padding:1rem;margin:1rem 0;overflow-x:auto;-webkit-overflow-scrolling:touch}.markdown-pre::-webkit-scrollbar{height:8px}.markdown-pre::-webkit-scrollbar-track{background:#111827;border-radius:4px}.markdown-pre::-webkit-scrollbar-thumb{background:#4b5563;border-radius:4px}.markdown-pre::-webkit-scrollbar-thumb:hover{background:#6b7280}.markdown-code-block{background:transparent;color:#e5e7eb;font-family:SF Mono,Monaco,Consolas,Courier New,monospace;font-size:.875rem;line-height:1.6;display:block}.markdown-blockquote{border-left:4px solid #3b82f6;margin:1rem 0;color:#d1d5db;font-style:italic;background:rgba(31,41,55,.5);padding:.75rem 1rem;border-radius:0 8px 8px 0}.markdown-link{color:#60a5fa;text-decoration:none;border-bottom:1px solid transparent;transition:all .2s ease;word-break:break-word}.markdown-link:hover{color:#93c5fd;border-bottom-color:#60a5fa}.markdown-hr{border:none;border-top:2px solid #374151;margin:2rem 0}.markdown-del{color:#9ca3af;text-decoration:line-through}.markdown-checkbox{margin-right:.5rem;accent-color:#3b82f6;width:1rem;height:1rem;vertical-align:middle}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.25rem 0;border-radius:8px;border:1px solid #374151;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.table-wrapper::-webkit-scrollbar{height:8px}.table-wrapper::-webkit-scrollbar-track{background:#111827;border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background:#4b5563;border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:#6b7280}.markdown-table{width:auto;border-collapse:collapse;font-size:.875rem;background:#1f2937}.markdown-thead{background:#111827}.markdown-th{padding:.875rem 1rem;text-align:left;font-weight:600;color:#60a5fa;border-bottom:2px solid #3b82f6;white-space:nowrap;font-size:.875rem}.markdown-td{padding:.75rem 1rem;border-bottom:1px solid #374151;color:#f9fafb;line-height:1.6}.markdown-tr:hover{background:#374151}.markdown-tbody .markdown-tr:last-child .markdown-td{border-bottom:none}.message-content table{width:auto;border-collapse:collapse;margin:1rem 0;font-size:.875rem;background:#1f2937;border-radius:8px;overflow:hidden}.message-content table::-webkit-scrollbar{height:8px}.message-content table::-webkit-scrollbar-track{background:#374151;border-radius:4px}.message-content table::-webkit-scrollbar-thumb{background:#4b5563;border-radius:4px}.message-content table::-webkit-scrollbar-thumb:hover{background:#6b7280}.message-content thead{background:#111827}.message-content th{padding:.75rem 1rem;text-align:left;font-weight:600;color:#3b82f6;border-bottom:2px solid #3b82f6}.message-content td{padding:.75rem 1rem;border-bottom:1px solid #374151;color:#f9fafb;line-height:1.5}.message-content tbody tr{transition:background .15s ease}.message-content tbody tr:hover{background:#374151}.message-content tbody tr:last-child td{border-bottom:none}.message-content>table{max-width:auto}.three21-bot-messages::-webkit-scrollbar{width:6px}.three21-bot-messages::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.three21-bot-messages::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px;transition:background .2s ease}.three21-bot-messages::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width:768px){.three21-bot-overlay{padding:.5rem}.three21-bot-container{height:90dvh;border-radius:1rem;max-width:none}.three21-bot-header{padding:1rem 1.25rem}.three21-bot-messages{padding:1rem 1.25rem;gap:1rem}.three21-bot-input{padding:1rem 1.25rem}.message-content{max-width:95%;padding:1rem;font-size:.875rem;line-height:1.5}.header-content{gap:.75rem}.selected-part{display:none}.quick-actions{gap:.5rem;margin-bottom:1rem}.bot-avatar{width:3rem;height:3rem;font-size:1.125rem;border-radius:.875rem}.speech-feedback{top:-4rem;padding:1rem;font-size:.875rem}.interim-text{padding:.75rem;margin-top:.75rem;font-size:.8rem}.close-button,.speech-button,.tts-button{width:2.75rem;height:2.75rem;border-radius:.75rem}}.quick-action-btn{padding:.5rem .75rem;font-size:.75rem}.message-input{padding:.75rem 1rem;font-size:.8rem;min-height:2.5rem;border-radius:12px}.send-button{font-size:1rem}.mic-button,.send-button{width:2.5rem;height:2.5rem;border-radius:12px}.input-form{gap:.5rem}.message-timestamp{font-size:.65rem;margin:0 1rem}.screenshot-indicator{margin-top:.5rem;padding:.375rem .625rem;font-size:.7rem;border-radius:8px}.screenshot-ready{font-size:.7rem}.markdown-h1{font-size:1.125rem;margin:0 0 .5rem}.markdown-h2{font-size:1rem;margin:1rem 0 .5rem}.markdown-h3{font-size:.875rem;margin:.75rem 0 .375rem}.markdown-p{margin:.5rem 0;line-height:1.5;font-size:.8rem}.markdown-ul{margin:.5rem 0;padding-left:1rem}.markdown-li{margin:.25rem 0;line-height:1.4;font-size:.8rem}.markdown-code{padding:.125rem .375rem;font-size:.7rem;border-radius:4px}.message-content table{font-size:.75rem;margin:.75rem 0;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.message-content td,.message-content th{padding:.5rem .75rem;font-size:.75rem}.message-content th{white-space:nowrap;font-size:.7rem}.typing-indicator{padding:.5rem}.typing-indicator span{width:.375rem;height:.375rem}@media (max-width:480px){.three21-bot-overlay{padding:.25rem}.three21-bot-container{height:90dvh;border-radius:12px}.three21-bot-header{padding:.5rem .75rem}.three21-bot-messages{padding:.5rem .75rem;gap:.75rem}.message-content,.three21-bot-input{padding:.5rem .75rem}.message-content{font-size:.75rem;line-height:1.4}.bot-avatar{width:2rem;height:2rem;border-radius:10px}.bot-avatar,.bot-info h3{font-size:.875rem}.bot-status{font-size:.65rem}.close-button{width:1.75rem;height:1.75rem;font-size:.75rem;border-radius:8px}.quick-action-btn{padding:.375rem .5rem;font-size:.65rem}.message-input{padding:.5rem .75rem;font-size:.75rem;min-height:2.25rem;border-radius:10px}.send-button{font-size:.875rem}.mic-button,.send-button{width:2.25rem;height:2.25rem;border-radius:10px}.quick-actions{margin-bottom:.5rem}.message-timestamp{font-size:.6rem;margin:0 .75rem}.markdown-h1{font-size:1rem;margin:0 0 .375rem}.markdown-h2{font-size:.875rem;margin:.75rem 0 .375rem}.markdown-h3{font-size:.8rem;margin:.5rem 0 .25rem}.markdown-p{margin:.375rem 0;line-height:1.4;font-size:.75rem}.markdown-li{margin:.125rem 0;font-size:.75rem}.markdown-ul{padding-left:.75rem}.markdown-code{font-size:.65rem;padding:.1rem .25rem}.message-content table{font-size:.7rem;margin:.5rem 0}.message-content td,.message-content th{padding:.375rem .5rem;font-size:.7rem}.message-content th{font-size:.65rem}}.unread-badge{position:absolute;top:-4px;right:-4px;background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:white;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;box-shadow:0 2px 8px rgba(238,90,111,.4);animation:pulse 2s infinite}.bot-avatar{position:relative}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}