.chat-modal{position:fixed;top:0;left:0;right:0;bottom:0;display:block;z-index:2000;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.chat-modal-container{width:min(41.8vh,90%);max-width:min(41.8vh,90%);margin:0 auto;background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,0) 50%,hsla(0,0%,100%,.1));flex-direction:column;bottom:0;left:50%;transform:translateX(-50%);overflow:hidden;padding-top:7.4vh}.chat-modal-container,.chat-modal-header{backdrop-filter:blur(1vh);-webkit-backdrop-filter:blur(1vh);display:flex;position:absolute;border-radius:0 0 3.7vh 3.7vh}.chat-modal-header{padding:1.4vh;height:auto;align-items:center;justify-content:space-between;background-color:var(--theme-bg-card);flex-shrink:0;top:0;left:0;right:0;z-index:20}.chat-modal-avatar{width:4.6vh;height:4.6vh;border-radius:50%;margin-right:1.4vh;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.8vh;flex-shrink:0;position:relative;overflow:hidden}.chat-modal-avatar .avatar-image{width:100%;height:100%;object-fit:cover;border-radius:50%}.chat-modal-avatar .avatar-initials{color:var(--theme-text-primary);font-weight:700;font-size:1.4vh}.chat-modal-avatar .avatar-initials.hidden{display:none}.chat-avatar-group{height:4.6vh;margin-right:1.4vh;position:relative;display:flex;align-items:center;flex-shrink:0}.chat-avatar-group.participants-1{width:4.6vh}.chat-avatar-group.participants-2{width:6.9vh}.chat-avatar-group.participants-3{width:9.2vh}.chat-avatar-group.participants-4{width:11.5vh}.chat-avatar-group .chat-group-avatar{width:4.6vh;height:4.6vh;border-radius:50%;position:absolute;display:flex;align-items:center;justify-content:center;font-size:1.8vh;font-weight:700;overflow:hidden}.chat-avatar-group .chat-group-avatar .avatar-image{width:100%;height:100%;object-fit:cover;border-radius:50%}.chat-avatar-group .chat-group-avatar .avatar-initials{color:var(--theme-text-primary);font-weight:700;font-size:1.4vh}.chat-avatar-group .chat-group-avatar .avatar-initials.hidden{display:none}.chat-avatar-group .chat-group-avatar:first-child{left:0;z-index:1}.chat-avatar-group .chat-group-avatar:nth-child(2){left:2.3vh;z-index:2}.chat-avatar-group .chat-group-avatar:nth-child(3){left:4.6vh;z-index:3}.chat-group-avatar.add-member{cursor:pointer;color:var(--theme-text-secondary);opacity:.8;left:7.5vh;z-index:4}.chat-group-avatar.add-member:hover{color:#0084ff;opacity:1;transform:scale(1.05)}.chat-group-avatar.add-member svg{width:1.8vh;height:1.8vh;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.8}.chat-group-avatar.add-member:hover svg{opacity:1}.chat-modal-info{flex:1;min-width:0}.chat-modal-name{font-size:1.7vh!important;font-weight:500;margin-bottom:0;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:calc(100% - 6.5vh)!important;display:block!important;background:transparent;border:none;outline:none;width:100%;transition:color .2s ease}.chat-modal-name,.chat-modal-name:hover{color:var(--theme-text-primary)}.chat-modal-status{font-size:1.4vh;color:var(--theme-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s ease;cursor:pointer}.chat-modal-status:hover{color:var(--theme-text-primary)}.group-name-section{border-bottom:none!important;margin:0;padding:0;min-width:0;flex:1;display:flex;flex-direction:column}.group-name-display{display:flex;align-items:center;gap:1vh}.chat-modal-name.clickable{cursor:pointer;transition:color .3s ease}.chat-modal-name.clickable,.chat-modal-name.clickable:hover{color:var(--theme-text-primary)}.edit-name-btn{opacity:.8}.edit-name-btn:hover{opacity:1}.edit-name-btn svg{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.8}.edit-name-btn:hover svg{opacity:1}.chat-options-container{position:relative;z-index:20}.options-btn{background-color:var(--theme-bg-card);border:none;color:var(--theme-text-secondary);opacity:.8;font-size:3vh;cursor:pointer;width:4.6vh;height:4.6vh;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.options-btn:hover{background-color:var(--theme-bg-hover);color:var(--theme-text-primary);opacity:1}.options-btn svg{width:1.8vh;height:1.8vh;stroke-width:2}.options-menu{position:absolute;top:6.25vh;right:0;background-color:#2a2a2a;border:1px solid #444;border-radius:1vh;min-width:18.75vh;box-shadow:0 .5vh 1.5vh rgba(0,0,0,.3);z-index:1000}.options-menu-item{width:100%;padding:1.2vh 1.6vh;background:none;border:none;color:var(--theme-text-primary);font-size:1.4vh;text-align:left;cursor:pointer;display:flex;align-items:center;gap:1vh}.options-menu-item:hover{background-color:#3a3a3a}.options-menu-item.leave{color:#f44}.options-menu-item svg{margin-right:1.2vh;width:2vh;height:2vh;stroke-width:2}.animate-spin{width:4.6vh;height:4.6vh;color:var(--theme-text-secondary)}.options-menu-item.leave:hover{background-color:rgba(255,68,68,.1)}.chat-messages{overflow-y:auto;overflow-x:hidden;display:flex;background-color:transparent;flex-direction:column-reverse;gap:.9vh;min-height:0;flex:1;padding:1.4vh 0;z-index:10;-webkit-mask-image:linear-gradient(180deg,transparent 0,rgba(0,0,0,.3) 1vh,rgba(0,0,0,.7) 2vh,#000 4vh,#000 calc(100% - 4vh),rgba(0,0,0,.7) calc(100% - 2vh),rgba(0,0,0,.3) calc(100% - 1vh),transparent);mask-image:linear-gradient(180deg,transparent 0,rgba(0,0,0,.3) 1vh,rgba(0,0,0,.7) 2vh,#000 4vh,#000 calc(100% - 4vh),rgba(0,0,0,.7) calc(100% - 2vh),rgba(0,0,0,.3) calc(100% - 1vh),transparent)}.chat-modal-container:has(.friend-dropdown-container) .chat-messages{-webkit-mask-image:linear-gradient(180deg,transparent 0,transparent 50%,#000 0,#000 calc(100% - 4vh),rgba(0,0,0,.7) calc(100% - 2vh),rgba(0,0,0,.3) calc(100% - 1vh),transparent);mask-image:linear-gradient(180deg,transparent 0,transparent 50%,#000 0,#000 calc(100% - 4vh),rgba(0,0,0,.7) calc(100% - 2vh),rgba(0,0,0,.3) calc(100% - 1vh),transparent)}.chat-messages.resizing{overflow-y:hidden}.chat-messages::-webkit-scrollbar{display:none}.chat-messages{-ms-overflow-style:none;scrollbar-width:none}.message-wrapper{display:flex;flex-direction:column;position:relative;margin:2.5vh 0}.message-container.grouped~.message-wrapper,.message-wrapper:has(.message-container.grouped){margin:0}.message-container.grouped.show-avatar~.message-wrapper,.message-wrapper:has(.message-container.grouped.show-avatar){margin:2.5vh 0}.message-and-thread-wrapper{display:flex;flex-direction:column;padding:0 1.4vh;background:transparent;border-radius:3.7vh;transition:background .3s ease}.message-and-thread-wrapper.expanded{background:var(--theme-bg-card);padding:1.4vh}.message-and-thread-wrapper.expanded>.message-container.show-avatar{margin-bottom:3vh}.message-container{display:flex;flex-direction:column;margin:0;position:relative}.message-container.grouped{margin-top:1vh}.message-container:not(.grouped)+.message-container.grouped{margin-top:3vh}.message-container.grouped:not(.sent) .message-bubble{border-bottom-left-radius:2.3vh;border-top-left-radius:.3vh}.message-container.grouped.sent .message-bubble{border-bottom-right-radius:2.3vh;border-top-right-radius:.3vh}.message-container.sent{align-items:flex-end}.message-container:not(.sent){align-items:flex-start}.system-message-container{display:flex;justify-content:center;margin:2.5vh 0;width:100%}.system-message{background:rgba(13,122,95,.5);padding:1.2vh 2vh;text-align:center}.message-bubble,.system-message{color:var(--theme-text-primary);border-radius:2.3vh;font-size:1.6vh;line-height:1.4;max-width:36vh;word-break:break-word;white-space:pre-wrap}.message-bubble{background-color:#3a3a3a;position:relative;z-index:1;padding:1.2vh 1.4vh}.message-container:not(.sent) .message-bubble{border-bottom-left-radius:.3vh;margin-left:5.7vh;margin-right:5.7vh;background:rgba(13,122,95,.5)}.message-container.sent .message-bubble{border-bottom-right-radius:.3vh;margin-right:5.7vh;margin-left:5.7vh;background:var(--theme-bg-card)}.message-container:not(.sent) .message-bubble.edited{background:rgba(13,122,95,.7)}.message-container.sent .message-bubble.edited{background:hsla(0,0%,100%,.2)}.message-reply-item:not(.sent) .message-reply-content.edited{background:rgba(13,122,95,.7)}.message-reply-item.sent .message-reply-content.edited{background:hsla(0,0%,100%,.2)}.message-avatar{width:4.6vh;height:4.6vh;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8vh;font-weight:700;flex-shrink:0;object-fit:cover;position:absolute;bottom:-2.3vh;left:0;z-index:0}.message-container.sent .message-avatar{left:auto;right:0}.sender-name{color:var(--theme-text-secondary);font-size:1.4vh;font-weight:500;position:absolute;bottom:-2.3vh;left:5.6vh;z-index:0}.message-container.sent .sender-name{left:auto;right:5.6vh}.message-bubble.has-link-with-image{padding:0;overflow:hidden}.message-bubble.has-link-no-image{padding:0}.message-bubble.image-message{padding:0;overflow:hidden;max-width:50vh}.image-message-container,.message-image{display:block;width:100%}.message-image{height:auto;border-radius:2.3vh;max-height:50vh;object-fit:cover}.image-grid{display:grid;gap:.2vh;border-radius:2.3vh;overflow:hidden}.image-grid-item{position:relative;overflow:hidden}.grid-image{width:100%;height:100%;object-fit:cover;display:block}.image-grid.grid-single{grid-template-columns:1fr;max-width:40vh}.image-grid.grid-single .image-grid-item{aspect-ratio:auto;max-height:50vh}.image-grid.grid-double{grid-template-columns:1fr 1fr;max-width:45vh}.image-grid.grid-double .image-grid-item{aspect-ratio:1}.image-grid.grid-triple{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;max-width:45vh}.image-grid.grid-triple .image-grid-item:first-child{grid-row:1/3;aspect-ratio:1}.image-grid.grid-triple .image-grid-item:not(:first-child){aspect-ratio:1}.image-grid.grid-quad{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;max-width:45vh}.image-grid.grid-quad .image-grid-item{aspect-ratio:1}.image-grid.grid-six{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr;max-width:50vh}.image-grid.grid-six .image-grid-item{aspect-ratio:1}.image-grid.grid-nine{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;max-width:50vh}.image-grid.grid-nine .image-grid-item{aspect-ratio:1}.image-grid.grid-many{grid-template-columns:repeat(4,1fr);max-width:55vh}.image-grid.grid-many .image-grid-item{aspect-ratio:1}.error-message{padding:1.2vh 2vh;color:#ff6b6b;font-size:1.6vh}.link-preview-image{width:100%;overflow:hidden;border-radius:2.3vh 2.3vh 0 0;display:block;position:relative}.link-preview-image img{width:100%;height:auto;display:block;min-height:15vh;max-height:30vh;object-fit:cover;object-position:center}.link-preview-content{padding:1.2vh 2vh}.clickable{cursor:pointer}.clickable:hover{opacity:.8}.link-preview-content.clickable:hover{background-color:hsla(0,0%,100%,.03)}.link-preview-text{font-size:1.9vh;line-height:1.4;word-break:break-word;white-space:pre-wrap}.link-preview-title{font-weight:500;color:var(--theme-text-primary);-webkit-line-clamp:1}.link-preview-description,.link-preview-title{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.link-preview-description{font-size:1.7vh;color:#ccc;margin:0;-webkit-line-clamp:2}.link-preview-domain{font-size:1.4vh;color:#999}.additional-text{padding:0 2vh 1.2vh;font-size:1.9vh;line-height:1.4;color:var(--theme-text-primary);word-break:break-word;white-space:pre-wrap}.message-container.sent .link-preview-image,.message-container:not(.sent) .link-preview-image{border-radius:2.3vh 2.3vh 0 0}.filter-alert-container{padding:1.4vh;background-color:#0a0a0a;border-top:1px solid #333}.filter-alert{display:flex;align-items:flex-start;gap:1vh;background:linear-gradient(135deg,rgba(255,68,68,.1),rgba(255,68,68,.05));border:1px solid rgba(255,68,68,.3);border-radius:1vh;padding:1.4vh}@keyframes slideIn{0%{opacity:0;transform:translateY(-1vh)}to{opacity:1;transform:translateY(0)}}.filter-alert-icon{color:#f44;display:flex;align-items:center;flex-shrink:0;margin-top:.2vh}.filter-alert-content{flex:1;min-width:0}.filter-alert-title{font-size:1.6vh;font-weight:600;color:#f44;margin-bottom:.5vh}.filter-alert-message{font-size:1.4vh;color:#faa;margin-bottom:.3vh}.filter-alert-blocked{font-size:1.2vh;color:#f88;font-family:monospace;background:var(--theme-bg-card);padding:.5vh .8vh;border-radius:.5vh;word-break:break-all}.filter-alert-close{background:none;border:none;color:#f44;font-size:2vh;font-weight:700;cursor:pointer;padding:0;width:2.5vh;height:2.5vh;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.filter-alert-close:hover{background-color:rgba(255,68,68,.2)}.chat-input-wrapper{z-index:10;display:flex;flex-direction:column;pointer-events:none;flex-shrink:0;min-height:fit-content;position:relative}.chat-input-wrapper:after,.chat-input-wrapper:before{content:"";position:absolute;bottom:0;width:2.5vh;height:2.5vh;pointer-events:auto;z-index:11}.chat-input-wrapper:before{left:0;cursor:nesw-resize}.chat-input-wrapper:after{right:0;cursor:nwse-resize}.chat-input-container{padding:0 1.4vh 1.4vh;display:flex;gap:1vh;align-items:flex-end;background-color:transparent;flex-shrink:0;border-radius:3.7vh;pointer-events:auto}.chat-file-input-hidden{display:none}.add-friend-btn{width:4.6vh;height:4.6vh;background-color:var(--theme-bg-card);border:none;border-radius:50%;color:var(--theme-text-secondary);opacity:.8;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.add-friend-btn:hover{background-color:var(--theme-bg-hover);color:var(--theme-text-primary);opacity:1}.add-friend-btn svg{width:2.2vh;height:2.2vh;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;transform:rotate(0deg);opacity:.8}.add-friend-btn:hover svg{opacity:1}.add-friend-btn.active{transform:rotate(45deg);color:var(--theme-text-primary)}.chat-input{flex:1;padding:1.2vh 1.4vh;background-color:var(--theme-bg-card);border:none;border-radius:2.3vh;color:var(--theme-text-primary);font-size:1.6vh;line-height:1.4;outline:none;resize:none;height:4.6vh;overflow-y:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;caret-color:var(--theme-text-primary);-webkit-user-select:text;user-select:text;word-break:break-word;white-space:pre-wrap;-ms-overflow-style:none;scrollbar-width:none}.chat-input::-webkit-scrollbar{display:none}.chat-input:focus,.chat-input:hover{background-color:var(--theme-bg-hover)}.chat-input:focus{caret-color:var(--theme-text-primary)}.chat-input::placeholder{color:var(--theme-text-secondary)}.chat-input:focus::placeholder{color:transparent;opacity:0}.chat-input:disabled{opacity:.5;cursor:not-allowed}.plus-btn{width:4.6vh;height:4.6vh;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;background-color:var(--theme-bg-card);color:var(--theme-text-secondary);opacity:.8;flex-shrink:0}.plus-btn:hover{background-color:var(--theme-bg-hover);color:var(--theme-text-primary);opacity:1}.plus-btn svg{width:1.8vh;height:1.8vh;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.8}.plus-btn:hover svg{opacity:1}.send-btn{position:relative;width:4.6vh;height:4.6vh;border-radius:50%;cursor:pointer;border:none;background-color:var(--theme-bg-card);color:var(--theme-text-secondary);opacity:.8;flex-shrink:0}.chat-submit-alarm-badge,.send-btn{display:flex;align-items:center;justify-content:center}.chat-submit-alarm-badge{position:absolute;top:-.3vh;right:-.3vh;min-width:1.8vh;height:1.8vh;padding:0 .4vh;background-color:#ef4444;color:#fff;font-size:1.1vh;font-weight:600;border-radius:.9vh}.send-btn.active,.send-btn:hover:not(:disabled):not(.profile-mode){background-color:var(--theme-bg-hover);color:var(--theme-text-primary);opacity:1}.send-btn.active:hover{background-color:var(--theme-bg-hover);opacity:1}.send-btn:disabled:not(.profile-mode){opacity:.5;cursor:not-allowed}.send-btn.profile-mode,.send-btn.profile-mode:disabled{opacity:1;cursor:pointer}.send-btn svg{width:1.8vh;height:1.8vh;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.8}.send-btn.active svg,.send-btn:hover:not(:disabled):not(.profile-mode) svg{opacity:1}.send-btn svg:not(.animate-spin){transform:none}.send-btn.profile-mode{background:none;background-color:transparent;background-image:none;padding:0;border:none;opacity:1}.send-btn.profile-mode.active,.send-btn.profile-mode.active:hover,.send-btn.profile-mode:hover{background:none;background-color:transparent;background-image:none;transform:none;opacity:1}.send-btn img,.send-btn.profile-mode.active,.send-btn.profile-mode.active:hover{box-shadow:none}.send-btn img{width:4.6vh;height:4.6vh;border-radius:50%;object-fit:cover;border:none;outline:none;filter:none;opacity:1;background:none;background-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.bg-blue{background-color:#0084ff}.bg-green{background-color:#00c896}.bg-orange{background-color:#ff6b35}.bg-purple{background-color:#8b5cf6}.bg-pink{background-color:#ec4899}.bg-red{background-color:#ef4444}.bg-yellow{background-color:#eab308}.bg-cyan{background-color:#06b6d4}.bg-gray{background-color:#666}.flex{display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.flex-col{flex-direction:column}.text-red-500{color:#ef4444}.text-gray-500{color:#6b7280}.mb-4{margin-bottom:1.6vh}.px-4{padding-left:1.6vh;padding-right:1.6vh}.py-2{padding-top:1vh;padding-bottom:1vh}.bg-blue-500{background-color:#3b82f6}.text-white{color:var(--theme-text-primary)}.rounded{border-radius:.5vh}.hover\:bg-blue-600:hover{background-color:#2563eb}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.w-full{width:100%}.h-full{height:100%}.rounded-full{border-radius:50%}.object-cover{object-fit:cover}.empty-state{text-align:center;padding:4.6vh 2vh;color:#666}.flex.items-center.justify-center.h-full.text-gray-500 p{font-size:1.6vh;color:#666;margin:0}.group-chat-notice{padding:1vh 1.4vh;background-color:rgba(0,132,255,.1);color:#0084ff;font-size:1.6vh;text-align:center;flex-shrink:0}.friend-dropdown-container{background-color:var(--theme-bg-card);backdrop-filter:blur(1vh);-webkit-backdrop-filter:blur(1vh);border-radius:0 0 3.7vh 3.7vh;box-shadow:0 1.25vh 1.25vh -.75vh hsla(0,0%,100%,.1);height:43vh;overflow:hidden;flex-shrink:0;z-index:15;position:absolute;top:0;left:0;right:0;width:100%;display:flex;flex-direction:column}.friend-dropdown-container::-webkit-scrollbar{display:none}.friend-dropdown-container{-ms-overflow-style:none;scrollbar-width:none}.group-name-editing{padding:1.4vh 2vh}.group-name-input{width:100%;background-color:#2a2a2a;border:1px solid #0084ff;color:var(--theme-text-primary);font-size:1.6vh;padding:1vh 1.6vh;border-radius:3.1vh;outline:none;font-family:inherit}.group-name-input::placeholder{color:#666}.selected-friends-info{padding:1vh 2vh;background-color:rgba(0,132,255,.1);color:#0084ff;font-size:1.6vh;font-weight:500}.dropdown-friends-list{flex:1;overflow-y:auto;padding:0 1.4vh;-ms-overflow-style:none;scrollbar-width:none}.friend-search-section{width:100%;padding:9vh 0 1vh;margin:0;flex-shrink:0}.friend-search-input-container{position:relative;width:100%;height:4.6vh;display:flex;align-items:center}.friend-search-input{width:100%;height:100%;background-color:var(--theme-bg-card);border:none;border-radius:2.5vh;color:var(--theme-text-primary);font-size:1.7vh;padding:0 4.6vh 0 2vh;outline:none}.friend-search-input:focus,.friend-search-input:hover{background-color:var(--theme-bg-hover)}.friend-search-input:focus{outline:none}.friend-search-input::placeholder{color:var(--theme-text-secondary);transition:color .3s ease}.friend-search-input:hover::placeholder{color:var(--theme-text-primary)}.friend-clear-search-btn{position:absolute;right:1.4vh;top:50%;transform:translateY(-50%);width:2vh;height:2vh;background:none;border:none;color:var(--theme-text-secondary);opacity:.8;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%}.friend-clear-search-btn:hover{color:var(--theme-text-primary);opacity:1}.friend-clear-search-btn svg{width:2.2vh;height:2.2vh;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.8}.friend-clear-search-btn:hover svg{opacity:1}.dropdown-friends-list::-webkit-scrollbar{display:none}.no-friends-message{padding:3vh 2vh;text-align:center;color:var(--theme-text-secondary);font-size:1.4vh;transition:color .3s ease;cursor:pointer}.no-friends-message:hover{color:var(--theme-text-primary)}.dropdown-friend-item{display:flex;align-items:center;padding:1.4vh 0;cursor:pointer;position:relative;height:8vh}.dropdown-friend-item.selected{background-color:rgba(0,132,255,.1)}.dropdown-friend-item.selected:hover{background-color:rgba(0,132,255,.15)}.dropdown-friend-avatar{width:4.6vh;height:4.6vh;border-radius:50%;margin-right:1.4vh;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.8vh;flex-shrink:0}.dropdown-friend-info{flex:1;min-width:0}.dropdown-friend-name{font-size:1.7vh;font-weight:500;margin-bottom:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 2vh);transition:color .3s ease;cursor:pointer}.dropdown-friend-name,.dropdown-friend-name:hover{color:var(--theme-text-primary)}.dropdown-friend-username{font-size:1.6vh;color:var(--theme-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 2vh);transition:color .3s ease;cursor:pointer}.dropdown-friend-username:hover{color:var(--theme-text-primary)}.dropdown-checkbox{width:4.6vh;height:4.6vh;background-color:var(--theme-bg-card);border:none;border-radius:50%;color:var(--theme-text-secondary);opacity:.8;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dropdown-checkbox:hover{background-color:var(--theme-bg-hover);color:var(--theme-text-primary);opacity:1}.dropdown-checkbox.checked{background-color:#22c55e;border-color:#22c55e;color:var(--theme-text-primary);opacity:1}.dropdown-checkbox svg{width:1.8vh;height:1.8vh;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.8}.dropdown-checkbox.checked svg,.dropdown-checkbox:hover svg{opacity:1}.dropdown-actions{padding:0 2vh;border-top:1px solid #333;display:flex;gap:1vh;background-color:#1a1a1a}.cancel-selection-btn{flex:1;padding:1vh 1.6vh;background-color:#333;border:none;border-radius:3.1vh;color:var(--theme-text-primary);font-size:1.4vh;font-weight:500;cursor:pointer}.cancel-selection-btn:hover{background-color:#444}.confirm-selection-btn{flex:2;padding:1vh 1.6vh;background-color:#0084ff;border:none;border-radius:3.1vh;color:var(--theme-text-primary);font-size:1.4vh;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.75vh}.confirm-selection-btn:hover:not(:disabled){background-color:#06c}.confirm-selection-btn:disabled{opacity:.6;cursor:not-allowed}.confirm-selection-btn svg{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.8}.confirm-selection-btn:hover:not(:disabled) svg{opacity:1}.chat-options-container .action-buttons-container{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:.7vh;z-index:20}.chat-options-container .action-buttons-container.has-expanded{background-color:var(--theme-bg-card);-webkit-backdrop-filter:blur(1vh);backdrop-filter:blur(1vh);border-radius:50vh;padding:.7vh;position:absolute;right:-.7vh;top:50%;transform:translateY(-50%);z-index:25}.chat-options-container .expandable-actions{display:flex;align-items:center;gap:.7vh;position:relative;z-index:20;opacity:0;visibility:hidden;transform:translateX(2vh)}.chat-options-container .expandable-actions.expanded{opacity:1;visibility:visible;transform:translateX(0)}.chat-options-container .expandable-actions .options-btn{transform:scale(.9);opacity:.8}.chat-options-container .expandable-actions .options-btn:hover{opacity:1}.chat-options-container .expandable-actions.expanded .options-btn{transform:scale(1)}.chat-options-container .expandable-actions .options-btn svg{transform:rotate(0deg)!important}.typing-indicator-zone{max-height:11vh;min-height:0;display:flex;align-items:flex-end;pointer-events:none;padding:0 1.4vh;transition:all .2s ease}.typing-indicator-zone .message-wrapper.typing-message{pointer-events:auto;margin:2.5vh 0!important}.typing-indicator-zone .message-wrapper.typing-message.grouped{margin:0!important}.typing-indicator-zone .message-wrapper.typing-message .message-container.grouped{margin-top:0}.typing-indicator-zone .message-container.typing-message{pointer-events:auto;margin-bottom:1.4vh}.typing-indicator-zone .message-container.typing-message:not(.grouped){margin-bottom:calc(2.5vh + 1.4vh)}.typing-indicator-zone .message-container.typing-message .message-bubble{width:auto;display:flex;align-items:center;justify-content:center;padding:0;background:rgba(13,122,95,.5)!important;margin-left:5.7vh;margin-right:5.7vh}.typing-indicator-zone .message-container.typing-message.sent .message-bubble{background:var(--theme-bg-card)!important;border-bottom-right-radius:.3vh}.typing-indicator-zone .message-container.typing-message.grouped.sent .message-bubble{border-bottom-right-radius:2.3vh;border-top-right-radius:.3vh}.typing-indicator-zone .message-container.typing-message.grouped .message-bubble{border-bottom-left-radius:2.3vh;border-top-left-radius:.3vh;width:auto}.typing-indicator-zone .message-container.typing-message.transitioning{opacity:.8;transform:scale(.98)}.transition-text{color:#888;font-style:italic;font-size:1.7vh;padding:0 .5vh}.typing-animation{order:-1}.typing-indicator-zone .message-wrapper.typing-message:hover .typing-animation span{background-color:var(--theme-text-primary);animation-name:typingDotsHover}@keyframes typingDotsHover{0%,60%,to{transform:translateY(0);opacity:.8}30%{transform:translateY(-.6vh);opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(1vh)}to{opacity:1;transform:translateY(0)}}.exchange-frame{position:absolute;top:8vh;left:0;right:0;background-color:hsla(0,0%,8%,.95);border-bottom:1px solid hsla(0,0%,100%,.1);z-index:15;overflow:hidden;transition:all .3s ease-in-out}.exchange-frame,.exchange-frame.expanded{backdrop-filter:blur(1vh);-webkit-backdrop-filter:blur(1vh)}.exchange-frame.expanded{max-height:40vh;background-color:transparent;border-bottom:none;box-shadow:0 .5vh 1.4vh hsla(0,0%,100%,.1);border-radius:0 0 2vh 2vh}.exchange-frame.collapsed{max-height:4.6vh}.exchange-frame-header{display:flex;align-items:center;justify-content:space-between;padding:1.4vh 2vh;cursor:pointer}.exchange-frame-header,.exchange-frame-header:hover{background-color:var(--theme-bg-card)}.exchange-frame-title{font-size:1.7vh;font-weight:600;color:var(--theme-text-primary);display:flex;align-items:center;gap:1vh}.exchange-frame-toggle{font-size:1.6vh;color:#888}.exchange-frame-header:hover .exchange-frame-toggle{color:var(--theme-text-primary)}.exchange-frame-content{padding:0 1.4vh 1.4vh;display:flex;flex-direction:column;gap:1.4vh;background-color:hsla(0,0%,4%,.8);backdrop-filter:blur(1vh);-webkit-backdrop-filter:blur(1vh)}.exchange-books-container{display:flex;align-items:center;justify-content:space-between;gap:2vh}.exchange-book{flex:1;display:flex;flex-direction:column;align-items:center;gap:1vh;background-color:var(--theme-bg-card);border-radius:1.4vh;padding:1.4vh}.exchange-book img{width:8vh;height:11vh;object-fit:cover;border-radius:.5vh;box-shadow:0 .5vh 1vh rgba(0,0,0,.3)}.book-label{font-size:1.4vh;color:#888;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.my-book .book-label{color:#ff6b35}.their-book .book-label{color:#00c896}.book-title{font-size:1.6vh;font-weight:500;color:var(--theme-text-primary);line-height:1.3;-webkit-line-clamp:2}.book-author,.book-title{text-align:center;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;max-width:100%}.book-author{font-size:1.4vh;color:#999;-webkit-line-clamp:1}.exchange-icon{font-size:2.5vh;flex-shrink:0;color:#888}@keyframes pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.exchange-actions{gap:2vh;padding:0}.exchange-action-btn,.exchange-actions{display:flex;justify-content:center;align-items:center}.exchange-action-btn{width:4.6vh;height:4.6vh;border-radius:50%;background-color:var(--theme-bg-card);border:none;color:#888;opacity:.8;cursor:pointer;transition:all .2s ease;position:relative}.exchange-action-btn:hover{background-color:var(--theme-bg-hover);color:var(--theme-text-primary);opacity:1}.exchange-action-btn svg{width:2vh;height:2vh;stroke-width:2}.exchange-action-btn.exchange-complete{background-color:transparent;width:4.6vh;height:4.6vh;border-radius:.8vh}.exchange-badge-check{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.exchange-square-mini{position:absolute;width:3.066vh;height:4.6vh;background-color:var(--theme-bg-card);border-radius:.8vh;opacity:.5}.exchange-square-mini.left{left:0}.exchange-square-mini.right{right:0}.check-icon{position:relative;z-index:1;color:#888;opacity:.8}.exchange-action-btn.exchange-complete:hover .check-icon{color:#22c55e;opacity:1}.exchange-action-btn.exchange-complete:hover .exchange-square-mini{opacity:.7}.chat-modal-container:has(.exchange-frame) .chat-messages{padding-top:calc(8vh + 4.6vh)}.chat-modal-container:has(.exchange-frame.expanded) .chat-messages{padding-top:calc(8vh + 40vh)}.exchange-books-row{display:flex;align-items:center;justify-content:space-between;gap:1.4vh;width:100%}.exchange-book-bubble{padding:0;overflow:hidden;width:calc((100% - 1.4vh) / 2);aspect-ratio:3/4.5;box-shadow:0 .5vh 1vh rgba(0,0,0,.3)}.exchange-book-bubble.exchange-received{border-top-left-radius:1.4vh;border-top-right-radius:1.4vh;border-bottom-right-radius:1.4vh;border-bottom-left-radius:.3vh;background:linear-gradient(315deg,#0d7a5f,#065d47)}.exchange-book-bubble.exchange-sent{border-top-left-radius:1.4vh;border-top-right-radius:1.4vh;border-bottom-left-radius:1.4vh;border-bottom-right-radius:.3vh;background:linear-gradient(135deg,#3a3a3a,#2a2a2a)}.exchange-book-bubble .exchange-book-cover{width:100%;height:100%;display:block;object-fit:cover}.chat-message-text,textarea.chat-message-text.editing{color:var(--theme-text-primary);font-size:1.6vh;line-height:1.4;outline:none;padding:0}textarea.chat-message-text.editing{background:transparent;border:none;margin:0;width:auto;min-height:auto;max-height:none;overflow:visible;resize:none;font-family:inherit;cursor:text;caret-color:var(--theme-text-primary);-webkit-appearance:none;appearance:none;box-sizing:border-box;display:inline-block;vertical-align:top;field-sizing:content}textarea.chat-message-text.editing::placeholder{color:var(--theme-text-secondary)}.message-reply-badge-wrapper{position:absolute;bottom:-2.3vh;z-index:1;cursor:pointer}.message-reply-badge{background-color:var(--theme-bg-card);color:var(--theme-text-secondary);width:4.6vh;height:4.6vh;display:flex;align-items:center;justify-content:center;border-radius:2.3vh;border-bottom-left-radius:.35vh;font-size:1.2vh;font-weight:500;flex-shrink:0;transition:all .2s ease}.message-reply-badge.has-unread{background-color:rgba(239,68,68,.6)!important;color:#fff!important}.message-reply-unread-dot{position:absolute;top:-.5vh;right:-.5vh;min-width:1.8vh;height:1.8vh;padding:0 .4vh;background-color:#ef4444;color:#fff;font-size:1vh;font-weight:600;border-radius:.9vh;display:flex;align-items:center;justify-content:center;box-shadow:0 .1vh .3vh rgba(0,0,0,.2)}.message-reply-badge.empty{background-color:hsla(0,0%,100%,.05);color:hsla(0,0%,100%,.4)}.message-reply-badge.empty:hover{background-color:var(--theme-bg-card);color:var(--theme-text-secondary)}.message-container:not(.sent) .message-reply-badge-wrapper{right:0}.message-container:not(.sent) .message-reply-badge{border-bottom-left-radius:.3vh;border-bottom-right-radius:2vh}.message-container.sent .message-reply-badge-wrapper{left:0}.message-container.sent .message-reply-badge{border-bottom-left-radius:.3vh;border-bottom-right-radius:2vh}.message-reply-badge:hover{background-color:var(--theme-bg-hover);color:var(--theme-text-primary)}.message-reply-badge .typing-animation-small{display:flex;align-items:center;justify-content:center;gap:.3vh}.message-reply-badge .typing-animation-small span{width:.5vh;height:.5vh;background-color:var(--theme-text-secondary);border-radius:50%;animation:typingBounceSmall 1.4s ease-in-out infinite}@keyframes typingBounceSmall{0%,60%,to{transform:translateY(0);opacity:.6}30%{transform:translateY(-.5vh);opacity:1}}.message-reply-badge .unread-count{color:#ff4d6d;font-weight:600}.message-replies-container{margin-left:0;margin-top:1vh;padding-left:0;padding-right:0;border-left:none;display:flex;flex-direction:column;gap:1.4vh;overflow:visible;box-sizing:border-box}.message-replies-list{display:flex;flex-direction:column;gap:1vh}.message-reply-item{display:flex;flex-direction:column;align-items:flex-start;position:relative;margin:2.5vh 0}.message-reply-item.sent{align-items:flex-end}.message-reply-item.grouped{margin:0}.message-reply-item.show-avatar{margin:2.5vh 0}.message-reply-content{background:rgba(13,122,95,.5);border-radius:2.3vh;border-bottom-left-radius:.3vh;font-size:1.6vh;line-height:1.4;word-break:break-word;max-width:36vh;padding:1.2vh 1.4vh;color:var(--theme-text-primary);white-space:pre-wrap;margin-left:5.7vh;margin-right:5.7vh}.message-reply-item.sent .message-reply-content{background:var(--theme-bg-card);border-bottom-left-radius:2.3vh;border-bottom-right-radius:.3vh}.message-reply-item.grouped:not(.sent) .message-reply-content{border-bottom-left-radius:2.3vh;border-top-left-radius:.3vh}.message-reply-item.grouped.sent .message-reply-content{border-bottom-right-radius:2.3vh;border-top-right-radius:.3vh}.message-reply-profile{width:4.6vh;height:4.6vh;border-radius:50%;object-fit:cover;flex-shrink:0;position:absolute;bottom:-2.3vh;left:0;z-index:0;display:flex;align-items:center;justify-content:center;font-size:1.8vh;font-weight:700}.message-reply-item.sent .message-reply-profile{left:auto;right:0}.message-reply-name{color:var(--theme-text-secondary);font-size:1.4vh;font-weight:500;position:absolute;bottom:-2.3vh;left:5.6vh;z-index:0}.message-reply-item.sent .message-reply-name{left:auto;right:5.6vh}.message-reply-time{color:var(--theme-text-tertiary);font-size:1.4vh;font-weight:400}.message-reply-text{border-radius:.5vh}.message-reply-text,textarea.message-reply-text.editing{color:var(--theme-text-primary);font-size:1.6vh;line-height:1.4;outline:none;padding:0}textarea.message-reply-text.editing{background:transparent;border:none;margin:0;width:auto;min-width:100%;min-height:auto;max-height:none;overflow:visible;resize:none;font-family:inherit;cursor:text;caret-color:var(--theme-text-primary);-webkit-appearance:none;appearance:none;box-sizing:border-box;display:inline-block;vertical-align:top;field-sizing:content}.message-reply-typing-zone{max-height:11vh;min-height:0;display:flex;align-items:flex-end;pointer-events:none;padding:0;margin-bottom:0;transition:all .2s ease}.message-wrapper.typing-message{pointer-events:auto;margin:0!important}.message-wrapper.typing-message .message-reply-item,.message-wrapper.typing-message .message-reply-item.grouped{margin-top:1vh}.message-wrapper.typing-message .message-reply-item .message-reply-content{background:#0d7a5f!important;padding:0}.message-wrapper.typing-message .message-reply-item.sent .message-reply-content{background:var(--theme-bg-card)!important}.message-wrapper.typing-message .message-reply-item.grouped:not(.sent) .message-reply-content{border-bottom-left-radius:2.3vh;border-top-left-radius:.3vh}.message-wrapper.typing-message .message-reply-item.grouped.sent .message-reply-content{border-bottom-right-radius:2.3vh;border-top-right-radius:.3vh}.typing-animation{display:flex;gap:.5vh;align-items:center;justify-content:center;padding:2vh 3vh}.typing-animation span{display:inline-block;width:.8vh;height:.8vh;border-radius:50%;background-color:var(--theme-text-secondary);animation:typingDots 1.5s ease-in-out infinite;transition:background-color .2s ease}.message-wrapper.typing-message:hover .typing-animation span{background-color:var(--theme-text-primary)}.typing-animation span:first-child{animation-delay:0s}.typing-animation span:nth-child(2){animation-delay:.2s}.typing-animation span:nth-child(3){animation-delay:.4s}@keyframes typingDots{0%,60%,to{transform:translateY(0);opacity:.6}30%{transform:translateY(-1vh);opacity:1}}.message-reply-input-wrapper{z-index:20;display:flex;flex-direction:column;pointer-events:none;flex-shrink:0;min-height:fit-content;user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}.message-replies-container .message-reply-input-wrapper{pointer-events:auto}.message-reply-input-section{margin-top:1vh;width:100%;max-width:100%;box-sizing:border-box;pointer-events:auto}@keyframes fadeInInput{0%{opacity:0}to{opacity:1}}.message-reply-input-container{display:flex;align-items:flex-end;gap:1vh;width:100%;max-width:100%;box-sizing:border-box}.message-reply-input-icon-button{width:4.6vh;height:4.6vh;border-radius:50%;background:var(--theme-bg-card);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0;min-width:4.6vh}.message-reply-input-icon-button:hover{background:var(--theme-bg-hover)}.message-reply-plus-icon{width:1.8vh;height:1.8vh;color:var(--theme-text-secondary);stroke-width:2}.message-reply-input{flex:1;padding:1.2vh 1.4vh;background-color:var(--theme-bg-card);border:none;border-radius:2.3vh;color:var(--theme-text-primary);font-size:1.6vh;line-height:1.4;outline:none;resize:none;min-height:4.6vh;max-height:20vh;overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;caret-color:var(--theme-text-primary);-webkit-user-select:text;user-select:text;word-break:break-word;white-space:pre-wrap;-ms-overflow-style:none;scrollbar-width:none;box-sizing:border-box;overflow-anchor:none;scroll-padding:1.2vh 1.4vh}.message-reply-input::-webkit-scrollbar{display:none}.message-reply-input:focus,.message-reply-input:hover{background-color:var(--theme-bg-hover)}.message-reply-input:focus{caret-color:var(--theme-text-primary)}.message-reply-input::placeholder{color:var(--theme-text-secondary)}.message-reply-input:focus::placeholder{color:transparent;opacity:0}.message-reply-input:disabled{opacity:.5;cursor:not-allowed}.message-reply-submit-button{background:var(--theme-bg-card);border:none;border-radius:50%;width:4.6vh;height:4.6vh;min-width:4.6vh;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.message-reply-submit-button:hover:not(:disabled){background:hsla(0,0%,100%,.2)}.message-reply-submit-button:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.message-reply-send-icon{width:1.8vh;height:1.8vh;color:var(--theme-text-secondary);transition:all .2s ease;stroke-width:2}.message-reply-send-icon.active{color:var(--theme-text-primary)}.ai-typing-indicator{display:flex;align-items:center;gap:1vh;padding:.8vh 1.2vh;color:var(--theme-text-secondary);font-size:1.4vh}.ai-typing-dots{display:flex;gap:.3vh}.ai-typing-dots span{width:.6vh;height:.6vh;background:var(--theme-text-secondary);border-radius:50%;animation:ai-typing-bounce 1.4s ease-in-out infinite}.ai-typing-dots span:first-child{animation-delay:0s}.ai-typing-dots span:nth-child(2){animation-delay:.2s}.ai-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes ai-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-.4vh);opacity:1}}.ai-typing-text{opacity:.8}.ai-model-selector-bubble{margin-top:.8vh;padding:1.2vh 1.6vh;width:fit-content;max-width:70%;font-size:1.5vh}.message-container:not(.sent) .ai-model-selector-bubble{margin-left:5.7vh;background:rgba(13,122,95,.5);border-radius:2.3vh;border-top-left-radius:.3vh}.message-container.sent .ai-model-selector-bubble{margin-left:auto;margin-right:5.7vh;background:var(--theme-bg-card);border-radius:2.3vh;border-top-right-radius:.3vh}.ai-model-selector-item{padding:.8vh 0;cursor:pointer;color:var(--theme-text-primary,#fff)}.ai-model-selector-item:not(:last-child){border-bottom:1px solid var(--theme-border,#333)}.ai-model-selector-item:hover{opacity:.8}.ai-model-selector-item .model-name{font-weight:500}.ai-model-selector-item .model-description{font-size:1.2vh;color:var(--theme-text-secondary,#888);margin-top:.3vh}.ai-model-toggle{cursor:pointer;text-decoration:underline dotted}.ai-model-toggle:hover{opacity:.8}