/* Pulse Social Phase 51: Messenger + near-real-time notifications */
.phase51-messenger-page .phase16-shell{width:min(1540px,97vw)}
.phase51-messenger-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 20%,rgba(255,255,255,.05)),rgba(255,255,255,.035));overflow:hidden}.phase51-messenger-hero h1{margin:.35rem 0 .15rem}.phase51-messenger-hero p{margin:0}.phase51-live-chip{display:inline-flex;align-items:center;gap:.4rem}.phase51-live-chip i,.phase51-live-state i{display:inline-block;width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.14),0 0 16px rgba(34,197,94,.65)}
.phase51-live-state{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .72rem;border:1px solid rgba(34,197,94,.25);border-radius:999px;background:rgba(34,197,94,.09);font-weight:900;color:#a7f3d0;white-space:nowrap}.phase51-live-state.recent{color:#fde68a;border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.1)}.phase51-live-state.recent i{background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.14)}.phase51-live-state.offline{color:#fecaca;border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.1)}.phase51-live-state.offline i{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.14)}
.phase51-messenger-shell{display:grid;grid-template-columns:minmax(280px,340px) minmax(430px,1fr) minmax(220px,275px);gap:.8rem;align-items:stretch;min-height:calc(100vh - 220px)}.phase51-messenger-shell>.card{margin:0;padding:0;overflow:hidden;min-height:680px}
.phase51-inbox{display:grid;grid-template-rows:auto auto minmax(0,1fr)}.phase51-inbox>header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--line)}.phase51-inbox h2{margin:0}.phase51-chat-search{margin:.8rem;display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:14px;padding:.55rem .7rem;background:rgba(255,255,255,.045)}.phase51-chat-search input{border:0!important;background:transparent!important;padding:0!important;min-width:0;width:100%;box-shadow:none!important}.phase51-conversation-list{overflow:auto;padding:0 .55rem .75rem;overscroll-behavior:contain}.phase51-conversation{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.68rem;border:1px solid transparent;border-radius:18px;color:inherit;text-decoration:none;margin:.2rem 0;transition:.16s ease}.phase51-conversation:hover{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.08)}.phase51-conversation.active{background:color-mix(in srgb,var(--accent) 18%,rgba(255,255,255,.055));border-color:color-mix(in srgb,var(--accent) 38%,rgba(255,255,255,.12))}.phase51-conversation.is-unread{background:color-mix(in srgb,var(--accent) 10%,rgba(255,255,255,.045))}.phase51-avatar-wrap{position:relative;display:inline-flex;flex:0 0 auto}.phase51-avatar-wrap .avatar{width:46px;height:46px;object-fit:cover}.phase51-presence{position:absolute;right:0;bottom:0;width:12px;height:12px;border-radius:50%;border:2px solid var(--card,#111827);background:#64748b}.phase51-presence.online{background:#22c55e;box-shadow:0 0 10px rgba(34,197,94,.75)}.phase51-presence.recent{background:#f59e0b}.phase51-presence.offline{background:#64748b}.phase51-convo-copy{min-width:0}.phase51-convo-copy strong{display:flex;justify-content:space-between;gap:.5rem;align-items:center;font-size:.92rem}.phase51-convo-copy time{font-size:.68rem;color:var(--muted);font-weight:700}.phase51-convo-copy small{display:block;color:var(--muted);font-size:.72rem}.phase51-convo-copy p{margin:.15rem 0 0;color:var(--muted);font-size:.8rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.phase51-conversation>.badge{align-self:center}
.phase51-chat{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto auto;position:relative}.phase51-chat-head{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;border-bottom:1px solid var(--line);background:rgba(255,255,255,.025)}.phase51-chat-person{display:flex;align-items:center;gap:.65rem;color:inherit;text-decoration:none;min-width:0}.phase51-chat-person strong,.phase51-chat-person small{display:block}.phase51-chat-person small{color:var(--muted);margin-top:.1rem}.phase51-chat-tools{display:flex;gap:.35rem;align-items:center}.phase51-chat-stream{overflow:auto;padding:1rem 1.2rem;overscroll-behavior:contain;background:radial-gradient(circle at 50% 10%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 36%)}.phase51-day-divider{display:flex;align-items:center;gap:.8rem;color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin:.5rem 0 1rem}.phase51-day-divider:before,.phase51-day-divider:after{content:"";height:1px;flex:1;background:var(--line)}
.phase51-message{margin:.42rem 0}.phase51-message .message-bubble{max-width:min(72%,680px);padding:.58rem .72rem;border-radius:20px}.phase51-message.me .message-bubble{border-bottom-right-radius:7px}.phase51-message.them .message-bubble{border-bottom-left-radius:7px}.phase51-message .message-text{font-size:.95rem;line-height:1.42;overflow-wrap:anywhere}.phase51-message-meta{display:flex;justify-content:flex-end;gap:.45rem;margin-top:.25rem;color:inherit;opacity:.72;font-size:.66rem}.phase51-message-actions{opacity:0;transform:translateY(2px);transition:.14s ease;position:absolute;top:-27px;right:.25rem;background:rgba(9,11,22,.96);border:1px solid rgba(255,255,255,.13);padding:.18rem;border-radius:999px;box-shadow:0 12px 35px rgba(0,0,0,.28)}.phase51-message.them .phase51-message-actions{left:.25rem;right:auto}.phase51-message:hover .phase51-message-actions,.phase51-message:focus-within .phase51-message-actions,.phase51-message-actions:has(.open){opacity:1;transform:none}.phase51-msg-action{border:0;background:transparent;color:#ddd6fe;font-size:.68rem;font-weight:850;padding:.28rem .42rem;border-radius:999px;cursor:pointer}.phase51-msg-action:hover{background:rgba(255,255,255,.1);color:#fff}.phase51-message .message-react-toggle{opacity:1!important;transform:none!important}.phase51-message .message-reaction-picker{bottom:calc(100% + .3rem)}
.phase51-reply-quote{display:grid;width:100%;text-align:left;border:0;border-left:3px solid rgba(255,255,255,.48);background:rgba(0,0,0,.16);color:inherit;border-radius:9px;padding:.38rem .5rem;margin-bottom:.42rem;cursor:pointer}.phase51-reply-quote strong{font-size:.7rem}.phase51-reply-quote span{font-size:.73rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.82}.phase51-unsent{font-style:italic;opacity:.72}.phase51-highlight .message-bubble{animation:phase51-highlight 1.35s ease}@keyframes phase51-highlight{0%,100%{box-shadow:none}35%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 40%,transparent),0 0 35px color-mix(in srgb,var(--accent) 35%,transparent)}}
.phase51-first-message,.phase51-chat-empty{display:grid;place-items:center;text-align:center;align-content:center;min-height:100%;padding:2rem}.phase51-first-message p,.phase51-chat-empty p{margin:.35rem 0 1rem}.phase51-empty-mark{width:78px;height:78px;display:grid;place-items:center;border-radius:28px;background:color-mix(in srgb,var(--accent) 22%,rgba(255,255,255,.06));font-size:2rem;margin-bottom:.8rem}.phase51-new-message-btn{position:absolute;right:1rem;bottom:104px;z-index:8;border:1px solid color-mix(in srgb,var(--accent) 45%,rgba(255,255,255,.15));background:rgba(14,10,25,.94);color:#fff;border-radius:999px;padding:.48rem .72rem;font-weight:900;box-shadow:0 16px 40px rgba(0,0,0,.35);cursor:pointer}.phase51-typing{display:flex;align-items:center;gap:.18rem;padding:.3rem 1rem;color:var(--muted);font-size:.75rem}.phase51-typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:phase51-type 1s infinite}.phase51-typing span:nth-child(2){animation-delay:.15s}.phase51-typing span:nth-child(3){animation-delay:.3s}.phase51-typing em{margin-left:.35rem;font-style:normal}@keyframes phase51-type{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}
.phase51-reply-bar,.phase51-attachment-preview{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin:0 .8rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.055)}.phase51-reply-bar>div{display:grid;min-width:0}.phase51-reply-bar span{color:var(--muted);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phase51-reply-bar button,.phase51-attachment-preview button{border:0;background:transparent;color:var(--muted);font-size:1.3rem;cursor:pointer}.phase51-attachment-preview img{width:44px;height:44px;object-fit:cover;border-radius:12px}.phase51-attachment-preview>div{display:grid;flex:1}.phase51-attachment-preview small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phase51-compose{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;align-items:end;padding:.7rem .8rem;border-top:1px solid var(--line);background:rgba(10,11,22,.88);backdrop-filter:blur(18px)}.phase51-compose textarea{resize:none;max-height:150px;min-height:43px;border-radius:21px;padding:.65rem .8rem}.phase51-attach{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;cursor:pointer;background:rgba(255,255,255,.055);font-size:1.25rem}.phase51-attach input{display:none}.phase51-send{width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:50%;background:linear-gradient(135deg,var(--accent),#ec4899);color:#fff;font-size:1rem;cursor:pointer;box-shadow:0 10px 25px color-mix(in srgb,var(--accent) 25%,transparent)}.phase51-send:disabled{opacity:.55}.phase51-compose-note{display:flex;justify-content:space-between;gap:.8rem;padding:.1rem .9rem .55rem;color:var(--muted);font-size:.66rem}
.phase51-chat-details{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.2rem!important;gap:.35rem}.phase51-detail-avatar{width:100px;height:100px;border-radius:34px;object-fit:cover;border:1px solid var(--line);margin-top:.8rem}.phase51-chat-details h2{margin:.5rem 0 0}.phase51-chat-details>p{margin:.1rem 0 .7rem}.phase51-detail-presence{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--line);border-radius:999px;padding:.36rem .6rem;font-size:.75rem}.phase51-detail-presence i{width:8px;height:8px;border-radius:50%;background:#64748b}.phase51-detail-presence.online i{background:#22c55e}.phase51-detail-presence.recent i{background:#f59e0b}.phase51-detail-actions{display:grid;width:100%;gap:.5rem;margin:.8rem 0}.phase51-detail-actions .btn{width:100%}
.phase51-toast-stack{position:fixed;right:1rem;top:82px;width:min(370px,calc(100vw - 2rem));display:grid;gap:.6rem;z-index:999999;pointer-events:none}.phase51-toast{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.65rem;padding:.75rem;border:1px solid rgba(255,255,255,.15);border-radius:19px;background:rgba(10,11,22,.96);color:#fff;text-decoration:none;box-shadow:0 22px 70px rgba(0,0,0,.5);backdrop-filter:blur(20px);transform:translateX(115%);opacity:0;transition:.22s ease;pointer-events:auto}.phase51-toast.show{transform:none;opacity:1}.phase51-toast img{width:44px;height:44px;border-radius:50%;object-fit:cover}.phase51-toast strong{display:block}.phase51-toast p{margin:.18rem 0 0;color:#cbd5e1;font-size:.82rem}.phase51-toast button{border:0;background:transparent;color:#94a3b8;font-size:1.1rem;cursor:pointer}
.phase51-notification-livebar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.phase51-notification-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem}.phase51-notification-settings label{display:flex;align-items:flex-start;gap:.6rem;padding:.7rem;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.04)}.phase51-notification-settings small{display:block;color:var(--muted);margin-top:.15rem}
.phase51-admin-hero{display:flex;justify-content:space-between;gap:1rem;align-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 20%,rgba(255,255,255,.05)),rgba(255,255,255,.03))}.phase51-score{min-width:130px;text-align:center;border:1px solid var(--line);border-radius:22px;padding:1rem}.phase51-score strong{display:block;font-size:2.1rem}.phase51-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.7rem}.phase51-check{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;align-items:start;border:1px solid var(--line);border-radius:17px;padding:.7rem}.phase51-check.ok{border-color:rgba(34,197,94,.25)}.phase51-check.bad{border-color:rgba(239,68,68,.3)}.phase51-check>i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.08);font-style:normal}.phase51-check p{margin:.18rem 0 0;color:var(--muted);font-size:.8rem}.phase51-check>b{font-size:.72rem}
@media(max-width:1180px){.phase51-messenger-shell{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}.phase51-chat-details{display:none!important}}
@media(max-width:780px){.phase51-messenger-page .phase16-shell{width:min(100%,100vw);padding-left:.45rem;padding-right:.45rem}.phase51-messenger-hero{margin:.4rem 0 .6rem;padding:.8rem}.phase51-messenger-hero p{display:none}.phase51-messenger-shell{display:block;min-height:0}.phase51-messenger-shell>.card{min-height:0;border-radius:20px}.phase51-inbox{margin-bottom:.65rem!important;max-height:none}.phase51-inbox>header{padding:.75rem}.phase51-chat-search{margin:.55rem}.phase51-conversation-list{display:flex;overflow-x:auto;gap:.4rem;padding:.1rem .55rem .65rem}.phase51-conversation{min-width:240px;margin:0}.phase51-chat{height:calc(100dvh - 185px);min-height:560px!important}.phase51-chat-head{padding:.6rem}.phase51-chat-tools .btn.ghost{display:none}.phase51-chat-stream{padding:.8rem .55rem}.phase51-message .message-bubble{max-width:86%;font-size:.92rem}.phase51-message-actions{opacity:1;position:static;margin-top:.25rem;background:transparent;border:0;box-shadow:none;padding:0}.phase51-compose{padding:.55rem}.phase51-compose-note span:first-child{display:none}.phase51-compose-note{justify-content:flex-end}.phase51-toast-stack{top:68px;right:.5rem;width:calc(100vw - 1rem)}.phase51-messenger-hero h1{font-size:1.15rem}.phase51-live-state{font-size:.72rem}.phase51-chat-empty{min-height:500px}.phase51-reply-bar,.phase51-attachment-preview{margin:0 .5rem}}
