/* VACSTUDY MESSENGER V1 — isolated/additive styles */
#messagingRouteRoot{display:none;width:100%;margin:0;padding:0;}
.messaging-page{width:100%;min-height:calc(100vh - 170px);border:1px solid var(--border-color);border-radius:24px;background:var(--surface-color);box-shadow:var(--shadow-lg);overflow:hidden;color:var(--text-main)}
.messaging-layout{display:grid;grid-template-columns:310px minmax(0,1fr) 270px;min-height:680px;height:calc(100vh - 190px);max-height:820px}
.messaging-sidebar{min-width:0;border-right:1px solid var(--border-color);background:var(--surface-color);display:flex;flex-direction:column;overflow:hidden}
.messaging-sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:22px 18px 14px;gap:12px}.messaging-eyebrow{font-size:.72rem;font-weight:900;letter-spacing:1.3px;color:var(--primary)}.messaging-sidebar-head h1{font-size:1.65rem;line-height:1.15;margin-top:3px}.messaging-compose{width:40px;height:40px;border-radius:12px;background:var(--secondary);color:var(--text-main);font-size:1rem}.messaging-compose:hover{background:var(--glow-primary);color:var(--primary)}
.messaging-search-wrap{position:relative;margin:0 14px 10px}.messaging-search-wrap>i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);z-index:1}.messaging-search-wrap input{width:100%;height:42px;padding:0 38px;border:1px solid var(--border-color);border-radius:13px;background:var(--secondary);color:var(--text-main);font-size:.88rem}.messaging-search-wrap input:focus{background:var(--surface-color)}.messaging-search-wrap button{display:none;position:absolute;right:7px;top:7px;width:28px;height:28px;border-radius:8px;background:transparent;color:var(--text-muted);font-size:1.2rem}
.messaging-search-results{max-height:280px;overflow:auto;padding:0 10px}.messaging-search-row{width:100%;display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:12px;background:transparent;color:var(--text-main);text-align:left}.messaging-search-row:hover{background:var(--secondary)}.messaging-search-main{display:flex;flex:1;min-width:0;flex-direction:column}.messaging-search-main strong{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messaging-search-main small{font-size:.75rem;color:var(--text-muted);margin-top:1px}.messaging-search-row>i{font-size:.72rem;color:var(--text-muted)}.messaging-search-empty,.messaging-search-loading{padding:12px;color:var(--text-muted);font-size:.82rem;text-align:center}.messaging-search-loading i{margin-right:6px;color:var(--primary)}
.messaging-inbox-list{overflow:auto;padding:4px 8px 12px;min-height:0;flex:1}.messaging-inbox-row{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 9px;border-radius:15px;background:transparent;color:var(--text-main);text-align:left;margin-bottom:3px}.messaging-inbox-row:hover{background:var(--secondary)}.messaging-inbox-row.active{background:var(--glow-primary)}.messaging-inbox-row.unread{background:color-mix(in srgb,var(--primary) 8%,transparent)}.messaging-inbox-row.unread strong{font-weight:900}.messaging-avatar-wrap{position:relative;width:48px;height:48px}.messaging-avatar{width:48px;height:48px;border-radius:50%;background:var(--secondary);border:1px solid var(--border-color);display:grid;place-items:center;overflow:hidden;color:var(--primary);font-weight:900;flex:0 0 auto}.messaging-avatar img{width:100%;height:100%;object-fit:cover}.messaging-avatar span{font-size:1rem}.messaging-avatar-sm{width:40px;height:40px}.messaging-avatar-md{width:44px;height:44px}.messaging-avatar-lg{width:68px;height:68px}.messaging-avatar-xl{width:92px;height:92px}.messaging-avatar-xs{width:30px;height:30px}.messaging-online-dot{position:absolute;right:0;bottom:1px;width:12px;height:12px;border-radius:50%;background:var(--success);border:2px solid var(--surface-color)}
.messaging-inbox-main{min-width:0;display:flex;flex-direction:column;gap:2px}.messaging-inbox-main strong{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messaging-inbox-preview{font-size:.78rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messaging-inbox-meta{display:flex;align-items:flex-end;flex-direction:column;gap:6px;align-self:stretch}.messaging-inbox-meta small{font-size:.7rem;color:var(--text-muted);white-space:nowrap}.messaging-inbox-meta b{min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;font-size:.68rem}.messaging-inbox-empty{display:grid;place-items:center;text-align:center;padding:55px 20px;color:var(--text-muted)}.messaging-inbox-empty>div{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:var(--glow-primary);color:var(--primary);font-size:1.3rem;margin-bottom:12px}.messaging-inbox-empty strong{color:var(--text-main);font-size:.92rem}.messaging-inbox-empty span{font-size:.8rem;max-width:210px;margin-top:5px}
.messaging-chat{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--bg-color)}.messaging-chat-head{height:76px;padding:12px 18px;border-bottom:1px solid var(--border-color);background:var(--surface-color);display:flex;align-items:center;gap:12px}.messaging-chat-person{display:flex;align-items:center;gap:11px;min-width:0;flex:1}.messaging-chat-person>div{display:flex;min-width:0;flex-direction:column}.messaging-chat-person strong{font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messaging-chat-person span{font-size:.74rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messaging-chat-info-btn,.messaging-chat-back{width:38px;height:38px;border-radius:11px;background:transparent;color:var(--text-muted)}.messaging-chat-info-btn:hover,.messaging-chat-back:hover{background:var(--secondary);color:var(--primary)}.messaging-chat-back{display:none}
.messaging-messages{min-height:0;overflow:auto;padding:22px 22px 18px;display:flex;flex-direction:column;gap:4px;scroll-behavior:smooth}.messaging-message-row{display:flex;width:100%;margin:2px 0}.messaging-message-row.mine{justify-content:flex-end}.messaging-message-stack{display:flex;align-items:flex-end;gap:7px;max-width:min(78%,620px)}.messaging-message-group{display:flex;flex-direction:column;max-width:100%}.messaging-message-row.mine .messaging-message-group{align-items:flex-end}.messaging-bubble{padding:10px 13px;border-radius:17px;background:var(--secondary);color:var(--text-main);font-size:.9rem;line-height:1.45;word-break:break-word;white-space:normal}.messaging-message-row.theirs .messaging-bubble{border-bottom-left-radius:6px}.messaging-message-row.mine .messaging-bubble{background:var(--primary);color:#fff;border-bottom-right-radius:6px}.messaging-message-meta{display:flex;gap:7px;align-items:center;margin-top:3px;padding:0 4px;font-size:.66rem;color:var(--text-muted)}.messaging-seen.is-seen{color:var(--primary);font-weight:800}.messaging-empty-chat,.messaging-empty-conversation{height:100%;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;color:var(--text-muted)}.messaging-empty-chat h2{color:var(--text-main);font-size:1.2rem;margin:12px 0 4px}.messaging-empty-chat p,.messaging-empty-conversation span{max-width:360px;font-size:.86rem}.messaging-empty-icon{width:76px;height:76px;border-radius:25px;display:grid;place-items:center;background:var(--glow-primary);color:var(--primary);font-size:2rem}.messaging-empty-conversation{gap:3px}.messaging-empty-conversation>div{font-size:2rem;margin-bottom:5px}.messaging-empty-conversation strong{color:var(--text-main)}
.messaging-composer{display:flex;align-items:flex-end;gap:8px;padding:12px 16px 14px;border-top:1px solid var(--border-color);background:var(--surface-color)}.messaging-composer textarea{min-height:42px;max-height:120px;flex:1;resize:none;border:1px solid var(--border-color);border-radius:16px;background:var(--secondary);color:var(--text-main);padding:10px 14px;line-height:1.35;font-size:.9rem}.messaging-composer textarea:focus{background:var(--surface-color)}.messaging-emoji-btn,.messaging-send-btn{width:42px;height:42px;border-radius:13px;flex:0 0 auto}.messaging-emoji-btn{background:var(--secondary);font-size:1rem}.messaging-send-btn{background:var(--primary);color:#fff;font-size:.95rem}.messaging-send-btn:hover{background:var(--primary-hover);transform:translateY(-1px)}
.messaging-info{border-left:1px solid var(--border-color);background:var(--surface-color);overflow:auto}.messaging-info-card{display:flex;align-items:center;flex-direction:column;text-align:center;padding:30px 18px}.messaging-info-card h3{font-size:1.08rem;margin-top:12px;display:flex;align-items:center;gap:6px}.messaging-info-handle{color:var(--text-muted);font-size:.8rem;margin-top:2px}.messaging-info-school{color:var(--text-muted);font-size:.78rem;margin-top:8px}.messaging-info-actions{width:100%;margin-top:18px}.messaging-info-actions .btn{width:100%;justify-content:center}.messaging-info-section{width:100%;text-align:left;border-top:1px solid var(--border-color);margin-top:22px;padding-top:18px;display:flex;flex-direction:column;gap:4px}.messaging-info-section strong{font-size:.8rem}.messaging-info-section span{font-size:.76rem;color:var(--text-muted)}.messaging-info-empty{height:100%;display:grid;place-items:center;align-content:center;color:var(--text-muted);font-size:.82rem;text-align:center;gap:8px}.messaging-info-empty i{font-size:1.6rem;color:var(--primary)}
.messaging-loading{height:100%;display:grid;place-items:center;align-content:center;gap:8px;color:var(--text-muted);font-size:.84rem}.messaging-loading i{color:var(--primary)}.messaging-mobile-head{display:none}.messaging-verified{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:#1877f2;color:#fff;font-size:9px;margin-left:4px;vertical-align:middle}.messaging-verified-lg{width:18px;height:18px;font-size:9px}.messaging-mobile-search{width:38px;height:38px;border-radius:11px;background:var(--secondary);color:var(--text-main)}

@media(max-width:1100px){.messaging-layout{grid-template-columns:290px minmax(0,1fr)}.messaging-info{display:none}.messaging-layout.messaging-info-open .messaging-info{display:block}.messaging-info-open .messaging-chat{display:none}}
@media(max-width:800px){
  #messagingRouteRoot{margin:0 -12px;width:calc(100% + 24px)}
  .messaging-page{border-radius:18px;min-height:calc(100vh - 125px);box-shadow:none}
  .messaging-mobile-head{height:58px;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border-color);background:var(--surface-color)}
  .messaging-mobile-head>div{display:flex;align-items:center;flex-direction:column;line-height:1.05}.messaging-mobile-head strong{font-size:.94rem}.messaging-mobile-head span{font-size:.65rem;color:var(--text-muted);margin-top:3px;letter-spacing:.8px}.messaging-back-global,.messaging-mobile-search{width:38px;height:38px;border-radius:11px;background:var(--secondary);color:var(--text-main)}
  .messaging-layout{display:block;height:calc(100vh - 183px);min-height:520px;max-height:none;position:relative}
  .messaging-sidebar{height:100%;border-right:0}.messaging-chat{display:none;height:100%;position:absolute;inset:0;z-index:3}.messaging-info{display:none;position:absolute;inset:0;z-index:5;border-left:0}.messaging-page.messaging-mobile-chat-open .messaging-sidebar{display:none}.messaging-page.messaging-mobile-chat-open .messaging-chat{display:grid}.messaging-page.messaging-info-open .messaging-info{display:block}.messaging-page.messaging-info-open .messaging-chat{display:none}
  .messaging-chat-back{display:inline-flex}.messaging-chat-head{height:64px;padding:8px 10px}.messaging-messages{padding:16px 12px}.messaging-message-stack{max-width:88%}.messaging-composer{padding:8px}.messaging-chat-info-btn{width:34px;height:34px}.messaging-info-card{padding-top:42px}
}
@media(max-width:480px){.messaging-sidebar-head{padding:17px 14px 11px}.messaging-sidebar-head h1{font-size:1.45rem}.messaging-inbox-row{grid-template-columns:45px minmax(0,1fr) auto;padding:9px 7px}.messaging-avatar-wrap,.messaging-avatar{width:45px;height:45px}.messaging-avatar-xs{width:28px;height:28px}.messaging-bubble{font-size:.87rem;padding:9px 12px}.messaging-message-meta{font-size:.62rem}.messaging-search-results{max-height:230px}}
.messaging-header-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;border:2px solid var(--surface-color);font-size:.62rem;font-weight:900;line-height:14px;display:none;align-items:center;justify-content:center;z-index:3;pointer-events:none}
.social-profile-message-btn{background:var(--primary)!important;color:#fff!important}

/* =========================
   MESSENGER V2
   ========================= */
.messaging-chat{position:relative}.messaging-chat-head{position:relative}.messaging-chat-search-btn{width:38px;height:38px;border-radius:11px;background:transparent;color:var(--text-muted)}.messaging-chat-search-btn:hover{background:var(--secondary);color:var(--primary)}
.messaging-chat-search{display:none;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-color);background:var(--surface-color)}.messaging-chat-search.is-open{display:flex}.messaging-chat-search>i{color:var(--text-muted)}.messaging-chat-search input{min-width:0;flex:1;border:0;outline:0;background:var(--secondary);color:var(--text-main);border-radius:12px;padding:9px 12px;font-size:.82rem}.messaging-chat-search button{width:34px;height:34px;border-radius:9px;background:var(--secondary);color:var(--text-muted)}.messaging-chat-search span{font-size:.7rem;color:var(--text-muted);white-space:nowrap}
.messaging-message-content-wrap{position:relative;display:flex;align-items:flex-end;gap:6px;max-width:100%}.messaging-message-row.mine .messaging-message-content-wrap{flex-direction:row-reverse}.messaging-message-content{min-width:0;max-width:100%}.messaging-message-actions{display:flex;gap:3px;opacity:0;pointer-events:none;transition:opacity .15s ease;align-items:center}.messaging-message-row:hover .messaging-message-actions,.messaging-message-actions:focus-within{opacity:1;pointer-events:auto}.messaging-message-actions button{width:30px;height:30px;border-radius:50%;background:var(--secondary);color:var(--text-muted);border:1px solid var(--border-color);font-size:.7rem}.messaging-message-actions button:hover{color:var(--primary);background:var(--surface-color)}
.messaging-reply-preview{display:flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%;margin-bottom:5px;padding:6px 9px;border-left:3px solid currentColor;border-radius:8px;background:rgba(127,127,127,.12);color:inherit;text-align:left}.messaging-reply-preview span{font-size:.65rem;font-weight:800;opacity:.85}.messaging-reply-preview strong{font-size:.72rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.messaging-message-row.mine .messaging-reply-preview{color:#fff;background:rgba(255,255,255,.13)}
.messaging-image-button{display:block;padding:0;border:0;border-radius:15px;overflow:hidden;background:transparent;max-width:min(330px,100%);cursor:zoom-in}.messaging-image-button img{display:block;width:auto;max-width:330px;max-height:360px;object-fit:cover}.messaging-file-card{min-width:250px;max-width:330px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:15px;background:var(--secondary);border:1px solid var(--border-color)}.messaging-message-row.mine .messaging-file-card{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.15);color:#fff}.messaging-file-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--glow-primary);color:var(--primary);flex:0 0 auto}.messaging-file-main{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px}.messaging-file-main strong{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messaging-file-main small{font-size:.67rem;color:var(--text-muted)}.messaging-message-row.mine .messaging-file-main small{color:rgba(255,255,255,.75)}.messaging-file-card>a{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--primary);background:var(--surface-color);text-decoration:none}.messaging-unsent-bubble{display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:16px;background:var(--secondary);border:1px dashed var(--border-color);color:var(--text-muted);font-size:.78rem;font-style:italic}.messaging-message-row.mine .messaging-unsent-bubble{background:rgba(127,127,127,.15)}
.messaging-reply-bar,.messaging-attachment-preview,.messaging-upload-state{display:none}.messaging-reply-bar.is-visible,.messaging-attachment-preview.is-visible,.messaging-upload-state.is-visible{display:flex}.messaging-reply-bar{align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;border-top:1px solid var(--border-color);background:var(--surface-color);font-size:.76rem}.messaging-reply-bar>div{display:flex;align-items:center;gap:8px;min-width:0;color:var(--primary)}.messaging-reply-bar>div>span{display:flex;flex-direction:column;min-width:0}.messaging-reply-bar small{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(520px,70vw)}.messaging-reply-bar>button{width:30px;height:30px;border-radius:8px;background:var(--secondary);color:var(--text-muted)}
.messaging-attachment-preview{align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;border-top:1px solid var(--border-color);background:var(--surface-color)}.messaging-attachment-preview-inner{display:flex;align-items:center;gap:9px;min-width:0}.messaging-attachment-preview-inner img{width:52px;height:52px;border-radius:10px;object-fit:cover}.messaging-attachment-preview-inner>i{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:var(--glow-primary);color:var(--primary)}.messaging-attachment-preview-inner>div{display:flex;flex-direction:column;gap:2px;min-width:0}.messaging-attachment-preview-inner strong{font-size:.76rem}.messaging-attachment-preview-inner small{font-size:.67rem;color:var(--text-muted)}.messaging-attachment-preview>button{width:32px;height:32px;border-radius:9px;background:var(--secondary);color:var(--text-muted)}.messaging-upload-state{align-items:center;gap:7px;padding:5px 14px;font-size:.7rem;color:var(--primary);border-top:1px solid var(--border-color);background:var(--surface-color)}
.messaging-composer{position:relative}.messaging-input-wrap{position:relative;flex:1;min-width:0}.messaging-input-wrap textarea{width:100%}.messaging-media-btn{width:42px;height:42px;border-radius:13px;flex:0 0 auto;background:var(--secondary);color:var(--primary)}.messaging-media-btn:hover{background:var(--glow-primary)}.messaging-emoji-picker{display:none;position:absolute;right:0;bottom:52px;width:min(310px,calc(100vw - 24px));padding:10px;grid-template-columns:repeat(6,1fr);gap:4px;border:1px solid var(--border-color);border-radius:16px;background:var(--surface-color);box-shadow:0 18px 50px rgba(0,0,0,.22);z-index:20}.messaging-emoji-picker.is-open{display:grid}.messaging-emoji-picker button{height:40px;border-radius:9px;background:transparent;font-size:1.25rem}.messaging-emoji-picker button:hover{background:var(--secondary)}
.messaging-image-viewer{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:30px;background:rgba(0,0,0,.82);backdrop-filter:blur(6px)}.messaging-image-viewer img{max-width:92vw;max-height:90vh;object-fit:contain;border-radius:10px;box-shadow:0 20px 70px rgba(0,0,0,.45)}.messaging-image-viewer-close{position:fixed;top:18px;right:18px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);font-size:1.1rem}
.messaging-context-menu{position:fixed;z-index:100000;min-width:170px;padding:5px;border:1px solid var(--border-color);border-radius:13px;background:var(--surface-color);box-shadow:0 18px 45px rgba(0,0,0,.25)}.messaging-context-menu button{display:flex;width:100%;align-items:center;gap:9px;padding:10px 11px;border-radius:9px;background:transparent;color:var(--text-main);text-align:left;font-size:.8rem}.messaging-context-menu button:hover{background:var(--secondary);color:var(--primary)}.messaging-message-highlight{animation:messagingMessageHighlight 1.6s ease}.messaging-search-match{outline:2px solid var(--primary);outline-offset:3px;border-radius:18px}.messaging-search-dim{opacity:.35}.messaging-message-row{transition:opacity .18s ease,transform .18s ease}
@keyframes messagingMessageHighlight{0%,100%{transform:scale(1)}35%{transform:scale(1.02)}}
@media(max-width:800px){.messaging-message-actions{display:none}.messaging-image-button{max-width:270px}.messaging-image-button img{max-width:270px;max-height:300px}.messaging-file-card{min-width:220px;max-width:280px}.messaging-media-btn,.messaging-emoji-btn,.messaging-send-btn{width:39px;height:39px}.messaging-emoji-picker{bottom:50px}.messaging-chat-search{padding:7px 9px}.messaging-chat-search span{display:none}}
@media(max-width:480px){.messaging-composer{gap:5px}.messaging-media-btn,.messaging-emoji-btn,.messaging-send-btn{width:36px;height:36px;border-radius:11px}.messaging-image-button{max-width:230px}.messaging-image-button img{max-width:230px;max-height:260px}.messaging-file-card{min-width:195px;max-width:245px}.messaging-emoji-picker{grid-template-columns:repeat(6,1fr);padding:8px}.messaging-emoji-picker button{height:35px;font-size:1.1rem}}
/* VACSTUDY Messenger V3 additive UX */
.messaging-message-content-wrap{position:relative;display:flex!important;align-items:flex-end;max-width:100%;gap:6px}
.messaging-message-row.mine .messaging-message-content-wrap{flex-direction:row!important}
.messaging-message-content{position:relative;min-width:0;max-width:100%}
.messaging-message-actions{position:absolute!important;right:-6px;bottom:100%;transform:translateY(-4px);display:flex!important;gap:4px;opacity:0;pointer-events:none;z-index:30;white-space:nowrap}
.messaging-message-row:hover .messaging-message-actions,.messaging-message-actions:focus-within{opacity:1;pointer-events:auto}
.messaging-message-actions button{box-shadow:0 5px 16px rgba(0,0,0,.14)}
.messaging-reply-preview{margin:0 0 5px!important;width:100%;box-sizing:border-box}
.messaging-reaction{display:inline-flex;align-items:center;justify-content:center;margin:-10px 0 0 6px;min-width:25px;height:25px;padding:0 6px;border-radius:999px;background:var(--surface-color);border:1px solid var(--border-color);box-shadow:0 2px 7px rgba(0,0,0,.14);position:relative;z-index:2}
.messaging-presence-status{font-size:.72rem;color:var(--text-muted);margin-top:4px}.messaging-presence-status.is-online{color:#16a34a;font-weight:800}
.messaging-info-setting{width:100%;border:0;background:transparent;color:var(--text-main);text-align:left;padding:9px 0;cursor:pointer}.messaging-info-setting:hover{color:var(--primary)}
@media(max-width:800px){.messaging-message-actions{display:flex!important;position:fixed!important;right:12px;bottom:12px;top:auto;transform:none;opacity:0}.messaging-message-row.is-mobile-action .messaging-message-actions{opacity:1;pointer-events:auto}.messaging-message-content-wrap{max-width:100%}}

/* =========================================================
   VACSTUDY MESSENGER UI FINAL — persistent Messenger-like actions
   Additive override: keeps V1/V2/V3 data and handlers intact.
   ========================================================= */
.messaging-message-row{width:100%;}
.messaging-message-stack{width:fit-content;max-width:min(96%,760px);min-width:0;}
.messaging-message-group{min-width:0;max-width:100%;}
.messaging-message-content-wrap{display:flex!important;align-items:flex-end!important;gap:7px!important;max-width:100%;min-width:0;position:relative;}
.messaging-message-row.mine .messaging-message-content-wrap{flex-direction:row!important;}
.messaging-message-content{min-width:0;max-width:min(100%,620px);}
.messaging-message-actions{position:static!important;display:flex!important;align-items:center!important;gap:3px!important;flex:0 0 auto;opacity:1!important;pointer-events:auto!important;transform:none!important;white-space:nowrap;z-index:4;}
.messaging-message-actions button{width:28px!important;height:28px!important;min-width:28px!important;border-radius:50%!important;background:var(--surface-color)!important;color:var(--text-muted)!important;border:1px solid var(--border-color)!important;box-shadow:0 3px 12px rgba(0,0,0,.14)!important;}
.messaging-message-actions button:hover,.messaging-message-actions button:focus-visible{color:var(--primary)!important;background:var(--secondary)!important;border-color:var(--primary)!important;}
.messaging-bubble-shell{display:flex;flex-direction:column;min-width:0;max-width:100%;padding:0;overflow:hidden;border-radius:17px;background:var(--secondary);color:var(--text-main);}
.messaging-message-row.mine .messaging-bubble-shell{background:var(--primary);color:#fff;}
.messaging-bubble-shell>.messaging-bubble{border-radius:0!important;background:transparent!important;color:inherit!important;}
.messaging-bubble-shell>.messaging-image-button{border-radius:0!important;max-width:min(330px,100%);}
.messaging-bubble-shell>.messaging-file-card{border:0!important;border-radius:0!important;background:transparent!important;max-width:330px;}
.messaging-message-row.mine .messaging-bubble-shell>.messaging-file-card{color:#fff;background:transparent!important;}
.messaging-reply-preview{width:calc(100% - 12px)!important;margin:6px 6px 0!important;box-sizing:border-box;min-width:0;padding:7px 9px!important;border:0!important;border-left:3px solid currentColor!important;border-radius:10px!important;background:rgba(127,127,127,.14)!important;color:inherit!important;}
.messaging-message-row.mine .messaging-reply-preview{background:rgba(255,255,255,.14)!important;color:#fff!important;}
.messaging-reply-preview span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.67rem!important;font-weight:850!important;}
.messaging-reply-preview strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem!important;font-weight:600!important;}
.messaging-reaction{align-self:flex-end;margin:-8px 0 0 -22px!important;z-index:6;}
.messaging-unsent-shell{padding:0!important;background:transparent!important;overflow:visible!important;}
.messaging-unsent-bubble{border-radius:16px!important;}
.messaging-message-row.mine .messaging-unsent-shell{background:transparent!important;}
.messaging-message-row:hover .messaging-message-actions,.messaging-message-actions:focus-within{opacity:1!important;pointer-events:auto!important;}
.messaging-message-highlight .messaging-bubble-shell{box-shadow:0 0 0 3px var(--primary),0 10px 28px rgba(37,99,235,.22);}

@media (max-width:800px){
  .messaging-messages{padding:14px 10px 14px;}
  .messaging-message-stack{max-width:98%;}
  .messaging-message-content{max-width:min(calc(100vw - 118px),620px);}
  .messaging-message-actions{gap:2px!important;}
  .messaging-message-actions button{width:27px!important;height:27px!important;min-width:27px!important;font-size:.66rem!important;}
  .messaging-image-button,.messaging-image-button img{max-width:min(260px,calc(100vw - 150px))!important;}
  .messaging-file-card{min-width:0!important;width:min(260px,calc(100vw - 150px));max-width:260px!important;}
  .messaging-reply-preview{width:calc(100% - 10px)!important;margin:5px 5px 0!important;}
  .messaging-message-meta{font-size:.61rem!important;}
}

@media (max-width:430px){
  .messaging-message-stack{max-width:100%;}
  .messaging-message-actions button{width:25px!important;height:25px!important;min-width:25px!important;}
  .messaging-message-content{max-width:calc(100vw - 104px);}
  .messaging-image-button,.messaging-image-button img{max-width:calc(100vw - 132px)!important;}
  .messaging-file-card{width:calc(100vw - 132px)!important;}
  .messaging-reaction{margin-left:-18px!important;}
}

/* =========================================================
   MESSENGER V5 — media reliability, gallery, grouping, mobile UX
   Additive only: preserves V1/V2/V3/V4 selectors and data model.
   ========================================================= */
.messaging-message-row.group-continuous{margin-top:-1px!important;}
.messaging-message-row.group-start{margin-top:7px!important;}
.messaging-message-row.group-continuous .messaging-bubble-shell{border-radius:8px 17px 17px 8px!important;}
.messaging-message-row.theirs.group-continuous .messaging-bubble-shell{border-bottom-left-radius:6px!important;}
.messaging-message-row.mine.group-continuous .messaging-bubble-shell{border-bottom-right-radius:6px!important;}
.messaging-message-row.group-end .messaging-bubble-shell{margin-bottom:1px;}
.messaging-avatar-spacer{width:30px;height:30px;flex:0 0 30px;}
.messaging-image-button{position:relative;display:block;padding:0;border:0;background:#050505;overflow:hidden;cursor:zoom-in;line-height:0;min-height:42px;}
.messaging-image-button img,.messaging-image-button video{display:block;width:100%;max-width:330px;max-height:390px;object-fit:cover;background:#050505;}
.messaging-image-button.is-load-error img{opacity:.18;}
.messaging-media-load-error{display:none;position:absolute;inset:0;align-items:center;justify-content:center;gap:7px;background:rgba(0,0,0,.62);color:#fff;font-size:.75rem;font-weight:800;line-height:1;}
.messaging-image-button.is-load-error .messaging-media-load-error{display:flex;}
.messaging-video-button{cursor:pointer;}
.messaging-media-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.55);color:#fff;font-size:1rem;}
.messaging-image-viewer{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.88);backdrop-filter:blur(10px);touch-action:none;}
.messaging-image-viewer-stage{position:relative;display:grid;place-items:center;max-width:96vw;max-height:92vh;min-width:120px;min-height:100px;}
.messaging-image-viewer-stage img,.messaging-image-viewer-stage video{max-width:94vw;max-height:88vh;object-fit:contain;border-radius:12px;box-shadow:0 24px 90px rgba(0,0,0,.55);touch-action:pinch-zoom;}
.messaging-image-viewer-toolbar{position:fixed;right:18px;top:18px;display:flex;gap:8px;z-index:2;}
.messaging-image-viewer-toolbar button,.messaging-image-viewer-toolbar a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);text-decoration:none;backdrop-filter:blur(8px);}
.messaging-viewer-loading{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:7px;color:#fff;font-size:.82rem;z-index:1;pointer-events:none;}
.messaging-viewer-retry{display:none;position:absolute;left:50%;bottom:18px;transform:translateX(-50%);padding:10px 14px;border-radius:12px;background:#fff;color:#111;border:0;font-weight:850;z-index:3;}
.messaging-image-viewer.is-load-error .messaging-viewer-retry{display:block;}
.messaging-image-viewer.is-load-error .messaging-image-viewer-stage img,.messaging-image-viewer.is-load-error .messaging-image-viewer-stage video{opacity:.18;}
.messaging-gallery-modal{position:fixed;inset:0;z-index:99998;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.72);backdrop-filter:blur(8px);}
.messaging-gallery-card{width:min(900px,96vw);max-height:min(760px,92vh);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-color);border-radius:22px;background:var(--surface-color);box-shadow:0 24px 80px rgba(0,0,0,.35);}
.messaging-gallery-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border-color);}
.messaging-gallery-head span{font-size:.65rem;font-weight:900;letter-spacing:.14em;color:var(--primary);}.messaging-gallery-head h3{margin:3px 0 0;font-size:1.15rem;}.messaging-gallery-head button{width:38px;height:38px;border-radius:11px;background:var(--secondary);color:var(--text-main);}
.messaging-gallery-grid{padding:14px;overflow:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;}
.messaging-gallery-item{position:relative;aspect-ratio:1;border:0;border-radius:14px;overflow:hidden;background:var(--secondary);padding:0;cursor:pointer;}.messaging-gallery-item img,.messaging-gallery-item video{width:100%;height:100%;display:block;object-fit:cover;}.messaging-gallery-item>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.55);color:#fff;}.messaging-gallery-item small{position:absolute;left:7px;bottom:6px;padding:3px 6px;border-radius:7px;background:rgba(0,0,0,.55);color:#fff;font-size:.62rem;}
.messaging-gallery-empty{grid-column:1/-1;min-height:260px;display:grid;place-items:center;align-content:center;text-align:center;color:var(--text-muted);gap:6px;}.messaging-gallery-empty i{font-size:2rem;color:var(--primary);}.messaging-gallery-empty strong{color:var(--text-main);}
.messaging-attachment-preview{border-top:1px solid var(--border-color)!important;background:var(--surface-color)!important;}.messaging-attachment-preview-inner{min-width:0;}.messaging-attachment-preview-inner img{width:82px!important;height:62px!important;object-fit:cover!important;border-radius:10px!important;}.messaging-upload-state{display:none;}.messaging-upload-state.is-visible{display:flex;}.messaging-upload-state.is-error{color:var(--danger);}.messaging-upload-state button{margin-left:auto;padding:5px 9px;border-radius:8px;background:var(--secondary);color:var(--primary);font-weight:800;}
.messaging-gallery-btn{margin-top:8px!important;}
.messaging-chat{position:relative;min-height:0;}.messaging-messages{overscroll-behavior:contain;scrollbar-gutter:stable;}

@media (max-width:1100px){
  .messaging-layout{grid-template-columns:290px minmax(0,1fr) 230px;}
  .messaging-message-stack{max-width:min(86%,620px)!important;}
  .messaging-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:800px){
  #messagingRouteRoot{width:100vw;max-width:100vw;overflow:hidden;}
  .messaging-page{min-height:calc(100dvh - 70px);height:calc(100dvh - 70px);max-height:none;border-radius:16px;margin:0;border-left:0;border-right:0;}
  .messaging-layout{height:100%;min-height:0;display:block;position:relative;}
  .messaging-sidebar,.messaging-chat,.messaging-info{height:100%;width:100%;}
  .messaging-chat{position:absolute;inset:0;display:none;z-index:5;}
  .messaging-mobile-chat-open .messaging-chat{display:grid;}
  .messaging-mobile-chat-open .messaging-sidebar{display:none;}
  .messaging-info{position:absolute;inset:0;display:none;z-index:8;border-left:0;}
  .messaging-info-open .messaging-info{display:block;}
  .messaging-info-open .messaging-chat{display:none;}
  .messaging-info-open .messaging-sidebar{display:none;}
  .messaging-chat-head{height:64px;padding:9px 10px;gap:7px;}.messaging-chat-back{display:grid;place-items:center;}.messaging-chat-person .messaging-avatar-md{width:38px;height:38px;}.messaging-chat-search-btn,.messaging-chat-info-btn{width:36px;height:36px;}
  .messaging-messages{padding:12px 9px 14px;gap:2px;}
  .messaging-message-stack{max-width:calc(100vw - 24px)!important;}.messaging-message-content{max-width:min(calc(100vw - 108px),620px)!important;}.messaging-message-actions{gap:2px!important;}
  .messaging-message-actions button{width:27px!important;height:27px!important;min-width:27px!important;}
  .messaging-image-button img,.messaging-image-button video{max-width:min(270px,calc(100vw - 120px));max-height:320px;}
  .messaging-composer{padding:8px 7px calc(8px + env(safe-area-inset-bottom));gap:5px;}.messaging-media-btn,.messaging-emoji-btn,.messaging-send-btn{width:38px;height:38px;min-width:38px;border-radius:11px;}
  .messaging-composer textarea{min-height:38px;padding:8px 11px;border-radius:14px;font-size:.86rem;}
  .messaging-gallery-modal{padding:8px;}.messaging-gallery-card{width:100%;max-height:94dvh;border-radius:17px;}.messaging-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:9px;gap:6px;}
  .messaging-image-viewer{padding:8px;}.messaging-image-viewer-stage img,.messaging-image-viewer-stage video{max-width:100vw;max-height:86dvh;border-radius:8px;}.messaging-image-viewer-toolbar{right:10px;top:10px;}
}
@media (max-width:430px){
  .messaging-message-content{max-width:calc(100vw - 100px)!important;}.messaging-image-button img,.messaging-image-button video{max-width:calc(100vw - 112px);max-height:280px;}.messaging-message-actions button{width:25px!important;height:25px!important;min-width:25px!important;font-size:.62rem!important;}.messaging-avatar-spacer{width:25px;height:25px;flex-basis:25px;}
  .messaging-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
