.chat-inbox{display:flex;height:calc(100vh - 120px);background:#fff;border-radius:.5rem;overflow:hidden;box-shadow:0 2px 8px #0000001a}.chat-sidebar{width:320px;min-width:220px;display:flex;flex-direction:column;background:#fafafa;flex-shrink:0}.chat-version{flex-shrink:0;padding:4px 12px 6px;font-size:.68rem;color:#bbb;text-align:right;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.chat-version:hover{color:#888}.chat-sidebar-resize-handle{width:6px;flex-shrink:0;cursor:col-resize;background:transparent;display:flex;align-items:center;justify-content:center;transition:background .15s;position:relative;z-index:1;border-right:1px solid #e5e5e5}.chat-sidebar-resize-handle:hover,.chat-sidebar-resize-handle.dragging{background:var(--bs-primary-bg-subtle, #e7f1ff);border-right-color:transparent}.chat-sidebar-resize-bar{width:2px;height:40px;border-radius:2px;background:#d0d0d0;transition:background .15s,height .15s}.chat-sidebar-resize-handle:hover .chat-sidebar-resize-bar,.chat-sidebar-resize-handle.dragging .chat-sidebar-resize-bar{background:var(--bs-primary, #0d6efd);height:60px}.chat-sidebar-header{padding:.75rem;border-bottom:1px solid #e5e5e5;background:#fff}.chat-sidebar-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.chat-filters{display:flex;gap:.5rem;margin-bottom:.5rem}.chat-filters .form-select{flex:1}.chat-list{flex:1;overflow-y:auto}.chat-item-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:#fff;flex-shrink:0}.chat-item{padding:.75rem 1rem;border-bottom:1px solid #eee;cursor:pointer;transition:background .15s;display:flex;align-items:flex-start;gap:.75rem;min-height:72px}.chat-item:hover{background:#f0f0f0}.chat-item.active{background:#e3f2fd;border-left:3px solid var(--bs-primary)}.chat-item.unread{background:#fff8e1}.chat-item-icon{font-size:1.5rem;flex-shrink:0}.chat-item-type-icon{margin-right:.2rem;font-size:.9em}.chat-item-content{flex:1;min-width:0}.chat-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.chat-item-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item-time{font-size:.75rem;color:#999;flex-shrink:0}.chat-item-bottom{display:flex;align-items:center;gap:.5rem;min-width:0}.chat-item-preview{font-size:.85rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.unread-badge{background:#dc3545;color:#fff;font-size:.7rem;padding:.2rem .5rem;border-radius:1rem}.chat-item.unread .unread-badge{animation:none}@media (prefers-reduced-motion: no-preference){.chat-inbox:focus-within .chat-item.unread .unread-badge{animation:pulse 1.5s infinite}}@keyframes pulse{0%{box-shadow:0 0 #dc354580}70%{box-shadow:0 0 0 6px #dc354500}to{box-shadow:0 0 #dc354500}}.chat-item-skeleton{display:flex;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid #eee;align-items:center;min-height:72px}.skeleton-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s infinite;flex-shrink:0}.skeleton-content{flex:1;display:flex;flex-direction:column;gap:.4rem;justify-content:center}.skeleton-line{height:12px;border-radius:6px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s infinite}.skeleton-line-name{width:55%}.skeleton-line-preview{width:80%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.chat-main-header{padding:.75rem 1rem;border-bottom:1px solid #e5e5e5;display:flex;justify-content:space-between;align-items:center;background:#fff}.chat-back-btn{color:#555;text-decoration:none;line-height:1;margin-right:.25rem;flex-shrink:0}.chat-back-btn:hover{color:#333}.chat-header-info{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;cursor:pointer}.chat-header-info:hover .chat-header-name{text-decoration:underline}.chat-header-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header-channel{font-size:.75rem;padding:.2rem .5rem;border-radius:.25rem;background:#e0e0e0;white-space:nowrap}.chat-messages{flex:1;overflow-y:auto;padding:1rem;background:#f8f9fa}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.messages-container{display:flex;flex-direction:column}.message{max-width:80%;margin-bottom:.5rem;display:flex;flex-direction:row;align-items:flex-end;align-self:flex-start;gap:.4rem;position:relative}.message-avatar{width:30px;height:30px;border-radius:50%;background:var(--sender-color, #1976d2);color:#fff;font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-user-select:none;user-select:none;letter-spacing:.02em;cursor:pointer}.message-avatar-spacer{width:30px;flex-shrink:0}.message-body{display:flex;flex-direction:column;min-width:0;flex:1}.message-sender-name{font-size:.72rem;font-weight:600;color:var(--sender-color, #1976d2);margin-bottom:2px;padding-left:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-bubble{padding:.5rem .75rem;border-radius:1rem;word-break:break-word}.message[data-mentioned-me=true] .message-bubble{box-shadow:inset 3px 0 #f59f00}.message-text{line-height:1.4}.message-mention{display:inline;padding:0;margin:0;border:none;background:color-mix(in srgb,var(--sender-color, #0d6efd) 14%,transparent);color:var(--sender-color, #0d6efd);font:inherit;font-weight:600;border-radius:.35rem;cursor:pointer}.message[data-mentioned-me=true] .message-mention{background:#fff3bf;color:#8f5b00}.message-mention:hover{opacity:.85}.message.incoming .message-bubble{background:#fff;border:1px solid #e5e5e5;border-bottom-left-radius:.25rem}.message.outgoing .message-bubble{background:#dbeafe;border:1px solid #bfdbfe;border-bottom-left-radius:.25rem}.message-time{font-size:.7rem;color:#999;margin-top:.25rem}[data-chat-type=CHANNEL] .message.incoming .message-bubble{background:transparent;border:none;border-left:3px solid #e0e0e0;border-radius:0;padding-left:.75rem;max-width:100%}[data-chat-type=CHANNEL] .message.incoming{max-width:100%}.load-more-spinner{position:sticky;top:0;z-index:1;background:#f8f9fae6}.chat-input-area{padding:.75rem 1rem;border-top:1px solid #e5e5e5;background:#fff;position:relative}.chat-input-form{display:flex;gap:.5rem;align-items:flex-end}.chat-input-form .form-control{flex:1;resize:none;overflow:hidden;min-height:38px;max-height:120px}.mention-picker{margin-bottom:.35rem;border:1px solid #dfe3e8;border-radius:.75rem;background:#fff;box-shadow:0 10px 30px #0f172a14;overflow:hidden}.mention-picker-hidden{display:none}.mention-picker-item{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.55rem .75rem;border:none;border-bottom:1px solid #eef1f4;background:#fff;text-align:left;cursor:pointer}.mention-picker-item:last-child{border-bottom:none}.mention-picker-item.active,.mention-picker-item:hover{background:#f3f7ff}.mention-picker-primary{font-size:.88rem;font-weight:600;color:#1f2937}.mention-picker-secondary{font-size:.74rem;color:#6b7280}.attachment-file-input{display:none}.chat-attach-btn{flex-shrink:0;padding:.375rem .6rem}.attachment-strip{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem 0;border-bottom:1px solid #e5e5e5;margin-bottom:.5rem;max-height:120px;overflow-y:auto}.attachment-item{position:relative;display:flex;align-items:center;gap:.4rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:.375rem;padding:.3rem .5rem;font-size:.8rem;max-width:160px;min-width:100px}.attachment-item.uploading{border-color:#0d6efd}.attachment-item.done{border-color:#198754}.attachment-item.error{border-color:#dc3545;background:#fff5f5}.attachment-item.waiting{opacity:.6}.attachment-item-preview{width:32px;height:32px;border-radius:.25rem;object-fit:cover;flex-shrink:0;background:#e9ecef}.attachment-item-icon{font-size:1.2rem;flex-shrink:0;line-height:1}.attachment-item-info{flex:1;min-width:0}.attachment-item-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;color:#333}.attachment-item-size{font-size:.7rem;color:#888}.attachment-item-remove{background:none;border:none;padding:0;cursor:pointer;color:#888;font-size:.8rem;line-height:1;flex-shrink:0}.attachment-item-remove:hover{color:#dc3545}.attachment-item-retry{background:none;border:none;padding:0;cursor:pointer;color:#dc3545;font-size:.85rem;line-height:1;flex-shrink:0}.attachment-item-retry:hover{color:#b02a37}.attachment-progress-bar{position:absolute;bottom:0;left:0;height:3px;border-radius:0 0 .375rem .375rem;transition:width .1s linear}.attachment-item.uploading .attachment-progress-bar{background:#0d6efd}.attachment-item.done .attachment-progress-bar{background:#198754;width:100%!important}.attachment-item.error .attachment-progress-bar{background:#dc3545;width:100%!important}@keyframes attachment-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.attachment-item.waiting,.attachment-item.uploading:not(.has-preview){background:linear-gradient(90deg,#f8f9fa 25%,#e9ecef,#f8f9fa 75%);background-size:200% 100%;animation:attachment-shimmer 1.4s infinite}.attachment-item.uploading.has-preview{background:#f8f9fa;animation:none}.attachment-error-hint{font-size:.75rem;color:#dc3545;padding:.25rem 0}.attachment-retry-all-btn{font-size:.75rem;padding:.2rem .5rem;white-space:nowrap;flex-shrink:0}.attachment-img{min-height:120px;background:#e9ecef;border-radius:.375rem;display:block;max-width:100%;object-fit:cover;cursor:pointer}.attachment-img.loaded{background:none;min-height:unset}.attachment-video{min-height:120px;background:#e9ecef;border-radius:.375rem;display:block;max-width:100%}.attachment-video.loaded{background:none;min-height:unset}.attachment-grid{display:grid;gap:2px;margin-top:.25rem;border-radius:.375rem;overflow:hidden;max-width:280px}.attachment-grid.grid-1{grid-template-columns:1fr}.attachment-grid.grid-2,.attachment-grid.grid-3-plus{grid-template-columns:1fr 1fr}.attachment-grid .attachment-img{width:100%;height:130px;object-fit:cover}.attachment-grid-cell-more{position:relative;height:130px;overflow:hidden}.attachment-grid-more{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073;color:#fff;font-weight:700;font-size:1.1rem;cursor:pointer}.attachment-grid .attachment-img-hidden{display:none}.attachment-card{display:flex;align-items:center;gap:.5rem;padding:.5rem .625rem;background:#0000000f;border-radius:.5rem;margin-top:.25rem;min-height:56px;background:#e9ecef;text-decoration:none;color:inherit;max-width:240px;overflow:hidden;transition:background .15s}.attachment-card:hover{background:#dde1e5}.attachment-card.loaded{background:#0000000f;min-height:unset}.message.outgoing .attachment-card{background:#fff3;color:#fff}.message.outgoing .attachment-card:hover{background:#ffffff4d}.attachment-card-icon{font-size:1.5rem;flex-shrink:0;line-height:1}.attachment-card-info{flex:1;min-width:0}.attachment-card-name{font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-card-size{font-size:.7rem;opacity:.7}.attachment-audio{margin-top:.25rem;min-width:300px;max-width:100%}.attachment-item:nth-child(1){animation-delay:0ms}.attachment-item:nth-child(2){animation-delay:.15s}.attachment-item:nth-child(3){animation-delay:.3s}.attachment-item:nth-child(4){animation-delay:.45s}.attachment-item:nth-child(5){animation-delay:.6s}.chat-input-hint{border-top:1px solid #e5e5e5;background:#fff}@media (min-width: 769px){.chat-back-btn{display:none!important}}.chat-inbox>.chat-info-panel{width:300px;min-width:280px;border-left:1px solid #e5e5e5;background:#fff;display:none;flex-direction:column;overflow:hidden}.chat-inbox.info-open>.chat-info-panel{display:flex}.chat-search-result{background:#fff;border:1px solid #e0e0e0;border-radius:.375rem;margin-top:.25rem;max-height:200px;overflow-y:auto;box-shadow:0 2px 8px #00000014}.search-result-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;cursor:pointer;transition:background .15s}.search-result-item:hover{background:#f0f4ff}.search-result-icon{font-size:1.25rem;flex-shrink:0}.search-result-info{flex:1;min-width:0}.new-chat-result-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:.375rem;cursor:pointer;transition:background .15s}.new-chat-result-item:hover{background:#f0f4ff}.new-chat-result-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:600;flex-shrink:0}.new-chat-result-info{flex:1;min-width:0}.new-chat-result-info .fw-semibold{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.new-chat-dropdown{position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #ddd;border-radius:.375rem;box-shadow:0 4px 12px #0000001f;z-index:200;min-width:200px;padding:.25rem 0}.new-chat-dropdown-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:none;border:none;width:100%;text-align:left;font-size:.875rem;cursor:pointer;color:#333;transition:background .15s}.new-chat-dropdown-item:hover{background:#f5f5f5}.client-tags{display:flex;flex-wrap:wrap;gap:.25rem}.client-tag{font-size:.7rem;padding:.15rem .4rem;border-radius:.25rem;background:#e0e0e0}.ws-status{width:8px;height:8px;border-radius:50%;background:#cbd5e1;flex-shrink:0;transition:background .3s}.ws-status.connected{background:#22c55e;box-shadow:0 0 0 2px #22c55e40}.ws-status.connecting{background:#f59e0b;animation:pulse-connecting 1s infinite}@keyframes pulse-connecting{0%,to{opacity:1}50%{opacity:.3}}@media (min-width: 1100px){.chat-inbox.info-open>.chat-info-panel{display:flex}}@media (max-width: 768px){.chat-inbox{position:relative;overflow:hidden;height:calc(100vh - 80px)}.chat-sidebar,.chat-main,.chat-inbox>.chat-info-panel{position:absolute;width:100%;height:100%;transition:transform .28s cubic-bezier(.4,0,.2,1);will-change:transform;backface-visibility:hidden;display:flex;flex-direction:column}.chat-inbox[data-panel=list] .chat-sidebar{transform:translate(0)}.chat-inbox[data-panel=list] .chat-main{transform:translate(100%)}.chat-inbox[data-panel=list] .chat-info-panel{transform:translate(200%)}.chat-inbox[data-panel=chat] .chat-sidebar{transform:translate(-100%)}.chat-inbox[data-panel=chat] .chat-main{transform:translate(0)}.chat-inbox[data-panel=chat] .chat-info-panel{transform:translate(100%)}.chat-inbox[data-panel=info] .chat-sidebar{transform:translate(-200%)}.chat-inbox[data-panel=info] .chat-main{transform:translate(-100%)}.chat-inbox[data-panel=info] .chat-info-panel{transform:translate(0);display:flex!important}.chat-inbox>.chat-info-panel{display:flex;border-left:none;border-right:none;min-width:unset;width:100%}.chat-back-btn{display:inline-flex!important}.chat-sidebar{width:100%!important;min-width:unset}.chat-sidebar-resize-handle{display:none}.message{max-width:85%}}.audio-record-ui{display:none;flex:1;align-items:center;justify-content:space-between;padding:0 .75rem;min-height:38px;background:#fff3f3;border:1px solid #dc3545;border-radius:.375rem;-webkit-user-select:none;user-select:none}.audio-cancel-hint{font-size:.8rem;color:#6c757d;pointer-events:none}.audio-record-timer{font-variant-numeric:tabular-nums;font-weight:500;color:#dc3545}.audio-record-timer.ar-timer-warn{color:#fd7e14;animation:ar-blink 1s ease-in-out infinite}@keyframes ar-blink{0%,to{opacity:1}50%{opacity:.4}}.chat-record-btn{flex-shrink:0;min-width:38px;padding:.375rem .6rem;position:relative;touch-action:none}.chat-record-btn.ar-waiting{animation:ar-pulse .7s ease-in-out infinite;opacity:.75}.chat-record-btn.ar-recording{animation:ar-pulse 1.2s ease-in-out infinite}@keyframes ar-pulse{0%,to{transform:scale(1);box-shadow:0 0 #dc354566}50%{transform:scale(1.1);box-shadow:0 0 0 6px #dc354500}}.chat-record-btn.ar-error .ar-retry-icon{position:absolute;top:3px;right:3px;font-size:.5rem}#chatMessages{touch-action:pan-y}.message-bubble{will-change:transform}.reply-bar{overflow:hidden;max-height:80px;opacity:1;transition:max-height .15s ease-out,opacity .15s ease-out;margin-bottom:.25rem}.reply-bar.reply-bar-hidden{max-height:0;opacity:0;margin-bottom:0}.reply-bar-content{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-left:3px solid var(--quote-color, #0d6efd);background:color-mix(in srgb,var(--quote-color, #0d6efd) 10%,transparent);border-radius:0 .375rem .375rem 0}.reply-bar-icon{font-size:.85rem;color:var(--quote-color, #0d6efd);flex-shrink:0}.reply-bar-text{flex:1;min-width:0}.reply-bar-sender{font-size:.8rem;font-weight:600;color:var(--quote-color, #0d6efd);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-bar-preview{font-size:.78rem;color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-bar-close{background:none;border:none;padding:0 .25rem;cursor:pointer;font-size:1.1rem;line-height:1;color:#6c757d;flex-shrink:0}.reply-bar-close:hover{color:#343a40}.message-reply-quote{display:flex;flex-direction:column;border-left:3px solid var(--quote-color, #0d6efd);background:color-mix(in srgb,var(--quote-color, #0d6efd) 12%,transparent);border-radius:0 .375rem .375rem 0;padding:.25rem .5rem;margin-bottom:.35rem;cursor:pointer}.message-reply-quote:hover{opacity:.85}.message-reply-sender{font-size:.78rem;font-weight:600;color:var(--quote-color, #0d6efd);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-reply-preview{font-size:.78rem;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-highlight{animation:message-highlight-pulse 1.5s ease-out forwards;border-radius:.5rem}@keyframes message-highlight-pulse{0%{background-color:color-mix(in srgb,var(--bs-warning, #ffc107) 30%,transparent)}to{background-color:transparent}}.unread-divider{display:flex;align-items:center;gap:10px;margin:12px 16px;color:#6c757d;font-size:.72rem;letter-spacing:.03em;-webkit-user-select:none;user-select:none}.unread-divider:before,.unread-divider:after{content:"";flex:1;height:1px;background:#dee2e6}.message-swipe-icon{position:absolute;left:-28px;top:50%;transform:translateY(-50%);font-size:1.1rem;opacity:0;pointer-events:none;transition:opacity .1s ease;-webkit-user-select:none;user-select:none}.message-body{position:relative}.contact-result-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:.375rem;cursor:pointer;transition:background .15s}.contact-result-item:hover{background:#f0f4ff}.contact-result-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:#fff;flex-shrink:0}.contact-result-info{flex:1;min-width:0}.contact-result-info .fw-semibold{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-picker-list{max-height:360px;overflow-y:auto}.chat-picker-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.chat-picker-item:hover{background-color:#f5f5f5}.chat-picker-item:active{background-color:#eee}.chat-picker-icon{font-size:18px;flex-shrink:0;line-height:1}.chat-picker-info{overflow:hidden;min-width:0}.chat-picker-info .fw-semibold{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.chat-picker-sublabel{font-size:11px;color:#6c757d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1055;background:#000000eb;display:flex;align-items:stretch;justify-content:center}.lightbox-overlay.hidden{display:none}.lightbox-content{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;pointer-events:none}.lightbox-header,.lightbox-footer,.lightbox-img,.lightbox-error,.lightbox-btn,.lightbox-btn-retry{pointer-events:auto}.lightbox-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;flex-shrink:0;color:#fff;background:#0006}.lightbox-filename{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50vw;color:#ffffffe6}.lightbox-header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.lightbox-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:#ffffffd9;cursor:pointer;font-size:22px;padding:6px 10px;border-radius:4px;line-height:1;text-decoration:none;transition:background .15s,color .15s;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.lightbox-btn:hover{background:#ffffff1f;color:#fff}.lightbox-btn:active{background:#fff3}.lightbox-btn.disabled,.lightbox-btn[disabled]{opacity:.3;cursor:default;pointer-events:none}.lightbox-btn.hidden{display:none}.lightbox-btn-prev,.lightbox-btn-next{position:absolute;top:50%;transform:translateY(-50%);font-size:36px;padding:10px 14px;z-index:1;background:#00000040;border-radius:50%}.lightbox-btn-prev{left:12px}.lightbox-btn-next{right:12px}.lightbox-viewport{position:relative;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0}.lightbox-img-wrapper{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.lightbox-img{max-width:100%;max-height:100%;object-fit:contain;display:block;cursor:zoom-in;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transform-origin:0 0;will-change:transform}.lightbox-img.zoomed{cursor:grab}.lightbox-img.zoomed.dragging{cursor:grabbing}.lightbox-img.zoomed:not(.dragging){cursor:grab}.lightbox-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fffc}.lightbox-error.hidden{display:none}.lightbox-error-text{font-size:14px}.lightbox-btn-retry{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:4px;padding:6px 16px;font-size:14px;cursor:pointer;transition:background .15s}.lightbox-btn-retry:hover{background:#ffffff40}.lightbox-footer{display:flex;align-items:center;justify-content:center;padding:8px 12px;flex-shrink:0;background:#0006;min-height:36px}.lightbox-counter{font-size:13px;color:#ffffffb3}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ia-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1060;background:#000000eb;display:flex;flex-direction:column;align-items:stretch}.ia-overlay.hidden{display:none}.ia-header{position:relative;display:flex;align-items:center;gap:8px;padding:8px 12px;flex-shrink:0;background:#00000080;flex-wrap:wrap}.ia-filename{font-size:13px;color:#fffc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;flex-shrink:1}.ia-toolbar{display:flex;align-items:center;gap:4px;flex-shrink:0}.ia-tool-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#ffffffbf;cursor:pointer;font-size:15px;font-weight:700;transition:background .15s,color .15s,border-color .15s;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ia-tool-btn:hover{background:#ffffff29;color:#fff}.ia-tool-btn.active{background:#ffffff38;border-color:#ffffff73;color:#fff}.ia-toolbar-sep{width:1px;height:24px;background:#fff3;margin:0 4px;flex-shrink:0}.ia-zoom-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#ffffffbf;cursor:pointer;font-size:13px;font-weight:700;transition:background .15s,color .15s,border-color .15s;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ia-zoom-btn:hover{background:#ffffff29;color:#fff}.ia-zoom-btn:disabled{opacity:.3;cursor:default;pointer-events:none}.ia-color{width:34px;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:2px;background:none;cursor:pointer;flex-shrink:0}.ia-size{width:80px;cursor:pointer;accent-color:rgba(255,255,255,.8);flex-shrink:0}.ia-actions{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.ia-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid rgba(255,255,255,.2);color:#ffffffd9;border-radius:4px;padding:6px 12px;font-size:14px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ia-btn:hover{background:#ffffff1f;color:#fff}.ia-btn:disabled{opacity:.3;cursor:default;pointer-events:none}.ia-btn-undo,.ia-btn-redo{padding:6px 8px;font-size:17px}.ia-btn-send{background:#ffffff1f;border-color:#ffffff59}.ia-btn-send:not(:disabled):hover{background:#ffffff38}.ia-btn-help{font-weight:700;font-size:15px;min-width:30px}.ia-help-popover{display:none;position:absolute;top:calc(100% + 6px);right:0;z-index:10;background:#1e1e1e;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:12px 14px;min-width:280px;box-shadow:0 6px 20px #0009;color:#ffffffe6}.ia-help-popover--open{display:block}.ia-help-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#ffffff73;margin-bottom:8px}.ia-help-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ia-help-list li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px}.ia-help-keys{display:flex;align-items:center;gap:3px;flex-shrink:0;color:#ffffffbf}.ia-help-keys kbd{display:inline-block;background:#ffffff1a;border:1px solid rgba(255,255,255,.22);border-radius:3px;padding:1px 5px;font-size:12px;font-family:inherit;line-height:1.5;white-space:nowrap}.ia-help-desc{color:#ffffff80;text-align:right}.ia-viewport{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto;min-height:0;padding:16px}.ia-canvas-wrapper{position:relative;display:inline-block;line-height:0;max-width:100%;max-height:100%}.ia-img{display:block;max-width:100%;max-height:calc(100vh - 120px);width:auto;height:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.ia-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:crosshair;touch-action:none}.ia-text-input{position:absolute;z-index:3;background:#00000073;border:1px dashed rgba(255,255,255,.55);border-radius:2px;color:#fff;padding:2px 5px;width:200px;resize:none;outline:none;line-height:1.35;font-weight:700;font-family:sans-serif;overflow:hidden;word-break:break-word;white-space:pre-wrap}.ia-text-input.hidden{display:none}.ia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 768px){.ia-header{padding:6px 10px;gap:6px}.ia-filename{max-width:130px}.ia-toolbar{order:10;width:100%;overflow-x:auto;padding-bottom:2px}.ia-size{width:60px}.ia-viewport{padding:8px}.ia-img{max-height:calc(100vh - 160px)}}.message-context-menu{position:fixed;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:8px;box-shadow:0 4px 16px #00000026;min-width:160px;padding:4px 0;display:flex;flex-direction:column;will-change:transform,top,left}.message-context-menu.hidden{display:none}.message-context-menu .menu-item{padding:9px 16px;cursor:pointer;font-size:14px;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:8px;color:#212529;white-space:nowrap}.message-context-menu .menu-item:hover{background-color:#f5f5f5}.message-context-menu .menu-item:active{background-color:#eee}.message-context-menu .menu-item.disabled{opacity:.4;cursor:default;pointer-events:none}.chat-camera-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e0;z-index:1060;display:flex;align-items:center;justify-content:center}.chat-camera-modal{background:#1a1a1a;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;width:min(640px,95vw);max-height:90vh}.chat-camera-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;color:#fff;flex-shrink:0}.chat-camera-modal-title{font-weight:600;font-size:1rem}.chat-camera-btn-close{color:#ffffffb3;padding:.25rem .5rem}.chat-camera-btn-close:hover{color:#fff}.chat-camera-modal-body{flex:1;background:#000;display:flex;align-items:center;justify-content:center;min-height:240px;overflow:hidden}.chat-camera-video,.chat-camera-preview{max-width:100%;max-height:60vh;display:block;object-fit:contain}.chat-camera-modal-footer{padding:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-camera-controls-viewfinder,.chat-camera-controls-preview{display:flex;align-items:center;gap:2rem}.chat-camera-btn-capture{width:64px;height:64px;border-radius:50%;font-size:1.4rem;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-camera-btn-capture:disabled{opacity:.5;cursor:not-allowed}.chat-camera-btn-switch{width:44px;height:44px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-info-panel{display:flex;flex-direction:column;height:100%;background:#fff;overflow:hidden}.chat-info-header{display:flex;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #e5e5e5;background:#fff;flex-shrink:0}.chat-info-close{color:#666;text-decoration:none;line-height:1}.chat-info-close:hover{color:#333}.chat-info-body{flex:1;overflow-y:auto;padding:1.5rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.chat-info-avatar{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#fff;flex-shrink:0;margin-bottom:.5rem}.chat-info-name{font-size:1.15rem;font-weight:600;text-align:center}.chat-info-handle{text-align:center}.chat-info-desc{text-align:center;font-size:.9rem;color:#555;max-width:300px;white-space:pre-line;margin-bottom:.5rem;line-height:1.45}.chat-info-stats{text-align:center;padding-top:.25rem;border-top:1px solid #f0f0f0;min-width:180px}.chat-info-actions{width:100%;justify-content:center}.chat-info-section{width:100%;margin-top:1rem}.chat-info-section-title{letter-spacing:.05em}.participant-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .25rem;border-radius:.375rem;transition:background .15s;position:relative}.participant-row:hover{background:#f5f5f5}.participant-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:600;color:#fff;flex-shrink:0}.participant-name{flex:1;font-size:.92rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.participant-role-badge{font-size:.75rem;padding:.15rem .4rem;border-radius:.25rem;font-weight:500}.role-badge-OWNER{background:#fff3cd;color:#856404}.role-badge-ADMIN{background:#cff4fc;color:#055160}.role-badge-MODERATOR{background:#d1ecf1;color:#0c5460}.role-badge-MEMBER{background:#e2e3e5;color:#383d41}.role-badge-GUEST{background:#f8d7da;color:#721c24}.participant-skeleton{display:flex;align-items:center;gap:.75rem;padding:.5rem .25rem}.participant-skeleton .skeleton-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:info-skeleton-shimmer 1.4s infinite;flex-shrink:0}.participant-skeleton .skeleton-name{height:12px;width:60%;border-radius:6px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:info-skeleton-shimmer 1.4s infinite}@keyframes info-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.participant-ctx-btn{background:none;border:none;color:#999;padding:.25rem .4rem;border-radius:.25rem;cursor:pointer;font-size:.85rem;opacity:0;transition:opacity .15s}.participant-row:hover .participant-ctx-btn{opacity:1}.participant-ctx-menu{position:absolute;right:.25rem;top:calc(100% - .25rem);background:#fff;border:1px solid #ddd;border-radius:.375rem;box-shadow:0 4px 12px #0000001f;z-index:100;min-width:180px;padding:.25rem 0}.participant-ctx-menu-item{display:block;width:100%;padding:.5rem 1rem;text-align:left;background:none;border:none;font-size:.875rem;cursor:pointer;color:#333;transition:background .15s}.participant-ctx-menu-item:hover{background:#f5f5f5}.participant-ctx-menu-item.danger{color:#dc3545}.invite-search-wrapper{width:100%;margin-top:.5rem}.create-chat-steps{display:flex;align-items:center;margin-bottom:.5rem}.step-item{display:flex;align-items:center;gap:.4rem;opacity:.45;transition:opacity .2s}.step-item.active{opacity:1}.step-circle{width:24px;height:24px;border-radius:50%;background:#e0e0e0;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#666;transition:background .2s,color .2s}.step-item.active .step-circle{background:var(--bs-primary);color:#fff}.step-label{font-size:.8rem;font-weight:500}.step-divider{flex:1;height:2px;background:#e0e0e0;margin:0 .5rem}.type-card{border:2px solid #e0e0e0;border-radius:.5rem;padding:.75rem;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.type-card:hover{border-color:#aaa;background:#f8f8f8}.type-card.selected{border-color:var(--bs-primary);background:#e8f0ff}.type-card-icon{font-size:1.75rem;margin-bottom:.25rem}.type-card-title{font-weight:600;font-size:.9rem}.type-card-desc{font-size:.75rem;line-height:1.3}.participant-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;background:#e3f2fd;border-radius:1rem;font-size:.8rem;font-weight:500;color:#1565c0}.participant-chip-remove{background:none;border:none;color:#1565c0;cursor:pointer;padding:0;line-height:1;font-size:.85rem;opacity:.7}.participant-chip-remove:hover{opacity:1}.create-chat-result-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:.375rem;cursor:pointer;transition:background .15s}.create-chat-result-item:hover{background:#f0f4ff}.create-chat-result-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;color:#fff;flex-shrink:0}.discover-tabs{gap:0}.discover-tab{background:none;border:none;border-bottom:2px solid transparent;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:#666;cursor:pointer;transition:color .15s,border-color .15s;margin-bottom:-1px}.discover-tab:hover{color:#333}.discover-tab.active{color:var(--bs-primary);border-bottom-color:var(--bs-primary)}.discover-list{min-height:200px;max-height:480px;overflow-y:auto}.discover-item{display:flex;gap:.75rem;padding:.75rem 0;border-bottom:1px solid #f0f0f0;align-items:flex-start}.discover-item:last-child{border-bottom:none}.discover-item-icon{font-size:1.75rem;flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#f0f4ff;border-radius:50%}.discover-item-body{flex:1;min-width:0}.discover-item-name{font-weight:600;font-size:.95rem}.discover-item-handle{font-size:.8rem;color:#888}.discover-item-desc{font-size:.82rem;color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.discover-item-join{flex-shrink:0;align-self:center}
