/**
 * BuddyPress Groups Pages Styles
 * Styles for group creation, single group, group directory
 * Works with bp-nouveau template pack
 */

/* ========================================
   Group Creation Page (bp-nouveau)
   ======================================== */

/* Main wrapper - full container width */
#buddypress.buddypress-wrap {
	max-width: var(--container-2xl, 1316px);
	margin: 40px auto 80px;
	padding: 0 24px;
	background: transparent;
}

/* Page title */
#buddypress .bp-subhead,
#buddypress h2.bp-subhead {
	font-family: var(--font-heading);
	font-size: 32px;
	font-weight: 500;
	line-height: 40px;
	color: var(--color-text);
	margin: 0 0 32px;
	text-align: center;
	text-transform: none;
}

/* Form container */
#buddypress #create-group-form {
	background: var(--color-white);
	border-radius: 16px;
	padding: 32px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* ========================================
   Steps Navigation - Stepper Design
   ======================================== */

/* Remove all default borders from bp-nouveau */
#buddypress .bp-navs,
#buddypress .bp-navs ul,
#buddypress .bp-navs ol,
#buddypress .bp-navs li,
#buddypress .bp-navs li a,
#buddypress .bp-navs li span,
#buddypress .tabbed-links,
#buddypress .tabbed-links ul,
#buddypress .tabbed-links ol,
#buddypress .tabbed-links li,
#buddypress .tabbed-links li a,
#buddypress #group-create-tabs,
#buddypress #group-create-tabs *,
#buddypress .group-create-links,
#buddypress .group-create-links * {
	border: none !important;
	border-bottom: none !important;
	box-shadow: none !important;
	outline: none !important;
}

#buddypress #group-create-tabs,
#buddypress .group-create-links {
	background: transparent !important;
	margin-bottom: 40px;
}

#buddypress #group-create-tabs .group-create-buttons,
#buddypress .group-create-links ol {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0;
	list-style: none !important;
	margin: 0;
	padding: 20px 0;
	position: relative;
}

#buddypress #group-create-tabs li,
#buddypress .group-create-links li {
	list-style: none !important;
	margin: 0;
	flex: 1;
	max-width: 160px;
	position: relative;
	text-align: center;
	background: transparent !important;
}

/* Connector line between steps */
#buddypress #group-create-tabs li:not(:last-child)::after,
#buddypress .group-create-links li:not(:last-child)::after {
	content: '' !important;
	position: absolute;
	top: 50%;
	right: -10px;
	width: 20px;
	height: 2px;
	background: var(--color-border) !important;
	transform: translateY(-50%);
	z-index: 0;
}

#buddypress #group-create-tabs li a,
#buddypress .group-create-links li a,
#buddypress #group-create-tabs li > span,
#buddypress .group-create-links li > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 8px 16px;
	font-family: var(--font-primary);
	font-weight: 500;
	font-size: 14px;
	line-height: 1;
	color: var(--color-text-muted);
	text-decoration: none !important;
	transition: all 0.2s ease;
	position: relative;
	z-index: 1;
	background: var(--color-white) !important;
	border: 2px solid var(--color-border) !important;
	border-radius: 24px;
}

/* Current step - green pill */
#buddypress #group-create-tabs li.current a,
#buddypress #group-create-tabs li.current > span,
#buddypress .group-create-links li.current a,
#buddypress .group-create-links li.current > span {
	background: var(--color-accent) !important;
	border-color: var(--color-accent) !important;
	color: var(--color-white) !important;
}

/* Completed steps (before current) */
#buddypress #group-create-tabs li:has(~ li.current)::after,
#buddypress .group-create-links li:has(~ li.current)::after {
	background: var(--color-accent) !important;
}

#buddypress #group-create-tabs li:has(~ li.current) a,
#buddypress #group-create-tabs li:has(~ li.current) > span,
#buddypress .group-create-links li:has(~ li.current) a,
#buddypress .group-create-links li:has(~ li.current) > span {
	background: var(--color-accent) !important;
	border-color: var(--color-accent) !important;
	color: var(--color-white) !important;
}

/* Hover state */
#buddypress #group-create-tabs li a:hover,
#buddypress .group-create-links li a:hover {
	border-color: var(--color-accent) !important;
	color: var(--color-text);
}

/* Remove line before button */
#buddypress #create-group-form #previous-next,
#buddypress #create-group-form .submit {
	border: none !important;
	border-top: none !important;
	margin-top: 32px;
	padding-top: 0;
	display: flex;
	gap: 16px;
	align-items: center;
	justify-content: space-between;
	width: 100%;
}

/* Navigation buttons - Back to Previous Step */
#buddypress #create-group-form #previous-next input[type="button"],
#buddypress #create-group-form #previous-next a,
#buddypress #create-group-form .submit input[type="button"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	font-family: var(--font-primary);
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	color: var(--color-text);
	background: var(--color-white);
	border: 1px solid var(--color-border) !important;
	border-radius: 10px;
	cursor: pointer;
	transition: all 0.2s ease;
	text-decoration: none;
}

#buddypress #create-group-form #previous-next input[type="button"]:hover,
#buddypress #create-group-form #previous-next a:hover,
#buddypress #create-group-form .submit input[type="button"]:hover {
	background: var(--color-bg);
	border-color: var(--color-text-muted) !important;
}

/* Navigation buttons - Next Step / Submit */
#buddypress #create-group-form #previous-next input[type="submit"],
#buddypress #create-group-form .submit input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	font-family: var(--font-primary);
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	color: var(--color-white);
	background: var(--color-accent);
	border: none !important;
	border-radius: 10px;
	cursor: pointer;
	transition: all 0.2s ease;
}

#buddypress #create-group-form #previous-next input[type="submit"]:hover,
#buddypress #create-group-form .submit input[type="submit"]:hover {
	background: var(--color-accent-hover, #7EA35D);
}

/* Upload button on avatar/cover steps */
#buddypress #avatar-upload input[type="submit"],
#buddypress #cover-image-upload input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	font-family: var(--font-primary);
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	color: var(--color-white);
	background: var(--color-accent);
	border: none !important;
	border-radius: 10px;
	cursor: pointer;
	transition: all 0.2s ease;
	box-shadow: none !important;
}

#buddypress #avatar-upload input[type="submit"]:hover,
#buddypress #cover-image-upload input[type="submit"]:hover {
	background: var(--color-accent-hover, #7EA35D);
}

/* Avatar upload nav - remove tab borders and style as pill button */
#buddypress .bp-avatar-nav,
#buddypress .bp-avatar-nav .avatar-nav-items {
	margin: 0;
	padding: 0;
	list-style: none;
	border: none !important;
	box-shadow: none !important;
	display: none !important; /* Hide avatar nav */
}

#buddypress .bp-avatar-nav .avatar-nav-item {
	list-style: none;
	border: none !important;
	box-shadow: none !important;
}

#buddypress .bp-avatar-nav .bp-avatar-nav-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 20px;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 10px;
	font-family: var(--font-primary);
	font-size: 16px;
	font-weight: 500;
	color: var(--color-text);
	text-decoration: none;
	transition: all 0.2s ease;
}

#buddypress .bp-avatar-nav .avatar-nav-item.current .bp-avatar-nav-item,
#buddypress .bp-avatar-nav .bp-avatar-nav-item:focus,
#buddypress .bp-avatar-nav .bp-avatar-nav-item:active {
	background: var(--color-accent);
	border-color: var(--color-accent);
	color: var(--color-white);
	box-shadow: none !important;
}

#buddypress .bp-avatar-nav .bp-avatar-nav-item:hover {
	border-color: var(--color-accent);
	color: var(--color-text);
}

/* ========================================
   Avatar/Cover Cropper Styles
   ======================================== */

/* Upload area - full width */
#buddypress .bp-avatar {
	width: 100%;
}

#buddypress .bp-avatar .bp-uploader-window {
	width: 100%;
}

#buddypress .bp-avatar #bp-upload-ui,
#buddypress .bp-avatar #drag-drop-area {
	width: 100%;
}

/* Cropper layout - side by side */
#buddypress #avatar-to-crop {
	display: block;
	margin: 24px 0;
}

#buddypress #avatar-to-crop > img {
	max-width: 450px;
	height: auto;
	border-radius: 8px;
}

/* Crop management panel - inline with image */
#buddypress .avatar-crop-management {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	padding: 20px;
	background: var(--color-bg);
	border-radius: 12px;
	border: 1px solid var(--color-border);
	vertical-align: top;
	margin-left: 24px;
}

/* Preview pane */
#buddypress #avatar-crop-pane {
	border-radius: 50%;
	overflow: hidden;
	border: 3px solid var(--color-accent);
	box-shadow: 0 4px 12px rgba(143, 181, 108, 0.2);
}

#buddypress #avatar-crop-pane img {
	display: block;
}

/* Crop actions */
#buddypress #avatar-crop-actions {
	display: flex;
	gap: 12px;
	margin-top: 8px;
}

/* Crop button */
#buddypress .avatar-crop-submit,
#buddypress #avatar-crop-actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	font-family: var(--font-primary);
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	color: var(--color-white);
	background: var(--color-accent);
	border: none !important;
	border-radius: 10px;
	cursor: pointer;
	transition: all 0.2s ease;
	box-shadow: none !important;
}

#buddypress .avatar-crop-submit:hover,
#buddypress #avatar-crop-actions .button:hover {
	background: var(--color-accent-hover, #7EA35D);
}

/* Jcrop holder - don't add extra styles that break it */
.jcrop-holder {
	display: inline-block !important;
	vertical-align: top;
}

/* Step content container - remove duplicate background */
#buddypress #group-create-body,
#buddypress .group-create-content {
	background: transparent;
	padding: 0;
	margin-bottom: 0;
}

/* Section title (h3 in bp-nouveau) */
#buddypress .bp-screen-title,
#buddypress h3.bp-screen-title,
#buddypress h3.creation-step-name {
	font-family: var(--font-heading);
	font-size: 22px;
	font-weight: 500;
	line-height: 32px;
	color: var(--color-text);
	margin: 0 0 24px;
	text-align: center;
}

/* Form labels */
#buddypress #group-create-body label,
#buddypress #create-group-form label {
	display: block;
	font-family: var(--font-primary);
	font-size: 16px;
	font-weight: 500;
	line-height: 20px;
	color: var(--color-text);
	margin-bottom: 8px;
}

#buddypress #group-create-body label span.required,
#buddypress #create-group-form label span.required {
	color: var(--color-error);
}

/* Text inputs */
#buddypress #group-create-body input[type="text"],
#buddypress #group-create-body input[type="email"],
#buddypress #group-create-body input[type="url"],
#buddypress #create-group-form input[type="text"],
#buddypress #create-group-form input[type="email"],
#buddypress #create-group-form input[type="url"] {
	width: 100%;
	padding: 12px 16px;
	font-family: var(--font-primary);
	font-size: 16px;
	line-height: 24px;
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	outline: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#buddypress #group-create-body input[type="text"]:focus,
#buddypress #group-create-body input[type="email"]:focus,
#buddypress #group-create-body input[type="url"]:focus,
#buddypress #create-group-form input[type="text"]:focus,
#buddypress #create-group-form input[type="email"]:focus,
#buddypress #create-group-form input[type="url"]:focus {
	border-color: var(--color-accent);
	box-shadow: 0 0 0 3px rgba(143, 181, 108, 0.15);
}

/* Textarea */
#buddypress #group-create-body textarea,
#buddypress #create-group-form textarea {
	width: 100%;
	min-height: 150px;
	padding: 12px 16px;
	font-family: var(--font-primary);
	font-size: 16px;
	line-height: 24px;
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	outline: none;
	resize: vertical;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#buddypress #group-create-body textarea:focus,
#buddypress #create-group-form textarea:focus {
	border-color: var(--color-accent);
	box-shadow: 0 0 0 3px rgba(143, 181, 108, 0.15);
}

/* Form field wrapper */
#buddypress #group-create-body .editfield,
#buddypress #create-group-form .editfield,
#buddypress #group-create-body .form-field,
#buddypress #create-group-form p {
	margin-bottom: 24px;
}

/* Radio buttons and checkboxes - Custom styling from Figma */
#buddypress #group-create-body .radio,
#buddypress #group-create-body .checkbox,
#buddypress #create-group-form .radio,
#buddypress #create-group-form .checkbox {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

#buddypress #group-create-body .radio label,
#buddypress #group-create-body .checkbox label,
#buddypress #create-group-form .radio label,
#buddypress #create-group-form .checkbox label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-weight: 400;
	cursor: pointer;
	padding: 12px 16px;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

#buddypress #group-create-body .radio label:hover,
#buddypress #group-create-body .checkbox label:hover,
#buddypress #create-group-form .radio label:hover,
#buddypress #create-group-form .checkbox label:hover {
	border-color: var(--color-accent);
}

/* Custom Radio button */
#buddypress #group-create-body input[type="radio"],
#buddypress #create-group-form input[type="radio"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	width: 20px;
	height: 20px;
	min-width: 20px;
	margin: 2px 0 0;
	border: 2px solid var(--color-border);
	border-radius: 50%;
	background: var(--color-white);
	cursor: pointer;
	transition: all 0.2s ease;
	position: relative;
}

#buddypress #group-create-body input[type="radio"]:checked,
#buddypress #create-group-form input[type="radio"]:checked {
	border-color: var(--color-accent);
	background: var(--color-white);
}

#buddypress #group-create-body input[type="radio"]:checked::after,
#buddypress #create-group-form input[type="radio"]:checked::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--color-accent);
}

#buddypress #group-create-body input[type="radio"]:focus,
#buddypress #create-group-form input[type="radio"]:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(143, 181, 108, 0.2);
}

/* Custom Checkbox - Figma design: 16x16, green when checked */
#buddypress #group-create-body input[type="checkbox"],
#buddypress #create-group-form input[type="checkbox"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	width: 18px;
	height: 18px;
	min-width: 18px;
	margin: 2px 0 0;
	border: 2px solid var(--color-border);
	border-radius: 4px;
	background: var(--color-white);
	cursor: pointer;
	transition: all 0.2s ease;
	position: relative;
}

#buddypress #group-create-body input[type="checkbox"]:checked,
#buddypress #create-group-form input[type="checkbox"]:checked {
	border-color: var(--color-accent);
	background: var(--color-accent);
}

#buddypress #group-create-body input[type="checkbox"]:checked::after,
#buddypress #create-group-form input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	top: 2px;
	left: 5px;
	width: 5px;
	height: 9px;
	border: solid var(--color-white);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

#buddypress #group-create-body input[type="checkbox"]:focus,
#buddypress #create-group-form input[type="checkbox"]:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(143, 181, 108, 0.2);
}

/* Radio/checkbox description */
#buddypress #group-create-body .radio label span,
#buddypress #create-group-form .radio label span {
	display: block;
}

#buddypress #group-create-body .radio label span:last-child,
#buddypress #create-group-form .radio label span:last-child {
	font-size: 14px;
	color: var(--color-text-muted);
	margin-top: 4px;
}

/* Submit button */
#buddypress #group-create-body input[type="submit"],
#buddypress #group-create-body button[type="submit"],
#buddypress #create-group-form input[type="submit"],
#buddypress #create-group-form button[type="submit"],
#buddypress .group-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 24px;
	font-family: var(--font-primary);
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	color: var(--color-white);
	background: var(--color-accent);
	border: none;
	border-radius: 10px;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.1s ease;
}

#buddypress #group-create-body input[type="submit"]:hover,
#buddypress #group-create-body button[type="submit"]:hover,
#buddypress #create-group-form input[type="submit"]:hover,
#buddypress #create-group-form button[type="submit"]:hover,
#buddypress .group-button:hover {
	background: var(--color-accent-hover, #7EA35D);
}

#buddypress #group-create-body input[type="submit"]:active,
#buddypress #group-create-body button[type="submit"]:active,
#buddypress #create-group-form input[type="submit"]:active,
#buddypress #create-group-form button[type="submit"]:active {
	transform: translateY(1px);
}

/* Secondary/outline button */
#buddypress .group-button.secondary,
#buddypress #previous-next a {
	background: transparent;
	color: var(--color-text);
	border: 1px solid var(--color-border);
}

#buddypress .group-button.secondary:hover,
#buddypress #previous-next a:hover {
	background: var(--color-bg);
	border-color: var(--color-text-muted);
}

/* Navigation buttons container */
#buddypress #previous-next {
	display: flex;
	gap: 16px;
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--color-border);
}

/* ========================================
   Group Settings (Privacy options)
   ======================================== */

#buddypress #group-settings-form fieldset,
#buddypress .group-settings-selections {
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 16px;
}

#buddypress #group-settings-form legend,
#buddypress .group-settings-selections legend {
	font-family: var(--font-primary);
	font-size: 18px;
	font-weight: 500;
	color: var(--color-text);
	padding: 0 8px;
}

/* ========================================
   Group Avatar/Cover Upload
   ======================================== */

#buddypress #group-create-body .avatar-upload-form,
#buddypress .group-avatar-upload {
	text-align: center;
}

#buddypress #group-create-body .avatar-upload-form img,
#buddypress .group-avatar img {
	border-radius: 50%;
	margin-bottom: 16px;
}

#buddypress .bp-avatar-nav ul,
#buddypress .avatar-nav ul {
	display: flex;
	justify-content: center;
	gap: 16px;
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
}

#buddypress .bp-avatar-nav ul li a,
#buddypress .avatar-nav ul li a {
	display: inline-block;
	padding: 8px 16px;
	font-size: 14px;
	color: var(--color-text-muted);
	text-decoration: none;
	border-radius: 6px;
	transition: background-color 0.2s ease, color 0.2s ease;
}

#buddypress .bp-avatar-nav ul li.current a,
#buddypress .avatar-nav ul li.current a {
	background: var(--color-accent);
	color: var(--color-white);
}

/* File input styling */
#buddypress input[type="file"] {
	font-family: var(--font-primary);
	font-size: 14px;
}

/* ========================================
   Group Invite Members
   ======================================== */

#buddypress #send-invite-form {
	background: var(--color-white);
	border-radius: 8px;
	padding: 24px;
}

#buddypress #invite-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 16px;
	list-style: none;
	padding: 0;
	margin: 0;
}

#buddypress #invite-list li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px;
	background: var(--color-bg);
	border-radius: 8px;
}

#buddypress #invite-list li img {
	width: 40px;
	height: 40px;
	border-radius: 50%;
}

#buddypress #invite-list li .list-title {
	font-weight: 500;
	color: var(--color-text);
}

/* ========================================
   Responsive
   ======================================== */

@media (max-width: 768px) {
	#buddypress #group-create-tabs,
	#buddypress .group-create-links {
		flex-direction: column;
	}
	
	#buddypress #group-create-tabs li a,
	#buddypress .group-create-links li a,
	#buddypress #group-create-tabs li span,
	#buddypress .group-create-links li span {
		padding: 12px 16px;
		border-bottom: none;
		border-left: 3px solid transparent;
	}
	
	#buddypress #group-create-tabs li.current a,
	#buddypress #group-create-tabs li.current span,
	#buddypress .group-create-links li.current a,
	#buddypress .group-create-links li.current span {
		border-bottom: none;
		border-left-color: var(--color-accent);
	}
	
	#buddypress #group-create-body,
	#buddypress .group-create-content {
		padding: 20px;
	}
	
	#buddypress #previous-next {
		flex-direction: column;
	}
}

/* ========================================
   Custom Template Styles (.msp-*)
   ======================================== */

/* Groups Create wrapper */
#buddypress.msp-groups-create {
	max-width: var(--container-2xl, 1316px);
	margin: 40px auto 80px;
	padding: 0 24px;
	background: transparent;
}

#buddypress.msp-groups-create .msp-page-title {
	font-family: var(--font-heading);
	font-size: 32px;
	font-weight: 500;
	line-height: 40px;
	color: var(--color-text);
	margin: 0 0 32px;
	text-align: center;
	text-transform: none;
}

/* Steps Navigation */
.msp-steps {
	background: var(--color-white);
	border-radius: 8px;
	margin-bottom: 24px;
	overflow: hidden;
}

.msp-steps__list {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	list-style-type: none;
	margin: 0;
	padding: 0;
	border-bottom: 2px solid var(--color-border);
}

.msp-steps__list li {
	margin: 0;
}

.msp-steps__list li a,
.msp-steps__list li span {
	display: block;
	padding: 16px 24px;
	font-family: var(--font-primary);
	font-weight: 500;
	font-size: 16px;
	line-height: 16px;
	color: var(--color-text-muted);
	text-decoration: none;
	border-bottom: 3px solid transparent;
	margin-bottom: -2px;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.msp-steps__list li.msp-steps__item--current a,
.msp-steps__list li.msp-steps__item--current span {
	color: var(--color-text);
	border-bottom-color: var(--color-accent);
}

.msp-steps__list li a:hover {
	color: var(--color-text);
}

.msp-steps__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 12px 16px;
	text-decoration: none;
}

.msp-steps__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	border: 2px solid var(--color-border);
	color: var(--color-text-muted);
	font-size: 13px;
	font-weight: 600;
	background: var(--color-white);
}

.msp-steps__label {
	font-size: 14px;
	font-weight: 500;
	color: var(--color-text-muted);
}

.msp-steps__item--current .msp-steps__number,
.msp-steps__item--completed .msp-steps__number {
	border-color: var(--color-accent);
	background: var(--color-accent);
	color: var(--color-white);
}

.msp-steps__item--current .msp-steps__label,
.msp-steps__item--completed .msp-steps__label {
	color: var(--color-text);
}

/* Create Group Body */
.msp-form-card {
	background: var(--color-white);
	border-radius: 8px;
	padding: 32px;
}

/* Step Content */
.msp-form-body {
	max-width: 600px;
	margin: 0 auto;
}

.msp-form-title {
	font-family: var(--font-heading);
	font-size: 26px;
	font-weight: 500;
	line-height: 32px;
	color: var(--color-text);
	margin: 0 0 32px;
	text-align: center;
}

.msp-step-desc {
	font-size: 16px;
	color: var(--color-text-muted);
	text-align: center;
	margin-bottom: 24px;
}

/* Form Fields */
.msp-form-field {
	margin-bottom: 24px;
}

.msp-form-label {
	display: block;
	font-family: var(--font-primary);
	font-size: 16px;
	font-weight: 500;
	line-height: 20px;
	color: var(--color-text);
	margin-bottom: 8px;
}

.msp-form-input {
	width: 100%;
	padding: 12px 16px;
	font-family: var(--font-primary);
	font-size: 16px;
	line-height: 24px;
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	outline: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.msp-form-input:focus {
	border-color: var(--color-accent);
	box-shadow: 0 0 0 3px rgba(143, 181, 108, 0.15);
}

.msp-form-textarea {
	width: 100%;
	min-height: 150px;
	padding: 12px 16px;
	font-family: var(--font-primary);
	font-size: 16px;
	line-height: 24px;
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	outline: none;
	resize: vertical;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.msp-form-textarea:focus {
	border-color: var(--color-accent);
	box-shadow: 0 0 0 3px rgba(143, 181, 108, 0.15);
}

/* Fieldset */
.msp-fieldset {
	border: none;
	padding: 0;
	margin: 0 0 32px;
}

.msp-fieldset legend {
	font-family: var(--font-primary);
	font-size: 18px;
	font-weight: 500;
	color: var(--color-text);
	margin-bottom: 12px;
	padding: 0;
}

.msp-fieldset__desc {
	font-size: 14px;
	color: var(--color-text-muted);
	margin: 0 0 16px;
}

/* Radio Group */
.msp-radio-group {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.msp-radio {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
	padding: 16px;
	background: var(--color-bg);
	border-radius: 8px;
	border: 1px solid var(--color-border);
	transition: border-color 0.2s ease;
}

.msp-radio:hover {
	border-color: var(--color-accent);
}

.msp-radio input[type="radio"] {
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	accent-color: var(--color-accent);
	cursor: pointer;
	flex-shrink: 0;
}

.msp-radio__label {
	flex: 1;
}

.msp-radio__label strong {
	display: block;
	font-size: 16px;
	font-weight: 500;
	color: var(--color-text);
	margin-bottom: 4px;
}

.msp-radio__desc {
	display: block;
	font-size: 14px;
	color: var(--color-text-muted);
	line-height: 1.4;
}

/* Checkbox Group */
.msp-checkbox-group {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.msp-checkbox {
	display: flex;
	align-items: center;
	gap: 12px;
	cursor: pointer;
}

.msp-checkbox input[type="checkbox"] {
	width: 20px;
	height: 20px;
	accent-color: var(--color-accent);
	cursor: pointer;
}

.msp-checkbox__label {
	font-size: 16px;
	color: var(--color-text);
}

/* Avatar Upload */
.msp-avatar-upload {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
}

.msp-avatar-upload__preview img {
	width: 150px;
	height: 150px;
	border-radius: 50%;
	object-fit: cover;
}

.msp-avatar-upload__form {
	text-align: center;
}

.msp-avatar-upload__desc {
	font-size: 16px;
	color: var(--color-text-muted);
	margin-bottom: 16px;
	max-width: 400px;
}

.msp-avatar-upload__skip {
	font-size: 14px;
	color: var(--color-text-muted);
	margin-top: 16px;
}

.msp-file-input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	overflow: hidden;
}

/* Invite Layout */
.msp-invite-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.msp-invite-list h4,
.msp-invite-selected h4 {
	font-size: 16px;
	font-weight: 500;
	color: var(--color-text);
	margin: 0 0 16px;
}

.msp-friends-checklist {
	list-style: none;
	padding: 0;
	margin: 0;
	max-height: 400px;
	overflow-y: auto;
}

.msp-friends-checklist li {
	padding: 12px;
	border-bottom: 1px solid var(--color-border);
}

.msp-selected-friends {
	list-style: none;
	padding: 0;
	margin: 0;
}

.msp-invite-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px;
	background: var(--color-bg);
	border-radius: 8px;
	margin-bottom: 8px;
}

.msp-invite-item img {
	width: 40px;
	height: 40px;
	border-radius: 50%;
}

.msp-invite-item__info {
	flex: 1;
}

.msp-invite-item__name {
	display: block;
	font-weight: 500;
	color: var(--color-text);
}

.msp-invite-item__activity {
	font-size: 12px;
	color: var(--color-text-muted);
}

.msp-invite-item__remove {
	font-size: 14px;
	color: var(--color-error);
	text-decoration: none;
}

.msp-invite-empty {
	color: var(--color-text-muted);
	font-style: italic;
}

/* Step Buttons */
.msp-step-buttons {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--color-border);
}

.msp-step-buttons .msp-btn {
	min-width: 180px;
}

/* Responsive for custom template */
@media (max-width: 768px) {
	.msp-groups-create .msp-container {
		padding: 0 16px;
	}
	
	.msp-steps__list {
		flex-direction: column;
		border-bottom: none;
	}
	
	.msp-steps__list li a,
	.msp-steps__list li span {
		border-bottom: none;
		border-left: 3px solid transparent;
	}
	
	.msp-steps__list li.msp-steps__item--current a,
	.msp-steps__list li.msp-steps__item--current span {
		border-left-color: var(--color-accent);
	}
	
	.msp-form-card {
		padding: 20px;
	}
	
	.msp-invite-layout {
		grid-template-columns: 1fr;
	}
	
	.msp-step-buttons {
		flex-direction: column;
	}
	
	.msp-step-buttons .msp-btn {
		width: 100%;
	}
}

.msp-group-home {
	max-width: 1216px;
	margin: 40px auto 80px;
	padding: 0 24px;
	font-family: var(--font-primary);
	color: var(--color-text);
}

.msp-group-home p,
.msp-group-home li,
.msp-group-home a,
.msp-group-home button,
.msp-group-home input,
.msp-group-home select,
.msp-group-home textarea {
	font-family: var(--font-primary);
}

.msp-group-banner {
	border-radius: 16px;
	padding: 28px 28px;
	background-color: var(--color-primary, #6E4F95);
	background-size: cover;
	background-position: center;
	overflow: hidden;
	position: relative;
}

.msp-group-banner::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.45) 100%);
	pointer-events: none;
}

.msp-group-banner > * {
	position: relative;
}

.msp-group-banner__user {
	display: flex;
	align-items: center;
	gap: 16px;
}

.msp-group-banner__avatar img {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	border: 3px solid rgba(255,255,255,0.9);
}

.msp-group-banner__name {
	margin: 0 0 6px;
	color: #fff;
	font-family: var(--font-heading);
	font-size: 26px;
	line-height: 1.2;
}

.msp-group-banner__role,
.msp-group-banner__role a {
	color: rgba(255,255,255,0.9);
	text-decoration: none;
	font-size: 13px;
}

.msp-group-banner__actions {
	margin-top: 10px;
}

/* Join/Leave button inside group banner: compact like site buttons */
.msp-group-banner__actions .group-button,
.msp-group-banner__actions a.group-button,
.msp-group-banner__actions button.group-button,
.msp-group-banner__actions input.group-button,
.msp-group-banner__actions input[type="submit"],
.msp-group-banner__actions button[type="submit"] {
	height: 34px;
	padding: 0 14px;
	border-radius: 10px;
	font-size: 13px;
	line-height: 34px;
	font-weight: 500;
	box-shadow: none;
}

.msp-group-banner__actions .group-button {
	background: var(--color-accent);
	color: var(--color-white);
}

.msp-group-banner__actions .group-button:hover {
	background: var(--color-accent-hover, #7EA35D);
}

.msp-group-banner__stats {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
}

.msp-group-banner__stat-label {
	color: rgba(255,255,255,0.75);
	font-size: 12px;
	margin-right: 6px;
}

.msp-group-banner__stat-value {
	color: rgba(255,255,255,0.95);
	font-weight: 600;
	font-size: 12px;
}

.msp-group-inner {
	margin-top: 18px;
}

.msp-group-nav {
	background: #FFFFFF;
	border-radius: 12px;
	padding: 8px;
	border: 1px solid #EDEDED;
	box-shadow: 0px 1px 2px 0px rgba(228, 229, 231, 0.24);
}

.msp-group-nav__tabs {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 0;
	flex-wrap: wrap;
}

.msp-group-nav__tabs a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 18px;
	border-radius: 999px;
	text-decoration: none;
	color: #A6A6A6;
	font-size: 14px;
	font-weight: 500;
	line-height: 18px;
	transition: background 0.2s ease, color 0.2s ease;
}

.msp-group-nav__tabs li.current a {
	background: var(--color-accent, #8FB56C);
	color: #FFFFFF;
}

.msp-group-nav__tabs a:hover {
	color: #303030;
	text-decoration: none;
}

.msp-group-nav__tabs li.current a:hover {
	color: #FFFFFF;
}

.msp-group-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 24px;
	margin-top: 18px;
}

.msp-group-main {
	min-width: 0;
}

.msp-group-body {
	background: var(--color-white);
	border-radius: 12px;
	padding: 18px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.msp-group-home #activity-stream,
.msp-group-home .activity-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.msp-group-home #activity-stream > li,
.msp-group-home .activity-list > li {
	list-style: none;
}

.msp-group-home .activity-list > li.msp-activity-card {
	background: #FFFFFF;
	border: 1px solid #EDEDED;
	border-radius: 12px;
	box-shadow: 0px 1px 2px 0px rgba(228, 229, 231, 0.24);
	padding: 24px;
	margin-bottom: 16px;
}

.msp-group-home .activity-list > li.msp-activity-card:last-child {
	margin-bottom: 0;
}

.msp-group-home .bp-screen-title {
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 500;
	line-height: 22px;
	text-align: center;
	margin: 0 0 16px;
}

.msp-group-sidebar {
	position: sticky;
	top: 24px;
	height: fit-content;
}

.msp-group-widget {
	background: var(--color-white);
	border-radius: 12px;
	padding: 16px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
	margin-bottom: 16px;
}

.msp-group-widget__title {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 600;
}

.msp-group-admins-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.msp-group-admin-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 0;
	border-top: 1px solid var(--color-border);
}

.msp-group-admin-item:first-child {
	border-top: none;
}

.msp-group-admin-item__avatar img {
	width: 40px;
	height: 40px;
	border-radius: 50%;
}

.msp-group-admin-item__name {
	text-decoration: none;
	color: var(--color-text);
	font-weight: 500;
	font-size: 13px;
}

.msp-group-admin-item__time {
	display: block;
	font-size: 12px;
	color: var(--color-text-muted);
}

/* ========================================
   Group Activity Stream - match /activity styles
   ======================================== */

.msp-group-home .msp-activity-card {
	padding: 24px;
	position: relative;
}

.msp-group-home .msp-activity-card__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 16px;
}

.msp-group-home .msp-activity-card__user {
	display: flex;
	align-items: center;
	gap: 12px;
}

.msp-group-home .msp-activity-card__avatar img {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid #EDEDED;
}

.msp-group-home .msp-activity-card__content {
	margin-bottom: 16px;
	font-family: var(--font-primary, 'Source Sans 3'), sans-serif;
	font-size: 16px;
	line-height: 24px;
	color: #4D4D4D;
}

.msp-group-home .msp-activity-card__content p {
	margin: 0 0 12px;
}

.msp-group-home .msp-activity-card__content p:last-child {
	margin-bottom: 0;
}

.msp-group-home .msp-activity-card__footer,
.msp-group-home .msp-activity-card__reactions,
.msp-group-home .card-article__reactions {
	overflow: visible;
}

.msp-group-home .msp-activity-card__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin-top: 12px;
}

.msp-group-home .msp-activity-react {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.msp-group-home .msp-activity-react-picker {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 34px;
	display: none;
	background: #FFFFFF;
	border: 1px solid #EDEDED;
	border-radius: 999px;
	padding: 6px;
	box-shadow: 0px 8px 24px rgba(0, 0, 0, 0.08);
	z-index: 20;
}

.msp-group-home .msp-activity-react:hover .msp-activity-react-picker {
	display: flex;
	gap: 4px;
}

.msp-group-home .msp-activity-react-picker__item {
	width: 32px;
	height: 32px;
	border-radius: 999px;
	border: none;
	background: transparent;
	cursor: pointer;
	font-size: 18px;
	line-height: 1;
}

.msp-group-home .msp-activity-react-picker__item:hover {
	background: #F6F6F6;
}

.msp-group-home .msp-activity-card__comments {
	display: none;
	margin-top: 12px;
}

.msp-group-home .msp-activity-card__comments.is-open {
	display: block;
}

/* Group post form (if our custom msp form is rendered) */
.msp-group-home .msp-post-form {
	background: #FFFFFF;
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0px 1px 2px 0px rgba(228, 229, 231, 0.24);
	margin-bottom: 16px;
}

.msp-group-home .msp-post-form form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.msp-group-home .msp-post-form__textarea {
	width: 100%;
	min-height: 80px;
	padding: 16px;
	border: 1px solid #DBDBDB;
	border-radius: 8px;
	font-family: var(--font-primary);
	font-size: 14px;
	line-height: 20px;
	color: var(--color-text);
	background: #FFFFFF;
}

.msp-group-home .msp-post-form__textarea::placeholder {
	color: var(--color-text-muted);
}

.msp-group-home .msp-post-form__textarea:focus {
	outline: none;
	border-color: var(--color-accent);
	box-shadow: 0 0 0 3px rgba(143, 181, 108, 0.15);
}

.msp-group-home .msp-post-form__submit {
	height: 44px;
	padding: 0 16px;
	border-radius: 10px;
	border: none;
	background: var(--color-accent);
	color: var(--color-white);
	font-family: var(--font-primary);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.msp-group-home .msp-post-form__submit:hover {
	background: var(--color-accent-hover, #7EA35D);
}

/* ========================================
   Group Forum (bbPress) - layout fixes
   ======================================== */

.msp-group-home .msp-group-body {
	font-family: var(--font-primary);
}

.msp-group-home .msp-group-body ul,
.msp-group-home .msp-group-body ol {
	list-style: none;
	padding-left: 0;
}

.msp-group-home .msp-group-body a {
	color: var(--color-text);
}

.msp-group-home .msp-group-body a:hover {
	color: var(--color-accent);
}

.msp-group-home .msp-group-body .bbp-breadcrumb,
.msp-group-home .msp-group-body .bbp-pagination {
	font-family: var(--font-primary);
	font-size: 13px;
	color: var(--color-text-muted);
}

.msp-group-home .msp-group-body #bbpress-forums {
	width: 100%;
	max-width: 100%;
}

.msp-group-home .msp-group-body #bbpress-forums .bbp-forums,
.msp-group-home .msp-group-body #bbpress-forums .bbp-topics,
.msp-group-home .msp-group-body #bbpress-forums .bbp-replies {
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
}

.msp-group-home .msp-group-body #bbpress-forums li.bbp-header,
.msp-group-home .msp-group-body #bbpress-forums li.bbp-footer {
	background: transparent;
	border: none;
	padding: 0;
}

.msp-group-home .msp-group-body #bbpress-forums ul.bbp-topics,
.msp-group-home .msp-group-body #bbpress-forums ul.bbp-forums,
.msp-group-home .msp-group-body #bbpress-forums ul.bbp-replies {
	margin: 0;
	padding: 0;
}

.msp-group-home .msp-group-body #bbpress-forums li.bbp-body {
	margin-top: 12px;
}

.msp-group-home .msp-group-body #bbpress-forums li.bbp-body ul {
	background: #FFFFFF;
	border: 1px solid #EDEDED;
	border-radius: 12px;
	overflow: hidden;
}

.msp-group-home .msp-group-body #bbpress-forums li.bbp-body ul > li {
	padding: 14px 16px;
	border-top: 1px solid #F0F0F0;
}

.msp-group-home .msp-group-body #bbpress-forums li.bbp-body ul > li:first-child {
	border-top: none;
}

.msp-group-home .msp-group-body #bbpress-forums .bbp-topic-title a,
.msp-group-home .msp-group-body #bbpress-forums .bbp-forum-title a {
	font-family: var(--font-primary);
	font-weight: 600;
	font-size: 14px;
	line-height: 20px;
}

.msp-group-home .msp-group-body #bbpress-forums .bbp-topic-meta,
.msp-group-home .msp-group-body #bbpress-forums .bbp-topic-started-by,
.msp-group-home .msp-group-body #bbpress-forums .bbp-topic-started-in {
	font-size: 12px;
	color: var(--color-text-muted);
}

.msp-group-home .msp-group-body #bbpress-forums fieldset {
	border: none;
	padding: 0;
	margin: 0;
}

.msp-group-home .msp-group-body #bbpress-forums input[type="text"],
.msp-group-home .msp-group-body #bbpress-forums input[type="email"],
.msp-group-home .msp-group-body #bbpress-forums textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #DBDBDB;
	border-radius: 8px;
	font-family: var(--font-primary);
	font-size: 14px;
}

.msp-group-home .msp-group-body #bbpress-forums input[type="submit"],
.msp-group-home .msp-group-body #bbpress-forums button[type="submit"] {
	height: 40px;
	padding: 0 16px;
	border-radius: 10px;
	border: none;
	background: var(--color-accent);
	color: var(--color-white);
	font-family: var(--font-primary);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.msp-group-home .msp-group-body #bbpress-forums input[type="submit"]:hover,
.msp-group-home .msp-group-body #bbpress-forums button[type="submit"]:hover {
	background: var(--color-accent-hover, #7EA35D);
}

@media (max-width: 1024px) {
	.msp-group-layout {
		grid-template-columns: 1fr;
	}

	.msp-group-sidebar {
		position: static;
	}
}

/* ========================================
   Groups Directory - Banner & Grid
   ======================================== */

.msp-groups-directory {
	max-width: 1216px;
	margin: 0 auto;
	padding: 40px 24px 80px;
}

/* Banner Section */
.msp-groups-banner {
	background: var(--color-primary, #6E4F95);
	border-radius: 16px;
	padding: 32px 24px;
	margin-bottom: 40px;
	overflow: hidden;
}

.msp-groups-banner__content {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 32px;
}

.msp-groups-banner__text {
	flex: 0 1 auto;
	max-width: 500px;
	text-align: left;
}

.msp-groups-banner__title {
	font-family: var(--font-accent, 'Freehand521 BT', cursive);
	font-size: 28px;
	font-weight: 400;
	line-height: 1.2;
	color: var(--color-white);
	margin: 0 0 12px;
}

.msp-groups-banner__description {
	font-family: var(--font-primary);
	font-size: 14px;
	line-height: 1.5;
	color: var(--color-white);
	margin: 0 0 4px;
	opacity: 0.9;
}

.msp-groups-banner__description:last-child {
	margin-bottom: 0;
}

.msp-groups-banner__illustration {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.msp-groups-banner__illustration--left {
	width: 120px;
}

.msp-groups-banner__illustration--right {
	width: 360px;
}

.msp-groups-banner__illustration img {
	width: 100%;
	height: auto;
	display: block;
}

/* Groups Content */
.msp-groups-content {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.msp-groups-content__header {
	display: flex;
	justify-content: flex-start;
}

.msp-groups-content__header .msp-btn {
	height: 44px;
	padding: 0 24px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 500;
	background-color: var(--color-accent);
	color: #FFF;
	display: flex;
	align-items: center;
}

/* Filters Bar - Hidden */
.msp-groups-filters,
.msp-groups-grid .select-arrow,
.msp-groups-content > .select-arrow,
#subnav-filters {
	display: none !important;
}

.msp-groups-filters #subnav-filters {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	gap: 16px;
	flex-wrap: wrap;
}

.msp-groups-filters .subnav-search {
	flex: 1;
	min-width: 200px;
	max-width: 400px;
}

.msp-groups-filters .bp-dir-search-form {
	display: flex;
	align-items: center;
}

.msp-groups-filters .bp-dir-search-form input[type="search"] {
	flex: 1;
	padding: 12px 16px;
	border: 1px solid var(--color-border, #DBDBDB);
	border-right: none;
	border-radius: 8px 0 0 8px;
	font-family: var(--font-primary);
	font-size: 16px;
	background: var(--color-white);
	color: var(--color-text);
	min-width: 180px;
}

.msp-groups-filters .bp-dir-search-form input[type="search"]:focus {
	outline: none;
	border-color: var(--color-accent, #8FB56C);
}

.msp-groups-filters .bp-dir-search-form input[type="search"]::placeholder {
	color: var(--color-text-muted, #A6A6A6);
}

.msp-groups-filters .nouveau-search-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px 16px;
	background: var(--color-accent, #8FB56C);
	color: var(--color-white);
	border: 1px solid var(--color-accent, #8FB56C);
	border-radius: 0 8px 8px 0;
	cursor: pointer;
	transition: background 0.2s ease;
}

.msp-groups-filters .nouveau-search-submit:hover {
	background: #7EA35D;
}

.msp-groups-filters .nouveau-search-submit .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
}

.msp-groups-filters .nouveau-search-submit .bp-screen-reader-text {
	display: none;
}

/* Order By Filter */
.msp-groups-filters #comp-filters {
	display: flex;
	align-items: center;
	gap: 8px;
}

.msp-groups-filters .filter label {
	font-family: var(--font-primary);
	font-size: 16px;
	color: var(--color-text-muted, #A6A6A6);
}

.msp-groups-filters .select-wrap {
	position: relative;
}

.msp-groups-filters .select-wrap select {
	padding: 12px 40px 12px 16px;
	border: 1px solid var(--color-border, #DBDBDB);
	border-radius: 8px;
	font-family: var(--font-primary);
	font-size: 16px;
	background: var(--color-white);
	color: var(--color-text);
	appearance: none;
	cursor: pointer;
	min-width: 160px;
}

.msp-groups-filters .select-wrap select:focus {
	outline: none;
	border-color: var(--color-accent, #8FB56C);
}

.msp-groups-filters .select-arrow {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	color: var(--color-text-muted, #A6A6A6);
	font-size: 12px;
}

/* Groups Grid */
.msp-groups-grid {
	min-height: 200px;
}

/* Breakpoints: 992px+ 3 cols, 768–991px 2 cols, <768px 1 col */
.msp-groups-list,
#buddypress .msp-groups-list,
#groups-list.msp-groups-list {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Group Card */
.msp-group-card,
#buddypress .msp-group-card,
#groups-list .msp-group-card {
	background: var(--color-white) !important;
	border-radius: 16px !important;
	overflow: hidden !important;
	box-shadow: 0 1px 2px rgba(228, 229, 231, 0.24) !important;
	transition: box-shadow 0.2s ease, transform 0.2s ease !important;
	display: flex !important;
	flex-direction: column !important;
	border: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.msp-group-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	transform: translateY(-2px);
}

/* Card Cover */
.msp-group-card__cover {
	height: 120px;
	overflow: hidden;
	position: relative;
}

.msp-group-card__cover-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.msp-group-card__cover-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #8FB56C 0%, #6E4F95 50%, #F5A623 100%);
}

/* Card Avatar */
.msp-group-card__avatar {
	display: flex;
	justify-content: center;
	margin-top: -40px;
	position: relative;
	z-index: 1;
}

.msp-group-card__avatar a {
	display: block;
}

.msp-group-card__avatar img {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	border: 4px solid var(--color-white);
	object-fit: cover;
	background: var(--color-white);
}

/* Card Content */
.msp-group-card__content {
	padding: 16px 20px 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	flex: 1;
	min-width: 0;
}

.msp-group-card__title {
	font-family: var(--font-primary);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.3;
	margin: 0 0 8px;
	width: 100%;
	word-wrap: break-word;
	overflow-wrap: break-word;
	word-break: break-word;
}

.msp-group-card__title a {
	color: var(--color-text);
	text-decoration: none;
}

.msp-group-card__title a:hover {
	color: var(--color-primary, #6E4F95);
}

/* Group Type Badge */
.msp-group-card__type {
	display: inline-block;
	padding: 4px 12px;
	font-family: var(--font-primary);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.2;
	border-radius: 20px;
	margin-bottom: 16px;
}

.msp-group-card__type--public {
	background: rgba(143, 181, 108, 0.15);
	color: #6D9250;
}

.msp-group-card__type--private {
	background: rgba(110, 79, 149, 0.15);
	color: var(--color-primary, #6E4F95);
}

.msp-group-card__type--hidden {
	background: rgba(166, 166, 166, 0.15);
	color: #878787;
}

/* Members Avatars */
.msp-group-card__members {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 16px;
}

/* Аватарки участников - для span обёрток */
span.msp-group-card__member-avatar {
	display: inline-block;
	margin-left: -8px;
	line-height: 0;
}

span.msp-group-card__member-avatar:first-child {
	margin-left: 0;
}

/* Аватарки участников - для img внутри span */
span.msp-group-card__member-avatar img,
span.msp-group-card__member-avatar .avatar {
	width: 32px !important;
	height: 32px !important;
	border-radius: 50%;
	border: 2px solid var(--color-white);
	object-fit: cover;
	display: block;
}

/* Аватарки участников - для img с классом напрямую (из functions.php) */
img.msp-group-card__member-avatar {
	width: 32px !important;
	height: 32px !important;
	border-radius: 50%;
	border: 2px solid var(--color-white);
	object-fit: cover;
	display: inline-block;
	margin-left: -8px;
}

img.msp-group-card__member-avatar:first-child {
	margin-left: 0;
}

.msp-group-card__member-more {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--color-accent, #8FB56C);
	color: var(--color-white);
	font-size: 14px;
	font-weight: 500;
	margin-left: -8px;
	border: 2px solid var(--color-white);
}

/* Stats - vertical divider between stats, no top border */
.msp-group-card__stats {
	display: flex;
	justify-content: center;
	gap: 0;
	width: 100%;
	padding-top: 16px;
	margin-top: auto;
}

.msp-group-card__stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 0 24px;
	min-width: 0;
}

.msp-group-card__stat-value {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 100%;
}

.msp-group-card__stat-label {
	max-width: 100%;
	text-align: center;
}

.msp-group-card__stat:first-child {
	border-right: 1px solid var(--color-border, #DBDBDB);
}

.msp-group-card__stat-value {
	font-family: var(--font-primary);
	font-size: 18px;
	font-weight: 500;
	color: var(--color-text);
}

.msp-group-card__stat-label {
	font-family: var(--font-primary);
	font-size: 14px;
	font-weight: 400;
	color: var(--color-text-muted, #A6A6A6);
}

/* Loader */
.msp-groups-loader {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 200px;
	color: var(--color-text-muted, #A6A6A6);
}

/* Hide default BuddyPress pagination text */
.msp-groups-grid .bp-pagination,
.msp-groups-grid #pag-top,
.msp-groups-grid #pag-bottom,
.msp-groups-grid .pag-count {
	display: none !important;
}

/* ========================================
   Groups Directory - Responsive
   Breakpoints: 992px, 768px, 480px (theme-aligned)
   ======================================== */

@media (max-width: 992px) {
	.msp-groups-banner__content {
		flex-direction: column;
		text-align: center;
	}
	.msp-groups-banner__text {
		max-width: 100%;
	}
}

@media (max-width: 991px) {
	.msp-groups-list,
	#buddypress .msp-groups-list,
	#groups-list.msp-groups-list {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 20px !important;
	}
}

@media (max-width: 767.98px) {
	.msp-groups-directory {
		padding: var(--spacing-6) var(--spacing-4) 60px;
		max-width: 100%;
	}
	
	.msp-groups-content {
		gap: var(--spacing-6);
	}
	
	.msp-groups-banner {
		padding: var(--spacing-6);
		margin-bottom: var(--spacing-6);
		border-radius: 12px;
	}
	
	.msp-groups-banner__content {
		flex-direction: column;
		text-align: center;
	}
	
	.msp-groups-banner__text {
		max-width: 100%;
	}
	
	.msp-groups-banner__title {
		font-size: var(--font-size-h3, 26px);
		line-height: var(--line-height-lg, 32px);
	}
	
	.msp-groups-banner__description {
		font-size: var(--font-size-xs, 14px);
		line-height: 1.5;
	}
	
	.msp-groups-banner__illustration--left {
		display: none;
	}
	
	.msp-groups-banner__illustration--right {
		width: 180px;
	}
	
	.msp-groups-banner__text {
		text-align: center;
	}
	
	.msp-groups-list,
	#buddypress .msp-groups-list,
	#groups-list.msp-groups-list {
		grid-template-columns: 1fr !important;
		gap: var(--spacing-4) !important;
	}
	
	.msp-group-card__cover {
		height: 100px;
	}
	
	.msp-group-card__avatar {
		margin-top: -32px;
	}
	
	.msp-group-card__avatar img {
		width: 64px;
		height: 64px;
		border-width: 3px;
	}
	
	.msp-group-card__content {
		padding: var(--spacing-3) var(--spacing-4) var(--spacing-5);
	}
	
	.msp-group-card__title {
		font-size: var(--font-size-sm, 16px);
		line-height: 1.25;
	}
	
	.msp-group-card__type {
		font-size: var(--font-size-xs, 14px);
		padding: 4px 10px;
		margin-bottom: var(--spacing-3);
	}
	
	.msp-group-card__members {
		margin-bottom: var(--spacing-3);
	}
	
	.msp-group-card__stats {
		padding-top: var(--spacing-3);
		gap: 0;
	}
	
	.msp-group-card__stat {
		padding: 0 var(--spacing-4);
	}
	
	.msp-group-card__stat-value {
		font-size: var(--font-size-sm, 16px);
	}
	
	.msp-group-card__stat-label {
		font-size: var(--font-size-xs, 14px);
	}
}

@media (max-width: 479.98px) {
	.msp-groups-directory {
		padding: var(--spacing-4) var(--spacing-3) 48px;
	}
	
	.msp-groups-banner {
		padding: var(--spacing-4);
		margin-bottom: var(--spacing-5);
	}
	
	.msp-groups-banner__title {
		font-size: 22px;
		line-height: 28px;
	}
	
	.msp-groups-list,
	#buddypress .msp-groups-list,
	#groups-list.msp-groups-list {
		gap: var(--spacing-3) !important;
	}
	
	.msp-group-card__content {
		padding: var(--spacing-3) var(--spacing-3) var(--spacing-4);
	}
	
	.msp-group-card__stat {
		padding: 0 var(--spacing-3);
	}
}
