/* Phase 5 ownership: chat/friends unread indicators. Keep these selectors out of app-shell.css. */
/* iOS keeps loaded rows laid out; estimated offscreen heights can flash or jump. */
.friendsGroupOverlay.iosScrollStable .friendsGroupPost,
.friendsGroupOverlay.iosScrollStable .friendsGroupActivityCard,
.friendsGroupOverlay.iosScrollStable .friendsGroupActivityLine{content-visibility:visible;contain-intrinsic-size:none}
.friendsGroupOverlay.iosScrollStable .friendsGroupLoadOlderNote{position:sticky;top:0;z-index:2;background:#fff;padding:6px 8px}
.studentProfileMenuBtn.friendsGroupMagicBtn{overflow:hidden;border-color:#f6a7c8;background:linear-gradient(135deg,#17294d 0%,#8f1554 62%,#ef8f45 100%);color:#fff;text-shadow:0 1px 4px rgba(16,32,61,.20);box-shadow:0 8px 16px rgba(157,20,87,.14),0 0 0 1px rgba(255,255,255,.62) inset;animation:none;isolation:isolate}
.studentProfileMenuBtn.friendsGroupMagicBtn:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.10),rgba(255,255,255,.18) 42%,rgba(255,255,255,.04) 68%,transparent);opacity:.82;z-index:-1;pointer-events:none}
.studentProfileMenuBtn.friendsGroupMagicBtn:after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:1px;border-radius:999px;background:rgba(255,255,255,.28);animation:none;pointer-events:none}
.studentProfileMenuBtn.friendsGroupMagicBtn.hasUnread:after{content:none}
.friendsGroupUnreadDot{position:absolute;top:6px;right:8px;width:10px;height:10px;border-radius:999px;background:#ef4444;border:2px solid #fff;box-shadow:0 0 0 3px rgba(239,68,68,.16),0 4px 10px rgba(239,68,68,.34);z-index:3}
.studentProfileMenuBtn.hasUnread:after,.studentClassHeroBtn[data-unread-dot="1"]:after,.studentClassMiniBtn[data-unread-dot="1"]:after,.classHubTabBtn.hasUnread:after{content:"";position:absolute;top:6px;right:8px;width:10px;height:10px;border-radius:999px;background:#ef4444;border:2px solid #fff;box-shadow:0 0 0 3px rgba(239,68,68,.16),0 4px 10px rgba(239,68,68,.34);z-index:3}
.studentClassHeroBtn[data-unread-dot="1"]:after,.studentClassMiniBtn[data-unread-dot="1"]:after{top:7px;right:7px}
.classHubTabBtn.hasUnread:after{top:4px;right:4px}
.privateTeacherChatUnreadBadge{position:relative;z-index:4;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:999px;background:#ef4444;color:#fff;border:2px solid rgba(255,255,255,.92);font-size:10px;font-weight:950;line-height:1;box-shadow:0 0 0 3px rgba(239,68,68,.16),0 5px 12px rgba(239,68,68,.32)}
.friendsGroupEarlierBtn{display:block;margin:4px auto 8px;padding:8px 14px;min-height:36px;border:1px solid #e5d9df;border-radius:18px;background:#fff;color:#7c2853;font:inherit;font-size:12px;cursor:pointer;touch-action:manipulation}
.friendsGroupEarlierBtn:disabled{opacity:.6;cursor:wait}
.friendsGroupPost .friendsGroupThumbBtn .friendsGroupProtectedImageWrap{vertical-align:top}
/* A single readable status line; expanded text wraps naturally in the feed. */
.friendsGroupActivityGroup{box-sizing:border-box;min-width:0;max-width:100%;display:flex;align-items:baseline;gap:4px;margin:4px 0;padding:3px 8px;color:#83345c;font-size:12px;line-height:1.5;text-align:left;overflow-anchor:none}
.friendsGroupStatusText{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.friendsGroupStatusToggle{flex:none;min-height:24px;padding:1px 4px;border:0;border-radius:4px;background:transparent;color:#83345c;font:inherit;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer;touch-action:manipulation}
.friendsGroupStatusToggle:focus-visible{outline:2px solid #9c476e;outline-offset:1px}
.friendsGroupActivityGroup.isExpanded{display:block}
.friendsGroupActivityGroup.isExpanded .friendsGroupStatusText{display:inline;overflow:visible;white-space:normal;overflow-wrap:anywhere}
.friendsGroupActivityGroup.isExpanded .friendsGroupStatusToggle{display:inline-block;margin-left:4px}
.friendsGroupStatusToggle[hidden]{display:none}
.friendsGroupActivityGroup.singleStatus .friendsGroupStatusText{white-space:normal;overflow:visible;overflow-wrap:anywhere}
#friendsGroupCanvas.friendsGroupStatusExpanded{overflow-anchor:none}
/* Loading history overlays the feed instead of inserting a grid row. */
#friendsGroupCanvas .friendsGroupFeed{position:relative}
#friendsGroupCanvas .friendsGroupLoadOlderNote,
.friendsGroupOverlay.iosScrollStable #friendsGroupCanvas .friendsGroupLoadOlderNote{position:absolute;top:0;left:0;right:0;height:0;min-height:0;margin:0;padding:0;border:0;background:none;text-align:center;z-index:2;pointer-events:none}
#friendsGroupCanvas .friendsGroupLoadOlderNote>span{display:inline-block;padding:5px 9px;border-radius:12px;background:#fff;color:#83345c;font-size:11px;box-shadow:0 1px 5px #0001}
