.media-library{display:flex;flex-direction:column;height:100%;overflow:hidden}.media-library .media-library-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle)}.media-library .media-library-header h3{font-size:.9rem;font-weight:600;color:var(--foreground);margin:0}.media-library .media-library-header .media-count{font-size:.75rem;color:var(--foreground-muted)}.media-library .media-grid{display:grid;grid-template-columns:repeat(3,1fr);align-content:start;gap:.5rem;padding:.75rem;overflow-y:auto;flex:1}.media-library .media-grid-item{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;cursor:pointer;background:var(--surface-hover);border:1px solid var(--border-subtle);transition:transform .2s,border-color .2s}.media-library .media-grid-item:hover{transform:scale(1.03);border-color:var(--accent)}.media-library .media-grid-item:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.media-library .media-grid-item img{width:100%;height:100%;object-fit:cover}.media-library .media-grid-item .media-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:var(--foreground-muted)}.media-library .media-grid-item .media-type-badge{position:absolute;bottom:4px;right:4px;background:rgba(0,0,0,.7);color:#fff;font-size:.6rem;font-weight:500;padding:2px 5px;border-radius:4px;text-transform:uppercase}.media-library .load-more-btn{margin:.75rem;padding:.5rem;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--foreground-muted);font-size:.8rem;cursor:pointer;transition:border-color .2s,color .2s}.media-library .load-more-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.media-library .load-more-btn:disabled{opacity:.5;cursor:default}.media-library .load-more-btn:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.media-library .media-empty{height:100%;color:var(--foreground-muted);font-size:.85rem;text-align:center}.media-library .media-empty,.media-preview-overlay{display:flex;align-items:center;justify-content:center;padding:2rem}.media-preview-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);z-index:1000;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.media-preview-modal{position:relative;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;border-radius:12px;overflow:visible;background:var(--surface);box-shadow:0 20px 60px rgba(0,0,0,.5)}.media-preview-modal .preview-close{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;border:none;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:background .2s,transform .2s}.media-preview-modal .preview-close:hover{background:rgba(0,0,0,.8);transform:scale(1.1)}.media-preview-modal .preview-content{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:300px;background:#000;border-radius:12px 12px 0 0}.media-preview-modal .preview-content img,.media-preview-modal .preview-content video{max-width:100%;max-height:70vh;object-fit:contain}.media-preview-modal .preview-content .preview-placeholder{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--foreground-muted);padding:3rem}.media-preview-modal .preview-content .preview-placeholder .preview-file-icon{font-size:3rem}.media-preview-modal .preview-footer{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-top:1px solid var(--border-subtle);background:var(--surface);border-radius:0 0 12px 12px}.media-preview-modal .preview-footer .preview-filename{font-size:.8rem;color:var(--foreground-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.media-preview-modal .preview-footer .preview-attach-btn{padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:background .2s,transform .2s}.media-preview-modal .preview-footer .preview-attach-btn:hover{background:#6d28d9;transform:scale(1.02)}.media-preview-modal .preview-footer .preview-attach-btn:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.media-preview-modal .preview-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.3);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;transition:background .2s,transform .2s,border-color .2s}.media-preview-modal .preview-nav:hover{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.6);transform:translateY(-50%) scale(1.1)}.media-preview-modal .preview-nav.prev{left:-4rem}.media-preview-modal .preview-nav.next{right:-4rem}.preview-counter{margin-left:.75rem;font-size:.7rem;color:var(--foreground-muted);opacity:.7}.chat-sidebar{width:280px;min-width:280px;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;overflow:hidden}.chat-sidebar .sidebar-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}.chat-sidebar .sidebar-tabs .sidebar-tab{flex:1;padding:.75rem .5rem;background:none;border:none;color:var(--foreground-muted);font-size:.8rem;font-weight:500;cursor:pointer;position:relative;transition:color .2s}.chat-sidebar .sidebar-tabs .sidebar-tab:hover{color:var(--foreground)}.chat-sidebar .sidebar-tabs .sidebar-tab.active{color:var(--accent)}.chat-sidebar .sidebar-tabs .sidebar-tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}.chat-sidebar .sidebar-tabs .sidebar-tab:focus-visible{outline:2px solid var(--accent-light);outline-offset:-2px}.chat-sidebar [role=tabpanel]{display:flex;flex-direction:column;flex:1;overflow:hidden}.chat-sidebar .new-chat-btn{margin:1rem;padding:.75rem;background:var(--accent);color:white;border:none;border-radius:8px;font-weight:500;font-size:.875rem;cursor:pointer;transition:background .2s,transform .2s}.chat-sidebar .new-chat-btn:hover{background:#6d28d9;transform:scale(1.02)}.chat-sidebar .new-chat-btn:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.chat-sidebar .sidebar-loading{padding:.75rem 1rem;font-size:.8rem;color:var(--foreground-muted);text-align:center}.chat-sidebar .conversation-list{flex:1;overflow-y:auto}.chat-sidebar .conversation-item{padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;transition:background .2s,padding-left .2s,border-left .2s}.chat-sidebar .conversation-item:hover{background:var(--surface-hover)}.chat-sidebar .conversation-item.active{background:var(--surface-raised);border-left:3px solid var(--accent);padding-left:calc(1rem - 3px)}.chat-sidebar .conversation-item:focus-visible{outline:2px solid var(--accent-light);outline-offset:-2px}.chat-sidebar .conversation-item .conv-title{font-size:.85rem;color:var(--foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:.5rem}.chat-sidebar .conversation-item .conv-title-input{background:transparent;border:1px solid var(--accent);border-radius:4px;color:var(--foreground);font-size:.85rem;padding:2px 4px;width:100%;outline:none}.chat-sidebar .conversation-item .delete-btn{opacity:0;background:none;border:none;padding:.25rem;border-radius:4px;color:var(--foreground-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s,color .2s,transform .2s}.chat-sidebar .conversation-item .delete-btn:hover{color:#ef4444;transform:scale(1.2)}.chat-sidebar .conversation-item .delete-btn:focus-visible{opacity:1;outline:2px solid var(--accent-light);outline-offset:2px}.chat-sidebar .conversation-item:hover .delete-btn{opacity:1}.msg-feedback{display:flex;align-items:center;gap:.4rem;margin-top:.5rem;flex-wrap:wrap}.msg-feedback__label{font-size:.75rem;color:var(--foreground-muted);margin-right:.15rem}.msg-feedback__btn{border:1px solid var(--border);background:transparent;border-radius:6px;padding:.15rem .4rem;font-size:.85rem;line-height:1;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.msg-feedback__btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-glow);transform:translateY(-1px)}.msg-feedback__btn:disabled{opacity:.5;cursor:default}.msg-feedback__btn.is-active{border-color:var(--accent);background:var(--accent-glow)}.msg-feedback__error{font-size:.72rem;color:#ef4444}.msg-feedback--done{margin-top:.5rem;font-size:.75rem;color:var(--foreground-muted)}.msg-feedback-modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);padding:1rem}.msg-feedback-modal{background:var(--surface,#1a1825);border:1px solid var(--border);border-radius:12px;width:100%;max-width:460px;padding:1.25rem 1.5rem 1.5rem;box-shadow:0 12px 40px rgba(0,0,0,.4)}.msg-feedback-modal__title{margin:0 0 .5rem;font-size:1.1rem;color:var(--foreground)}.msg-feedback-modal__note{margin:0 0 1rem;font-size:.78rem;line-height:1.5;color:var(--foreground-muted)}.msg-feedback-modal__form{display:flex;flex-direction:column;gap:.9rem}.msg-feedback-modal__field{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--foreground)}.msg-feedback-modal__field select,.msg-feedback-modal__field textarea{border:1px solid var(--border);border-radius:8px;background:var(--surface-raised,#221f30);color:var(--foreground);padding:.5rem .6rem;font-size:.85rem;font-family:inherit;resize:vertical}.msg-feedback-modal__field select:focus,.msg-feedback-modal__field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.msg-feedback-modal__error{font-size:.78rem;color:#ef4444}.msg-feedback-modal__actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.25rem}.msg-feedback-modal__cancel{border:1px solid var(--border);background:transparent;color:var(--foreground);border-radius:8px;padding:.45rem .9rem;font-size:.85rem;cursor:pointer}.msg-feedback-modal__cancel:disabled{opacity:.5;cursor:default}.msg-feedback-modal__submit{border:none;background:#7c3aed;color:#fff;border-radius:8px;padding:.45rem 1rem;font-size:.85rem;cursor:pointer;transition:background .15s ease}.msg-feedback-modal__submit:hover:not(:disabled){background:#6d28d9}.msg-feedback-modal__submit:disabled{opacity:.6;cursor:default}.chat-thread{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.chat-thread .messages-area{flex:1;overflow-y:auto;padding:2rem 4rem}.chat-thread .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--foreground-muted)}.chat-thread .empty-state h2{font-size:1.5rem;margin-bottom:1rem;color:var(--foreground)}.chat-thread .empty-state .suggestions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem;justify-content:center}.chat-thread .empty-state .suggestion-chip{padding:.5rem 1rem;border:1px solid var(--border);border-radius:8px;font-size:.85rem;cursor:pointer;background:transparent;color:var(--foreground);transition:border-color .2s,background .2s,transform .2s}.chat-thread .empty-state .suggestion-chip:hover{border-color:var(--accent);background:var(--accent-glow);transform:translateY(-2px)}.chat-thread .chat-message{display:flex;margin-bottom:.75rem}.chat-thread .chat-message.user{justify-content:flex-end}.chat-thread .chat-message.assistant{justify-content:flex-start}.chat-thread .chat-message.error{justify-content:center}.chat-thread .chat-bubble{max-width:75%;padding:.85rem 1.15rem;border-radius:16px;font-size:.9rem;line-height:1.6;word-wrap:break-word}.chat-thread .chat-message.user .chat-bubble{background:#7c3aed;color:white;border-bottom-right-radius:2px;box-shadow:0 2px 6px rgba(124,58,237,.3)}.chat-thread .chat-message.user .chat-bubble p{margin:0}.chat-thread .chat-message.assistant .chat-bubble{background:var(--surface-raised,#221f30);border:1px solid var(--border);color:var(--foreground);border-bottom-left-radius:2px;box-shadow:0 2px 6px rgba(0,0,0,.15)}.chat-thread .chat-message.assistant .chat-bubble h1,.chat-thread .chat-message.assistant .chat-bubble h2,.chat-thread .chat-message.assistant .chat-bubble h3{margin-top:.75rem;margin-bottom:.5rem;color:var(--foreground)}.chat-thread .chat-message.assistant .chat-bubble h1{font-size:1.1rem}.chat-thread .chat-message.assistant .chat-bubble h2{font-size:1rem}.chat-thread .chat-message.assistant .chat-bubble h3{font-size:.95rem}.chat-thread .chat-message.assistant .chat-bubble p{margin:.4rem 0}.chat-thread .chat-message.assistant .chat-bubble ol,.chat-thread .chat-message.assistant .chat-bubble ul{padding-left:1.25rem;margin:.4rem 0}.chat-thread .chat-message.assistant .chat-bubble li{margin:.2rem 0}.chat-thread .chat-message.assistant .chat-bubble strong{color:var(--foreground)}.chat-thread .chat-message.assistant .chat-bubble code{background:rgba(124,58,237,.15);padding:.15rem .4rem;border-radius:4px;font-size:.8rem}.chat-thread .chat-message.assistant .chat-bubble a{color:var(--accent-light,#a78bfa);text-decoration:underline;text-underline-offset:2px;transition:color .2s}.chat-thread .chat-message.assistant .chat-bubble a:hover{color:var(--accent,#7c3aed)}.chat-thread .chat-message.assistant .chat-bubble table{border-collapse:collapse;width:100%;margin:.75rem 0;font-size:.8rem;overflow-x:auto;display:block}.chat-thread .chat-message.assistant .chat-bubble thead{background:rgba(124,58,237,.08)}.chat-thread .chat-message.assistant .chat-bubble th{font-weight:600;text-align:left;padding:.5rem .75rem;border:1px solid var(--border);white-space:nowrap}.chat-thread .chat-message.assistant .chat-bubble td{padding:.5rem .75rem;border:1px solid var(--border)}.chat-thread .chat-message.assistant .chat-bubble tr:nth-child(2n){background:rgba(124,58,237,.03)}.chat-thread .chat-bubble.error-bubble{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#ef4444;font-size:.8rem;max-width:90%}.chat-thread .chat-bubble.loading-bubble{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 1.25rem;background:var(--surface-raised,#221f30);border:1px solid var(--border);border-radius:16px}.chat-thread .chat-bubble.loading-bubble .loading-dots{display:flex;gap:4px;align-items:center}.chat-thread .dot{width:8px;height:8px;border-radius:50%;background:#7c3aed;animation:bounce 1.4s ease-in-out infinite both}.chat-thread .dot:first-child{animation-delay:-.32s}.chat-thread .dot:nth-child(2){animation-delay:-.16s}.chat-thread .dot:nth-child(3){animation-delay:0s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-thread .input-area{padding:1rem 4rem;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:.5rem}.chat-thread .attachment-preview{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin-bottom:.5rem}.chat-thread .attachment-preview .attachment-item{position:relative}.chat-thread .attachment-preview .attachment-item img{max-height:80px;max-width:120px;border-radius:8px;border:1px solid var(--border);object-fit:cover}.chat-thread .attachment-preview .attachment-item .pdf-preview{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-size:.75rem;color:var(--foreground-muted);max-width:150px}.chat-thread .attachment-preview .attachment-item .pdf-preview .pdf-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-thread .attachment-preview .attachment-item .remove-attachment{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:#ef4444;color:white;border:none;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.chat-thread .attachment-preview .attachment-item .remove-attachment:hover{background:#dc2626}.chat-thread .input-row{display:flex;gap:.75rem;align-items:flex-end;width:100%}.chat-thread .attach-btn{display:flex;align-items:center;justify-content:center;padding:.5rem;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--foreground-muted);cursor:pointer;transition:color .2s,border-color .2s,background .2s;align-self:flex-end;min-height:44px}.chat-thread .attach-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-glow)}.chat-thread .message-image{max-width:100%;max-height:200px;border-radius:8px;margin-bottom:.5rem;display:block}.chat-thread .message-attachments{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.chat-thread .message-pdf{font-size:.75rem;padding:.3rem .5rem;background:rgba(255,255,255,.1);border-radius:4px}.chat-thread .chat-input{flex:1;padding:.75rem 1rem;border-radius:12px;border:1px solid var(--border);background:var(--surface-raised);color:var(--foreground);font-size:.9rem;outline:none;transition:border-color .2s;resize:none;font-family:inherit;line-height:1.5;min-height:44px;max-height:200px;overflow-y:hidden}.chat-thread .chat-input:focus{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.1)}.chat-thread .chat-input:disabled{opacity:.5;cursor:not-allowed}.chat-thread .chat-input::placeholder{color:var(--foreground-muted)}.chat-thread .chat-send-btn{padding:.625rem 1.25rem;border-radius:8px;background:#7c3aed;color:white;font-size:.875rem;font-weight:500;border:none;cursor:pointer;transition:background .2s,transform .2s;align-self:flex-end}.chat-thread .chat-send-btn:hover:not(:disabled){background:#6d28d9;transform:scale(1.05)}.chat-thread .chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.chat-thread .drag-overlay{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:var(--background);opacity:.97;border:2px dashed var(--accent);border-radius:12px;margin:1rem;transition:opacity .2s ease}.chat-thread .drag-overlay .drag-overlay-content{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:var(--accent)}.chat-thread .drag-overlay .drag-overlay-content svg{opacity:.8}.chat-thread .drag-overlay .drag-overlay-content h3{font-size:1.25rem;font-weight:600;color:var(--foreground);margin:0}.chat-thread .drag-overlay .drag-overlay-content p{font-size:.85rem;color:var(--foreground-muted);margin:0}.chat-thread .lightbox-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.85);backdrop-filter:blur(4px);animation:lightbox-fade-in .2s ease}.chat-thread .lightbox-close,.chat-thread .lightbox-overlay{display:flex;align-items:center;justify-content:center;cursor:pointer}.chat-thread .lightbox-close{position:absolute;top:1.5rem;right:1.5rem;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.15);border:none;color:white;font-size:1.25rem;font-weight:700;transition:background .2s}.chat-thread .lightbox-close:hover{background:rgba(255,255,255,.3)}.chat-thread .lightbox-image{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.5);cursor:default;animation:lightbox-scale-in .2s ease}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-scale-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.chat-thread .message-image.clickable{cursor:pointer;transition:opacity .2s}.chat-thread .message-image.clickable:hover{opacity:.85}.chat-thread .media-preview-wrapper{position:relative;display:inline-block}.chat-thread .video-thumbnail{max-height:80px;max-width:120px;border-radius:8px;border:1px solid var(--border);object-fit:cover}.chat-thread .video-badge{position:absolute;bottom:4px;left:4px;background:rgba(0,0,0,.7);color:white;font-size:.6rem;padding:2px 6px;border-radius:4px;font-weight:500}.chat-thread .message-media-wrapper{position:relative;display:inline-block}.chat-thread .video-badge-small{position:absolute;bottom:8px;left:8px;background:rgba(0,0,0,.7);color:white;font-size:.7rem;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center}.chat-thread .upload-disclaimer{font-size:.72rem;color:var(--foreground-muted);padding:0 .25rem;opacity:.7;font-style:italic}.chat-thread .elapsed-time{opacity:.6}.chat-thread .elapsed-time,.chat-thread .elapsed-time-live{font-size:.7rem;color:var(--foreground-muted);margin-top:1rem;display:block;text-align:left}.chat-thread .elapsed-time-live{opacity:.7;animation:pulse-opacity 1.5s ease-in-out infinite}@keyframes pulse-opacity{0%,to{opacity:.5}50%{opacity:1}}.ai-disclaimer{text-align:center;font-size:.9rem;color:var(--foreground-muted);padding:.25rem 1rem .8rem;opacity:.6}.chat-page{height:100vh;flex-direction:column}.chat-layout,.chat-page{display:flex;overflow:hidden}.chat-layout{flex:1;position:relative}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:24px;min-width:24px;background:var(--surface);border:none;border-right:1px solid var(--border);color:var(--foreground-muted);cursor:pointer;transition:color .2s,background .2s;padding:0}.sidebar-toggle:hover{color:var(--accent);background:var(--surface-hover)}.sidebar-toggle:focus-visible{outline:2px solid var(--accent-light);outline-offset:-2px}