/**
 * Airy Buddy Builder — Frontend Styles
 *
 * Modern default design for all ABB Breakdance elements.
 * Uses CSS custom properties for easy theming via Breakdance controls.
 * BEM naming: .abb-element__part--modifier
 */

/* ==========================================================================
   Design Tokens (CSS Custom Properties)
   ========================================================================== */

:root {
	--abb-radius-sm: 6px;
	--abb-radius-md: 10px;
	--abb-radius-lg: 16px;
	--abb-radius-full: 9999px;
	--abb-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
	--abb-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.06);
	--abb-shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.1), 0 2px 8px rgba(0, 0, 0, 0.06);
	--abb-color-text: #1a1a2e;
	--abb-color-text-secondary: #64748b;
	--abb-color-text-muted: #94a3b8;
	--abb-color-primary: #6366f1;
	--abb-color-primary-hover: #4f46e5;
	--abb-color-bg: #ffffff;
	--abb-color-bg-subtle: #f8fafc;
	--abb-color-border: #e2e8f0;
	--abb-color-border-hover: #cbd5e1;
	--abb-color-success: #10b981;
	--abb-color-warning: #f59e0b;
	--abb-transition: 0.2s ease;
	--abb-font-size-xs: 0.75rem;
	--abb-font-size-sm: 0.8125rem;
	--abb-font-size-base: 0.9375rem;
	--abb-font-size-lg: 1.125rem;
	--abb-font-size-xl: 1.5rem;
	--abb-font-size-2xl: 1.875rem;
	--abb-line-height: 1.6;
	--abb-gap-xs: 6px;
	--abb-gap-sm: 10px;
	--abb-gap-md: 16px;
	--abb-gap-lg: 24px;
	--abb-gap-xl: 32px;
}

/* ==========================================================================
   Base Reset
   ========================================================================== */

[class*="abb-"] {
	box-sizing: border-box;
}

.abb-element {
	font-family: inherit;
	line-height: var(--abb-line-height);
	color: var(--abb-color-text);
	width: 100%;
}

/* ==========================================================================
   Member Avatar
   ========================================================================== */

.abb-member-avatar {
	display: inline-block;
	line-height: 0;
}

.abb-member-avatar img {
	display: block;
	border-radius: 50%;
	width: 120px;
	height: 120px;
	object-fit: cover;
	border: 3px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-md);
	transition: transform var(--abb-transition), box-shadow var(--abb-transition);
}

.abb-member-avatar__link:hover img {
	transform: scale(1.05);
	box-shadow: var(--abb-shadow-lg);
}

.abb-member-avatar__link {
	text-decoration: none;
	display: inline-block;
}

.abb-member-avatar__letter {
	border: 3px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-md);
}

/* ==========================================================================
   Member Cover Image
   ========================================================================== */

.abb-member-cover {
	position: relative;
	overflow: hidden;
	border-radius: var(--abb-radius-lg);
	width: 100%;
}

.abb-member-cover__bg {
	min-height: 240px;
	transition: transform 0.4s ease;
	border-radius: var(--abb-radius-lg);
	background-color: transparent !important;
}

/* Ensure the cover element itself has no background that hides the gradient */
.abb-member-cover,
.abb-element.abb-member-cover {
	background: transparent !important;
}

/* When cover has a real image (set via inline style background-image) */
.abb-member-cover__bg[style*="background-image"] {
	background-size: cover;
	background-position: center;
}

.abb-member-cover:hover .abb-member-cover__bg {
	transform: scale(1.02);
}

.abb-member-cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ==========================================================================
   Member Display Name
   ========================================================================== */

.abb-member-display-name__text {
	margin: 0;
	font-weight: 700;
	font-size: var(--abb-font-size-2xl);
	color: var(--abb-color-text);
	letter-spacing: -0.02em;
	line-height: 1.3;
}

.abb-member-display-name__link {
	color: inherit;
	text-decoration: none;
	transition: color var(--abb-transition);
}

.abb-member-display-name__link:hover {
	color: var(--abb-color-primary);
}

/* ==========================================================================
   Member Username
   ========================================================================== */

.abb-member-username__text,
.abb-member-username__link {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	text-decoration: none;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.abb-member-username__link:hover {
	color: var(--abb-color-primary);
}

/* ==========================================================================
   Member Last Activity
   ========================================================================== */

.abb-member-last-activity {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-muted);
	display: flex;
	align-items: center;
	gap: var(--abb-gap-xs);
}

.abb-member-last-activity__prefix {
	font-weight: 500;
}

.abb-member-last-activity__time {
	color: var(--abb-color-text-secondary);
}

/* ==========================================================================
   Member / Group Navigation
   ========================================================================== */

/* Navigation wrapper — default background on Breakdance outer wrapper.
   Uses low-specificity so Breakdance design panel overrides win. */
.abb-member-navigation,
.abb-group-navigation,
.abb-activity-filters {
	background-color: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-md);
	padding: 4px;
}

/* Inner wrap() div and <nav> must not duplicate the background.
   These have data-abb-element or are nav elements — never the Breakdance outer wrapper. */
[data-abb-element="abb-member-navigation"],
[data-abb-element="abb-group-navigation"],
[data-abb-element="abb-activity-filters"],
nav.abb-activity-filters,
nav.abb-group-nav {
	background: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
}

/* Inner list — transparent, inherits wrapper background */
.abb-member-navigation ul,
.abb-group-nav__list,
.abb-activity-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
}

.abb-member-navigation--vertical ul,
.abb-group-nav--vertical .abb-group-nav__list,
.abb-activity-nav--vertical .abb-activity-nav__list {
	flex-direction: column;
}

.abb-member-navigation li {
	margin: 0;
}

.abb-member-nav__link,
.abb-member-subnav__link,
.abb-group-nav__link,
.abb-activity-nav__link {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-xs);
	padding: 8px 16px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	text-decoration: none;
	border-radius: var(--abb-radius-sm);
	transition: all var(--abb-transition);
	white-space: nowrap;
}

.abb-member-nav__link:hover,
.abb-member-subnav__link:hover,
.abb-group-nav__link:hover,
.abb-activity-nav__link:hover {
	color: var(--abb-color-text);
	background: var(--abb-color-bg);
}

.abb-member-nav__item--current .abb-member-nav__link,
.abb-member-subnav__item--current .abb-member-subnav__link,
.abb-group-nav__item--current .abb-group-nav__link,
.abb-activity-nav__item--current .abb-activity-nav__link {
	color: var(--abb-color-primary);
	background: var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	font-weight: 600;
}

.abb-member-nav__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-text-muted);
	background: var(--abb-color-bg);
	border-radius: var(--abb-radius-full);
}

.abb-member-nav__item--current .abb-member-nav__count {
	background: var(--abb-color-primary);
	color: #fff;
}

.abb-member-subnav__list {
	list-style: none;
	margin: var(--abb-gap-sm) 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
}

/* ==========================================================================
   Member Action Buttons
   ========================================================================== */

.abb-member-action-buttons__wrap {
	display: flex;
	flex-wrap: wrap;
	gap: var(--abb-gap-sm);
}

.abb-member-action-buttons--stacked .abb-member-action-buttons__wrap {
	flex-direction: column;
}

.abb-member-action-buttons__item a,
.abb-member-action-buttons__item button,
.abb-group-action-buttons__btn a,
.abb-group-action-buttons__btn button,
.abb-group-action-buttons__join a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--abb-gap-xs);
	padding: 10px 20px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	text-decoration: none;
	transition: all var(--abb-transition);
	line-height: 1.4;
}

.abb-member-action-buttons__item a:hover,
.abb-member-action-buttons__item button:hover,
.abb-group-action-buttons__btn a:hover,
.abb-group-action-buttons__btn button:hover,
.abb-group-action-buttons__join a:hover {
	background: var(--abb-color-primary-hover);
	transform: translateY(-1px);
	box-shadow: var(--abb-shadow-md);
}

.abb-member-action-buttons__item--message a,
.abb-member-action-buttons__item--message button {
	background: transparent;
	color: var(--abb-color-text);
	border: 1.5px solid var(--abb-color-border);
}

.abb-member-action-buttons__item--message a:hover,
.abb-member-action-buttons__item--message button:hover {
	background: var(--abb-color-bg-subtle);
	border-color: var(--abb-color-border-hover);
	color: var(--abb-color-text);
}

/* ==========================================================================
   Group Action Buttons
   ========================================================================== */

.abb-group-action-buttons__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--abb-gap-sm);
}

.abb-group-action-buttons__list--stacked {
	flex-direction: column;
}

/* New group action buttons (abb-gab) */
.abb-gab__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--abb-gap-sm);
	align-items: center;
}

.abb-gab__list--stacked {
	flex-direction: column;
	align-items: stretch;
}

.abb-gab__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	text-decoration: none;
}

/* Join/Leave button (rendered by BP) */
.abb-gab__join a,
.abb-gab__join button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 9px 22px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: 8px;
	cursor: pointer;
	text-decoration: none;
	transition: all var(--abb-transition);
}

.abb-gab__join a:hover,
.abb-gab__join button:hover {
	background: var(--abb-color-primary-hover);
}

/* Invite button */
.abb-gab__invite {
	padding: 9px 22px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-primary);
	background: transparent;
	border: 1.5px solid var(--abb-color-primary);
	border-radius: 8px;
	transition: all var(--abb-transition);
}

.abb-gab__invite:hover {
	background: var(--abb-color-primary);
	color: #fff;
}

.abb-gab__invite svg {
	flex-shrink: 0;
}

/* Manage button */
.abb-gab__manage {
	padding: 9px 22px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text-secondary);
	background: transparent;
	border: 1.5px solid var(--abb-color-border);
	border-radius: 8px;
	transition: all var(--abb-transition);
}

.abb-gab__manage:hover {
	border-color: var(--abb-color-text-secondary);
	color: var(--abb-color-text);
}

.abb-gab__manage svg {
	flex-shrink: 0;
}

/* ==========================================================================
   Members Directory Listing
   ========================================================================== */

.abb-members-listing,
.abb-groups-listing {
	display: grid;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: var(--abb-gap-lg);
}

.abb-members-listing--list,
.abb-groups-listing--list {
	grid-template-columns: 1fr;
}

.abb-members-listing--grid {
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.abb-members-listing--grid.abb-members-listing--cols-2 {
	grid-template-columns: repeat(2, 1fr);
}

.abb-members-listing--grid.abb-members-listing--cols-3 {
	grid-template-columns: repeat(3, 1fr);
}

.abb-members-listing--grid.abb-members-listing--cols-4 {
	grid-template-columns: repeat(4, 1fr);
}

.abb-members-listing--grid.abb-members-listing--cols-6 {
	grid-template-columns: repeat(6, 1fr);
}

.abb-groups-listing--grid {
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}

.abb-groups-listing--grid.abb-groups-listing--cols-2 {
	grid-template-columns: repeat(2, 1fr);
}

.abb-groups-listing--grid.abb-groups-listing--cols-3 {
	grid-template-columns: repeat(3, 1fr);
}

.abb-groups-listing--grid.abb-groups-listing--cols-4 {
	grid-template-columns: repeat(4, 1fr);
}

.abb-groups-listing--grid.abb-groups-listing--cols-6 {
	grid-template-columns: repeat(6, 1fr);
}

.abb-members-listing__item,
.abb-groups-listing__item {
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	padding: var(--abb-gap-lg);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--abb-gap-sm);
	transition: all var(--abb-transition);
}

.abb-members-listing__item:hover,
.abb-groups-listing__item:hover {
	border-color: var(--abb-color-border-hover);
	box-shadow: var(--abb-shadow-md);
	transform: translateY(-2px);
}

.abb-members-listing--list .abb-members-listing__item,
.abb-groups-listing--list .abb-groups-listing__item {
	flex-direction: row;
	text-align: left;
	padding: var(--abb-gap-md);
}

.abb-members-listing__avatar-link,
.abb-groups-listing__avatar-link {
	display: block;
	text-decoration: none;
	flex-shrink: 0;
}

.abb-members-listing__avatar-link img {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	transition: transform var(--abb-transition);
}

.abb-members-listing__item:hover .abb-members-listing__avatar-link img {
	transform: scale(1.05);
}

.abb-groups-listing__avatar {
	width: 64px;
	height: 64px;
	border-radius: var(--abb-radius-md);
	object-fit: cover;
	border: 2px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	transition: transform var(--abb-transition);
}

.abb-groups-listing__item:hover .abb-groups-listing__avatar {
	transform: scale(1.05);
}

.abb-members-listing__name-link,
.abb-groups-listing__name-link {
	font-weight: 600;
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	text-decoration: none;
	transition: color var(--abb-transition);
	line-height: 1.3;
}

.abb-members-listing__name-link:hover,
.abb-groups-listing__name-link:hover {
	color: var(--abb-color-primary);
}

.abb-members-listing__activity {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-groups-listing__desc {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	margin: 0;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.abb-groups-listing__count {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: var(--abb-font-size-xs);
	font-weight: 500;
	color: var(--abb-color-text-muted);
	padding: 4px 10px;
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-full);
}

.abb-members-listing__empty,
.abb-groups-listing__empty {
	grid-column: 1 / -1;
	text-align: center;
	padding: var(--abb-gap-xl);
	color: var(--abb-color-text-muted);
	font-size: var(--abb-font-size-sm);
}

/* ==========================================================================
   Directory Search
   ========================================================================== */

.abb-members-search__form,
.abb-groups-search__form {
	display: flex;
	gap: var(--abb-gap-sm);
	max-width: 480px;
}

.abb-members-search__input,
.abb-groups-search__input {
	flex: 1;
	padding: 10px 16px;
	font-size: var(--abb-font-size-sm);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	background: var(--abb-color-bg);
	color: var(--abb-color-text);
	transition: all var(--abb-transition);
	outline: none;
}

.abb-members-search__input:focus,
.abb-groups-search__input:focus {
	border-color: var(--abb-color-primary);
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

.abb-members-search__btn,
.abb-groups-search__btn {
	padding: 10px 20px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
	white-space: nowrap;
}

.abb-members-search__btn:hover,
.abb-groups-search__btn:hover {
	background: var(--abb-color-primary-hover);
}

/* Enhanced Members Search with Filter Pills */

.abb-msearch__bar {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	flex-wrap: wrap;
}

.abb-msearch__form {
	flex: 1;
	min-width: 180px;
	display: flex;
	gap: var(--abb-gap-sm);
}

.abb-msearch__input-wrap {
	flex: 1;
	position: relative;
}

.abb-msearch__icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	stroke: var(--abb-color-text-muted);
	fill: none;
	stroke-width: 2;
	pointer-events: none;
}

.abb-msearch__input {
	width: 100%;
	padding: 10px 14px 10px 40px;
	border: 1.5px solid var(--abb-color-border);
	border-radius: 8px;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text);
	background: var(--abb-color-bg);
	transition: all var(--abb-transition);
	outline: none;
}

.abb-msearch__input::placeholder {
	color: var(--abb-color-text-muted);
}

.abb-msearch__input:focus {
	border-color: var(--abb-color-primary);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.08);
}

.abb-msearch__btn {
	padding: 10px 20px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: all var(--abb-transition);
	white-space: nowrap;
}

.abb-msearch__btn:hover {
	background: var(--abb-color-primary-hover);
}

.abb-msearch__pills {
	display: flex;
	gap: 4px;
	flex-shrink: 0;
}

.abb-msearch__pill {
	padding: 8px 18px;
	border-radius: 8px;
	border: none;
	white-space: nowrap;
	font-size: 13px;
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: transparent;
	cursor: pointer;
	transition: all var(--abb-transition);
	text-decoration: none;
}

.abb-msearch__pill:hover {
	background: var(--abb-color-bg-subtle);
	color: var(--abb-color-text);
}

.abb-msearch__pill--active {
	background: var(--abb-color-primary);
	color: #fff;
	font-weight: 600;
	box-shadow: 0 2px 6px rgba(99, 102, 241, 0.25);
}

.abb-msearch__pill--active:hover {
	background: var(--abb-color-primary-hover);
	color: #fff;
}

@media (max-width: 767px) {
	.abb-msearch__bar {
		flex-direction: column;
	}

	.abb-msearch__form {
		min-width: 100%;
	}

	.abb-msearch__pills {
		width: 100%;
		overflow-x: auto;
	}
}

/* Enhanced Groups Search with Filter Pills */

.abb-gsearch__bar {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	flex-wrap: wrap;
}

.abb-gsearch__form {
	flex: 1;
	min-width: 180px;
	display: flex;
	gap: var(--abb-gap-sm);
}

.abb-gsearch__input-wrap {
	flex: 1;
	position: relative;
}

.abb-gsearch__icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	stroke: var(--abb-color-text-muted);
	fill: none;
	stroke-width: 2;
	pointer-events: none;
}

.abb-gsearch__input {
	width: 100%;
	padding: 10px 14px 10px 40px;
	border: 1.5px solid var(--abb-color-border);
	border-radius: 8px;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text);
	background: var(--abb-color-bg);
	transition: all var(--abb-transition);
	outline: none;
}

.abb-gsearch__input::placeholder {
	color: var(--abb-color-text-muted);
}

.abb-gsearch__input:focus {
	border-color: var(--abb-color-primary);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.08);
}

.abb-gsearch__btn {
	padding: 10px 20px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: all var(--abb-transition);
	white-space: nowrap;
}

.abb-gsearch__btn:hover {
	background: var(--abb-color-primary-hover);
}

.abb-gsearch__pills {
	display: flex;
	gap: 4px;
	flex-shrink: 0;
}

.abb-gsearch__pill {
	padding: 8px 18px;
	border-radius: 8px;
	border: none;
	white-space: nowrap;
	font-size: 13px;
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: transparent;
	cursor: pointer;
	transition: all var(--abb-transition);
	text-decoration: none;
}

.abb-gsearch__pill:hover {
	background: var(--abb-color-bg-subtle);
	color: var(--abb-color-text);
}

.abb-gsearch__pill--active {
	background: var(--abb-color-primary);
	color: #fff;
	font-weight: 600;
	box-shadow: 0 2px 6px rgba(99, 102, 241, 0.25);
}

.abb-gsearch__pill--active:hover {
	background: var(--abb-color-primary-hover);
	color: #fff;
}

@media (max-width: 767px) {
	.abb-gsearch__bar {
		flex-direction: column;
	}

	.abb-gsearch__form {
		min-width: 100%;
	}

	.abb-gsearch__pills {
		width: 100%;
		overflow-x: auto;
	}
}

/* ==========================================================================
   Directory Pagination
   ========================================================================== */

.abb-members-pagination,
.abb-members-pagination__nav,
.abb-groups-pagination__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--abb-gap-sm);
	padding: var(--abb-gap-md) 0;
}

.abb-members-pagination__prev,
.abb-members-pagination__next,
.abb-members-pagination__nav a,
.abb-groups-pagination__nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 16px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	text-decoration: none;
	transition: all var(--abb-transition);
}

.abb-members-pagination__prev:hover,
.abb-members-pagination__next:hover,
.abb-members-pagination__nav a:hover,
.abb-groups-pagination__nav a:hover {
	color: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

/* Current page + ellipsis: plain (not boxed), matching the groups directory. */
.abb-members-pagination__nav .page-numbers.current,
.abb-groups-pagination__nav .page-numbers.current,
.abb-members-pagination__nav .page-numbers.dots,
.abb-groups-pagination__nav .page-numbers.dots {
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
}

.abb-groups-pagination__count,
.abb-members-pagination__count {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-muted);
	margin: 0;
}

/* ==========================================================================
   Directory Navigation / Filters
   ========================================================================== */

.abb-members-navigation,
.abb-groups-search,
.abb-members-search {
	margin-bottom: var(--abb-gap-md);
}

.abb-groups-nav__list,
.abb-activity-filters__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
}

.abb-groups-nav--vertical .abb-groups-nav__list,
.abb-activity-filters--vertical .abb-activity-filters__list {
	flex-direction: column;
}

.abb-groups-nav__btn,
.abb-activity-filters__btn {
	display: flex;
	align-items: center;
	padding: 8px 16px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: transparent;
	border: none;
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
	white-space: nowrap;
}

.abb-groups-nav__btn:hover,
.abb-activity-filters__btn:hover {
	color: var(--abb-color-text);
	background: var(--abb-color-bg);
}

.abb-groups-nav__item--current .abb-groups-nav__btn,
.abb-activity-filters__item--current .abb-activity-filters__btn {
	color: var(--abb-color-primary);
	background: var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	font-weight: 600;
}

/* ==========================================================================
   Members Count / Groups Count
   ========================================================================== */

.abb-members-count,
.abb-groups-count {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
}

.abb-members-count__number,
.abb-groups-count__number {
	font-weight: 700;
	color: var(--abb-color-text);
	font-size: var(--abb-font-size-lg);
}

/* ==========================================================================
   Group Profile
   ========================================================================== */

.abb-group-avatar {
	display: inline-block;
	line-height: 0;
}

.abb-group-avatar img {
	display: block;
	width: 100px;
	height: 100px;
	border-radius: var(--abb-radius-md);
	object-fit: cover;
	border: 3px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-md);
	transition: transform var(--abb-transition);
}

.abb-group-avatar__link:hover img {
	transform: scale(1.05);
}

.abb-group-avatar__link {
	text-decoration: none;
	display: inline-block;
}

.abb-group-avatar__letter {
	border: 3px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-md);
}

.abb-group-cover {
	display: block;
	width: 100%;
	position: relative;
	overflow: hidden;
	border-radius: var(--abb-radius-lg);
}

.abb-group-cover__bg {
	display: block;
	width: 100%;
	min-height: 200px;
	background-size: cover;
	background-position: center;
	background-color: var(--abb-color-bg-subtle);
	transition: transform 0.4s ease;
}

.abb-group-cover:hover .abb-group-cover__bg {
	transform: scale(1.02);
}

.abb-group-cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.abb-group-title__text {
	margin: 0;
	font-weight: 700;
	font-size: var(--abb-font-size-xl);
	color: var(--abb-color-text);
	letter-spacing: -0.01em;
	line-height: 1.3;
}

.abb-group-title__link {
	color: inherit;
	text-decoration: none;
	transition: color var(--abb-transition);
}

.abb-group-title__link:hover {
	color: var(--abb-color-primary);
}

.abb-group-description__text {
	margin: 0;
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text-secondary);
	line-height: var(--abb-line-height);
}

/* ==========================================================================
   Group Meta
   ========================================================================== */

.abb-group-meta__items {
	display: flex;
	flex-wrap: wrap;
	gap: var(--abb-gap-sm);
}

.abb-group-meta__item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	padding: 4px 12px;
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-full);
	font-weight: 500;
}

.abb-group-meta__status--public {
	color: var(--abb-color-success);
	background: rgba(16, 185, 129, 0.08);
}

.abb-group-meta__status--private {
	color: var(--abb-color-warning);
	background: rgba(245, 158, 11, 0.08);
}

.abb-group-meta__status--hidden {
	color: var(--abb-color-text-muted);
	background: var(--abb-color-bg-subtle);
}

/* ==========================================================================
   Group Members Preview
   ========================================================================== */

.abb-group-members-list__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--abb-gap-md);
}

.abb-group-members-list__list--grid {
	grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
}

.abb-group-members-list__list--list {
	grid-template-columns: 1fr;
}

.abb-group-members-list__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--abb-gap-xs);
	text-align: center;
}

.abb-group-members-list__list--list .abb-group-members-list__item {
	flex-direction: row;
	text-align: left;
}

.abb-group-members-list__avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
}

.abb-group-members-list__avatar-link {
	text-decoration: none;
	display: inline-block;
	line-height: 0;
}

.abb-group-members-list__name {
	font-size: var(--abb-font-size-xs);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	text-decoration: none;
	transition: color var(--abb-transition);
}

.abb-group-members-list__name:hover {
	color: var(--abb-color-primary);
}

.abb-group-members-list__empty {
	color: var(--abb-color-text-muted);
	font-size: var(--abb-font-size-sm);
}

/* ==========================================================================
   Create Group Button
   ========================================================================== */

.abb-groups-create-button__link {
	display: inline-flex;
	align-items: center;
	gap: var(--abb-gap-xs);
	padding: 10px 24px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-sm);
	text-decoration: none;
	transition: all var(--abb-transition);
	cursor: pointer;
}

.abb-groups-create-button__link:hover {
	background: var(--abb-color-primary-hover);
	transform: translateY(-1px);
	box-shadow: var(--abb-shadow-md);
}

/* ==========================================================================
   Breakdance link-color override
   Breakdance's global stylesheet applies `.breakdance a { color: var(--bde-links-color) }`
   (specificity 0,1,1) to every link inside the `.breakdance` <body>. That outranks
   our single-class pill / create-button color rules (0,1,0) and repaints their text
   blue — producing the blue-on-blue active pill and "Create a Group" button. Re-assert
   our colors with descendant selectors (specificity 0,2,0+) so they win cleanly,
   without resorting to !important.
   ========================================================================== */

.abb-gsearch__pills .abb-gsearch__pill,
.abb-msearch__pills .abb-msearch__pill {
	color: var(--abb-color-text-secondary);
}

.abb-gsearch__pills .abb-gsearch__pill:hover,
.abb-msearch__pills .abb-msearch__pill:hover {
	color: var(--abb-color-text);
}

.abb-gsearch__pills .abb-gsearch__pill--active,
.abb-gsearch__pills .abb-gsearch__pill--active:hover,
.abb-msearch__pills .abb-msearch__pill--active,
.abb-msearch__pills .abb-msearch__pill--active:hover {
	color: #fff;
}

.abb-groups-create-button .abb-groups-create-button__link,
.abb-groups-create-button .abb-groups-create-button__link:hover {
	color: #fff;
}

/* ==========================================================================
   XProfile Fields
   ========================================================================== */

.abb-xprofile-field__label {
	display: block;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--abb-color-text-muted);
	margin-bottom: 4px;
}

.abb-xprofile-field__value {
	margin: 0;
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	line-height: var(--abb-line-height);
}

/* XProfile Group */

.abb-xprofile-group__title {
	font-size: var(--abb-font-size-lg);
	font-weight: 700;
	color: var(--abb-color-text);
	margin: 0 0 var(--abb-gap-md);
	padding-bottom: var(--abb-gap-sm);
	border-bottom: 2px solid var(--abb-color-bg-subtle);
}

.abb-xprofile-group__fields {
	margin: 0;
	display: grid;
	gap: var(--abb-gap-md);
}

.abb-xprofile-group__field {
	padding: var(--abb-gap-sm) 0;
	border-bottom: 1px solid var(--abb-color-bg-subtle);
}

.abb-xprofile-group__field:last-child {
	border-bottom: none;
}

.abb-xprofile-group__field-label {
	margin: 0;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--abb-color-text-muted);
	margin-bottom: 4px;
}

.abb-xprofile-group__field-value {
	margin: 0;
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
}

/* ==========================================================================
   Notices
   ========================================================================== */

.abb-member-notices,
.abb-group-notices__inner {
	padding: var(--abb-gap-md);
	background: rgba(99, 102, 241, 0.06);
	border: 1px solid rgba(99, 102, 241, 0.15);
	border-radius: var(--abb-radius-sm);
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	line-height: var(--abb-line-height);
}

/* ==========================================================================
   Activity Stream
   ========================================================================== */

/* Force full width inside Breakdance's flex section container */
.abb-activity-stream {
	width: 100%;
}

.abb-activity-stream ul.activity-list,
.abb-activity-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.abb-activity-stream ul.activity-list > li,
.abb-activity-list__item {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
	margin-bottom: var(--abb-gap-md);
}

.abb-activity-stream ul.activity-list > li:last-child,
.abb-activity-list__item:last-child {
	margin-bottom: 0;
}

/* --- BP Nouveau Activity Entry (inside Activity Stream element) --- */

.abb-activity-stream #abb-buddypress {
	font-family: inherit;
	font-size: var(--abb-font-size-base);
	line-height: var(--abb-line-height);
	color: var(--abb-color-text);
	width: 100%;
}

.abb-activity-stream #abb-buddypress *,
.abb-activity-stream #abb-buddypress *::before,
.abb-activity-stream #abb-buddypress *::after {
	box-sizing: border-box;
}

.abb-activity-stream #abb-buddypress ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Reset BP Nouveau's default styles on the activity list wrapper */
.abb-activity-stream #abb-buddypress .activity-list.bp-list {
	background: none;
	border: none;
	padding: 0;
	width: 100%;
}

/* Hide BP Nouveau's default Load More — ABB provides its own via Breakdance */
.abb-activity-stream #abb-buddypress .load-more,
.abb-activity-stream #abb-buddypress .load-newest,
.abb-activity-stream #abb-buddypress ul.activity-list li.load-more,
.abb-activity-stream #abb-buddypress ul.activity-list li.load-newest {
	display: none !important;
}

.abb-activity-stream #abb-buddypress a {
	color: var(--abb-color-primary);
	text-decoration: none;
	transition: color var(--abb-transition);
}

.abb-activity-stream #abb-buddypress a:hover {
	color: var(--abb-color-primary-hover);
}

/* Activity entry — horizontal layout: avatar + content, comments wrap below */
.abb-activity-stream #abb-buddypress .activity-list > li {
	display: grid !important;
	grid-template-columns: 48px 1fr;
	column-gap: var(--abb-gap-md);
	row-gap: var(--abb-gap-sm);
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
	margin-bottom: var(--abb-gap-md);
	width: 100%;
	float: none !important;
	box-shadow: none;
	overflow: hidden;
}

.abb-activity-stream #abb-buddypress .activity-list > li:last-child {
	margin-bottom: 0;
}

/* Avatar — row 1 col 1, aligned with header */
.abb-activity-stream #abb-buddypress .activity-avatar {
	grid-column: 1;
	grid-row: 1;
	width: 48px !important;
	margin: 0 !important;
	float: none !important;
	align-self: center;
}

.abb-activity-stream #abb-buddypress .activity-avatar a {
	display: block;
}

.abb-activity-stream #abb-buddypress .activity-avatar img {
	width: 48px !important;
	height: 48px !important;
	max-width: none !important;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
}

/* Content wrapper — display:contents exposes header/inner/meta to the grid */
.abb-activity-stream #abb-buddypress .activity-content {
	display: contents !important;
}

/* Header — row 1 col 2, INLINE beside avatar */
.abb-activity-stream #abb-buddypress .activity-header {
	grid-column: 2;
	grid-row: 1;
	align-self: center;
}

/* Inner content — full width below avatar row */
.abb-activity-stream #abb-buddypress .activity-inner {
	grid-column: 1 / -1;
}

/* Meta buttons — full width */
.abb-activity-stream #abb-buddypress .activity-meta {
	grid-column: 1 / -1;
}

/* Activity header (e.g., "bharat posted an update 26 minutes ago") */
.abb-activity-stream #abb-buddypress .activity-header {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	margin-bottom: var(--abb-gap-xs);
	line-height: 1.5;
}

.abb-activity-stream #abb-buddypress .activity-header p {
	margin: 0;
}

.abb-activity-stream #abb-buddypress .activity-header a {
	font-weight: 600;
	color: var(--abb-color-text);
}

.abb-activity-stream #abb-buddypress .activity-header a:hover {
	color: var(--abb-color-primary);
}

.abb-activity-stream #abb-buddypress .activity-header .time-since,
.abb-activity-stream #abb-buddypress .activity-header .activity-time-since {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

/* Activity inner content (the actual post body) */
.abb-activity-stream #abb-buddypress .activity-inner {
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	line-height: var(--abb-line-height);
	margin-top: var(--abb-gap-xs);
	overflow: hidden;
	background: transparent !important;
	padding: 0 !important;
}

.abb-activity-stream #abb-buddypress .activity-inner img {
	max-width: 100%;
	height: auto;
	border-radius: var(--abb-radius-sm);
}

.abb-activity-stream #abb-buddypress .activity-inner p {
	margin: 0 0 var(--abb-gap-xs);
}

.abb-activity-stream #abb-buddypress .activity-inner p:last-child {
	margin-bottom: 0;
}

/* --- Action buttons (Comment, Favorite, Delete) --- */

.abb-activity-stream #abb-buddypress .activity-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--abb-gap-sm);
	background: transparent !important;
	margin-top: var(--abb-gap-sm);
	padding-top: var(--abb-gap-sm);
}

/* Base button style — pill with icon + text */
.abb-activity-stream #abb-buddypress .activity-meta a,
.abb-activity-stream #abb-buddypress .activity-meta button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 14px;
	font-size: var(--abb-font-size-xs);
	font-weight: 500;
	color: var(--abb-color-text-muted);
	background: var(--abb-color-bg-subtle);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-full);
	cursor: pointer;
	text-decoration: none;
	transition: all var(--abb-transition);
	white-space: nowrap;
	line-height: 1.4;
	position: relative;
}

.abb-activity-stream #abb-buddypress .activity-meta a:hover,
.abb-activity-stream #abb-buddypress .activity-meta button:hover {
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.06);
	border-color: rgba(99, 102, 241, 0.3);
}

/* Make BP's screen-reader-text VISIBLE inside our activity meta */
.abb-activity-stream #abb-buddypress .activity-meta .bp-screen-reader-text {
	clip: unset !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	overflow: visible !important;
	margin: 0;
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

/* Hide the generic BP sr-text elsewhere in the stream (not in buttons) */
.abb-activity-stream #abb-buddypress .bp-screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	word-wrap: normal;
}

/* --- Icon pseudo-elements for each button type --- */

/* Comment button */
.abb-activity-stream #abb-buddypress .activity-meta .acomment-reply::before {
	content: "\1F4AC";
	font-size: 14px;
	line-height: 1;
	font-style: normal;
}

.abb-activity-stream #abb-buddypress .activity-meta .acomment-reply:hover {
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.06);
	border-color: rgba(99, 102, 241, 0.3);
}

.abb-activity-stream #abb-buddypress .activity-meta .acomment-reply .comment-count {
	font-weight: 600;
	color: inherit;
}

/* Favorite button */
.abb-activity-stream #abb-buddypress .activity-meta .fav::before {
	content: "\2606";
	font-size: 15px;
	line-height: 1;
}

.abb-activity-stream #abb-buddypress .activity-meta .fav:hover {
	color: var(--abb-color-warning);
	background: rgba(245, 158, 11, 0.06);
	border-color: rgba(245, 158, 11, 0.3);
}

/* Favorited state (unfav = already favorited) */
.abb-activity-stream #abb-buddypress .activity-meta .unfav {
	color: var(--abb-color-warning);
	background: rgba(245, 158, 11, 0.06);
	border-color: rgba(245, 158, 11, 0.25);
}

.abb-activity-stream #abb-buddypress .activity-meta .unfav::before {
	content: "\2605";
	font-size: 15px;
	line-height: 1;
}

.abb-activity-stream #abb-buddypress .activity-meta .unfav:hover {
	background: rgba(245, 158, 11, 0.12);
	border-color: rgba(245, 158, 11, 0.4);
}

/* Delete button */
.abb-activity-stream #abb-buddypress .activity-meta .delete-activity::before {
	content: "\1F5D1";
	font-size: 13px;
	line-height: 1;
}

.abb-activity-stream #abb-buddypress .activity-meta .delete-activity:hover {
	color: #dc2626;
	background: rgba(239, 68, 68, 0.06);
	border-color: rgba(239, 68, 68, 0.3);
}

/* Spam button (if Akismet active) */
.abb-activity-stream #abb-buddypress .activity-meta .spam-activity::before {
	content: "\26A0";
	font-size: 13px;
	line-height: 1;
}

.abb-activity-stream #abb-buddypress .activity-meta .spam-activity:hover {
	color: #dc2626;
	background: rgba(239, 68, 68, 0.06);
	border-color: rgba(239, 68, 68, 0.3);
}

/* View Conversation button */
.abb-activity-stream #abb-buddypress .activity-meta .view::before {
	content: "\1F517";
	font-size: 13px;
	line-height: 1;
}

/* --- Comments section --- */

.abb-activity-stream #abb-buddypress .activity-comments {
	grid-column: 1 / -1;
	width: 100%;
	margin-top: 0;
	margin-left: 0;
	padding-left: calc(48px + var(--abb-gap-md));
	border-left: none;
}

.abb-activity-stream #abb-buddypress .activity-comments ul {
	margin: 0;
	padding: 0;
}

.abb-activity-stream #abb-buddypress .activity-comments > ul > li {
	padding: var(--abb-gap-sm) 0;
	border-bottom: 1px solid var(--abb-color-bg-subtle);
}

.abb-activity-stream #abb-buddypress .activity-comments > ul > li:last-child {
	border-bottom: none;
}

.abb-activity-stream #abb-buddypress .activity-comments .acomment-avatar img {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	float: left;
	margin-right: var(--abb-gap-sm);
}

.abb-activity-stream #abb-buddypress .activity-comments .acomment-meta {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin-bottom: 4px;
}

.abb-activity-stream #abb-buddypress .activity-comments .acomment-meta a {
	font-weight: 600;
	color: var(--abb-color-text);
}

.abb-activity-stream #abb-buddypress .activity-comments .acomment-content {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text);
	line-height: 1.5;
	overflow: hidden;
}

.abb-activity-stream #abb-buddypress .activity-comments .acomment-content p {
	margin: 0;
}

/* Override BP Nouveau #fafafa background on comment action buttons */
.abb-activity-stream #abb-buddypress .activity-comments .activity-meta {
	background: transparent !important;
	border-color: transparent !important;
	padding: 4px 0 !important;
}

/* Comment form — hidden by default, shown via JS on comment click */
.abb-activity-stream #abb-buddypress .ac-form {
	display: none;
	margin-top: var(--abb-gap-sm);
	padding: var(--abb-gap-md);
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-md);
}

.abb-activity-stream #abb-buddypress .ac-form .ac-textarea textarea,
.abb-activity-stream #abb-buddypress .ac-form textarea {
	width: 100%;
	min-height: 60px;
	padding: var(--abb-gap-sm);
	font-size: var(--abb-font-size-sm);
	font-family: inherit;
	color: var(--abb-color-text);
	background: var(--abb-color-bg);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	resize: vertical;
	outline: none;
	transition: border-color var(--abb-transition);
}

.abb-activity-stream #abb-buddypress .ac-form textarea:focus {
	border-color: var(--abb-color-primary);
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

.abb-activity-stream #abb-buddypress .ac-form input[type="submit"],
.abb-activity-stream #abb-buddypress .ac-form .ac-reply-submit {
	display: inline-flex;
	align-items: center;
	padding: 8px 18px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
	margin-top: var(--abb-gap-xs);
}

.abb-activity-stream #abb-buddypress .ac-form input[type="submit"]:hover {
	background: var(--abb-color-primary-hover);
}

.abb-activity-stream #abb-buddypress .ac-form .ac-reply-cancel {
	display: inline-flex;
	align-items: center;
	padding: 8px 18px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
	margin-top: var(--abb-gap-xs);
	margin-left: var(--abb-gap-xs);
	text-decoration: none;
}

.abb-activity-stream #abb-buddypress .ac-form .ac-reply-cancel:hover {
	background: var(--abb-color-bg-subtle);
	color: var(--abb-color-text);
}

.abb-activity-entry__inner {
	display: flex;
	gap: var(--abb-gap-md);
	width: 100%;
}

.abb-activity-entry__avatar img,
.abb-activity-list__avatar img {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

.abb-activity-entry__body,
.abb-activity-list__body {
	flex: 1;
	min-width: 0;
}

.abb-activity-entry__content,
.abb-activity-list__content {
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	line-height: var(--abb-line-height);
}

.abb-activity-entry__content a,
.abb-activity-list__content a {
	color: var(--abb-color-primary);
	text-decoration: none;
	font-weight: 500;
}

.abb-activity-entry__content a:hover,
.abb-activity-list__content a:hover {
	text-decoration: underline;
}

.abb-activity-entry__time,
.abb-activity-list__time {
	display: block;
	margin-top: var(--abb-gap-xs);
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-activity-entry__actions {
	display: flex;
	gap: var(--abb-gap-sm);
	margin-top: var(--abb-gap-sm);
}

.abb-activity-entry__actions a,
.abb-activity-entry__actions button {
	font-size: var(--abb-font-size-xs);
	font-weight: 500;
	color: var(--abb-color-text-muted);
	text-decoration: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px 8px;
	border-radius: var(--abb-radius-sm);
	transition: all var(--abb-transition);
}

.abb-activity-entry__actions a:hover,
.abb-activity-entry__actions button:hover {
	color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

.abb-activity-stream__empty,
.abb-activity-list__empty {
	text-align: center;
	padding: var(--abb-gap-xl);
	color: var(--abb-color-text-muted);
	font-size: var(--abb-font-size-sm);
}

/* ==========================================================================
   Activity Load More
   ========================================================================== */

.abb-activity-load-more {
	text-align: center;
	padding: var(--abb-gap-lg) 0;
}

.abb-activity-load-more__btn {
	display: inline-flex;
	align-items: center;
	gap: var(--abb-gap-xs);
	padding: 10px 28px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
}

.abb-activity-load-more__btn:hover {
	color: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

.abb-activity-load-more__no-more {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-muted);
	margin: 0;
}

/* ==========================================================================
   Activity Post Form
   ========================================================================== */

.abb-activity-post-form__inner {
	background: var(--abb-color-bg);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	padding: var(--abb-gap-lg);
}

.abb-activity-post-form__inner textarea {
	width: 100%;
	min-height: 80px;
	padding: var(--abb-gap-sm);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	font-size: var(--abb-font-size-base);
	resize: vertical;
	transition: border-color var(--abb-transition);
}

.abb-activity-post-form__inner textarea:focus {
	border-color: var(--abb-color-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

/* ==========================================================================
   Members Grid / Groups Grid (General)
   ========================================================================== */

.abb-members-grid,
.abb-groups-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--abb-gap-lg);
}

.abb-members-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.abb-members-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.abb-members-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
.abb-members-grid--cols-6 { grid-template-columns: repeat(6, 1fr); }

.abb-groups-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.abb-groups-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.abb-groups-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
.abb-groups-grid--cols-6 { grid-template-columns: repeat(6, 1fr); }

.abb-members-grid__item,
.abb-groups-grid__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--abb-gap-sm);
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	transition: all var(--abb-transition);
}

.abb-members-grid__item:hover,
.abb-groups-grid__item:hover {
	border-color: var(--abb-color-border-hover);
	box-shadow: var(--abb-shadow-md);
	transform: translateY(-2px);
}

.abb-members-grid__avatar-link,
.abb-groups-grid__avatar-link {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
}

.abb-members-grid__avatar-link img {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	transition: transform var(--abb-transition);
}

.abb-members-grid__item:hover .abb-members-grid__avatar-link img {
	transform: scale(1.05);
}

.abb-groups-grid__avatar {
	width: 56px;
	height: 56px;
	border-radius: var(--abb-radius-md);
	object-fit: cover;
	border: 2px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
}

.abb-members-grid__name,
.abb-groups-grid__name {
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
	transition: color var(--abb-transition);
}

.abb-members-grid__name:hover,
.abb-groups-grid__name:hover {
	color: var(--abb-color-primary);
}

.abb-groups-grid__count {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

/* ==========================================================================
   Activity List (General)
   ========================================================================== */

.abb-activity-list__avatar {
	flex-shrink: 0;
}

/* ==========================================================================
   BP Login Form
   ========================================================================== */

.abb-bp-login-form {
	max-width: 400px;
}

.abb-bp-login-form form {
	display: flex;
	flex-direction: column;
	gap: var(--abb-gap-md);
}

.abb-bp-login-form label {
	display: block;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	margin-bottom: 4px;
}

.abb-bp-login-form input[type="text"],
.abb-bp-login-form input[type="password"] {
	width: 100%;
	padding: 10px 14px;
	font-size: var(--abb-font-size-base);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	background: var(--abb-color-bg);
	transition: all var(--abb-transition);
}

.abb-bp-login-form input[type="text"]:focus,
.abb-bp-login-form input[type="password"]:focus {
	border-color: var(--abb-color-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

.abb-bp-login-form input[type="submit"] {
	width: 100%;
	padding: 12px 24px;
	font-size: var(--abb-font-size-base);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
}

.abb-bp-login-form input[type="submit"]:hover {
	background: var(--abb-color-primary-hover);
}

.abb-bp-login-form__links {
	display: flex;
	justify-content: center;
	gap: var(--abb-gap-md);
	margin-top: var(--abb-gap-sm);
}

.abb-bp-login-form__register-link,
.abb-bp-login-form__lost-pw-link {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	text-decoration: none;
	transition: color var(--abb-transition);
}

.abb-bp-login-form__register-link:hover,
.abb-bp-login-form__lost-pw-link:hover {
	color: var(--abb-color-primary);
}

.abb-bp-login-form__logged-in {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
}

.abb-bp-login-form__preview {
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-md);
	text-align: center;
	color: var(--abb-color-text-muted);
	font-size: var(--abb-font-size-sm);
}

/* ==========================================================================
   BP Registration Form
   ========================================================================== */

.abb-bp-registration-form {
	max-width: 640px;
}

.abb-bp-registration-form__form {
	display: flex;
	flex-direction: column;
	gap: var(--abb-gap-lg);
}

/* --- Section headings --- */

.abb-bp-registration-form__heading {
	font-size: var(--abb-font-size-xl);
	font-weight: 700;
	color: var(--abb-color-text);
	margin: 0 0 var(--abb-gap-md);
	padding-bottom: var(--abb-gap-sm);
	border-bottom: 2px solid var(--abb-color-border);
}

/* --- Fields container --- */

.abb-bp-registration-form__fields {
	display: flex;
	flex-direction: column;
	gap: var(--abb-gap-md);
}

/* --- Labels --- */

.abb-bp-registration-form label {
	display: block;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	margin-bottom: 4px;
}

/* --- Text, email, password inputs --- */

.abb-bp-registration-form input[type="text"],
.abb-bp-registration-form input[type="email"],
.abb-bp-registration-form input[type="password"],
.abb-bp-registration-form input[type="url"],
.abb-bp-registration-form input[type="tel"],
.abb-bp-registration-form input[type="number"],
.abb-bp-registration-form input[type="date"],
.abb-bp-registration-form select,
.abb-bp-registration-form textarea {
	width: 100%;
	padding: 10px 14px;
	font-size: var(--abb-font-size-base);
	font-family: inherit;
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	background: var(--abb-color-bg);
	color: var(--abb-color-text);
	transition: all var(--abb-transition);
	box-sizing: border-box;
}

.abb-bp-registration-form input[type="text"]:focus,
.abb-bp-registration-form input[type="email"]:focus,
.abb-bp-registration-form input[type="password"]:focus,
.abb-bp-registration-form input[type="url"]:focus,
.abb-bp-registration-form input[type="tel"]:focus,
.abb-bp-registration-form input[type="number"]:focus,
.abb-bp-registration-form input[type="date"]:focus,
.abb-bp-registration-form select:focus,
.abb-bp-registration-form textarea:focus {
	border-color: var(--abb-color-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

.abb-bp-registration-form textarea {
	min-height: 100px;
	resize: vertical;
}

/* --- Checkboxes and radios --- */

.abb-bp-registration-form input[type="checkbox"],
.abb-bp-registration-form input[type="radio"] {
	margin-right: 6px;
	accent-color: var(--abb-color-primary);
}

/* --- xProfile field wrappers --- */

.abb-bp-registration-form .editfield {
	margin-bottom: var(--abb-gap-sm);
}

.abb-bp-registration-form .editfield fieldset {
	border: none;
	padding: 0;
	margin: 0;
}

.abb-bp-registration-form .editfield legend {
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	margin-bottom: 4px;
	padding: 0;
}

/* --- Required field indicator --- */

.abb-bp-registration-form .required-field legend::after,
.abb-bp-registration-form .required-field label::after {
	content: ' *';
	color: #ef4444;
}

/* --- Password strength meter --- */

.abb-bp-registration-form .user-pass1-wrap {
	margin-bottom: var(--abb-gap-sm);
}

.abb-bp-registration-form .wp-pwd {
	position: relative;
}

.abb-bp-registration-form .password-input-wrapper {
	position: relative;
	display: flex;
	align-items: center;
}

.abb-bp-registration-form .password-input-wrapper input {
	flex: 1;
	padding-right: 44px;
}

.abb-bp-registration-form .wp-hide-pw {
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
	color: var(--abb-color-text-muted);
}

.abb-bp-registration-form .wp-hide-pw:hover {
	color: var(--abb-color-text);
}

/* Caps-lock warning — hidden by default, WP JS shows it on actual caps lock */
.abb-bp-registration-form .caps-warning {
	display: none;
	align-items: center;
	gap: 6px;
	margin-top: 6px;
	font-size: var(--abb-font-size-xs);
	color: #a16207;
}

.abb-bp-registration-form .caps-warning .caps-icon svg {
	width: 16px;
	height: 16px;
}

/* Tame the dashicons size inside the password toggle */
.abb-bp-registration-form .wp-hide-pw .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
}

.abb-bp-registration-form #pass-strength-result {
	margin-top: 6px;
	padding: 6px 12px;
	border-radius: var(--abb-radius-sm);
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	text-align: center;
	background: var(--abb-color-bg-subtle);
	border: 1px solid var(--abb-color-border);
}

.abb-bp-registration-form #pass-strength-result.bad,
.abb-bp-registration-form #pass-strength-result.short {
	background: #fef2f2;
	border-color: #fca5a5;
	color: #b91c1c;
}

.abb-bp-registration-form #pass-strength-result.good {
	background: #fefce8;
	border-color: #fde047;
	color: #a16207;
}

.abb-bp-registration-form #pass-strength-result.strong {
	background: #f0fdf4;
	border-color: #86efac;
	color: #15803d;
}

.abb-bp-registration-form .pw-weak {
	margin-top: 6px;
}

.abb-bp-registration-form .pw-weak label {
	font-size: var(--abb-font-size-xs);
	font-weight: 400;
	color: var(--abb-color-text-muted);
}

.abb-bp-registration-form .user-pass2-wrap {
	margin-bottom: var(--abb-gap-sm);
}

.abb-bp-registration-form .indicator-hint {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin-top: 4px;
}

/* --- Visibility selector (xProfile) --- */

.abb-bp-registration-form .field-visibility-settings-toggle,
.abb-bp-registration-form .field-visibility-settings {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin-top: 4px;
}

.abb-bp-registration-form .field-visibility-settings-toggle a {
	color: var(--abb-color-primary);
	text-decoration: none;
}

.abb-bp-registration-form .field-visibility-settings-toggle a:hover {
	color: var(--abb-color-primary-hover);
}

/* --- Privacy policy --- */

.abb-bp-registration-form__privacy {
	padding: var(--abb-gap-md);
	background: var(--abb-color-bg-subtle);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
}

.abb-bp-registration-form__privacy label {
	font-weight: 400;
	font-size: var(--abb-font-size-sm);
}

.abb-bp-registration-form__privacy a {
	color: var(--abb-color-primary);
	text-decoration: none;
}

.abb-bp-registration-form__privacy a:hover {
	color: var(--abb-color-primary-hover);
}

/* --- Submit button --- */

.abb-bp-registration-form__submit {
	margin-top: var(--abb-gap-sm);
}

.abb-bp-registration-form__submit .submit {
	margin: 0;
}

.abb-bp-registration-form input[type="submit"],
.abb-bp-registration-form #submit {
	width: 100%;
	padding: 14px 28px;
	font-size: var(--abb-font-size-base);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
}

.abb-bp-registration-form input[type="submit"]:hover,
.abb-bp-registration-form #submit:hover {
	background: var(--abb-color-primary-hover);
	box-shadow: var(--abb-shadow-md);
}

/* --- Error messages --- */

.abb-bp-registration-form .error {
	color: #b91c1c;
	font-size: var(--abb-font-size-xs);
	margin-top: 4px;
	padding: 4px 8px;
	background: #fef2f2;
	border-radius: var(--abb-radius-sm);
	border-left: 3px solid #ef4444;
}

/* --- Template notices --- */

/* Welcome / feedback message banner */
.abb-bp-registration-form .bp-feedback {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	padding: var(--abb-gap-md) var(--abb-gap-lg);
	margin-bottom: var(--abb-gap-lg);
	background: linear-gradient(135deg, rgba(99, 102, 241, 0.06), rgba(99, 102, 241, 0.02));
	border: 1px solid rgba(99, 102, 241, 0.15);
	border-left: 4px solid var(--abb-color-primary);
	border-radius: var(--abb-radius-md);
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	line-height: var(--abb-line-height);
}

.abb-bp-registration-form .bp-feedback .bp-icon {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
}

.abb-bp-registration-form .bp-feedback p {
	margin: 0;
}

.abb-bp-registration-form .bp-template-notice {
	padding: var(--abb-gap-md);
	border-radius: var(--abb-radius-md);
	margin-bottom: var(--abb-gap-md);
	font-size: var(--abb-font-size-sm);
}

.abb-bp-registration-form .bp-template-notice.error {
	background: #fef2f2;
	border-left: 4px solid #ef4444;
	color: #b91c1c;
	padding: var(--abb-gap-md);
}

.abb-bp-registration-form .bp-template-notice.success,
.abb-bp-registration-form .bp-template-notice.updated {
	background: #f0fdf4;
	border-left: 4px solid #10b981;
	color: #15803d;
}

/* --- Completed confirmation --- */

.abb-bp-registration-form__completed {
	text-align: center;
	padding: var(--abb-gap-xl);
}

/* --- Logged-in / closed messages --- */

.abb-bp-registration-form__logged-in,
.abb-bp-registration-form__closed {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	text-align: center;
	padding: var(--abb-gap-lg);
}

/* --- Blog details toggle (hidden by default) --- */

.abb-bp-registration-form #blog-details {
	display: none;
	margin-top: var(--abb-gap-md);
}

.abb-bp-registration-form #blog-details.show {
	display: block;
}

/* --- Sections spacing --- */

.abb-bp-registration-form__section {
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
}

/* ==========================================================================
   BP Activation Form
   ========================================================================== */

.abb-bp-activation-form {
	max-width: 540px;
}

.abb-bp-activation-form__title {
	font-size: var(--abb-font-size-xl);
	font-weight: 700;
	color: var(--abb-color-text);
	margin: 0 0 var(--abb-gap-lg);
}

.abb-bp-activation-form__inner #activate-page {
	padding: var(--abb-gap-xl);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
}

/* Success message after activation */
.abb-bp-activation-form__inner #activate-page p {
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	line-height: var(--abb-line-height);
	margin: 0 0 var(--abb-gap-md);
}

.abb-bp-activation-form__inner #activate-page p a {
	color: var(--abb-color-primary);
	font-weight: 600;
	text-decoration: none;
}

.abb-bp-activation-form__inner #activate-page p a:hover {
	color: var(--abb-color-primary-hover);
}

/* Activation form */
.abb-bp-activation-form__inner #activation-form {
	display: flex;
	flex-direction: column;
	gap: var(--abb-gap-md);
}

.abb-bp-activation-form__inner #activation-form label {
	display: block;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	margin-bottom: 4px;
}

.abb-bp-activation-form__inner #activation-form input[type="text"] {
	width: 100%;
	padding: 10px 14px;
	font-size: var(--abb-font-size-base);
	font-family: inherit;
	color: var(--abb-color-text);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	transition: border-color var(--abb-transition), box-shadow var(--abb-transition);
}

.abb-bp-activation-form__inner #activation-form input[type="text"]:focus {
	outline: none;
	border-color: var(--abb-color-primary);
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}

.abb-bp-activation-form__inner #activation-form .submit {
	margin: 0;
	padding: 0;
}

.abb-bp-activation-form__inner #activation-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 28px;
	font-size: var(--abb-font-size-base);
	font-weight: 600;
	font-family: inherit;
	color: #ffffff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-md);
	cursor: pointer;
	transition: background var(--abb-transition);
}

.abb-bp-activation-form__inner #activation-form input[type="submit"]:hover {
	background: var(--abb-color-primary-hover);
}

/* BP template notices inside activation */
.abb-bp-activation-form__inner .bp-template-notice {
	padding: var(--abb-gap-md);
	border-radius: var(--abb-radius-md);
	margin-bottom: var(--abb-gap-md);
	font-size: var(--abb-font-size-sm);
}

.abb-bp-activation-form__inner .bp-template-notice.error {
	background: #fef2f2;
	border-left: 4px solid #ef4444;
	color: #991b1b;
}

.abb-bp-activation-form__inner .bp-template-notice.updated,
.abb-bp-activation-form__inner .bp-template-notice.success {
	background: #f0fdf4;
	border-left: 4px solid var(--abb-color-success);
	color: #065f46;
}

/* ==========================================================================
   Notification Bell
   ========================================================================== */

.abb-notification-bell {
	display: inline-flex;
	align-items: center;
}

.abb-notification-bell__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px;
	border-radius: var(--abb-radius-full);
	color: var(--abb-color-text);
	text-decoration: none;
	transition: all var(--abb-transition);
	cursor: pointer;
}

.abb-notification-bell__link:hover {
	background: var(--abb-color-bg-subtle);
	color: var(--abb-color-primary);
}

/* --- Icon --- */

.abb-notification-bell__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.abb-notification-bell__icon svg {
	display: block;
}

/* --- Sizes --- */

.abb-notification-bell--size-sm .abb-notification-bell__icon svg {
	width: 20px;
	height: 20px;
}

.abb-notification-bell--size-md .abb-notification-bell__icon svg {
	width: 24px;
	height: 24px;
}

.abb-notification-bell--size-lg .abb-notification-bell__icon svg {
	width: 32px;
	height: 32px;
}

/* --- Badge --- */

.abb-notification-bell__badge {
	position: absolute;
	top: 2px;
	right: 2px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	background: #ef4444;
	border-radius: var(--abb-radius-full);
	border: 2px solid var(--abb-color-bg);
	box-sizing: border-box;
	pointer-events: none;
	animation: abb-badge-pop 0.3s ease;
}

.abb-notification-bell--size-sm .abb-notification-bell__badge {
	top: 0;
	right: 0;
	min-width: 16px;
	height: 16px;
	font-size: 10px;
	padding: 0 4px;
}

.abb-notification-bell--size-lg .abb-notification-bell__badge {
	top: 2px;
	right: 0;
	min-width: 20px;
	height: 20px;
	font-size: 12px;
	padding: 0 6px;
}

.abb-notification-bell__badge--zero {
	background: var(--abb-color-text-muted);
}

@keyframes abb-badge-pop {
	0% { transform: scale(0); }
	60% { transform: scale(1.2); }
	100% { transform: scale(1); }
}

/* ==========================================================================
   User Menu Dropdown
   ========================================================================== */

.abb-user-menu .abb-element {
	position: relative;
	display: inline-block;
}

/* --- Trigger (avatar + name + chevron) --- */
.abb-user-menu__trigger {
	display: inline-flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	cursor: pointer;
	padding: 4px 8px;
	border-radius: var(--abb-radius-full);
	transition: background var(--abb-transition);
	user-select: none;
}

.abb-user-menu__trigger:hover {
	background: var(--abb-color-bg-subtle);
}

/* Avatar */
.abb-user-menu__trigger .abb-user-menu__avatar,
.abb-user-menu__trigger img.avatar {
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.abb-user-menu--size-sm .abb-user-menu__avatar,
.abb-user-menu--size-sm img.avatar {
	width: 28px !important;
	height: 28px !important;
}

.abb-user-menu--size-md .abb-user-menu__avatar,
.abb-user-menu--size-md img.avatar {
	width: 36px !important;
	height: 36px !important;
}

.abb-user-menu--size-lg .abb-user-menu__avatar,
.abb-user-menu--size-lg img.avatar {
	width: 44px !important;
	height: 44px !important;
}

/* Avatar placeholder (editor) */
.abb-user-menu__avatar-placeholder {
	display: block;
	border-radius: 50%;
	background: var(--abb-color-bg-subtle);
	border: 2px dashed var(--abb-color-border);
}

.abb-user-menu__avatar-placeholder.abb-user-menu--size-sm {
	width: 28px; height: 28px;
}

.abb-user-menu__avatar-placeholder.abb-user-menu--size-md {
	width: 36px; height: 36px;
}

.abb-user-menu__avatar-placeholder.abb-user-menu--size-lg {
	width: 44px; height: 44px;
}

/* Name */
.abb-user-menu__name {
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	white-space: nowrap;
}

/* Chevron */
.abb-user-menu__chevron {
	color: var(--abb-color-text-muted);
	transition: transform var(--abb-transition);
	flex-shrink: 0;
}

.abb-user-menu .abb-element:hover .abb-user-menu__chevron {
	transform: rotate(180deg);
}

/* --- Dropdown panel --- */
.abb-user-menu__dropdown {
	display: none;
	position: absolute;
	top: 100%;
	z-index: 1000;
	min-width: 220px;
	margin-top: 6px;
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	box-shadow: var(--abb-shadow-lg);
	padding: var(--abb-gap-xs) 0;
	animation: abb-dropdown-fade 0.15s ease;
}

@keyframes abb-dropdown-fade {
	from { opacity: 0; transform: translateY(-4px); }
	to { opacity: 1; transform: translateY(0); }
}

.abb-user-menu__dropdown--right {
	right: 0;
}

.abb-user-menu__dropdown--left {
	left: 0;
}

/* Show on hover */
.abb-user-menu .abb-element:hover .abb-user-menu__dropdown {
	display: block;
}

/* --- Menu list --- */
.abb-user-menu__list {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* --- Menu item --- */
.abb-user-menu__item {
	list-style: none !important;
	margin: 0;
}

.abb-user-menu__item--separator {
	border-top: 1px solid var(--abb-color-border);
	margin-top: var(--abb-gap-xs);
	padding-top: var(--abb-gap-xs);
}

/* --- Menu link --- */
.abb-user-menu__link {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	padding: 8px 16px;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text);
	text-decoration: none;
	transition: all var(--abb-transition);
	cursor: pointer;
}

.abb-user-menu__link:hover {
	background: var(--abb-color-bg-subtle);
	color: var(--abb-color-primary);
}

/* --- Icon --- */
.abb-user-menu__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

.abb-user-menu__icon svg {
	width: 18px;
	height: 18px;
	color: var(--abb-color-text-muted);
}

.abb-user-menu__link:hover .abb-user-menu__icon svg {
	color: var(--abb-color-primary);
}

/* --- Label --- */
.abb-user-menu__label {
	flex: 1;
	font-weight: 500;
}

/* --- Badge (unread count) --- */
.abb-user-menu__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	background: var(--abb-color-primary);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	border-radius: var(--abb-radius-full);
	line-height: 1;
}

/* --- Logout item special styling --- */
.abb-user-menu__item--logout .abb-user-menu__link:hover {
	color: #dc2626;
}

.abb-user-menu__item--logout .abb-user-menu__link:hover .abb-user-menu__icon svg {
	color: #dc2626;
}

/* --- Guest state buttons --- */
.abb-user-menu__guest {
	display: flex;
	gap: var(--abb-gap-sm);
	align-items: center;
}

.abb-user-menu__guest-btn {
	display: inline-flex;
	align-items: center;
	padding: 8px 20px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	border-radius: var(--abb-radius-full);
	text-decoration: none;
	transition: all var(--abb-transition);
	white-space: nowrap;
	cursor: pointer;
}

.abb-user-menu__guest-btn--login {
	color: var(--abb-color-primary);
	background: transparent;
	border: 1px solid var(--abb-color-primary);
}

.abb-user-menu__guest-btn--login:hover {
	background: var(--abb-color-primary);
	color: #fff;
}

.abb-user-menu__guest-btn--register {
	color: #fff;
	background: var(--abb-color-primary);
	border: 1px solid var(--abb-color-primary);
}

.abb-user-menu__guest-btn--register:hover {
	background: var(--abb-color-primary-hover);
	border-color: var(--abb-color-primary-hover);
}

/* ==========================================================================
   Loading State
   ========================================================================== */

.abb-loading {
	opacity: 0.5;
	pointer-events: none;
	position: relative;
}

.abb-loading::after {
	content: '';
	display: block;
	width: 28px;
	height: 28px;
	margin: 16px auto;
	border: 2.5px solid var(--abb-color-border);
	border-top-color: var(--abb-color-primary);
	border-radius: 50%;
	animation: abb-spin 0.65s linear infinite;
}

@keyframes abb-spin {
	to { transform: rotate(360deg); }
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 768px) {
	.abb-members-listing--grid {
		grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	}

	.abb-groups-listing--grid {
		grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	}

	.abb-members-grid--cols-4,
	.abb-members-grid--cols-6 {
		grid-template-columns: repeat(3, 1fr);
	}

	.abb-groups-grid--cols-4,
	.abb-groups-grid--cols-6 {
		grid-template-columns: repeat(3, 1fr);
	}

	.abb-members-listing__item,
	.abb-groups-listing__item,
	.abb-members-grid__item,
	.abb-groups-grid__item {
		padding: var(--abb-gap-md);
	}

	.abb-member-display-name__text {
		font-size: var(--abb-font-size-xl);
	}
}

@media (max-width: 480px) {
	.abb-members-grid--cols-3,
	.abb-members-grid--cols-4,
	.abb-members-grid--cols-6 {
		grid-template-columns: repeat(2, 1fr);
	}

	.abb-groups-grid--cols-3,
	.abb-groups-grid--cols-4,
	.abb-groups-grid--cols-6 {
		grid-template-columns: repeat(2, 1fr);
	}

	.abb-members-search__form,
	.abb-groups-search__form {
		flex-direction: column;
	}

	.abb-members-listing--list .abb-members-listing__item,
	.abb-groups-listing--list .abb-groups-listing__item {
		flex-direction: column;
		text-align: center;
	}
}

/* ==========================================================================
   BP Nouveau Content Area — Modern Styles
   Scoped to .abb-member-content__body / .abb-group-content__body so they
   only apply to BP content rendered inside ABB's Content Area elements.
   ========================================================================== */

/* --- Global reset for BP content inside ABB --- */

.abb-member-content__body #buddypress,
.abb-group-content__body #buddypress {
	font-family: inherit;
	font-size: var(--abb-font-size-base);
	line-height: var(--abb-line-height);
	color: var(--abb-color-text);
}

.abb-member-content__body #buddypress *,
.abb-group-content__body #buddypress * {
	box-sizing: border-box;
}

/* Strip BP default margins/padding on container */
.abb-member-content__body #buddypress.buddypress-wrap {
	margin: 0;
	padding: 0;
}

/* --- Lists reset --- */

.abb-member-content__body #buddypress ul,
.abb-group-content__body #buddypress ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* --- Links --- */

.abb-member-content__body #buddypress a,
.abb-group-content__body #buddypress a {
	color: var(--abb-color-primary);
	text-decoration: none;
	transition: color var(--abb-transition);
}

.abb-member-content__body #buddypress a:hover,
.abb-group-content__body #buddypress a:hover {
	color: var(--abb-color-primary-hover);
}

/* --- Headings inside BP content --- */

.abb-member-content__body #buddypress h1,
.abb-member-content__body #buddypress h2,
.abb-member-content__body #buddypress h3,
.abb-member-content__body #buddypress h4,
.abb-group-content__body #buddypress h1,
.abb-group-content__body #buddypress h2,
.abb-group-content__body #buddypress h3,
.abb-group-content__body #buddypress h4 {
	color: var(--abb-color-text);
	font-weight: 700;
	margin: 0 0 var(--abb-gap-md);
	line-height: 1.3;
}

/* ==========================================================================
   BP Loading / Feedback Messages
   ========================================================================== */

.abb-member-content__body .bp-feedback,
.abb-group-content__body .bp-feedback {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	padding: var(--abb-gap-md) var(--abb-gap-lg);
	border-radius: var(--abb-radius-md);
	font-size: var(--abb-font-size-sm);
	margin-bottom: var(--abb-gap-md);
}

.abb-member-content__body .bp-feedback.loading,
.abb-group-content__body .bp-feedback.loading {
	background: var(--abb-color-bg-subtle);
	color: var(--abb-color-text-secondary);
	border: 1px solid var(--abb-color-border);
}

.abb-member-content__body .bp-feedback.info,
.abb-group-content__body .bp-feedback.info {
	background: rgba(99, 102, 241, 0.06);
	color: var(--abb-color-primary);
	border: 1px solid rgba(99, 102, 241, 0.15);
}

.abb-member-content__body .bp-feedback.error,
.abb-group-content__body .bp-feedback.error {
	background: rgba(239, 68, 68, 0.06);
	color: #dc2626;
	border: 1px solid rgba(239, 68, 68, 0.15);
}

.abb-member-content__body .bp-feedback.success,
.abb-group-content__body .bp-feedback.success {
	background: rgba(16, 185, 129, 0.06);
	color: var(--abb-color-success);
	border: 1px solid rgba(16, 185, 129, 0.15);
}

.abb-member-content__body .bp-feedback .bp-icon,
.abb-group-content__body .bp-feedback .bp-icon {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
}

.abb-member-content__body .bp-feedback p,
.abb-group-content__body .bp-feedback p {
	margin: 0;
}

/* ==========================================================================
   Activity Stream (inside member content)
   ========================================================================== */

/* Reset BP Nouveau's default styles on member/group activity list */
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-list,
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-list.bp-list,
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-list.bp-list.grid {
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
	background: none;
	border: none;
	grid-template-columns: none !important;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-list > li {
	display: grid !important;
	grid-template-columns: 48px 1fr;
	column-gap: var(--abb-gap-md);
	row-gap: var(--abb-gap-sm);
	padding: var(--abb-gap-lg) !important;
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
	margin-bottom: var(--abb-gap-md);
	width: 100%;
	float: none;
	box-shadow: none;
	overflow: hidden;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-list > li:last-child {
	margin-bottom: 0;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-list > li::before,
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-list > li::after {
	content: none;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress *,
:is(.abb-member-content__body, .abb-group-content__body) #buddypress *::before,
:is(.abb-member-content__body, .abb-group-content__body) #buddypress *::after {
	box-sizing: border-box;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-avatar {
	grid-column: 1;
	grid-row: 1;
	width: 48px !important;
	margin: 0 !important;
	float: none !important;
	align-self: center;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-avatar a {
	display: block;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-avatar img {
	width: 48px !important;
	height: 48px !important;
	max-width: none !important;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-content {
	display: contents !important;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-header {
	grid-column: 2;
	grid-row: 1;
	align-self: center;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	margin-bottom: 0;
	line-height: 1.5;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-header a {
	font-weight: 600;
	color: var(--abb-color-text);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-header a:hover {
	color: var(--abb-color-primary);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-inner {
	grid-column: 1 / -1;
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	line-height: var(--abb-line-height);
	margin-top: var(--abb-gap-xs);
	overflow: hidden;
	background: transparent !important;
	padding: 0 !important;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-inner img {
	max-width: 100%;
	height: auto;
	border-radius: var(--abb-radius-sm);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-header .time-since,
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-header .activity-time-since {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

/* --- Action buttons (Comment, Favorite, Delete) — matches main activity stream --- */

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--abb-gap-sm);
	margin-top: var(--abb-gap-sm);
	padding-top: var(--abb-gap-sm);
	background: transparent !important;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta a,
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 14px;
	font-size: var(--abb-font-size-xs);
	font-weight: 500;
	color: var(--abb-color-text-muted);
	background: var(--abb-color-bg-subtle);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-full);
	cursor: pointer;
	text-decoration: none;
	transition: all var(--abb-transition);
	white-space: nowrap;
	line-height: 1.4;
	position: relative;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta a:hover,
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta button:hover {
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.06);
	border-color: rgba(99, 102, 241, 0.3);
}

/* Make BP screen-reader-text visible inside activity meta buttons */
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .bp-screen-reader-text {
	clip: unset !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	overflow: visible !important;
	margin: 0;
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

/* Hide generic sr-text elsewhere */
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .bp-screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	word-wrap: normal;
}

/* Icon pseudo-elements */
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .acomment-reply::before {
	content: "\1F4AC";
	font-size: 14px;
	line-height: 1;
	font-style: normal;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .acomment-reply:hover {
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.06);
	border-color: rgba(99, 102, 241, 0.3);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .acomment-reply .comment-count {
	font-weight: 600;
	color: inherit;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .fav::before {
	content: "\2606";
	font-size: 15px;
	line-height: 1;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .fav:hover {
	color: var(--abb-color-warning);
	background: rgba(245, 158, 11, 0.06);
	border-color: rgba(245, 158, 11, 0.3);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .unfav {
	color: var(--abb-color-warning);
	background: rgba(245, 158, 11, 0.06);
	border-color: rgba(245, 158, 11, 0.25);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .unfav::before {
	content: "\2605";
	font-size: 15px;
	line-height: 1;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .unfav:hover {
	background: rgba(245, 158, 11, 0.12);
	border-color: rgba(245, 158, 11, 0.4);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .delete-activity::before {
	content: "\1F5D1";
	font-size: 13px;
	line-height: 1;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .delete-activity:hover {
	color: #dc2626;
	background: rgba(239, 68, 68, 0.06);
	border-color: rgba(239, 68, 68, 0.3);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .spam-activity::before {
	content: "\26A0";
	font-size: 13px;
	line-height: 1;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-meta .view::before {
	content: "\1F517";
	font-size: 13px;
	line-height: 1;
}

/* --- Comments section — matches main activity stream --- */

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments {
	grid-column: 1 / -1;
	width: 100%;
	margin-top: var(--abb-gap-sm);
	margin-left: 0;
	padding-left: var(--abb-gap-md);
	border-left: 2px solid var(--abb-color-bg-subtle);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments ul {
	margin: 0;
	padding: 0;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments > ul > li {
	padding: var(--abb-gap-sm) 0;
	border-bottom: 1px solid var(--abb-color-bg-subtle);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments > ul > li:last-child {
	border-bottom: none;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments .acomment-avatar img {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	float: left;
	margin-right: var(--abb-gap-sm);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments .acomment-meta {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin-bottom: 4px;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments .acomment-meta a {
	font-weight: 600;
	color: var(--abb-color-text);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments .acomment-content {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text);
	line-height: var(--abb-line-height);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments .acomment-options {
	margin-top: 4px;
	display: flex;
	gap: var(--abb-gap-sm);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments .acomment-options a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 10px;
	font-size: var(--abb-font-size-xs);
	font-weight: 500;
	color: var(--abb-color-text-muted);
	background: var(--abb-color-bg-subtle);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-full);
	text-decoration: none;
	transition: all var(--abb-transition);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments .acomment-options a:hover {
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.06);
	border-color: rgba(99, 102, 241, 0.3);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments .acomment-options .acomment-reply::before {
	content: "\1F4AC";
	font-size: 12px;
	line-height: 1;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments .acomment-options .delete-acomment::before,
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-comments .acomment-options .bp-secondary-action.delete-acomment::before {
	content: "\1F5D1";
	font-size: 11px;
	line-height: 1;
}

/* Comment form */
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .ac-form {
	display: none;
	margin-top: var(--abb-gap-sm);
	padding: var(--abb-gap-sm);
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-md);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .ac-form .ac-textarea {
	margin-bottom: var(--abb-gap-xs);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .ac-form textarea {
	width: 100%;
	min-height: 60px;
	padding: var(--abb-gap-sm);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	font-size: var(--abb-font-size-sm);
	resize: vertical;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .ac-form input[type="submit"] {
	padding: 6px 16px;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-full);
	cursor: pointer;
	transition: background var(--abb-transition);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .ac-form input[type="submit"]:hover {
	background: var(--abb-color-primary-dark);
}

/* ==========================================================================
   Member & Group Lists (Friends, Groups, Members tabs)
   BP Nouveau structure: ul#list > li.item-entry > div.list-wrap >
     div.item-avatar + div.item > (div.item-block + div.group-desc/user-update)
   ========================================================================== */

/* --- Override BP Nouveau's built-in grid/list CSS --- */
/* BP adds classes like .grid on the <ul> which use CSS grid/columns.
   We override to ensure our own grid layout takes effect. */

.abb-member-content__body #buddypress ul.item-list,
.abb-group-content__body #buddypress ul.item-list,
.abb-member-content__body #buddypress ul.item-list.grid,
.abb-group-content__body #buddypress ul.item-list.grid,
.abb-member-content__body #buddypress ul.item-list.bp-list.grid,
.abb-group-content__body #buddypress ul.item-list.bp-list.grid {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	columns: unset !important;
	column-count: unset !important;
	column-fill: unset !important;
	gap: 20px !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Groups list: 2 columns on member/group profile */
.abb-member-content__body #buddypress ul#groups-list,
.abb-group-content__body #buddypress ul#groups-list {
	grid-template-columns: repeat(2, 1fr) !important;
}

/* Add spacing between bp-list top border and grid cards */
.abb-member-content__body #buddypress ul.item-list.bp-list,
.abb-group-content__body #buddypress ul.item-list.bp-list {
	padding-top: var(--abb-gap-md) !important;
}

@media screen and (max-width: 900px) {
	.abb-member-content__body #buddypress ul.item-list,
	.abb-group-content__body #buddypress ul.item-list {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media screen and (max-width: 500px) {
	.abb-member-content__body #buddypress ul.item-list,
	.abb-group-content__body #buddypress ul.item-list {
		grid-template-columns: 1fr !important;
	}
}

/* Kill BP clearfix pseudo-elements — they become ghost grid cells */
.abb-member-content__body #buddypress ul.item-list::before,
.abb-member-content__body #buddypress ul.item-list::after,
.abb-group-content__body #buddypress ul.item-list::before,
.abb-group-content__body #buddypress ul.item-list::after {
	display: none !important;
	content: none !important;
}

/* Style BP native Load More button on member/group activity */
:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-list > li.load-more {
	display: flex !important;
	grid-column: 1 / -1;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding: var(--abb-gap-md) !important;
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
	margin-bottom: var(--abb-gap-md);
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-list > li.load-more a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--abb-gap-xs);
	padding: 10px 28px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-full);
	cursor: pointer;
	transition: var(--abb-transition);
	text-decoration: none;
	white-space: nowrap;
}

:is(.abb-member-content__body, .abb-group-content__body) #buddypress .activity-list > li.load-more a:hover {
	color: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

/* Hide BP placeholder/load-newest empty items so they don't take grid space */
.abb-member-content__body #buddypress ul.item-list > li.load-newest,
.abb-group-content__body #buddypress ul.item-list > li.load-newest,
.abb-member-content__body #buddypress ul.item-list > li:empty,
.abb-group-content__body #buddypress ul.item-list > li:empty,
.abb-member-content__body #buddypress ul.item-list > li[style*="display: none"],
.abb-group-content__body #buddypress ul.item-list > li[style*="display: none"] {
	display: none !important;
}

/* --- Card styling on each list item --- */

.abb-member-content__body #buddypress ul.item-list > li,
.abb-group-content__body #buddypress ul.item-list > li {
	padding: 0;
	margin: 0;
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	transition: all var(--abb-transition);
	overflow: hidden;
	break-inside: avoid;
	width: 100%;
	float: none !important;
}

.abb-member-content__body #buddypress ul.item-list > li:hover,
.abb-group-content__body #buddypress ul.item-list > li:hover {
	border-color: var(--abb-color-border-hover);
	box-shadow: var(--abb-shadow-sm);
	transform: translateY(-1px);
}

/* --- .list-wrap is the actual flex container --- */

.abb-member-content__body #buddypress .list-wrap,
.abb-group-content__body #buddypress .list-wrap {
	display: flex;
	align-items: flex-start;
	gap: var(--abb-gap-md);
	padding: var(--abb-gap-md);
	width: 100%;
}

/* --- Avatar --- */

.abb-member-content__body #buddypress .item-avatar,
.abb-group-content__body #buddypress .item-avatar {
	flex-shrink: 0;
	line-height: 0;
}

.abb-member-content__body #buddypress .item-avatar a,
.abb-group-content__body #buddypress .item-avatar a {
	display: block;
	text-decoration: none;
}

.abb-member-content__body #buddypress .item-avatar img,
.abb-group-content__body #buddypress .item-avatar img {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	transition: transform var(--abb-transition);
}

.abb-member-content__body #buddypress li:hover .item-avatar img,
.abb-group-content__body #buddypress li:hover .item-avatar img {
	transform: scale(1.05);
}

/* Group avatars: rounded square (only in groups lists, not members lists) */
.abb-member-content__body #buddypress #groups-list .item-avatar img,
.abb-group-content__body #buddypress #groups-list .item-avatar img {
	border-radius: var(--abb-radius-md);
}

/* --- .item container (holds .item-block + .group-desc) --- */

.abb-member-content__body #buddypress .item,
.abb-group-content__body #buddypress .item {
	flex: 1;
	min-width: 0;
}

/* --- Titles (.list-title / .member-name / .groups-title) --- */

.abb-member-content__body #buddypress .list-title,
.abb-member-content__body #buddypress .item .item-title,
.abb-group-content__body #buddypress .list-title {
	font-size: var(--abb-font-size-base);
	font-weight: 600;
	margin: 0 0 4px;
	line-height: 1.3;
}

.abb-member-content__body #buddypress .list-title a,
.abb-member-content__body #buddypress .item .item-title a,
.abb-group-content__body #buddypress .list-title a {
	color: var(--abb-color-text);
}

.abb-member-content__body #buddypress .list-title a:hover,
.abb-member-content__body #buddypress .item .item-title a:hover,
.abb-group-content__body #buddypress .list-title a:hover {
	color: var(--abb-color-primary);
}

/* --- Meta text (last-activity, group-details, joined) --- */

.abb-member-content__body #buddypress .item .item-meta,
.abb-group-content__body #buddypress .item .item-meta {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin: 0 0 2px;
	line-height: 1.4;
}

.abb-member-content__body #buddypress .item .item-meta span,
.abb-group-content__body #buddypress .item .item-meta span {
	color: var(--abb-color-text-muted);
}

/* --- Group description excerpt --- */

.abb-member-content__body #buddypress .group-desc,
.abb-group-content__body #buddypress .group-desc {
	margin-top: var(--abb-gap-xs);
	border: none !important;
	padding: 0 !important;
}

.abb-member-content__body #buddypress .group-desc p,
.abb-group-content__body #buddypress .group-desc p {
	margin: 0;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* --- User latest update --- */

.abb-member-content__body #buddypress .user-update {
	margin-top: var(--abb-gap-xs);
}

.abb-member-content__body #buddypress .user-update .update {
	margin: 0;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	font-style: italic;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* --- Action buttons (inside .item-block as <ul>) --- */

.abb-member-content__body #buddypress .item-block > ul,
.abb-member-content__body #buddypress .action,
.abb-group-content__body #buddypress .item-block > ul,
.abb-group-content__body #buddypress .action {
	display: flex;
	flex-wrap: wrap;
	gap: var(--abb-gap-xs);
	margin-top: var(--abb-gap-sm);
}

.abb-member-content__body #buddypress .item-block > ul > li,
.abb-group-content__body #buddypress .item-block > ul > li {
	margin: 0;
}

/* Generic button styling (Add Friend, Leave Group, etc.) */
.abb-member-content__body #buddypress .generic-button a,
.abb-member-content__body #buddypress .generic-button button,
.abb-member-content__body #buddypress .action .generic-button a,
.abb-member-content__body #buddypress .action .generic-button button,
.abb-group-content__body #buddypress .generic-button a,
.abb-group-content__body #buddypress .generic-button button {
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.08);
	border: none;
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	text-decoration: none;
	transition: all var(--abb-transition);
	white-space: nowrap;
	line-height: 1.4;
}

.abb-member-content__body #buddypress .generic-button a:hover,
.abb-member-content__body #buddypress .generic-button button:hover,
.abb-group-content__body #buddypress .generic-button a:hover,
.abb-group-content__body #buddypress .generic-button button:hover {
	background: rgba(99, 102, 241, 0.15);
	color: var(--abb-color-primary-hover);
}

/* Danger/cancel buttons */
.abb-member-content__body #buddypress .generic-button.leave-group a,
.abb-member-content__body #buddypress .generic-button .leave-group,
.abb-group-content__body #buddypress .generic-button.leave-group a {
	color: #dc2626;
	background: rgba(239, 68, 68, 0.06);
}

.abb-member-content__body #buddypress .generic-button.leave-group a:hover,
.abb-group-content__body #buddypress .generic-button.leave-group a:hover {
	background: rgba(239, 68, 68, 0.12);
}

/* --- Extra content area --- */

.abb-member-content__body #buddypress .item-extra-content,
.abb-group-content__body #buddypress .item-extra-content {
	margin-top: var(--abb-gap-xs);
	font-size: var(--abb-font-size-sm);
}

/* ==========================================================================
   Profile / XProfile (View & Edit)
   ========================================================================== */

.abb-member-content__body #buddypress .bp-widget {
	margin-bottom: var(--abb-gap-lg);
}

.abb-member-content__body #buddypress .bp-widget h2,
.abb-member-content__body #buddypress .profile-group-title {
	font-size: var(--abb-font-size-lg);
	font-weight: 700;
	color: var(--abb-color-text);
	padding-bottom: var(--abb-gap-sm);
	border-bottom: 2px solid var(--abb-color-bg-subtle);
	margin-bottom: var(--abb-gap-md);
}

.abb-member-content__body #buddypress table.profile-fields {
	width: 100%;
	border-collapse: collapse;
}

.abb-member-content__body #buddypress table.profile-fields tr {
	border-bottom: 1px solid var(--abb-color-bg-subtle);
}

.abb-member-content__body #buddypress table.profile-fields tr:last-child {
	border-bottom: none;
}

.abb-member-content__body #buddypress table.profile-fields td.label {
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--abb-color-text-muted);
	padding: var(--abb-gap-sm) var(--abb-gap-md) var(--abb-gap-sm) 0;
	white-space: nowrap;
	vertical-align: top;
	width: 140px;
}

.abb-member-content__body #buddypress table.profile-fields td.data {
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	padding: var(--abb-gap-sm) 0;
	word-break: break-word;
}

/* ==========================================================================
   Forms (Settings, Profile Edit, Messages Compose)
   ========================================================================== */

.abb-member-content__body #buddypress .standard-form,
.abb-member-content__body #buddypress .bp-settings-form,
.abb-group-content__body #buddypress .standard-form {
	max-width: 640px;
}

.abb-member-content__body #buddypress .standard-form label,
.abb-member-content__body #buddypress .bp-settings-form label,
.abb-group-content__body #buddypress .standard-form label {
	display: block;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	margin-bottom: 6px;
}

.abb-member-content__body #buddypress .standard-form .editfield,
.abb-group-content__body #buddypress .standard-form .editfield {
	margin-bottom: var(--abb-gap-lg);
}

.abb-member-content__body #buddypress input[type="text"],
.abb-member-content__body #buddypress input[type="email"],
.abb-member-content__body #buddypress input[type="password"],
.abb-member-content__body #buddypress input[type="url"],
.abb-member-content__body #buddypress input[type="tel"],
.abb-member-content__body #buddypress input[type="number"],
.abb-member-content__body #buddypress input[type="search"],
.abb-member-content__body #buddypress textarea,
.abb-member-content__body #buddypress select,
.abb-group-content__body #buddypress input[type="text"],
.abb-group-content__body #buddypress input[type="email"],
.abb-group-content__body #buddypress input[type="password"],
.abb-group-content__body #buddypress textarea,
.abb-group-content__body #buddypress select {
	width: 100%;
	padding: 10px 14px;
	font-size: var(--abb-font-size-base);
	font-family: inherit;
	color: var(--abb-color-text);
	background: var(--abb-color-bg);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	transition: all var(--abb-transition);
	outline: none;
}

.abb-member-content__body #buddypress input[type="text"]:focus,
.abb-member-content__body #buddypress input[type="email"]:focus,
.abb-member-content__body #buddypress input[type="password"]:focus,
.abb-member-content__body #buddypress input[type="url"]:focus,
.abb-member-content__body #buddypress textarea:focus,
.abb-member-content__body #buddypress select:focus,
.abb-group-content__body #buddypress input[type="text"]:focus,
.abb-group-content__body #buddypress textarea:focus,
.abb-group-content__body #buddypress select:focus {
	border-color: var(--abb-color-primary);
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

.abb-member-content__body #buddypress textarea,
.abb-group-content__body #buddypress textarea {
	min-height: 100px;
	resize: vertical;
}

.abb-member-content__body #buddypress select,
.abb-group-content__body #buddypress select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 8.825a.5.5 0 0 1-.354-.146l-4-4a.5.5 0 0 1 .708-.708L6 7.617l3.646-3.646a.5.5 0 0 1 .708.708l-4 4A.5.5 0 0 1 6 8.825z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 36px;
}

/* Checkboxes & radio */
.abb-member-content__body #buddypress input[type="checkbox"],
.abb-member-content__body #buddypress input[type="radio"],
.abb-group-content__body #buddypress input[type="checkbox"],
.abb-group-content__body #buddypress input[type="radio"] {
	width: 18px;
	height: 18px;
	accent-color: var(--abb-color-primary);
	margin-right: 8px;
	vertical-align: middle;
}

/* Submit buttons */
.abb-member-content__body #buddypress input[type="submit"],
.abb-member-content__body #buddypress button[type="submit"],
.abb-member-content__body #buddypress .submit input,
.abb-group-content__body #buddypress input[type="submit"],
.abb-group-content__body #buddypress button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 24px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	font-family: inherit;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
	line-height: 1.4;
}

.abb-member-content__body #buddypress input[type="submit"]:hover,
.abb-member-content__body #buddypress button[type="submit"]:hover,
.abb-group-content__body #buddypress input[type="submit"]:hover,
.abb-group-content__body #buddypress button[type="submit"]:hover {
	background: var(--abb-color-primary-hover);
	transform: translateY(-1px);
	box-shadow: var(--abb-shadow-md);
}

/* ==========================================================================
   Messages
   ========================================================================== */

.abb-member-content__body #buddypress #message-threads {
	width: 100%;
	border-collapse: collapse;
}

.abb-member-content__body #buddypress #message-threads tr {
	border-bottom: 1px solid var(--abb-color-bg-subtle);
	transition: background var(--abb-transition);
}

.abb-member-content__body #buddypress #message-threads tr:hover {
	background: var(--abb-color-bg-subtle);
}

.abb-member-content__body #buddypress #message-threads td {
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	font-size: var(--abb-font-size-sm);
	vertical-align: middle;
}

.abb-member-content__body #buddypress #message-threads .thread-from,
.abb-member-content__body #buddypress #message-threads .thread-info {
	font-weight: 500;
}

.abb-member-content__body #buddypress #message-threads .thread-info a {
	color: var(--abb-color-text);
	font-weight: 600;
}

.abb-member-content__body #buddypress #message-threads .thread-info a:hover {
	color: var(--abb-color-primary);
}

.abb-member-content__body #buddypress #message-threads .thread-date {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	white-space: nowrap;
}

.abb-member-content__body #buddypress #message-threads img.avatar {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	object-fit: cover;
	vertical-align: middle;
	margin-right: var(--abb-gap-xs);
}

/* Single message view */
.abb-member-content__body #buddypress .message-box {
	padding: var(--abb-gap-lg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	margin-bottom: var(--abb-gap-md);
	background: var(--abb-color-bg);
}

.abb-member-content__body #buddypress .message-metadata {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	margin-bottom: var(--abb-gap-md);
	padding-bottom: var(--abb-gap-sm);
	border-bottom: 1px solid var(--abb-color-bg-subtle);
}

.abb-member-content__body #buddypress .message-metadata img.avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
}

.abb-member-content__body #buddypress .message-metadata .message-from {
	font-weight: 600;
	color: var(--abb-color-text);
}

.abb-member-content__body #buddypress .message-metadata .activity {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-member-content__body #buddypress .message-content {
	font-size: var(--abb-font-size-base);
	line-height: var(--abb-line-height);
	color: var(--abb-color-text);
}

/* ==========================================================================
   Notifications
   ========================================================================== */

.abb-member-content__body #buddypress .notification-list,
.abb-member-content__body #buddypress table.notifications {
	width: 100%;
	border-collapse: collapse;
}

.abb-member-content__body #buddypress table.notifications thead th {
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--abb-color-text-muted);
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	border-bottom: 2px solid var(--abb-color-bg-subtle);
	text-align: left;
}

.abb-member-content__body #buddypress table.notifications td {
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	font-size: var(--abb-font-size-sm);
	border-bottom: 1px solid var(--abb-color-bg-subtle);
	vertical-align: middle;
}

.abb-member-content__body #buddypress table.notifications tr:hover td {
	background: var(--abb-color-bg-subtle);
}

.abb-member-content__body #buddypress table.notifications .notification-description a {
	color: var(--abb-color-text);
	font-weight: 500;
}

.abb-member-content__body #buddypress table.notifications .notification-description a:hover {
	color: var(--abb-color-primary);
}

.abb-member-content__body #buddypress table.notifications .notification-since {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	white-space: nowrap;
}

.abb-member-content__body #buddypress table.notifications .notification-actions a {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	font-size: var(--abb-font-size-xs);
	font-weight: 500;
	border-radius: var(--abb-radius-sm);
	margin-right: 4px;
}

/* ==========================================================================
   Settings Pages
   ========================================================================== */

.abb-member-content__body #buddypress .bp-settings-form fieldset {
	border: none;
	padding: 0;
	margin: 0 0 var(--abb-gap-lg);
}

.abb-member-content__body #buddypress .bp-settings-form legend {
	font-size: var(--abb-font-size-lg);
	font-weight: 700;
	color: var(--abb-color-text);
	padding-bottom: var(--abb-gap-sm);
	border-bottom: 2px solid var(--abb-color-bg-subtle);
	margin-bottom: var(--abb-gap-md);
	width: 100%;
}

/* Settings option rows */
.abb-member-content__body #buddypress .notification-settings th,
.abb-member-content__body #buddypress .notification-settings td {
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	font-size: var(--abb-font-size-sm);
	border-bottom: 1px solid var(--abb-color-bg-subtle);
}

.abb-member-content__body #buddypress .notification-settings th {
	font-weight: 600;
	color: var(--abb-color-text-muted);
	text-align: left;
}

.abb-member-content__body #buddypress .notification-settings td {
	text-align: center;
}

.abb-member-content__body #buddypress .notification-settings thead th {
	font-size: var(--abb-font-size-xs);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border-bottom: 2px solid var(--abb-color-bg-subtle);
}

/* Profile visibility settings */
.abb-member-content__body #buddypress .field-visibility-settings {
	margin-top: var(--abb-gap-xs);
}

.abb-member-content__body #buddypress .field-visibility-settings .current-visibility-level {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-member-content__body #buddypress .field-visibility-settings-toggle a {
	font-size: var(--abb-font-size-xs);
}

/* ==========================================================================
   Avatar / Cover Image Change (Camera/Upload)
   ========================================================================== */

.abb-member-content__body #buddypress #avatar-upload-form,
.abb-member-content__body #buddypress #header-cover-image {
	max-width: 640px;
}

.abb-member-content__body #buddypress .avatar-crop-management,
.abb-member-content__body #buddypress .bp-avatar-upload-step {
	margin: var(--abb-gap-lg) 0;
}

.abb-member-content__body #buddypress .bp-avatar-nav ul {
	display: flex;
	gap: var(--abb-gap-xs);
	margin-bottom: var(--abb-gap-lg);
}

.abb-member-content__body #buddypress .bp-avatar-nav a {
	display: inline-flex;
	align-items: center;
	padding: 8px 16px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-sm);
	transition: all var(--abb-transition);
}

.abb-member-content__body #buddypress .bp-avatar-nav a:hover,
.abb-member-content__body #buddypress .bp-avatar-nav .current a {
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.08);
}

/* Drag & drop zone */
.abb-member-content__body #buddypress #bp-uploader .uploader-window,
.abb-member-content__body #buddypress .bp-avatar-upload-step .drag-drop {
	border: 2px dashed var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	padding: var(--abb-gap-xl);
	text-align: center;
	color: var(--abb-color-text-muted);
	background: var(--abb-color-bg-subtle);
	transition: all var(--abb-transition);
}

.abb-member-content__body #buddypress .bp-avatar-upload-step .drag-drop:hover {
	border-color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.04);
}

.abb-member-content__body #buddypress .bp-avatar-upload-step .drag-drop p {
	margin: var(--abb-gap-sm) 0;
	font-size: var(--abb-font-size-sm);
}

/* File input buttons */
.abb-member-content__body #buddypress input[type="file"] {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
}

/* ==========================================================================
   Pagination (BP Nouveau)
   ========================================================================== */

.abb-member-content__body #buddypress .bp-pagination,
.abb-group-content__body #buddypress .bp-pagination {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--abb-gap-md) 0;
	border-top: 1px solid var(--abb-color-bg-subtle);
	margin-top: var(--abb-gap-md);
}

.abb-member-content__body #buddypress .bp-pagination .pag-count,
.abb-group-content__body #buddypress .bp-pagination .pag-count {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-member-content__body #buddypress .bp-pagination .pagination-links,
.abb-group-content__body #buddypress .bp-pagination .pagination-links {
	display: flex;
	gap: 4px;
}

.abb-member-content__body #buddypress .bp-pagination .pagination-links a,
.abb-member-content__body #buddypress .bp-pagination .pagination-links span,
.abb-group-content__body #buddypress .bp-pagination .pagination-links a,
.abb-group-content__body #buddypress .bp-pagination .pagination-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	height: 32px;
	padding: 0 8px;
	font-size: var(--abb-font-size-xs);
	font-weight: 500;
	border-radius: var(--abb-radius-sm);
	transition: all var(--abb-transition);
}

.abb-member-content__body #buddypress .bp-pagination .pagination-links a,
.abb-group-content__body #buddypress .bp-pagination .pagination-links a {
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg-subtle);
}

.abb-member-content__body #buddypress .bp-pagination .pagination-links a:hover,
.abb-group-content__body #buddypress .bp-pagination .pagination-links a:hover {
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.08);
}

.abb-member-content__body #buddypress .bp-pagination .pagination-links .current,
.abb-group-content__body #buddypress .bp-pagination .pagination-links .current {
	color: #fff;
	background: var(--abb-color-primary);
	font-weight: 600;
}

/* ==========================================================================
   Tables (generic)
   ========================================================================== */

.abb-member-content__body #buddypress table,
.abb-group-content__body #buddypress table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--abb-font-size-sm);
}

.abb-member-content__body #buddypress table th,
.abb-group-content__body #buddypress table th {
	text-align: left;
	font-weight: 600;
	color: var(--abb-color-text-muted);
	padding: var(--abb-gap-sm) var(--abb-gap-md);
}

.abb-member-content__body #buddypress table td,
.abb-group-content__body #buddypress table td {
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	border-bottom: 1px solid var(--abb-color-bg-subtle);
}

/* ==========================================================================
   Bulk actions (Notifications, Messages)
   ========================================================================== */

.abb-member-content__body #buddypress .bulk-actions-wrap {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	padding: var(--abb-gap-sm) 0;
}

.abb-member-content__body #buddypress .bulk-actions-wrap select {
	padding: 6px 32px 6px 12px;
	font-size: var(--abb-font-size-xs);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
}

.abb-member-content__body #buddypress .bulk-actions-wrap .bulk-apply {
	padding: 6px 14px;
	font-size: var(--abb-font-size-xs);
}

/* ==========================================================================
   Data Export
   ========================================================================== */

.abb-member-content__body #buddypress .data-settings {
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-md);
	border: 1px solid var(--abb-color-border);
}

.abb-member-content__body #buddypress .data-settings p {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	line-height: var(--abb-line-height);
	margin: 0 0 var(--abb-gap-md);
}

/* ==========================================================================
   Forums (bbPress inside BP member/group profile)
   Uses same design as #abb-bbpress but scoped to BP content areas.
   bbPress 2.6+ uses <ul>/<li> structure, NOT tables.
   ========================================================================== */

/* --- bbPress wrapper reset inside BP profiles --- */
.abb-member-content__body #bbpress-forums,
.abb-group-content__body #bbpress-forums {
	font-family: inherit;
	font-size: var(--abb-font-size-base);
	line-height: var(--abb-line-height);
	color: var(--abb-color-text);
	width: 100% !important;
	max-width: 100% !important;
}

.abb-member-content__body #buddypress,
.abb-group-content__body #buddypress {
	width: 100% !important;
	max-width: 100% !important;
}

.abb-member-content__body #bbpress-forums .bbp-user-section,
.abb-member-content__body #bbpress-forums #bbp-user-body,
.abb-member-content__body #bbpress-forums #bbp-user-wrapper,
.abb-member-content__body #bbpress-forums .bbp-user-topics-started,
.abb-member-content__body #bbpress-forums .bbp-user-replies-created,
.abb-member-content__body #bbpress-forums .bbp-user-favorites,
.abb-member-content__body #bbpress-forums .bbp-user-subscriptions,
.abb-member-content__body #bbpress-forums .bbp-user-engagements,
.abb-group-content__body #bbpress-forums .bbp-user-section,
.abb-group-content__body #bbpress-forums #bbp-user-body,
.abb-group-content__body #bbpress-forums #bbp-user-wrapper,
.abb-group-content__body #bbpress-forums .bbp-user-topics-started,
.abb-group-content__body #bbpress-forums .bbp-user-replies-created,
.abb-group-content__body #bbpress-forums .bbp-user-favorites,
.abb-group-content__body #bbpress-forums .bbp-user-subscriptions,
.abb-group-content__body #bbpress-forums .bbp-user-engagements {
	width: 100% !important;
	max-width: 100% !important;
}

/* --- Section headings (Forum Topics Started, Replies Created, etc.) --- */
.abb-member-content__body #bbpress-forums h2.entry-title,
.abb-group-content__body #bbpress-forums h2.entry-title {
	font-size: var(--abb-font-size-xl);
	font-weight: 700;
	color: var(--abb-color-text);
	margin: 0 0 var(--abb-gap-md);
}

/* --- Topic/Reply list <ul> reset --- */
.abb-member-content__body #bbpress-forums ul.bbp-topics,
.abb-member-content__body #bbpress-forums ul.bbp-replies,
.abb-member-content__body #bbpress-forums ul.bbp-forums,
.abb-group-content__body #bbpress-forums ul.bbp-topics,
.abb-group-content__body #bbpress-forums ul.bbp-replies,
.abb-group-content__body #bbpress-forums ul.bbp-forums {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100%;
}

/* --- Header row --- */
.abb-member-content__body #bbpress-forums .bbp-header,
.abb-group-content__body #bbpress-forums .bbp-header {
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-sm);
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	margin-bottom: var(--abb-gap-sm);
}

.abb-member-content__body #bbpress-forums .bbp-header ul.forum-titles,
.abb-group-content__body #bbpress-forums .bbp-header ul.forum-titles {
	display: grid !important;
	grid-template-columns: 1fr 80px 80px 140px;
	gap: var(--abb-gap-sm);
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	align-items: center;
}

.abb-member-content__body #bbpress-forums .bbp-header li,
.abb-group-content__body #bbpress-forums .bbp-header li {
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--abb-color-text-muted);
	list-style: none !important;
	white-space: nowrap;
}

.abb-member-content__body #bbpress-forums .bbp-header .bbp-topic-voice-count,
.abb-member-content__body #bbpress-forums .bbp-header .bbp-topic-reply-count,
.abb-group-content__body #bbpress-forums .bbp-header .bbp-topic-voice-count,
.abb-group-content__body #bbpress-forums .bbp-header .bbp-topic-reply-count {
	text-align: center;
}

.abb-member-content__body #bbpress-forums .bbp-header .bbp-topic-freshness,
.abb-group-content__body #bbpress-forums .bbp-header .bbp-topic-freshness {
	text-align: right;
}

/* --- Footer row --- */
.abb-member-content__body #bbpress-forums .bbp-footer,
.abb-group-content__body #bbpress-forums .bbp-footer {
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-sm);
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	margin-top: var(--abb-gap-sm);
}

.abb-member-content__body #bbpress-forums .bbp-footer ul.forum-titles,
.abb-group-content__body #bbpress-forums .bbp-footer ul.forum-titles {
	display: grid !important;
	grid-template-columns: 1fr 80px 80px 140px;
	gap: var(--abb-gap-sm);
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	align-items: center;
}

.abb-member-content__body #bbpress-forums .bbp-footer li,
.abb-group-content__body #bbpress-forums .bbp-footer li {
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--abb-color-text-muted);
	list-style: none !important;
}

/* --- Body container --- */
.abb-member-content__body #bbpress-forums li.bbp-body,
.abb-group-content__body #bbpress-forums li.bbp-body {
	list-style: none !important;
}

/* --- Individual topic/reply rows --- */
.abb-member-content__body #bbpress-forums .bbp-body > ul,
.abb-group-content__body #bbpress-forums .bbp-body > ul {
	display: grid !important;
	grid-template-columns: 1fr 80px 80px 140px;
	gap: var(--abb-gap-sm);
	align-items: center;
	list-style: none !important;
	margin: 0 !important;
	padding: var(--abb-gap-md) !important;
	border-bottom: 1px solid var(--abb-color-border);
	transition: background var(--abb-transition);
}

.abb-member-content__body #bbpress-forums .bbp-body > ul:hover,
.abb-group-content__body #bbpress-forums .bbp-body > ul:hover {
	background: var(--abb-color-bg-subtle);
}

.abb-member-content__body #bbpress-forums .bbp-body > ul:last-child,
.abb-group-content__body #bbpress-forums .bbp-body > ul:last-child {
	border-bottom: none;
}

/* --- All <li> inside topic rows: reset bullets --- */
.abb-member-content__body #bbpress-forums .bbp-body > ul > li,
.abb-group-content__body #bbpress-forums .bbp-body > ul > li {
	list-style: none !important;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
}

/* --- Topic title column --- */
.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-title,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-title {
	font-size: var(--abb-font-size-base);
}

.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-title .bbp-topic-permalink,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-title .bbp-topic-permalink {
	font-weight: 600;
	color: var(--abb-color-primary);
	text-decoration: none;
}

.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-title .bbp-topic-permalink:hover,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-title .bbp-topic-permalink:hover {
	color: var(--abb-color-primary-hover);
}

.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-meta,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-meta {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin-top: 4px;
}

.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-meta a,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-meta a {
	color: var(--abb-color-text-secondary);
	text-decoration: none;
}

.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-meta a:hover,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-meta a:hover {
	color: var(--abb-color-primary);
}

/* --- Voice/Reply count columns --- */
.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-voice-count,
.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-reply-count,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-voice-count,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-reply-count {
	text-align: center;
	font-weight: 600;
	min-width: 50px;
}

/* --- Freshness (Last Post) column --- */
.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-freshness,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-freshness {
	text-align: right;
	min-width: 120px;
}

.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-freshness a,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-freshness a {
	color: var(--abb-color-text-secondary);
	text-decoration: none;
	font-size: var(--abb-font-size-xs);
}

.abb-member-content__body #bbpress-forums .bbp-body .bbp-topic-freshness a:hover,
.abb-group-content__body #bbpress-forums .bbp-body .bbp-topic-freshness a:hover {
	color: var(--abb-color-primary);
}

/* --- bbPress pagination inside BP profiles --- */
.abb-member-content__body #bbpress-forums .bbp-pagination,
.abb-group-content__body #bbpress-forums .bbp-pagination {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--abb-gap-md);
	margin: var(--abb-gap-md) 0;
	padding: var(--abb-gap-sm) 0;
}

.abb-member-content__body #bbpress-forums .bbp-pagination-count,
.abb-group-content__body #bbpress-forums .bbp-pagination-count {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-member-content__body #bbpress-forums .bbp-pagination-links a,
.abb-member-content__body #bbpress-forums .bbp-pagination-links span,
.abb-group-content__body #bbpress-forums .bbp-pagination-links a,
.abb-group-content__body #bbpress-forums .bbp-pagination-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 var(--abb-gap-sm);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	font-size: var(--abb-font-size-sm);
	text-decoration: none;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	transition: all var(--abb-transition);
}

.abb-member-content__body #bbpress-forums .bbp-pagination-links a:hover,
.abb-group-content__body #bbpress-forums .bbp-pagination-links a:hover {
	background: var(--abb-color-bg-subtle);
	color: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
}

.abb-member-content__body #bbpress-forums .bbp-pagination-links span.current,
.abb-group-content__body #bbpress-forums .bbp-pagination-links span.current {
	background: var(--abb-color-primary);
	color: #fff;
	border-color: var(--abb-color-primary);
	font-weight: 600;
}

/* --- bbPress info notices inside BP profiles --- */
.abb-member-content__body #bbpress-forums div.bbp-template-notice,
.abb-group-content__body #bbpress-forums div.bbp-template-notice {
	background: var(--abb-color-bg-subtle);
	border-left: 3px solid var(--abb-color-primary);
	border-radius: var(--abb-radius-sm);
	padding: var(--abb-gap-md);
	margin-bottom: var(--abb-gap-md);
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
}

.abb-member-content__body #bbpress-forums div.bbp-template-notice ul,
.abb-group-content__body #bbpress-forums div.bbp-template-notice ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* --- Search form inside forum tabs --- */
.abb-member-content__body #bbpress-forums .bbp-search-form,
.abb-member-content__body #bbpress-forums #bbp-search-form,
.abb-member-content__body #bbpress-forums #bbp-topic-search-form,
.abb-member-content__body #bbpress-forums #bbp-reply-search-form,
.abb-group-content__body #bbpress-forums .bbp-search-form,
.abb-group-content__body #bbpress-forums #bbp-search-form,
.abb-group-content__body #bbpress-forums #bbp-topic-search-form,
.abb-group-content__body #bbpress-forums #bbp-reply-search-form {
	margin-bottom: var(--abb-gap-md);
}

.abb-member-content__body #bbpress-forums .bbp-search-form form > div,
.abb-member-content__body #bbpress-forums #bbp-topic-search-form > div,
.abb-member-content__body #bbpress-forums #bbp-reply-search-form > div,
.abb-group-content__body #bbpress-forums .bbp-search-form form > div,
.abb-group-content__body #bbpress-forums #bbp-topic-search-form > div,
.abb-group-content__body #bbpress-forums #bbp-reply-search-form > div {
	display: flex;
	gap: var(--abb-gap-sm);
	align-items: center;
}

.abb-member-content__body #bbpress-forums .bbp-search-form input[type="text"],
.abb-member-content__body #bbpress-forums .bbp-search-form input[type="search"],
.abb-group-content__body #bbpress-forums .bbp-search-form input[type="text"],
.abb-group-content__body #bbpress-forums .bbp-search-form input[type="search"] {
	flex: 1;
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	font-size: var(--abb-font-size-sm);
	background: var(--abb-color-bg);
}

.abb-member-content__body #bbpress-forums .bbp-search-form input[type="submit"],
.abb-member-content__body #bbpress-forums .bbp-search-form .button,
.abb-group-content__body #bbpress-forums .bbp-search-form input[type="submit"],
.abb-group-content__body #bbpress-forums .bbp-search-form .button {
	padding: var(--abb-gap-sm) var(--abb-gap-lg);
	background: var(--abb-color-primary);
	color: #fff;
	border: none;
	border-radius: var(--abb-radius-sm);
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	cursor: pointer;
	transition: background var(--abb-transition);
}

.abb-member-content__body #bbpress-forums .bbp-search-form input[type="submit"]:hover,
.abb-member-content__body #bbpress-forums .bbp-search-form .button:hover,
.abb-group-content__body #bbpress-forums .bbp-search-form input[type="submit"]:hover,
.abb-group-content__body #bbpress-forums .bbp-search-form .button:hover {
	background: var(--abb-color-primary-hover);
}

/* --- User section wrapper --- */
.abb-member-content__body #bbpress-forums .bbp-user-section,
.abb-group-content__body #bbpress-forums .bbp-user-section {
	margin-bottom: var(--abb-gap-lg);
}

/* --- Replies Created page (bbp-replies structure) --- */
.abb-member-content__body #bbpress-forums ul.bbp-replies,
.abb-group-content__body #bbpress-forums ul.bbp-replies {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Replies header row (Author | Posts columns) */
.abb-member-content__body #bbpress-forums .bbp-replies > .bbp-header,
.abb-group-content__body #bbpress-forums .bbp-replies > .bbp-header {
	display: grid !important;
	grid-template-columns: 120px 1fr;
	gap: var(--abb-gap-md);
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-sm);
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	margin-bottom: var(--abb-gap-sm);
	list-style: none !important;
}

.abb-member-content__body #bbpress-forums .bbp-replies > .bbp-header div,
.abb-group-content__body #bbpress-forums .bbp-replies > .bbp-header div {
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--abb-color-text-muted);
}

/* Replies footer */
.abb-member-content__body #bbpress-forums .bbp-replies > .bbp-footer,
.abb-group-content__body #bbpress-forums .bbp-replies > .bbp-footer {
	display: grid !important;
	grid-template-columns: 120px 1fr;
	gap: var(--abb-gap-md);
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-sm);
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	margin-top: var(--abb-gap-sm);
	list-style: none !important;
}

.abb-member-content__body #bbpress-forums .bbp-replies > .bbp-footer div,
.abb-group-content__body #bbpress-forums .bbp-replies > .bbp-footer div {
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--abb-color-text-muted);
}

/* Replies body container */
.abb-member-content__body #bbpress-forums .bbp-replies > .bbp-body,
.abb-group-content__body #bbpress-forums .bbp-replies > .bbp-body {
	list-style: none !important;
}

/* Reply header (date, #id, admin links) */
.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-header,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-header {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	background: var(--abb-color-bg-subtle);
	border-top: 1px solid var(--abb-color-border);
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-header .bbp-meta,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-header .bbp-meta {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	flex-wrap: wrap;
	width: 100%;
}

.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-header a,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-header a {
	color: var(--abb-color-text-muted);
	text-decoration: none;
}

.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-header a:hover,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-header a:hover {
	color: var(--abb-color-primary);
}

/* Reply entry (author + content side by side) */
.abb-member-content__body #bbpress-forums .bbp-replies .bbp-body > div:not(.bbp-reply-header),
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-body > div:not(.bbp-reply-header) {
	display: grid !important;
	grid-template-columns: 120px 1fr;
	gap: var(--abb-gap-md);
	padding: var(--abb-gap-md);
	border-bottom: 1px solid var(--abb-color-border);
}

/* Reply author column */
.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-author,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-author {
	text-align: center;
}

.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-author .avatar,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-author .avatar {
	width: 60px !important;
	height: 60px !important;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	margin: 0 auto var(--abb-gap-xs);
}

.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-author .bbp-author-name,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-author .bbp-author-name {
	display: block;
	font-weight: 600;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-primary);
}

.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-author .bbp-author-role,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-author .bbp-author-role {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	display: block;
}

/* Reply content column */
.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-content,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-content {
	font-size: var(--abb-font-size-base);
	line-height: var(--abb-line-height);
	color: var(--abb-color-text);
}

.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-content p,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-content p {
	margin: 0 0 var(--abb-gap-sm);
}

.abb-member-content__body #bbpress-forums .bbp-replies .bbp-reply-content p:last-child,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-reply-content p:last-child {
	margin-bottom: 0;
}

/* Admin links in replies */
.abb-member-content__body #bbpress-forums .bbp-replies .bbp-admin-links,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-admin-links {
	font-size: var(--abb-font-size-xs);
}

.abb-member-content__body #bbpress-forums .bbp-replies .bbp-admin-links a,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-admin-links a {
	color: var(--abb-color-text-muted);
	text-decoration: none;
	text-transform: uppercase;
	font-size: 10px;
	letter-spacing: 0.03em;
}

.abb-member-content__body #bbpress-forums .bbp-replies .bbp-admin-links a:hover,
.abb-group-content__body #bbpress-forums .bbp-replies .bbp-admin-links a:hover {
	color: var(--abb-color-primary);
}

/* ==========================================================================
   BP Nouveau Filter Bar (Last Active dropdown, search, order-by)
   ========================================================================== */

.abb-member-content__body #buddypress .subnav-filters,
.abb-group-content__body #buddypress .subnav-filters {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--abb-gap-sm);
	margin-bottom: var(--abb-gap-lg);
	padding-bottom: var(--abb-gap-md);
	border-bottom: 1px solid var(--abb-color-bg-subtle);
}

/* Ensure filter containers don't stack oddly */
.abb-member-content__body #buddypress .subnav-filters > div,
.abb-member-content__body #buddypress .subnav-filters > ul,
.abb-group-content__body #buddypress .subnav-filters > div,
.abb-group-content__body #buddypress .subnav-filters > ul {
	margin: 0;
}

/* Filter/Order-by dropdown */
.abb-member-content__body #buddypress .subnav-filters select,
.abb-member-content__body #buddypress .bp-filter select,
.abb-group-content__body #buddypress .subnav-filters select,
.abb-group-content__body #buddypress .bp-filter select {
	min-width: 160px;
	padding: 8px 36px 8px 14px;
	font-size: var(--abb-font-size-sm);
	font-family: inherit;
	color: var(--abb-color-text);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	background-color: var(--abb-color-bg);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 8.825a.5.5 0 0 1-.354-.146l-4-4a.5.5 0 0 1 .708-.708L6 7.617l3.646-3.646a.5.5 0 0 1 .708.708l-4 4A.5.5 0 0 1 6 8.825z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	outline: none;
	transition: all var(--abb-transition);
	cursor: pointer;
}

.abb-member-content__body #buddypress .subnav-filters select:focus,
.abb-group-content__body #buddypress .subnav-filters select:focus {
	border-color: var(--abb-color-primary);
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

/* Search within filter bar */
.abb-member-content__body #buddypress .subnav-filters .subnav-search,
.abb-group-content__body #buddypress .subnav-filters .subnav-search {
	display: flex;
	gap: var(--abb-gap-xs);
}

.abb-member-content__body #buddypress .subnav-filters .subnav-search input[type="search"],
.abb-group-content__body #buddypress .subnav-filters .subnav-search input[type="search"] {
	padding: 8px 14px;
	font-size: var(--abb-font-size-sm);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	background: var(--abb-color-bg);
	color: var(--abb-color-text);
	outline: none;
	transition: all var(--abb-transition);
	min-width: 180px;
}

.abb-member-content__body #buddypress .subnav-filters .subnav-search input[type="search"]:focus,
.abb-group-content__body #buddypress .subnav-filters .subnav-search input[type="search"]:focus {
	border-color: var(--abb-color-primary);
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

/* Pag count text (e.g., "Viewing 1 - 5 of 5 active members") */
.abb-member-content__body #buddypress .bp-pagination .pag-count,
.abb-member-content__body #buddypress .subnav-filters .bp-pagination .pag-count,
.abb-group-content__body #buddypress .bp-pagination .pag-count {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

/* ==========================================================================
   Responsive — BP Content
   ========================================================================== */

@media (max-width: 768px) {
	.abb-member-content__body #buddypress ul.item-list,
	.abb-group-content__body #buddypress ul.item-list {
		grid-template-columns: 1fr !important;
	}

	.abb-member-content__body #buddypress .list-wrap,
	.abb-group-content__body #buddypress .list-wrap {
		flex-direction: column;
		align-items: flex-start;
	}

	.abb-member-content__body #buddypress table.profile-fields td.label {
		display: block;
		width: auto;
		padding-bottom: 2px;
	}

	.abb-member-content__body #buddypress table.profile-fields td.data {
		display: block;
		padding-top: 0;
	}

	.abb-member-content__body #buddypress .bp-pagination,
	.abb-group-content__body #buddypress .bp-pagination {
		flex-direction: column;
		gap: var(--abb-gap-sm);
		text-align: center;
	}

	.abb-member-content__body #buddypress table.notifications {
		font-size: var(--abb-font-size-xs);
	}

	.abb-member-content__body #buddypress table.notifications td,
	.abb-member-content__body #buddypress table.notifications th {
		padding: var(--abb-gap-xs) var(--abb-gap-sm);
	}

	.abb-member-content__body #buddypress .subnav-filters,
	.abb-group-content__body #buddypress .subnav-filters {
		flex-direction: column;
		align-items: stretch;
	}

	.abb-member-content__body #buddypress .subnav-filters select,
	.abb-group-content__body #buddypress .subnav-filters select {
		width: 100%;
	}

	.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons {
		flex-direction: column;
		gap: 0;
	}

	.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons li {
		border-bottom: 1px solid var(--abb-color-border);
	}

	.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons li:last-child {
		border-bottom: none;
	}
}

/* ==========================================================================
   Group Creation Form
   ========================================================================== */

.abb-group-create-form {
	max-width: 720px;
}

.abb-group-create-form__body #buddypress {
	background: transparent;
}

/* Heading */
.abb-group-create-form__body #buddypress h2.bp-subhead {
	font-size: var(--abb-font-size-xl);
	font-weight: 700;
	color: var(--abb-color-text);
	margin: 0 0 var(--abb-gap-lg);
	padding: 0;
}

/* Step tabs navigation */
.abb-group-create-form__body #buddypress #group-create-body #group-create-tabs {
	margin-bottom: var(--abb-gap-lg);
}

.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--abb-gap-xs);
	list-style: none;
	padding: 0;
	margin: 0;
	border-bottom: 2px solid var(--abb-color-border);
	padding-bottom: 0;
}

.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons li {
	margin: 0;
	padding: 0;
}

.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons li a,
.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons li span {
	display: block;
	padding: 10px 18px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	transition: all var(--abb-transition);
	cursor: pointer;
	border-radius: var(--abb-radius-sm) var(--abb-radius-sm) 0 0;
	background: transparent;
}

.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons li a:hover,
.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons li span:hover {
	color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons li.current a,
.abb-group-create-form__body #buddypress #group-create-body .group-create-buttons li.current span {
	color: var(--abb-color-primary);
	border-bottom-color: var(--abb-color-primary);
	font-weight: 600;
}

/* Form container */
.abb-group-create-form__body #buddypress #create-group-form {
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	padding: var(--abb-gap-lg);
	box-shadow: var(--abb-shadow-sm);
}

/* Section headings inside steps */
.abb-group-create-form__body #buddypress #create-group-form h4,
.abb-group-create-form__body #buddypress #create-group-form .bp-group-create-content h4 {
	font-size: var(--abb-font-size-lg);
	font-weight: 600;
	color: var(--abb-color-text);
	margin: 0 0 var(--abb-gap-md);
	padding: 0;
}

/* Labels */
.abb-group-create-form__body #buddypress #create-group-form label {
	display: block;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	margin-bottom: 6px;
}

/* Text inputs */
.abb-group-create-form__body #buddypress #create-group-form input[type="text"],
.abb-group-create-form__body #buddypress #create-group-form input[type="url"],
.abb-group-create-form__body #buddypress #create-group-form input[type="email"] {
	width: 100%;
	padding: 10px 14px;
	font-size: var(--abb-font-size-base);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	background: var(--abb-color-bg);
	transition: all var(--abb-transition);
	margin-bottom: var(--abb-gap-md);
}

.abb-group-create-form__body #buddypress #create-group-form input[type="text"]:focus,
.abb-group-create-form__body #buddypress #create-group-form input[type="url"]:focus,
.abb-group-create-form__body #buddypress #create-group-form input[type="email"]:focus {
	border-color: var(--abb-color-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

/* Textarea */
.abb-group-create-form__body #buddypress #create-group-form textarea {
	width: 100%;
	min-height: 120px;
	padding: 10px 14px;
	font-size: var(--abb-font-size-base);
	font-family: inherit;
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	background: var(--abb-color-bg);
	resize: vertical;
	transition: all var(--abb-transition);
	margin-bottom: var(--abb-gap-md);
}

.abb-group-create-form__body #buddypress #create-group-form textarea:focus {
	border-color: var(--abb-color-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

/* Radio buttons & checkboxes */
.abb-group-create-form__body #buddypress #create-group-form .radio label,
.abb-group-create-form__body #buddypress #create-group-form .checkbox label {
	display: flex;
	align-items: flex-start;
	gap: var(--abb-gap-sm);
	font-weight: 400;
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	padding: 10px 14px;
	margin-bottom: var(--abb-gap-xs);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
}

.abb-group-create-form__body #buddypress #create-group-form .radio label:hover,
.abb-group-create-form__body #buddypress #create-group-form .checkbox label:hover {
	border-color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

.abb-group-create-form__body #buddypress #create-group-form .radio input[type="radio"],
.abb-group-create-form__body #buddypress #create-group-form .checkbox input[type="checkbox"] {
	margin-top: 3px;
	accent-color: var(--abb-color-primary);
}

/* Select dropdowns */
.abb-group-create-form__body #buddypress #create-group-form select {
	width: 100%;
	padding: 10px 14px;
	font-size: var(--abb-font-size-base);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	background: var(--abb-color-bg);
	transition: all var(--abb-transition);
	margin-bottom: var(--abb-gap-md);
}

.abb-group-create-form__body #buddypress #create-group-form select:focus {
	border-color: var(--abb-color-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

/* Submit / action buttons */
.abb-group-create-form__body #buddypress #create-group-form input[type="submit"],
.abb-group-create-form__body #buddypress #create-group-form input[type="button"],
.abb-group-create-form__body #buddypress #create-group-form .group-create-buttons input,
.abb-group-create-form__body #buddypress #create-group-form #group-creation-previous {
	display: inline-block;
	padding: 12px 28px;
	font-size: var(--abb-font-size-base);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
	margin-top: var(--abb-gap-sm);
}

.abb-group-create-form__body #buddypress #create-group-form input[type="submit"]:hover,
.abb-group-create-form__body #buddypress #create-group-form input[type="button"]:hover,
.abb-group-create-form__body #buddypress #create-group-form #group-creation-previous:hover {
	background: var(--abb-color-primary-hover);
	transform: translateY(-1px);
	box-shadow: var(--abb-shadow-md);
}

/* Previous step button — secondary style */
.abb-group-create-form__body #buddypress #create-group-form #group-creation-previous {
	background: transparent;
	color: var(--abb-color-text-secondary);
	border: 1.5px solid var(--abb-color-border);
}

.abb-group-create-form__body #buddypress #create-group-form #group-creation-previous:hover {
	background: var(--abb-color-bg-subtle);
	color: var(--abb-color-text);
	border-color: var(--abb-color-border-hover);
	transform: translateY(-1px);
}

/* Button row */
.abb-group-create-form__body #buddypress #create-group-form .submit {
	display: flex;
	flex-wrap: wrap;
	gap: var(--abb-gap-sm);
	margin-top: var(--abb-gap-lg);
	padding-top: var(--abb-gap-lg);
	border-top: 1px solid var(--abb-color-border);
}

/* Avatar / cover image upload area */
.abb-group-create-form__body #buddypress #create-group-form .avatar-upload-step,
.abb-group-create-form__body #buddypress #create-group-form #header-cover-image {
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg-subtle);
	border: 2px dashed var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	text-align: center;
	margin-bottom: var(--abb-gap-md);
}

/* File input styling */
.abb-group-create-form__body #buddypress #create-group-form input[type="file"] {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	margin-bottom: var(--abb-gap-md);
}

/* Help text / descriptions */
.abb-group-create-form__body #buddypress #create-group-form p.description,
.abb-group-create-form__body #buddypress #create-group-form .bp-feedback {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	line-height: var(--abb-line-height);
	margin-bottom: var(--abb-gap-md);
}

/* Notices */
.abb-group-create-form__body #buddypress #create-group-form .bp-feedback {
	padding: var(--abb-gap-md);
	background: var(--abb-color-bg-subtle);
	border-left: 3px solid var(--abb-color-primary);
	border-radius: var(--abb-radius-sm);
}

/* Invites list */
.abb-group-create-form__body #buddypress #create-group-form #send-invite-form .invite-list,
.abb-group-create-form__body #buddypress #create-group-form .members-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.abb-group-create-form__body #buddypress #create-group-form #send-invite-form .invite-list li,
.abb-group-create-form__body #buddypress #create-group-form .members-list li {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	border-bottom: 1px solid var(--abb-color-border);
}

.abb-group-create-form__body #buddypress #create-group-form #send-invite-form .invite-list li:last-child,
.abb-group-create-form__body #buddypress #create-group-form .members-list li:last-child {
	border-bottom: none;
}

.abb-group-create-form__body #buddypress #create-group-form #send-invite-form .invite-list li img,
.abb-group-create-form__body #buddypress #create-group-form .members-list li img {
	border-radius: 50%;
	width: 40px;
	height: 40px;
	object-fit: cover;
}

/* ==========================================================================
   bbPress Elements
   ========================================================================== */

/* --- Forum List --- */

.abb-forum-list-wrap {
	width: 100%;
}

.abb-forum-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--abb-gap-md);
	width: 100%;
}

.abb-forum-list--grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--abb-gap-md);
	width: 100%;
}

.abb-forum-list--grid.abb-forum-list--cols-2 { grid-template-columns: repeat(2, 1fr); }
.abb-forum-list--grid.abb-forum-list--cols-3 { grid-template-columns: repeat(3, 1fr); }
.abb-forum-list--grid.abb-forum-list--cols-4 { grid-template-columns: repeat(4, 1fr); }

.abb-forum-list__item {
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
	transition: all var(--abb-transition);
}

.abb-forum-list__item:hover {
	border-color: var(--abb-color-border-hover);
	box-shadow: var(--abb-shadow-md);
	transform: translateY(-1px);
}

.abb-forum-list__header {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	flex-wrap: wrap;
}

.abb-forum-list__icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: var(--abb-radius-md);
	background: rgba(99, 102, 241, 0.08);
	color: var(--abb-color-primary);
}

.abb-forum-list__icon svg {
	width: 18px;
	height: 18px;
}

.abb-forum-list__title {
	font-size: var(--abb-font-size-lg);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
	transition: color var(--abb-transition);
}

.abb-forum-list__title:hover {
	color: var(--abb-color-primary);
}

.abb-forum-list__parent {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	background: var(--abb-color-bg-subtle);
	padding: 2px 8px;
	border-radius: var(--abb-radius-full);
	white-space: nowrap;
}

.abb-forum-list__desc {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	margin: var(--abb-gap-sm) 0 0;
	line-height: var(--abb-line-height);
}

.abb-forum-list__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--abb-gap-md);
	margin-top: var(--abb-gap-sm);
	padding-top: var(--abb-gap-sm);
	border-top: 1px solid var(--abb-color-border);
}

.abb-forum-list__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	font-weight: 500;
}

.abb-forum-list__last-active {
	font-style: italic;
	font-weight: 400;
}

.abb-forum-list__empty {
	text-align: center;
	color: var(--abb-color-text-muted);
	font-size: var(--abb-font-size-sm);
	padding: var(--abb-gap-xl);
}

/* Forum List built-in pagination */
.abb-forum-list__pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 4px;
	padding: var(--abb-gap-lg) 0 0;
}

.abb-forum-list__pagination a,
.abb-forum-list__pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	text-decoration: none;
	transition: all var(--abb-transition);
}

.abb-forum-list__pagination a:hover {
	color: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

.abb-forum-list__pagination .current {
	color: #fff;
	background: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
}

.abb-forum-list__pagination .dots {
	border: none;
	background: none;
	color: var(--abb-color-text-muted);
}

/* --- Forum Content Area --- */

.abb-forum-content__body,
.abb-topic-content__body {
	font-family: inherit;
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	line-height: var(--abb-line-height);
}

/* Forum actions (Subscribe) */
.abb-forum-content__actions {
	display: flex;
	justify-content: flex-end;
	gap: var(--abb-gap-sm);
	margin-bottom: var(--abb-gap-md);
}

.abb-forum-content__action-btn a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-full);
	text-decoration: none;
	transition: all var(--abb-transition);
}

.abb-forum-content__action-btn a:hover {
	color: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

/* Forum info notice (topic/reply count bar) */
.abb-forum-content__info-notice {
	margin-bottom: var(--abb-gap-md);
}

/* Remove the inner bbp-template-notice duplicate styling — the outer wrapper handles it */
.abb-forum-content__info-notice .bbp-template-notice {
	padding: var(--abb-gap-md) var(--abb-gap-lg);
	background: var(--abb-color-bg-subtle);
	border-left: 3px solid var(--abb-color-primary);
	border-radius: var(--abb-radius-sm);
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	line-height: var(--abb-line-height);
	margin: 0;
}

.abb-forum-content__info-notice .bbp-template-notice ul {
	margin: 0;
	padding: 0;
}

.abb-forum-content__info-notice .bbp-template-notice a {
	color: var(--abb-color-primary);
	text-decoration: none;
	font-weight: 500;
}

.abb-forum-content__info-notice .bbp-template-notice a:hover {
	color: var(--abb-color-primary-hover);
}

/* Forum description (admin-set content) */
.abb-forum-content__description {
	font-size: var(--abb-font-size-base);
	color: var(--abb-color-text);
	line-height: var(--abb-line-height);
	margin-bottom: var(--abb-gap-md);
	padding: var(--abb-gap-md) var(--abb-gap-lg);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
}

.abb-forum-content__description p {
	margin: 0;
}

.abb-forum-content__notice,
.abb-topic-content__notice {
	text-align: center;
	color: var(--abb-color-text-muted);
	font-size: var(--abb-font-size-sm);
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-md);
}

/* --- bbPress native pagination (.bbp-pagination from pagination-topics/replies templates) --- */

#abb-bbpress .bbp-pagination {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--abb-gap-md);
	padding: var(--abb-gap-sm) 0;
	margin: var(--abb-gap-sm) 0;
	flex-wrap: wrap;
}

#abb-bbpress .bbp-pagination-count {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

#abb-bbpress .bbp-pagination-links {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

#abb-bbpress .bbp-pagination-links a,
#abb-bbpress .bbp-pagination-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	height: 32px;
	padding: 0 8px;
	font-size: var(--abb-font-size-xs);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	text-decoration: none;
	transition: all var(--abb-transition);
}

#abb-bbpress .bbp-pagination-links a:hover {
	color: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

#abb-bbpress .bbp-pagination-links span.current {
	color: #fff;
	background: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
}

#abb-bbpress .bbp-pagination-links span.dots {
	border: none;
	background: none;
	color: var(--abb-color-text-muted);
}

/* --- Shared Pagination (inline in Forum/Topic Content) --- */

.abb-forum-content__pagination,
.abb-topic-content__pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 4px;
	padding: var(--abb-gap-lg) 0;
}

.abb-forum-content__pagination a,
.abb-forum-content__pagination span,
.abb-topic-content__pagination a,
.abb-topic-content__pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	text-decoration: none;
	transition: all var(--abb-transition);
}

.abb-forum-content__pagination a:hover,
.abb-topic-content__pagination a:hover {
	color: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

.abb-forum-content__pagination .current,
.abb-topic-content__pagination .current {
	color: #fff;
	background: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
}

/* --- Topic Content Area --- */

.abb-topic-content__tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--abb-gap-xs);
	margin-top: var(--abb-gap-md);
	padding: var(--abb-gap-sm) 0;
}

.abb-topic-content__tags a {
	display: inline-block;
	padding: 4px 12px;
	font-size: var(--abb-font-size-xs);
	font-weight: 500;
	color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-full);
	text-decoration: none;
	transition: all var(--abb-transition);
}

.abb-topic-content__tags a:hover {
	background: var(--abb-color-bg);
	border-color: var(--abb-color-primary);
}

/* Topic info notice */
.abb-topic-content__info-notice {
	margin-bottom: var(--abb-gap-md);
}

.abb-topic-content__info-notice .bbp-template-notice {
	padding: var(--abb-gap-md) var(--abb-gap-lg);
	background: var(--abb-color-bg-subtle);
	border-left: 3px solid var(--abb-color-primary);
	border-radius: var(--abb-radius-sm);
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	line-height: var(--abb-line-height);
	margin: 0;
}

.abb-topic-content__info-notice .bbp-template-notice ul {
	margin: 0;
	padding: 0;
}

.abb-topic-content__info-notice .bbp-template-notice a {
	color: var(--abb-color-primary);
	text-decoration: none;
	font-weight: 500;
}

.abb-topic-content__info-notice .bbp-template-notice a:hover {
	color: var(--abb-color-primary-hover);
}

.abb-topic-content__closed {
	text-align: center;
	padding: var(--abb-gap-lg);
	color: var(--abb-color-text-muted);
	font-size: var(--abb-font-size-sm);
	background: var(--abb-color-bg-subtle);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	margin-top: var(--abb-gap-md);
}

/* --- bbPress Forms (Topic + Reply) — unified selector using #abb-bbpress --- */

#abb-bbpress {
	font-family: inherit;
	background: transparent;
}

/* Form card container */
#abb-bbpress fieldset.bbp-form {
	border: 1px solid var(--abb-color-border);
	border-radius: 16px;
	padding: 24px;
	background: var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	margin-top: 16px;
}

/* Legend / form title */
#abb-bbpress fieldset.bbp-form > legend {
	font-size: 17px;
	font-weight: 700;
	color: var(--abb-color-text);
	padding: 0 8px;
	width: auto;
}

/* Labels */
#abb-bbpress label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--abb-color-text);
	margin-bottom: 6px;
}

/* Remove br between label and input */
#abb-bbpress label + br {
	display: none;
}

/* Field spacing */
#abb-bbpress fieldset.bbp-form > div > p {
	margin-bottom: 16px;
}

/* Checkbox labels — inline */
#abb-bbpress label[for*="subscription"],
#abb-bbpress label[for*="notify"],
#abb-bbpress .bbp-form input[type="checkbox"] + label,
#abb-bbpress .bbp-form label:has(input[type="checkbox"]) {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 400;
	font-size: 13px;
	color: var(--abb-color-text-secondary);
	margin-bottom: 0;
}

#abb-bbpress .bbp-form input[type="checkbox"] {
	width: 16px;
	height: 16px;
	accent-color: var(--abb-color-primary);
	margin-right: 6px;
}

/* Text inputs, textareas, selects */
#abb-bbpress input[type="text"],
#abb-bbpress input[type="url"],
#abb-bbpress input[type="email"],
#abb-bbpress textarea,
#abb-bbpress select {
	width: 100%;
	padding: 11px 16px;
	font-size: 14px;
	font-family: inherit;
	border: 1.5px solid var(--abb-color-border);
	border-radius: 8px;
	background: var(--abb-color-bg-subtle);
	color: var(--abb-color-text);
	transition: all var(--abb-transition);
	box-sizing: border-box;
	outline: none;
}

#abb-bbpress input[type="text"]::placeholder,
#abb-bbpress textarea::placeholder {
	color: var(--abb-color-text-muted);
}

#abb-bbpress input[type="text"]:focus,
#abb-bbpress input[type="url"]:focus,
#abb-bbpress input[type="email"]:focus,
#abb-bbpress textarea:focus,
#abb-bbpress select:focus {
	border-color: var(--abb-color-primary);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.08);
}

#abb-bbpress textarea {
	min-height: 140px;
	resize: vertical;
	line-height: 1.6;
}

/* Select dropdown custom arrow */
#abb-bbpress select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%238899aa' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
	cursor: pointer;
}

/* Topic Type + Topic Status — side by side row (injected via JS) */
.abb-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.abb-form-row > p {
	margin-bottom: 0 !important;
}

@media (max-width: 480px) {
	.abb-form-row {
		grid-template-columns: 1fr;
	}
}

/* Submit wrapper with top border */
#abb-bbpress .bbp-submit-wrapper {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--abb-color-border);
}

/* Submit button */
#abb-bbpress button[type="submit"],
#abb-bbpress input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 28px;
	font-size: 14px;
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: all var(--abb-transition);
}

#abb-bbpress button[type="submit"]:hover,
#abb-bbpress input[type="submit"]:hover {
	background: var(--abb-color-primary-hover);
	box-shadow: 0 2px 8px rgba(99, 102, 241, 0.25);
}

/* Template notices */
#abb-bbpress .bbp-template-notice {
	padding: 12px 16px;
	border-radius: 8px;
	border: 1px solid var(--abb-color-border);
	background: var(--abb-color-bg-subtle);
	font-size: 13px;
	color: var(--abb-color-text-secondary);
	margin-bottom: 16px;
}

#abb-bbpress .bbp-template-notice ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

#abb-bbpress .bbp-template-notice.info {
	border-color: rgba(99, 102, 241, 0.2);
	background: rgba(99, 102, 241, 0.04);
}

/* Allowed tags notice — hide by default, too noisy */
#abb-bbpress .bbp-allowed-tags {
	display: none;
}

/* Nested fieldsets (edit log) */
#abb-bbpress fieldset.bbp-form fieldset.bbp-form {
	border: 1px solid var(--abb-color-border);
	margin-top: 16px;
	padding: 16px;
	background: var(--abb-color-bg-subtle);
	border-radius: 8px;
	box-shadow: none;
}

#abb-bbpress fieldset.bbp-form fieldset.bbp-form legend {
	font-size: 13px;
	font-weight: 600;
}

/* Topic description under legend */
#abb-bbpress .bbp-topic-description {
	font-size: 12.5px;
	color: var(--abb-color-text-muted);
	margin-bottom: 16px;
}

/* Responsive */
@media (max-width: 767px) {
	#abb-bbpress fieldset.bbp-form {
		padding: 16px;
	}

	#abb-bbpress .bbp-submit-wrapper {
		flex-direction: column;
		gap: 12px;
	}

	#abb-bbpress button[type="submit"],
	#abb-bbpress input[type="submit"] {
		width: 100%;
	}
}

/* --- Logged out messages --- */

.abb-new-topic-form__logged-out,
.abb-reply-form__logged-out {
	text-align: center;
	padding: 24px;
	color: var(--abb-color-text-secondary);
	font-size: var(--abb-font-size-sm);
	background: var(--abb-color-bg-subtle);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
}

/* --- Forum Search --- */

.abb-forum-search__form {
	max-width: 480px;
}

.abb-forum-search__input-wrap {
	display: flex;
	gap: 0;
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	overflow: hidden;
	transition: all var(--abb-transition);
	background: var(--abb-color-bg);
}

.abb-forum-search__input-wrap:focus-within {
	border-color: var(--abb-color-primary);
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

.abb-forum-search__input {
	flex: 1;
	padding: 12px 16px;
	font-size: var(--abb-font-size-base);
	font-family: inherit;
	border: none;
	outline: none;
	background: transparent;
	color: var(--abb-color-text);
}

.abb-forum-search__btn {
	padding: 12px 24px;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	cursor: pointer;
	transition: background var(--abb-transition);
	white-space: nowrap;
}

.abb-forum-search__btn:hover {
	background: var(--abb-color-primary-hover);
}

/* --- Forum Stats --- */

.abb-forum-stats {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--abb-gap-md);
}

.abb-forum-stats--column {
	flex-direction: column;
}

.abb-forum-stats__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--abb-gap-sm);
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
	flex: 1;
	min-width: 120px;
	text-align: center;
	transition: all var(--abb-transition);
}

.abb-forum-stats--column .abb-forum-stats__item {
	flex-direction: row;
	text-align: left;
	align-items: center;
	gap: var(--abb-gap-md);
}

.abb-forum-stats__item:hover {
	border-color: var(--abb-color-border-hover);
	box-shadow: var(--abb-shadow-sm);
	transform: translateY(-1px);
}

.abb-forum-stats__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: var(--abb-radius-md);
	background: rgba(99, 102, 241, 0.08);
	color: var(--abb-color-primary);
}

.abb-forum-stats__icon svg {
	width: 24px;
	height: 24px;
}

.abb-forum-stats__number {
	font-size: var(--abb-font-size-2xl);
	font-weight: 700;
	color: var(--abb-color-text);
	line-height: 1;
}

.abb-forum-stats--column .abb-forum-stats__number {
	font-size: var(--abb-font-size-xl);
}

.abb-forum-stats__label {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 600;
}

/* --- Recent Topics --- */

.abb-recent-topics {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}

.abb-recent-topics__item {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-md);
	padding: var(--abb-gap-md);
	border-bottom: 1px solid var(--abb-color-border);
	transition: background var(--abb-transition);
}

.abb-recent-topics__item:first-child {
	border-top-left-radius: var(--abb-radius-lg);
	border-top-right-radius: var(--abb-radius-lg);
}

.abb-recent-topics__item:last-child {
	border-bottom: none;
	border-bottom-left-radius: var(--abb-radius-lg);
	border-bottom-right-radius: var(--abb-radius-lg);
}

.abb-recent-topics__item:hover {
	background: var(--abb-color-bg-subtle);
}

.abb-recent-topics-wrap .abb-recent-topics {
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
	background: var(--abb-color-bg);
	overflow: hidden;
}

.abb-recent-topics__avatar {
	flex-shrink: 0;
}

.abb-recent-topics__avatar img {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
}

.abb-recent-topics__info {
	flex: 1;
	min-width: 0;
}

.abb-recent-topics__title {
	display: block;
	font-size: var(--abb-font-size-base);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
	transition: color var(--abb-transition);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.abb-recent-topics__title:hover {
	color: var(--abb-color-primary);
}

.abb-recent-topics__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-top: 4px;
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-recent-topics__sep {
	color: var(--abb-color-text-muted);
	opacity: 0.3;
}

.abb-recent-topics__forum {
	color: var(--abb-color-primary);
	text-decoration: none;
	font-weight: 500;
}

.abb-recent-topics__forum:hover {
	color: var(--abb-color-primary-hover);
}

.abb-recent-topics__empty {
	text-align: center;
	color: var(--abb-color-text-muted);
	font-size: var(--abb-font-size-sm);
	padding: var(--abb-gap-xl);
}

/* --- bbPress native output inside #abb-bbpress --- */

/* Strip ALL list bullets from bbPress nested ul/li structure */
#abb-bbpress ul,
#abb-bbpress li {
	list-style: none !important;
	margin: 0;
	padding: 0;
}

#abb-bbpress .bbp-topics,
#abb-bbpress .bbp-replies {
	border: none;
	width: 100%;
	background: transparent;
}

#abb-bbpress .bbp-forums {
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
	overflow: hidden;
	width: 100%;
	background: var(--abb-color-bg);
}

/* Header row — flex layout for column alignment */
#abb-bbpress .bbp-header {
	background: var(--abb-color-bg-subtle);
	border-bottom: 1px solid var(--abb-color-border);
}

#abb-bbpress .bbp-header ul.forum-titles {
	display: flex;
	align-items: center;
	padding: var(--abb-gap-sm) var(--abb-gap-md);
}

#abb-bbpress .bbp-header li {
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0;
}

#abb-bbpress .bbp-header li.bbp-topic-title,
#abb-bbpress .bbp-header li.bbp-forum-info {
	flex: 1;
}

#abb-bbpress .bbp-header li.bbp-topic-voice-count,
#abb-bbpress .bbp-header li.bbp-topic-reply-count {
	width: 70px;
	text-align: center;
}

#abb-bbpress .bbp-header li.bbp-topic-freshness,
#abb-bbpress .bbp-header li.bbp-forum-freshness {
	width: 160px;
	text-align: right;
}

/* Footer row */
#abb-bbpress .bbp-footer {
	background: var(--abb-color-bg-subtle);
	border-top: 1px solid var(--abb-color-border);
}

#abb-bbpress .bbp-footer ul.forum-titles {
	display: flex;
	align-items: center;
	padding: var(--abb-gap-sm) var(--abb-gap-md);
}

#abb-bbpress .bbp-footer li {
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0;
}

#abb-bbpress .bbp-footer li.bbp-topic-title,
#abb-bbpress .bbp-footer li.bbp-forum-info {
	flex: 1;
}

#abb-bbpress .bbp-footer li.bbp-topic-voice-count,
#abb-bbpress .bbp-footer li.bbp-topic-reply-count {
	width: 70px;
	text-align: center;
}

#abb-bbpress .bbp-footer li.bbp-topic-freshness,
#abb-bbpress .bbp-footer li.bbp-forum-freshness {
	width: 160px;
	text-align: right;
}

/* Body — each topic row is a <ul> inside <li class="bbp-body"> */
#abb-bbpress li.bbp-body {
	border-bottom: 1px solid var(--abb-color-border);
	transition: background var(--abb-transition);
}

#abb-bbpress li.bbp-body:last-child {
	border-bottom: none;
}

#abb-bbpress li.bbp-body:hover {
	background: var(--abb-color-bg-subtle);
}

/* Each topic row — flex layout matching header columns */
#abb-bbpress .bbp-body > ul {
	display: flex;
	align-items: flex-start;
	padding: var(--abb-gap-md);
	gap: var(--abb-gap-sm);
	border-bottom: 1px solid var(--abb-color-border);
}

#abb-bbpress .bbp-body > ul:last-child {
	border-bottom: none;
}

/* Hide empty bbPress table footer (topics + replies) */
#abb-bbpress .bbp-footer {
	display: none;
}

#abb-bbpress .bbp-replies > .bbp-footer {
	display: none;
}

#abb-bbpress .bbp-body li.bbp-topic-title,
#abb-bbpress .bbp-body li.bbp-forum-info {
	flex: 1;
	min-width: 0;
}

#abb-bbpress .bbp-body li.bbp-topic-voice-count,
#abb-bbpress .bbp-body li.bbp-topic-reply-count {
	width: 70px;
	text-align: center;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	font-weight: 500;
	flex-shrink: 0;
	padding-top: 2px;
}

#abb-bbpress .bbp-body li.bbp-topic-freshness,
#abb-bbpress .bbp-body li.bbp-forum-freshness {
	width: 160px;
	text-align: right;
	flex-shrink: 0;
}

/* Topic title link */
#abb-bbpress .bbp-body .bbp-topic-title a.bbp-topic-permalink,
#abb-bbpress .bbp-body .bbp-forum-info a.bbp-forum-title {
	font-size: var(--abb-font-size-base);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
	transition: color var(--abb-transition);
}

#abb-bbpress .bbp-body .bbp-topic-title a.bbp-topic-permalink:hover,
#abb-bbpress .bbp-body .bbp-forum-info a.bbp-forum-title:hover {
	color: var(--abb-color-primary);
}

/* Topic meta (Started by, etc.) */
#abb-bbpress .bbp-topic-meta {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin-top: 4px;
}

#abb-bbpress .bbp-topic-meta a,
#abb-bbpress .bbp-topic-freshness a {
	color: var(--abb-color-primary);
	text-decoration: none;
}

#abb-bbpress .bbp-topic-freshness {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

/* bbPress reply author info */
/* --- Topic actions (Favorite + Subscribe) --- */

.abb-topic-content__actions {
	display: flex;
	gap: var(--abb-gap-sm);
	margin-bottom: var(--abb-gap-md);
}

.abb-topic-content__action-btn a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-full);
	text-decoration: none;
	transition: all var(--abb-transition);
}

.abb-topic-content__action-btn a:hover {
	color: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

.abb-topic-content__action-btn .is-favorite a,
.abb-topic-content__action-btn a.is-favorite {
	color: var(--abb-color-warning);
	border-color: var(--abb-color-warning);
}

/* --- Replies list structure --- */

/* Replies container — remove gaps between reply pairs */
#abb-bbpress .bbp-replies > .bbp-body {
	display: flex;
	flex-direction: column;
}

/* Replies header/footer row */
#abb-bbpress .bbp-replies > .bbp-header {
	display: flex;
	align-items: center;
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	background: var(--abb-color-bg-subtle);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-md);
	margin-bottom: 16px;
}

#abb-bbpress .bbp-replies > .bbp-header > div,
#abb-bbpress .bbp-replies > .bbp-footer > div {
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

#abb-bbpress .bbp-replies > .bbp-header .bbp-reply-author,
#abb-bbpress .bbp-replies > .bbp-footer .bbp-reply-author {
	width: 140px;
	flex-shrink: 0;
}

#abb-bbpress .bbp-replies > .bbp-header .bbp-reply-content,
#abb-bbpress .bbp-replies > .bbp-footer .bbp-reply-content {
	flex: 1;
}

/* Reply header (date, #id, admin links) — attached to reply below */
/* Reply header — acts as visual separator between reply cards */
#abb-bbpress .bbp-reply-header {
	display: flex;
	align-items: center;
	padding: var(--abb-gap-sm) var(--abb-gap-md);
	background: var(--abb-color-bg-subtle);
	border-left: 1px solid var(--abb-color-border) !important;
	border-right: 1px solid var(--abb-color-border) !important;
	border-top: 1px solid var(--abb-color-border) !important;
	border-bottom: 1px solid var(--abb-color-border) !important;
	border-radius: 0;
	margin-top: 16px;
}

#abb-bbpress .bbp-body > .bbp-reply-header:first-child {
	margin-top: 0;
}

#abb-bbpress .bbp-reply-header .bbp-meta {
	display: flex;
	align-items: center;
	gap: var(--abb-gap-sm);
	flex-wrap: wrap;
	width: 100%;
}

#abb-bbpress .bbp-reply-header .bbp-reply-post-date {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

#abb-bbpress .bbp-reply-header .bbp-reply-permalink {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	text-decoration: none;
}

#abb-bbpress .bbp-reply-header .bbp-reply-permalink:hover {
	color: var(--abb-color-primary);
}

#abb-bbpress .bbp-reply-header .bbp-admin-links {
	margin-left: auto;
	margin-top: 0;
}

/* Each reply body — author + content side by side */
#abb-bbpress .bbp-body > div[class*="reply"],
#abb-bbpress .bbp-body > div[class*="topic"] {
	display: flex;
	border: 1px solid var(--abb-color-border);
	border-top: none;
	border-radius: 0;
	overflow: hidden;
	background: var(--abb-color-bg);
}

#abb-bbpress .bbp-body > div:last-child {
	border-bottom: none;
}

#abb-bbpress .bbp-body > div[class*="reply"] > .bbp-reply-author,
#abb-bbpress .bbp-body > div[class*="topic"] > .bbp-reply-author {
	width: 140px;
	flex-shrink: 0;
	padding: var(--abb-gap-md);
	text-align: center;
	border-right: 1px solid var(--abb-color-border);
	background: var(--abb-color-bg);
}

#abb-bbpress .bbp-reply-author img.avatar {
	display: block;
	margin: 0 auto var(--abb-gap-xs);
	width: 64px !important;
	height: 64px !important;
	border-radius: 50%;
	border: 2px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	object-fit: cover;
}

#abb-bbpress .bbp-reply-author .bbp-author-name {
	display: block;
	font-weight: 600;
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text);
	text-decoration: none;
}

#abb-bbpress .bbp-reply-author .bbp-author-name:hover {
	color: var(--abb-color-primary);
}

#abb-bbpress .bbp-reply-author .bbp-author-role {
	display: inline-block;
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.08);
	padding: 2px 8px;
	border-radius: var(--abb-radius-full);
	margin-top: 4px;
}

/* Reply content */
#abb-bbpress .bbp-body > div[class*="reply"] > .bbp-reply-content,
#abb-bbpress .bbp-body > div[class*="topic"] > .bbp-reply-content {
	flex: 1;
	min-width: 0;
	font-size: var(--abb-font-size-base);
	line-height: var(--abb-line-height);
	color: var(--abb-color-text);
	padding: var(--abb-gap-md) var(--abb-gap-lg);
}

#abb-bbpress .bbp-reply-content p {
	margin: 0 0 var(--abb-gap-sm);
}

#abb-bbpress .bbp-reply-content p:last-child {
	margin-bottom: 0;
}

/* Reply IP for moderators */
#abb-bbpress .bbp-reply-ip {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin-top: 4px;
}

/* bbPress action links (edit, merge, close, etc.) */
#abb-bbpress .bbp-admin-links {
	margin-top: var(--abb-gap-xs);
}

#abb-bbpress .bbp-admin-links a,
#abb-bbpress .bbp-topic-action a,
#abb-bbpress .bbp-reply-header a {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	text-decoration: none;
	transition: color var(--abb-transition);
}

#abb-bbpress .bbp-admin-links a:hover,
#abb-bbpress .bbp-topic-action a:hover,
#abb-bbpress .bbp-reply-header a:hover {
	color: var(--abb-color-primary);
}

/* Topic empty state */
.abb-topic-content__empty {
	text-align: center;
	color: var(--abb-color-text-muted);
	font-size: var(--abb-font-size-sm);
	padding: var(--abb-gap-xl);
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-md);
}

/* bbPress notices */
#abb-bbpress div.bbp-template-notice {
	padding: var(--abb-gap-md) var(--abb-gap-lg);
	background: var(--abb-color-bg-subtle);
	border-left: 3px solid var(--abb-color-primary);
	border-radius: var(--abb-radius-sm);
	margin-bottom: var(--abb-gap-md);
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	line-height: var(--abb-line-height);
}

#abb-bbpress div.bbp-template-notice p {
	margin: 0;
}

#abb-bbpress div.bbp-template-notice.error,
#abb-bbpress div.bbp-template-notice.warning {
	border-left-color: #ef4444;
	background: #fef2f2;
	color: #b91c1c;
}

#abb-bbpress div.bbp-template-notice.success {
	border-left-color: var(--abb-color-success);
	background: #f0fdf4;
	color: #15803d;
}

/* bbPress lead topic */
#abb-bbpress .bbp-lead-topic {
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
	margin-bottom: var(--abb-gap-md);
}

/* --- bbPress Pagination Element --- */

.abb-bbpress-pagination__nav {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 4px;
	padding: var(--abb-gap-md) 0;
}

.abb-bbpress-pagination__nav a,
.abb-bbpress-pagination__nav span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	text-decoration: none;
	transition: all var(--abb-transition);
}

.abb-bbpress-pagination__nav a:hover {
	color: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

.abb-bbpress-pagination__nav .current {
	color: #fff;
	background: var(--abb-color-primary);
	border-color: var(--abb-color-primary);
}

.abb-bbpress-pagination__nav .dots {
	border: none;
	background: none;
	color: var(--abb-color-text-muted);
}

/* --- Forum User Content --- */

.abb-forum-user__wrapper {
	width: 100%;
}

/* Sidebar layout — avatar left, body right */
.abb-forum-user--sidebar {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: var(--abb-gap-lg);
	align-items: start;
}

/* Stacked layout — avatar top, body below */
.abb-forum-user--stacked {
	display: flex;
	flex-direction: column;
	gap: var(--abb-gap-lg);
}

.abb-forum-user--stacked .abb-forum-user__details {
	text-align: center;
}

.abb-forum-user--stacked .abb-forum-user__avatar {
	display: flex;
	justify-content: center;
}

.abb-forum-user--stacked .abb-forum-user__nav ul {
	justify-content: center;
}

/* --- Details panel (avatar + name + nav) --- */

.abb-forum-user__details {
	display: flex;
	flex-direction: column;
	gap: var(--abb-gap-md);
}

.abb-forum-user__avatar img {
	width: 150px;
	height: 150px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-md);
}

.abb-forum-user__avatar a {
	display: inline-block;
	line-height: 0;
}

.abb-forum-user__name h2 {
	font-size: var(--abb-font-size-xl);
	font-weight: 700;
	color: var(--abb-color-text);
	margin: 0;
	line-height: 1.3;
}

.abb-forum-user__role {
	display: inline-block;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.08);
	padding: 3px 10px;
	border-radius: var(--abb-radius-full);
	margin-top: 4px;
}

/* --- Navigation tabs --- */

.abb-forum-user__nav ul {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
}

.abb-forum-user--stacked .abb-forum-user__nav ul {
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--abb-gap-xs);
}

.abb-forum-user__nav li {
	list-style: none;
}

.abb-forum-user__nav li a {
	display: block;
	padding: 8px 14px;
	font-size: var(--abb-font-size-sm);
	font-weight: 500;
	color: var(--abb-color-text-secondary);
	text-decoration: none;
	border-radius: var(--abb-radius-sm);
	transition: all var(--abb-transition);
}

.abb-forum-user__nav li a:hover {
	color: var(--abb-color-primary);
	background: var(--abb-color-bg-subtle);
}

.abb-forum-user__nav li.current a {
	color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.08);
	font-weight: 600;
}

/* --- Body content panel --- */

.abb-forum-user__body {
	min-width: 0;
	background: var(--abb-color-bg);
	border: 1px solid var(--abb-color-border);
	border-radius: var(--abb-radius-lg);
	padding: var(--abb-gap-lg);
}

/* Profile section styling */
.abb-forum-user__body #bbp-user-profile {
	display: flex;
	flex-direction: column;
	gap: var(--abb-gap-md);
}

.abb-forum-user__body .bbp-user-section {
	margin-bottom: var(--abb-gap-md);
}

.abb-forum-user__body .bbp-user-section p {
	margin: 0 0 var(--abb-gap-xs);
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
}

.abb-forum-user__body .bbp-user-section p span {
	font-weight: 600;
	color: var(--abb-color-text);
}

.abb-forum-user__body .bbp-user-section a {
	color: var(--abb-color-primary);
	text-decoration: none;
}

.abb-forum-user__body .bbp-user-section a:hover {
	color: var(--abb-color-primary-hover);
}

/* Edit profile form */
.abb-forum-user__body fieldset {
	border: none;
	padding: 0;
	margin: 0 0 var(--abb-gap-md);
}

.abb-forum-user__body fieldset legend {
	font-size: var(--abb-font-size-lg);
	font-weight: 700;
	color: var(--abb-color-text);
	margin-bottom: var(--abb-gap-md);
	padding-bottom: var(--abb-gap-xs);
	border-bottom: 2px solid var(--abb-color-border);
	width: 100%;
}

.abb-forum-user__body label {
	display: block;
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	margin-bottom: 4px;
}

.abb-forum-user__body input[type="text"],
.abb-forum-user__body input[type="email"],
.abb-forum-user__body input[type="url"],
.abb-forum-user__body input[type="password"],
.abb-forum-user__body textarea,
.abb-forum-user__body select {
	width: 100%;
	padding: 10px 14px;
	font-size: var(--abb-font-size-base);
	font-family: inherit;
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-sm);
	background: var(--abb-color-bg);
	color: var(--abb-color-text);
	transition: all var(--abb-transition);
	box-sizing: border-box;
}

.abb-forum-user__body input[type="text"]:focus,
.abb-forum-user__body input[type="email"]:focus,
.abb-forum-user__body input[type="url"]:focus,
.abb-forum-user__body input[type="password"]:focus,
.abb-forum-user__body textarea:focus,
.abb-forum-user__body select:focus {
	border-color: var(--abb-color-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

.abb-forum-user__body button[type="submit"],
.abb-forum-user__body input[type="submit"] {
	display: inline-flex;
	align-items: center;
	padding: 12px 28px;
	font-size: var(--abb-font-size-base);
	font-weight: 600;
	color: #fff;
	background: var(--abb-color-primary);
	border: none;
	border-radius: var(--abb-radius-sm);
	cursor: pointer;
	transition: all var(--abb-transition);
}

.abb-forum-user__body button[type="submit"]:hover,
.abb-forum-user__body input[type="submit"]:hover {
	background: var(--abb-color-primary-hover);
	box-shadow: var(--abb-shadow-md);
}

/* Notice message */
.abb-forum-user__notice {
	text-align: center;
	color: var(--abb-color-text-muted);
	font-size: var(--abb-font-size-sm);
	padding: var(--abb-gap-lg);
	background: var(--abb-color-bg-subtle);
	border-radius: var(--abb-radius-md);
}

/* --- Responsive --- */

@media (max-width: 768px) {
	.abb-forum-user--sidebar {
		grid-template-columns: 1fr;
	}

	.abb-forum-user__details {
		text-align: center;
	}

	.abb-forum-user__avatar {
		display: flex;
		justify-content: center;
	}

	.abb-forum-user__nav ul {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		gap: var(--abb-gap-xs);
	}

	.abb-forum-list--grid {
		grid-template-columns: 1fr !important;
	}

	.abb-forum-stats {
		flex-direction: column;
	}

	.abb-forum-search__form {
		max-width: 100%;
	}

	.abb-recent-topics__title {
		white-space: normal;
	}
}

/* ==========================================================================
   Members Grid — Modern Card Design
   ========================================================================== */

/* Card container overrides */
.abb-members-grid__item {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
	background: var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	transition: transform var(--abb-transition), box-shadow var(--abb-transition);
	display: flex;
	flex-direction: column;
	padding: 0;
}

.abb-members-grid__item:hover {
	transform: translateY(-4px);
	box-shadow: var(--abb-shadow-lg);
}

/* Color strip */
.abb-mgrid-strip {
	height: 48px;
	width: 100%;
	flex-shrink: 0;
	position: relative;
	overflow: hidden;
}

.abb-mgrid-strip__shape {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

/* Card body */
.abb-mgrid-body {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0 16px 20px;
	margin-top: -32px;
	text-align: center;
}

/* Avatar wrapper */
.abb-mgrid-avatar-wrap {
	position: relative;
	display: inline-block;
	margin-bottom: 10px;
}

.abb-mgrid-avatar-wrap a {
	display: block;
	text-decoration: none;
}

.abb-mgrid-avatar {
	width: 64px;
	height: 64px;
	border-radius: var(--abb-radius-full);
	object-fit: cover;
	border: 3px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
}

/* Letter fallback */
.abb-mgrid-letter {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: var(--abb-radius-full);
	border: 3px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	text-decoration: none;
}

/* Online dot */
.abb-mgrid-online {
	position: absolute;
	bottom: 4px;
	right: 2px;
	width: 14px;
	height: 14px;
	background: var(--abb-color-success);
	border: 2.5px solid var(--abb-color-bg);
	border-radius: var(--abb-radius-full);
	z-index: 1;
}

/* Name */
.abb-mgrid-name {
	display: block;
	font-size: var(--abb-font-size-base);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
	line-height: 1.3;
	margin-bottom: 2px;
}

.abb-mgrid-name:hover {
	color: var(--abb-color-primary);
}

/* Handle */
.abb-mgrid-handle {
	display: block;
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin-bottom: 6px;
}

/* Active time */
.abb-mgrid-active {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-secondary);
	margin-bottom: 10px;
}

.abb-mgrid-active-dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	background: var(--abb-color-success);
	border-radius: var(--abb-radius-full);
	flex-shrink: 0;
}

/* Action buttons footer */
.abb-mgrid-footer {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding-top: 12px;
	margin-top: auto;
	border-top: 1px solid var(--abb-color-border);
}

.abb-mgrid-btn-follow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 14px;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-primary);
	background: transparent;
	border: 1.5px solid var(--abb-color-primary);
	border-radius: var(--abb-radius-full);
	text-decoration: none;
	transition: background var(--abb-transition), color var(--abb-transition);
	white-space: nowrap;
}

.abb-mgrid-btn-follow:hover {
	background: var(--abb-color-primary);
	color: #fff;
}

.abb-mgrid-btn-follow--pending {
	border-color: var(--abb-color-text-muted);
	color: var(--abb-color-text-muted);
	cursor: default;
}

.abb-mgrid-btn-follow--pending:hover {
	background: transparent;
	color: var(--abb-color-text-muted);
}

.abb-mgrid-btn-msg {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	color: var(--abb-color-text-secondary);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-full);
	text-decoration: none;
	transition: border-color var(--abb-transition), color var(--abb-transition);
	flex-shrink: 0;
}

.abb-mgrid-btn-msg:hover {
	border-color: var(--abb-color-primary);
	color: var(--abb-color-primary);
}

.abb-mgrid-btn-msg svg {
	width: 16px;
	height: 16px;
}

/* ==========================================================================
   Groups Grid — Modern Card Design
   ========================================================================== */

/* Card container overrides */
.abb-groups-grid__item {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
	background: var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	transition: transform var(--abb-transition), box-shadow var(--abb-transition);
	display: flex;
	flex-direction: column;
	padding: 0;
}

.abb-groups-grid__item:hover {
	transform: translateY(-4px);
	box-shadow: var(--abb-shadow-lg);
}

/* Color strip */
.abb-ggrid-strip {
	height: 56px;
	width: 100%;
	flex-shrink: 0;
	position: relative;
	overflow: hidden;
}

.abb-ggrid-strip__shape {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

/* Card body */
.abb-ggrid-body {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0 16px 20px;
	margin-top: -32px;
	text-align: center;
}

/* Avatar wrapper */
.abb-ggrid-avatar-wrap {
	position: relative;
	display: inline-block;
	margin-bottom: 10px;
}

.abb-ggrid-avatar-wrap a {
	display: block;
	text-decoration: none;
}

.abb-ggrid-avatar {
	width: 64px;
	height: 64px;
	border-radius: var(--abb-radius-md);
	object-fit: cover;
	border: 3px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
}

/* Letter fallback */
.abb-ggrid-letter {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: var(--abb-radius-md);
	border: 3px solid var(--abb-color-bg);
	box-shadow: var(--abb-shadow-sm);
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	text-decoration: none;
}

/* Name */
.abb-ggrid-name {
	display: block;
	font-size: var(--abb-font-size-base);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
	line-height: 1.3;
	margin-bottom: 4px;
}

.abb-ggrid-name:hover {
	color: var(--abb-color-primary);
}

/* Privacy badge */
.abb-ggrid-badge {
	display: inline-block;
	padding: 2px 10px;
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	border-radius: var(--abb-radius-full);
	margin-bottom: 8px;
}

.abb-ggrid-badge--public {
	background: #ecfdf5;
	color: #059669;
}

.abb-ggrid-badge--private {
	background: #fef3c7;
	color: #d97706;
}

.abb-ggrid-badge--hidden {
	background: #fce7f3;
	color: #be185d;
}

/* Description */
.abb-ggrid-desc {
	font-size: var(--abb-font-size-sm);
	color: var(--abb-color-text-secondary);
	line-height: 1.5;
	margin: 0 0 8px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Active time */
.abb-ggrid-active {
	display: inline-block;
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin-bottom: 10px;
}

/* Footer */
.abb-ggrid-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	padding-top: 12px;
	margin-top: auto;
	border-top: 1px solid var(--abb-color-border);
}

/* Member stack */
.abb-ggrid-members {
	display: flex;
	align-items: center;
	gap: 8px;
}

.abb-ggrid-members {
	display: flex;
	align-items: center;
}

.abb-ggrid-stack {
	display: flex;
	align-items: center;
}

.abb-ggrid-stack-img {
	width: 28px;
	height: 28px;
	border-radius: var(--abb-radius-full);
	border: 2px solid var(--abb-color-bg);
	object-fit: cover;
	flex-shrink: 0;
}

.abb-ggrid-stack-img + .abb-ggrid-stack-img,
.abb-ggrid-stack-overflow {
	margin-left: -8px;
}

.abb-ggrid-stack-overflow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: var(--abb-radius-full);
	background: var(--abb-color-bg-subtle);
	border: 2px solid var(--abb-color-bg);
	font-size: 10px;
	font-weight: 600;
	color: var(--abb-color-text-secondary);
	flex-shrink: 0;
}

/* Join button */
.abb-ggrid-btn-join {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 14px;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-primary);
	background: transparent;
	border: 1.5px solid var(--abb-color-primary);
	border-radius: var(--abb-radius-full);
	text-decoration: none;
	transition: background var(--abb-transition), color var(--abb-transition);
	white-space: nowrap;
	margin-left: auto;
}

.abb-ggrid-btn-join:hover {
	background: var(--abb-color-primary);
	color: #fff;
}

/* Joined (disabled) */
.abb-ggrid-btn-joined {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 14px;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-text-muted);
	background: var(--abb-color-bg-subtle);
	border: 1.5px solid var(--abb-color-border);
	border-radius: var(--abb-radius-full);
	white-space: nowrap;
	margin-left: auto;
	cursor: default;
}

/* ==========================================================================
   Members / Groups Grid — Card Responsive Overrides
   ========================================================================== */

@media (max-width: 768px) {
	.abb-mgrid-body,
	.abb-ggrid-body {
		padding: 0 12px 16px;
	}

	.abb-mgrid-avatar,
	.abb-mgrid-letter {
		width: 56px;
		height: 56px;
		font-size: 1.25rem;
	}

	.abb-ggrid-avatar,
	.abb-ggrid-letter {
		width: 56px;
		height: 56px;
		font-size: 1.25rem;
	}

	.abb-mgrid-strip {
		height: 40px;
	}

	.abb-ggrid-strip {
		height: 44px;
	}

	.abb-mgrid-body,
	.abb-ggrid-body {
		margin-top: -28px;
	}
}

/* ==========================================================================
   Members Widget (Sidebar)
   ========================================================================== */

.abb-mw {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* --- List mode --- */

.abb-mw--list .abb-mw-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
}

.abb-mw--list .abb-mw-item + .abb-mw-item {
	border-top: 1px solid var(--abb-color-border);
}

.abb-mw-avatar-wrap {
	position: relative;
	flex-shrink: 0;
}

.abb-mw-img {
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.abb-mw-avatar-wrap .abb-mw-dot {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 10px;
	height: 10px;
	background: var(--abb-color-success);
	border: 2px solid var(--abb-color-bg);
	border-radius: 50%;
}

.abb-mw-info {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.abb-mw-name {
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.abb-mw-name:hover {
	color: var(--abb-color-primary);
}

.abb-mw-meta {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-mw-meta--online {
	color: var(--abb-color-success);
}

/* --- Avatars-only mode --- */

.abb-mw--avatars {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.abb-mw-avatar-item {
	position: relative;
	flex-shrink: 0;
}

.abb-mw-avatar-item .abb-mw-img {
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.abb-mw-avatar-item .abb-mw-dot {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 10px;
	height: 10px;
	background: var(--abb-color-success);
	border: 2px solid var(--abb-color-bg);
	border-radius: 50%;
}

/* ==========================================================================
   Group Members Preview
   ========================================================================== */

/* Grid / List modes */
.abb-gmp {
	list-style: none;
	margin: 0;
	padding: 0;
}

.abb-gmp--grid {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.abb-gmp--grid .abb-gmp__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
}

.abb-gmp--list .abb-gmp__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 0;
}

.abb-gmp--list .abb-gmp__item + .abb-gmp__item {
	border-top: 1px solid var(--abb-color-border);
}

.abb-gmp__avatar-wrap {
	position: relative;
	flex-shrink: 0;
}

.abb-gmp__avatar-wrap .abb-gmp__img,
.abb-gmp__avatar-wrap img {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.abb-gmp__avatar-wrap .abb-gmp__dot {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 10px;
	height: 10px;
	background: var(--abb-color-success);
	border: 2px solid var(--abb-color-bg);
	border-radius: 50%;
}

.abb-gmp__name {
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 80px;
}

.abb-gmp__name:hover {
	color: var(--abb-color-primary);
}

/* Avatars-only mode */
.abb-gmp--avatars {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.abb-gmp__avatar-item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.abb-gmp__avatar-item .abb-gmp__img {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.abb-gmp__avatar-item .abb-gmp__dot {
	position: absolute;
	bottom: 18px;
	right: 0;
	width: 10px;
	height: 10px;
	background: var(--abb-color-success);
	border: 2px solid var(--abb-color-bg);
	border-radius: 50%;
}

.abb-gmp__aname {
	font-size: 11px;
	color: var(--abb-color-text-secondary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 60px;
	text-align: center;
}

/* See All link */
.abb-gmp__see-all {
	display: block;
	text-align: right;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-primary);
	text-decoration: none;
	padding-top: 8px;
	margin-top: 8px;
	border-top: 1px solid var(--abb-color-border);
}

.abb-gmp__see-all:hover {
	color: var(--abb-color-primary-hover);
}

/* ==========================================================================
   Community Widget (Sidebar)
   ========================================================================== */

.abb-cw {
	list-style: none;
	margin: 0;
	padding: 0;
}

.abb-cw-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
}

.abb-cw-item + .abb-cw-item {
	border-top: 1px solid var(--abb-color-border);
}

.abb-cw-avatar {
	flex-shrink: 0;
	text-decoration: none;
}

.abb-cw-img {
	width: 36px;
	height: 36px;
	border-radius: 8px;
	object-fit: cover;
	display: block;
}

.abb-cw-letter {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 700;
	color: #fff;
}

.abb-cw-icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: var(--abb-color-bg-subtle);
	border-radius: 8px;
	color: var(--abb-color-primary);
}

.abb-cw-topic-icon {
	width: 18px;
	height: 18px;
}

.abb-cw-info {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.abb-cw-name {
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.abb-cw-name:hover {
	color: var(--abb-color-primary);
}

.abb-cw-meta {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-cw-replies {
	color: var(--abb-color-primary);
	font-weight: 500;
}

.abb-cw-see-all {
	display: block;
	text-align: right;
	font-size: var(--abb-font-size-xs);
	font-weight: 600;
	color: var(--abb-color-primary);
	text-decoration: none;
	padding-top: 8px;
	margin-top: 4px;
	border-top: 1px solid var(--abb-color-border);
}

.abb-cw-see-all:hover {
	color: var(--abb-color-primary-hover);
}

/* ==========================================================================
   bbPress Sidebar Widget
   ========================================================================== */

/* Topic Info rows */
.abb-bw__row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 0;
}

.abb-bw__row + .abb-bw__row {
	border-top: 1px solid var(--abb-color-border);
}

.abb-bw__icon {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--abb-color-bg-subtle);
	border-radius: 8px;
	color: var(--abb-color-primary);
}

.abb-bw__label {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	flex-shrink: 0;
	min-width: 70px;
}

.abb-bw__value {
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	margin-left: auto;
	text-align: right;
}

/* Participants grid */
.abb-bw__participants {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.abb-bw__participant {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.abb-bw__participant img {
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.abb-bw__participant .abb-bw__dot {
	position: absolute;
	top: 34px;
	right: 2px;
	width: 10px;
	height: 10px;
	background: var(--abb-color-success);
	border: 2px solid var(--abb-color-bg);
	border-radius: 50%;
}

.abb-bw__op {
	position: absolute;
	top: -4px;
	right: -4px;
	background: var(--abb-color-primary);
	color: #fff;
	font-size: 9px;
	font-weight: 700;
	padding: 1px 5px;
	border-radius: 4px;
	line-height: 1.4;
}

.abb-bw__pname {
	font-size: 11px;
	color: var(--abb-color-text-secondary);
	text-align: center;
	max-width: 60px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Related topics / forums list */
.abb-bw__rlist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.abb-bw__ritem {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 0;
}

.abb-bw__ritem + .abb-bw__ritem {
	border-top: 1px solid var(--abb-color-border);
}

.abb-bw__ricon {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--abb-color-bg-subtle);
	border-radius: 8px;
	color: var(--abb-color-primary);
}

.abb-bw__rinfo {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.abb-bw__rname {
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.abb-bw__rname:hover {
	color: var(--abb-color-primary);
}

.abb-bw__rmeta {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
	margin-top: 2px;
}

/* Active Here members */
.abb-bw--active_here .abb-bw__amember {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 0;
}

.abb-bw--active_here .abb-bw__amember + .abb-bw__amember {
	border-top: 1px solid var(--abb-color-border);
}

.abb-bw__awrap {
	position: relative;
	flex-shrink: 0;
}

.abb-bw__awrap img {
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.abb-bw__awrap .abb-bw__dot {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 10px;
	height: 10px;
	background: var(--abb-color-success);
	border: 2px solid var(--abb-color-bg);
	border-radius: 50%;
}

.abb-bw__ainfo {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.abb-bw__aname {
	font-size: var(--abb-font-size-sm);
	font-weight: 600;
	color: var(--abb-color-text);
	text-decoration: none;
}

.abb-bw__aname:hover {
	color: var(--abb-color-primary);
}

.abb-bw__astatus {
	font-size: var(--abb-font-size-xs);
	color: var(--abb-color-text-muted);
}

.abb-bw__astatus--online {
	color: var(--abb-color-success);
}

/* ==========================================================================
   Forum Action Buttons (Favorite + Subscribe)
   ========================================================================== */

.abb-fab__list {
	display: flex;
	align-items: center;
	gap: 8px;
}

.abb-fab__list--stacked {
	flex-direction: column;
	align-items: stretch;
}

a.abb-fab__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 20px;
	border-radius: 8px;
	border: 1.5px solid var(--abb-color-border);
	background: var(--abb-color-bg);
	color: var(--abb-color-text-secondary);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: all var(--abb-transition);
	white-space: nowrap;
}

a.abb-fab__btn svg {
	width: 15px;
	height: 15px;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	flex-shrink: 0;
}

a.abb-fab__btn:hover {
	border-color: var(--abb-color-primary);
	color: var(--abb-color-primary);
}

a.abb-fab__btn--active {
	border-color: var(--abb-color-primary);
	background: rgba(99, 102, 241, 0.06);
	color: var(--abb-color-primary);
}

a.abb-fab__btn--active svg {
	fill: currentColor;
}
