/* Pulse Phase 59 — one full-screen interaction language across Lifeline, media and Messenger. */

/* --------------------------------------------------------------------------
   Media viewer conversation: one long column, no "small box" look.
   The list gets all remaining space; composer stays permanently below it.
   -------------------------------------------------------------------------- */
.phase47-media-panel{position:relative!important;overflow:hidden!important}
.phase59-conversation-stack{display:flex!important;flex:1 1 auto!important;min-height:0!important;overflow:hidden!important;flex-direction:column!important;background:linear-gradient(180deg,rgba(255,255,255,.012),transparent 18%)!important}
.phase59-conversation-stack>.phase47-media-comments-title{flex:0 0 auto!important;margin:0!important;padding:.72rem 1rem .62rem!important;background:rgba(8,10,23,.72)!important;backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.065)!important}
.phase59-conversation-stack>.phase47-media-comment-scroll{display:block!important;flex:1 1 auto!important;min-height:0!important;height:auto!important;max-height:none!important;width:100%!important;margin:0!important;padding:.82rem 1rem 1.25rem!important;overflow-y:auto!important;overflow-x:hidden!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;scrollbar-gutter:auto!important;overscroll-behavior:contain!important}
.phase59-conversation-stack>.phase47-media-comment-scroll::before{display:none!important}
.phase59-conversation-stack>.phase47-media-composer{position:relative!important;inset:auto!important;flex:0 0 auto!important;margin:0!important;padding:.7rem 1rem calc(.8rem + env(safe-area-inset-bottom))!important;background:linear-gradient(180deg,rgba(8,10,23,.96),rgba(6,8,20,.995))!important;border-top:1px solid rgba(255,255,255,.1)!important;box-shadow:0 -14px 34px rgba(0,0,0,.2)!important;z-index:12!important}
.phase59-conversation-stack>.phase47-media-composer form{margin:0!important}
.phase59-conversation-stack .phase32-media-comments{display:grid!important;gap:.72rem!important;padding-bottom:.25rem!important}
.phase59-conversation-stack .phase32-no-comments{min-height:96px;display:grid;place-items:center;text-align:center;border:0!important;background:transparent!important}
.phase59-comment-count-trigger{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-width:48px;height:34px;padding:0 .58rem;border-radius:999px;border:1px solid rgba(167,139,250,.26);background:rgba(139,92,246,.14);color:#f4efff;font:inherit;font-size:.76rem;font-weight:900;cursor:default}
.phase59-comment-count-trigger:hover,.phase59-comment-count-trigger:focus-visible{background:rgba(139,92,246,.24);border-color:rgba(196,181,253,.44)}
.phase47-media-comments-title>.phase59-comment-count-trigger b{display:inline!important;min-width:0!important;height:auto!important;padding:0!important;background:none!important;border:0!important;font-size:inherit!important}
@media(min-width:821px){
  .phase47-media-viewer{grid-template-columns:minmax(0,1fr) minmax(430px,500px)!important}
  .phase47-media-panel-head{padding:.95rem 1rem .78rem!important}
  .phase47-media-panel-head .phase47-media-caption{max-height:94px;overflow:auto}
}
@media(max-width:820px){
  .phase59-conversation-stack>.phase47-media-comments-title{padding:.56rem .78rem .5rem!important}
  .phase59-conversation-stack>.phase47-media-comment-scroll{padding:.68rem .78rem 1rem!important}
  .phase59-conversation-stack>.phase47-media-composer{padding:.58rem .72rem calc(.68rem + env(safe-area-inset-bottom))!important}
}

/* --------------------------------------------------------------------------
   Hover reactions: animated on desktop/fine pointer; positioned by JS around
   the actual Like control instead of drifting off the left edge.
   -------------------------------------------------------------------------- */
@media(hover:hover) and (pointer:fine){
  .phase32-media-reaction-picker.phase32-fixed-ready,.phase32-media-comment-reaction-picker.phase32-fixed-ready{overflow:visible!important;white-space:nowrap!important;max-width:min(520px,calc(100vw - 18px))!important;padding:.42rem .48rem!important;border-radius:999px!important;background:rgba(12,10,28,.985)!important;border:1px solid rgba(210,190,255,.24)!important;box-shadow:0 18px 54px rgba(0,0,0,.48),0 0 0 1px rgba(139,92,246,.08)!important;backdrop-filter:blur(18px)!important}
  .phase32-media-reaction-form.phase32-hover-open .reaction-choice,.phase32-media-comment-reaction-form.phase32-hover-open .reaction-choice{animation:phase59ReactionPop .32s cubic-bezier(.2,.8,.2,1) both;transform-origin:50% 100%}
  .phase32-media-reaction-form.phase32-hover-open .reaction-choice:nth-child(2),.phase32-media-comment-reaction-form.phase32-hover-open .reaction-choice:nth-child(2){animation-delay:.018s}
  .phase32-media-reaction-form.phase32-hover-open .reaction-choice:nth-child(3),.phase32-media-comment-reaction-form.phase32-hover-open .reaction-choice:nth-child(3){animation-delay:.036s}
  .phase32-media-reaction-form.phase32-hover-open .reaction-choice:nth-child(4),.phase32-media-comment-reaction-form.phase32-hover-open .reaction-choice:nth-child(4){animation-delay:.054s}
  .phase32-media-reaction-form.phase32-hover-open .reaction-choice:nth-child(5),.phase32-media-comment-reaction-form.phase32-hover-open .reaction-choice:nth-child(5){animation-delay:.072s}
  .phase32-media-reaction-form.phase32-hover-open .reaction-choice:nth-child(6),.phase32-media-comment-reaction-form.phase32-hover-open .reaction-choice:nth-child(6){animation-delay:.09s}
  .phase32-media-reaction-form.phase32-hover-open .reaction-choice:nth-child(7),.phase32-media-comment-reaction-form.phase32-hover-open .reaction-choice:nth-child(7){animation-delay:.108s}
  .phase32-media-reaction-form.phase32-hover-open .reaction-choice:nth-child(8),.phase32-media-comment-reaction-form.phase32-hover-open .reaction-choice:nth-child(8){animation-delay:.126s}
  .phase32-media-reaction-picker .reaction-choice:not(.remove),.phase32-media-comment-reaction-picker .reaction-choice:not(.remove){font-size:1.34rem!important;width:38px!important;height:38px!important;min-width:38px!important;transition:transform .14s ease,background .14s ease!important}
  .phase32-media-reaction-picker .reaction-choice:hover,.phase32-media-comment-reaction-picker .reaction-choice:hover{transform:translateY(-7px) scale(1.28)!important;background:rgba(255,255,255,.11)!important}
}
@keyframes phase59ReactionPop{0%{opacity:0;transform:translateY(10px) scale(.62) rotate(-6deg)}70%{opacity:1;transform:translateY(-3px) scale(1.1)}100%{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.phase32-media-reaction-form.phase32-hover-open .reaction-choice,.phase32-media-comment-reaction-form.phase32-hover-open .reaction-choice{animation:none!important}}

/* --------------------------------------------------------------------------
   Text-only Pulse conversation fallback is now genuinely full-screen rather
   than a smaller desktop iframe window. Media Pulses bypass it entirely.
   -------------------------------------------------------------------------- */
.phase45-post-modal.phase56-post-modal{padding:0!important;place-items:stretch!important;background:rgba(4,5,14,.9)!important}
.phase45-post-modal.phase56-post-modal .phase45-post-modal-shell{width:100vw!important;height:100dvh!important;max-width:none!important;max-height:100dvh!important;border-radius:0!important;border:0!important}
.phase45-post-modal.phase56-post-modal .phase46-post-frame-wrap,.phase45-post-modal.phase56-post-modal .phase45-post-modal-frame{flex:1 1 auto!important;min-height:0!important;height:100%!important}

/* --------------------------------------------------------------------------
   Lightweight commenter preview (not a modal).
   -------------------------------------------------------------------------- */
.phase59-commenter-popover{position:fixed;z-index:2147483645;width:min(310px,calc(100vw - 20px));padding:.72rem;border-radius:18px;border:1px solid rgba(190,160,255,.28);background:rgba(13,12,28,.985);box-shadow:0 22px 65px rgba(0,0,0,.48);backdrop-filter:blur(18px);color:#fff;opacity:0;transform:translateY(5px) scale(.97);pointer-events:none;transition:.13s ease}
.phase59-commenter-popover.show{opacity:1;transform:none;pointer-events:auto}
.phase59-commenter-popover header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.45rem}.phase59-commenter-popover header strong{font-size:.88rem}.phase59-commenter-popover header small{color:#b9add1;font-size:.68rem}
.phase59-commenter-list{display:grid;gap:.24rem;max-height:280px;overflow:auto}
.phase59-commenter-person{display:flex;align-items:center;gap:.52rem;padding:.4rem .42rem;border-radius:12px;color:inherit;text-decoration:none}.phase59-commenter-person:hover{background:rgba(255,255,255,.075)}
.phase59-commenter-person img{width:31px;height:31px;border-radius:999px;object-fit:cover}.phase59-commenter-person span{min-width:0;display:grid}.phase59-commenter-person strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.phase59-commenter-person small{color:#aa9fbe;font-size:.65rem}
.phase59-commenter-empty{padding:.7rem;color:#bfb4cf;font-size:.78rem;text-align:center}

/* --------------------------------------------------------------------------
   Pulse identity hover card. Generic profile links across the site participate.
   -------------------------------------------------------------------------- */
.phase59-profile-hover-card{position:fixed;z-index:2147483645;width:min(370px,calc(100vw - 20px));border:1px solid rgba(190,160,255,.3);border-radius:22px;background:linear-gradient(150deg,rgba(22,17,43,.99),rgba(8,10,24,.99));box-shadow:0 28px 80px rgba(0,0,0,.56);backdrop-filter:blur(22px);color:#fff;padding:.82rem;opacity:0;transform:translateY(6px) scale(.97);pointer-events:none;transition:.15s ease;overflow:visible}
.phase59-profile-hover-card.show{opacity:1;transform:none;pointer-events:auto}
.phase59-hover-identity{display:grid;grid-template-columns:66px minmax(0,1fr);gap:.72rem;align-items:center}.phase59-hover-identity>img{width:66px;height:66px;border-radius:20px;object-fit:cover;border:2px solid rgba(196,181,253,.4);box-shadow:0 10px 30px rgba(0,0,0,.28)}
.phase59-hover-identity h3{margin:0;font-size:1rem;line-height:1.15}.phase59-hover-identity p{margin:.15rem 0 0;color:#b9aecb;font-size:.74rem}.phase59-hover-identity .phase59-relation{display:inline-flex;margin-top:.32rem;padding:.2rem .46rem;border-radius:999px;background:rgba(139,92,246,.16);border:1px solid rgba(167,139,250,.24);color:#e8ddff;font-size:.64rem;font-weight:900}
.phase59-hover-bio{margin:.7rem 0 .62rem;font-size:.78rem;line-height:1.44;color:#ded8e8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.phase59-hover-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin-bottom:.68rem}.phase59-hover-stats span{display:grid;gap:.08rem;text-align:center;padding:.45rem .3rem;border-radius:13px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07)}.phase59-hover-stats b{font-size:.86rem}.phase59-hover-stats small{font-size:.58rem;color:#aca1bf;font-weight:800}
.phase59-hover-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px;gap:.4rem;position:relative}.phase59-hover-actions>a,.phase59-hover-actions>button{min-height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;gap:.35rem;text-decoration:none;color:#fff;font:inherit;font-size:.74rem;font-weight:900;cursor:pointer;background:rgba(255,255,255,.07)}.phase59-hover-actions>a.primary{background:linear-gradient(135deg,#7c3aed,#a855f7);border-color:rgba(216,180,254,.36)}.phase59-hover-actions>a:hover,.phase59-hover-actions>button:hover{filter:brightness(1.12)}
.phase59-hover-more{position:absolute;right:0;bottom:calc(100% + .4rem);width:210px;padding:.38rem;border-radius:14px;background:#111022;border:1px solid rgba(255,255,255,.13);box-shadow:0 18px 45px rgba(0,0,0,.42);display:grid;gap:.2rem;z-index:3}.phase59-hover-more[hidden]{display:none!important}.phase59-hover-more a,.phase59-hover-more button{display:flex;width:100%;justify-content:flex-start;align-items:center;gap:.5rem;padding:.52rem .58rem;border:0;border-radius:10px;background:transparent;color:#f3effa;text-decoration:none;font:inherit;font-size:.72rem;font-weight:800;cursor:pointer}.phase59-hover-more a:hover,.phase59-hover-more button:hover{background:rgba(255,255,255,.08)}.phase59-hover-more .danger{color:#ffb4c3}
.phase59-profile-hover-card .phase59-status-line{min-height:18px;margin-top:.45rem;font-size:.66rem;color:#c4b5fd}

/* --------------------------------------------------------------------------
   Floating Messenger: persistent site-wide dock on normal logged-in pages.
   -------------------------------------------------------------------------- */
.phase59-messenger-launcher{position:fixed;right:18px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:18000;width:58px;height:58px;border:1px solid rgba(216,180,254,.4);border-radius:999px;background:linear-gradient(135deg,#6d28d9,#a855f7 58%,#ec4899);color:#fff;box-shadow:0 18px 45px rgba(0,0,0,.42),0 0 30px rgba(139,92,246,.24);display:grid;place-items:center;font-size:1.42rem;cursor:pointer;transition:.16s ease}.phase59-messenger-launcher:hover{transform:translateY(-2px) scale(1.04)}.phase59-messenger-launcher b{position:absolute;right:-2px;top:-3px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#ef4444;border:2px solid #0b0b17;font-size:.62rem}.phase59-messenger-launcher b:empty,.phase59-messenger-launcher b[data-count="0"]{display:none}
.phase59-floating-messenger{position:fixed;right:18px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:18000;width:min(390px,calc(100vw - 24px));height:min(620px,calc(100dvh - 120px));border:1px solid rgba(196,181,253,.28);border-radius:24px;background:linear-gradient(160deg,rgba(19,15,38,.995),rgba(7,9,22,.995));box-shadow:0 30px 90px rgba(0,0,0,.55);overflow:hidden;display:flex;flex-direction:column;color:#fff;transform-origin:100% 100%;animation:phase59MessengerIn .16s ease both}.phase59-floating-messenger[hidden]{display:none!important}@keyframes phase59MessengerIn{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
.phase59-messenger-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:.72rem .78rem;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}.phase59-messenger-head>div{min-width:0;display:flex;align-items:center;gap:.52rem}.phase59-messenger-head img{width:34px;height:34px;border-radius:12px;object-fit:cover}.phase59-messenger-head strong{display:block;font-size:.85rem}.phase59-messenger-head small{display:block;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#afa4c1;font-size:.64rem}.phase59-messenger-head button,.phase59-messenger-head a{width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.06);color:#fff;display:grid;place-items:center;text-decoration:none;cursor:pointer}
.phase59-messenger-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.phase59-messenger-inbox{flex:1 1 auto;overflow:auto;padding:.5rem}.phase59-mini-convo{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:.55rem;align-items:center;width:100%;padding:.54rem;border:0;border-radius:14px;background:transparent;color:#fff;text-align:left;cursor:pointer}.phase59-mini-convo:hover{background:rgba(255,255,255,.065)}.phase59-mini-convo img{width:42px;height:42px;border-radius:14px;object-fit:cover}.phase59-mini-convo span{min-width:0}.phase59-mini-convo strong,.phase59-mini-convo small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phase59-mini-convo strong{font-size:.78rem}.phase59-mini-convo small{font-size:.64rem;color:#a99dbb;margin-top:.12rem}.phase59-mini-convo b{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:#7c3aed;font-size:.58rem}
.phase59-mini-chat{display:flex;flex:1 1 auto;min-height:0;flex-direction:column}.phase59-mini-chat[hidden]{display:none!important}.phase59-mini-chat-stream{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.72rem;display:flex;flex-direction:column;gap:.38rem}.phase59-mini-message{max-width:82%;padding:.48rem .62rem;border-radius:16px;background:rgba(255,255,255,.085);font-size:.76rem;line-height:1.4;overflow-wrap:anywhere}.phase59-mini-message.me{align-self:flex-end;background:linear-gradient(135deg,rgba(124,58,237,.72),rgba(168,85,247,.58));border-bottom-right-radius:5px}.phase59-mini-message.them{align-self:flex-start;border-bottom-left-radius:5px}.phase59-mini-message small{display:block;margin-top:.18rem;font-size:.55rem;opacity:.68;text-align:right}.phase59-mini-compose{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:.4rem;padding:.58rem;border-top:1px solid rgba(255,255,255,.08);background:rgba(8,9,22,.98)}.phase59-mini-compose textarea{min-height:40px!important;max-height:98px!important;resize:none;border-radius:14px!important;padding:.52rem .62rem!important}.phase59-mini-compose button{border:0;border-radius:12px;background:#8b5cf6;color:#fff;font-size:1rem;font-weight:900;cursor:pointer}.phase59-messenger-empty{display:grid;place-items:center;text-align:center;min-height:160px;padding:1rem;color:#afa4c1;font-size:.78rem}.phase59-messenger-search-link{display:flex;justify-content:center;padding:.55rem;border-top:1px solid rgba(255,255,255,.06);color:#c4b5fd;text-decoration:none;font-size:.7rem;font-weight:900}

@media(max-width:680px){
 .phase59-messenger-launcher{right:12px;bottom:calc(78px + env(safe-area-inset-bottom));width:52px;height:52px;z-index:17000}
 .phase59-floating-messenger{right:6px;left:6px;bottom:calc(72px + env(safe-area-inset-bottom));width:auto;height:min(72dvh,620px);border-radius:22px;z-index:17000}
 .phase50-report-problem{bottom:calc(136px + env(safe-area-inset-bottom))!important}
}
@media(min-width:681px){body:has(.phase59-messenger-launcher) .phase50-report-problem{right:86px!important;bottom:calc(24px + env(safe-area-inset-bottom))!important}}
