/**
 * Bfriends Partner Portal - Modern Enterprise Styling
 * Full-featured portal design with modern UX/UI
 * Matches bfriendscharity.co.uk design system
 * 
 * IMPORTANT: Uses !important flags to override theme styles (Elementor/Hello Elementor)
 * High specificity selectors ensure portal styling takes precedence
 * 
 * CRITICAL: This CSS must load AFTER theme styles - enqueued with priority 999
 */

/* ============================================
   CRITICAL OVERRIDES - Force Portal Styling
   Override theme global.css and other theme styles
   ============================================ */
.bfpp-container,
.bfpp-container *,
body .bfpp-container,
body .bfpp-container * {
	box-sizing: border-box !important;
}

/* Override theme link styles */
.bfpp-container a,
body .bfpp-container a {
	text-decoration: none !important;
}

.bfpp-container a.bfpp-button,
body .bfpp-container a.bfpp-button {
	text-decoration: none !important;
	text-decoration-line: none !important;
	border-bottom: none !important;
	text-shadow: none !important;
}

/* Override theme button styles */
.bfpp-container button,
.bfpp-container input[type="submit"],
.bfpp-container input[type="button"],
body .bfpp-container button,
body .bfpp-container input[type="submit"],
body .bfpp-container input[type="button"] {
	font-family: 'Nunito', 'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif !important;
}

/* Override theme form styles */
.bfpp-container input,
.bfpp-container select,
.bfpp-container textarea,
body .bfpp-container input,
body .bfpp-container select,
body .bfpp-container textarea {
	font-family: 'Nunito', 'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif !important;
}

/* Override theme table styles */
.bfpp-container table,
body .bfpp-container table {
	border-collapse: separate !important;
	border-spacing: 0 !important;
}

/* Override theme heading styles */
.bfpp-container h1,
.bfpp-container h2,
.bfpp-container h3,
.bfpp-container h4,
body .bfpp-container h1,
body .bfpp-container h2,
body .bfpp-container h3,
body .bfpp-container h4 {
	font-family: 'Nunito', 'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	margin-top: 0 !important;
}

/* Override theme paragraph styles */
.bfpp-container p,
body .bfpp-container p {
	margin-bottom: 1em !important;
	line-height: 1.6 !important;
}

/* ============================================
   Hide WordPress Page Title on Portal Pages
   ============================================ */
body:has(.bfpp-container) .page-content,
body:has(.bfpp-container) .site-content,
body:has(.bfpp-container) .content-area,
body:has(.bfpp-container) .entry-content,
body.bfpp-portal-page .page-content,
body.bfpp-portal-page .site-content,
body.bfpp-portal-page .content-area,
body.bfpp-portal-page .entry-content {
	max-width: 100% !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

body:has(.bfpp-container) .page-content .bfpp-container,
body.bfpp-portal-page .page-content .bfpp-container {
	max-width: 100% !important;
	width: 100% !important;
	margin: 0 auto !important;
}

body:has(.bfpp-container) .entry-title,
body:has(.bfpp-container) .page-title,
body:has(.bfpp-container) h1.entry-title,
body:has(.bfpp-container) h1.page-title,
body:has(.bfpp-container) .post-title,
body:has(.bfpp-container) .wp-block-post-title,
body:has(.bfpp-container) .entry-header,
body:has(.bfpp-container) .page-header,
body:has(.bfpp-container) .post-header,
body:has(.bfpp-container) article .entry-title,
body:has(.bfpp-container) article h1.entry-title,
body:has(.bfpp-container) .site-content .entry-title,
body:has(.bfpp-container) .site-content h1,
body:has(.bfpp-container) .content-area .entry-title,
body:has(.bfpp-container) .content-area h1,
body:has(.bfpp-container) .entry-header h1,
body:has(.bfpp-container) .page-header h1,
body:has(.bfpp-container) .post-header h1,
body:has(.bfpp-container) .entry-header .entry-title,
body:has(.bfpp-container) .page-header .page-title,
body:has(.bfpp-container) h1:first-of-type,
body:has(.bfpp-container) .page h1,
body:has(.bfpp-container) .single h1,
body:has(.bfpp-container) .post h1,
body.bfpp-portal-page .entry-title,
body.bfpp-portal-page .page-title,
body.bfpp-portal-page h1.entry-title,
body.bfpp-portal-page h1.page-title,
body.bfpp-portal-page .post-title,
body.bfpp-portal-page .wp-block-post-title,
body.bfpp-portal-page .entry-header,
body.bfpp-portal-page .page-header,
body.bfpp-portal-page .post-header,
body.bfpp-portal-page article h1,
body.bfpp-portal-page .site-content h1,
body.bfpp-portal-page .content-area h1,
body.bfpp-portal-page h1:first-of-type,
body:has(.bfpp-container) .elementor-page-title,
body:has(.bfpp-container) .elementor-heading-title,
body:has(.bfpp-container) .elementor-widget-heading h1,
body:has(.bfpp-container) .elementor-widget-heading h2.elementor-heading-title,
body.bfpp-portal-page .elementor-page-title,
body.bfpp-portal-page .elementor-heading-title,
body.bfpp-portal-page .elementor-widget-heading h1,
body.bfpp-portal-page .elementor-widget-heading h2.elementor-heading-title {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	width: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
}

/* Additional title hiding for common theme patterns */
body:has(.bfpp-container) .site-title,
body:has(.bfpp-container) .site-description,
body:has(.bfpp-container) .page-header-title,
body:has(.bfpp-container) .entry-header-title,
body.bfpp-portal-page .site-title,
body.bfpp-portal-page .site-description,
body.bfpp-portal-page .page-header-title,
body.bfpp-portal-page .entry-header-title {
	display: none !important;
}

/* Hide .page-header .entry-title specifically (common theme pattern) */
body:has(.bfpp-container) .page-header .entry-title,
body:has(.bfpp-container) .page-header h1.entry-title,
body:has(.bfpp-container) .page-header h1,
body.bfpp-portal-page .page-header .entry-title,
body.bfpp-portal-page .page-header h1.entry-title,
body.bfpp-portal-page .page-header h1,
/* Target page-header that appears before bfpp-container */
body:has(.bfpp-container) .page-content .page-header,
body:has(.bfpp-container) .site-main .page-header,
body:has(.bfpp-container) .content-area .page-header,
body.bfpp-portal-page .page-content .page-header,
body.bfpp-portal-page .site-main .page-header,
body.bfpp-portal-page .content-area .page-header {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	width: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
}

/* Hide entire .page-header when it only contains a title */
body:has(.bfpp-container) .page-header:has(.entry-title):not(:has(.bfpp-container)),
body.bfpp-portal-page .page-header:has(.entry-title):not(:has(.bfpp-container)),
/* Hide page-header in page-content/site-main when bfpp-container is present */
body:has(.bfpp-container) .page-content > .page-header,
body:has(.bfpp-container) .site-main > .page-header,
body:has(.bfpp-container) .content-area > .page-header,
body.bfpp-portal-page .page-content > .page-header,
body.bfpp-portal-page .site-main > .page-header,
body.bfpp-portal-page .content-area > .page-header,
/* ULTRA-AGGRESSIVE: Hide page-header that appears as sibling or parent of bfpp-container */
.site-main .page-header:has(.entry-title),
.page-content .page-header:has(.entry-title),
.content-area .page-header:has(.entry-title),
.site-main > .page-header,
.page-content > .page-header,
.content-area > .page-header,
/* Hide page-header when bfpp-container exists anywhere on page */
body:has(.bfpp-container) .site-main .page-header,
body:has(.bfpp-container) .page-content .page-header,
body:has(.bfpp-container) .content-area .page-header,
body.bfpp-portal-page .site-main .page-header,
body.bfpp-portal-page .page-content .page-header,
body.bfpp-portal-page .content-area .page-header {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	position: absolute !important;
	left: -9999px !important;
	opacity: 0 !important;
}

/* NUCLEAR OPTION: Hide ALL page-header elements when bfpp-container exists (for themes that don't support :has()) */
body.bfpp-portal-page .site-main .page-header,
body.bfpp-portal-page .page-content .page-header,
body.bfpp-portal-page .content-area .page-header,
body.bfpp-portal-page #content .page-header,
body.bfpp-portal-page main .page-header,
/* Direct sibling selectors - if page-content has bfpp-container, hide its sibling page-header */
.page-content:has(.bfpp-container) ~ .page-header,
.site-main:has(.bfpp-container) > .page-header,
#content:has(.bfpp-container) > .page-header,
main:has(.bfpp-container) > .page-header {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	position: absolute !important;
	left: -9999px !important;
	opacity: 0 !important;
	font-size: 0 !important;
	line-height: 0 !important;
}

/* Hide duplicate titles when viewing request detail on requests list page */
body:has(.bfpp-request-detail) .bfpp-page-header h2:first-of-type,
body.bfpp-portal-page:has(.bfpp-request-detail) .bfpp-page-header h2:first-of-type,
body:has(.bfpp-request-detail) .bfpp-section .bfpp-page-header h2,
body.bfpp-portal-page:has(.bfpp-request-detail) .bfpp-section .bfpp-page-header h2,
body:has(.bfpp-request-detail) .bfpp-container .bfpp-page-header h2,
body.bfpp-portal-page:has(.bfpp-request-detail) .bfpp-container .bfpp-page-header h2 {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
}

/* Hide any duplicate "Requests" or "Requests List" titles when viewing request detail */
body:has(.bfpp-request-detail) .bfpp-section:has(.bfpp-request-detail) .bfpp-page-header,
body.bfpp-portal-page:has(.bfpp-request-detail) .bfpp-section:has(.bfpp-request-detail) .bfpp-page-header {
	display: none !important;
}

/* Hide WordPress page title when viewing request detail - this is the "Requests List" title from the page */
/* The page title appears as an h2 before the request detail content */
/* Target: h2 that is the first child of the first section, but NOT the request title h2 */
/* We need to hide any h2 that comes before .bfpp-request-detail in the same section */
body:has(.bfpp-request-detail) .bfpp-container > .bfpp-section:first-child > h2:first-of-type:not(.bfpp-request-detail h2):not(.bfpp-page-header h2),
body.bfpp-portal-page:has(.bfpp-request-detail) .bfpp-container > .bfpp-section:first-child > h2:first-of-type:not(.bfpp-request-detail h2):not(.bfpp-page-header h2),
body:has(.bfpp-request-detail) .bfpp-section:has(.bfpp-request-detail) > h2:first-of-type:not(.bfpp-request-detail h2):not(.bfpp-page-header h2),
body.bfpp-portal-page:has(.bfpp-request-detail) .bfpp-section:has(.bfpp-request-detail) > h2:first-of-type:not(.bfpp-request-detail h2):not(.bfpp-page-header h2) {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
}

/* More aggressive hiding for any h1 that might be the page title when viewing request detail */
body:has(.bfpp-request-detail) .bfpp-container > h1:first-of-type,
body.bfpp-portal-page:has(.bfpp-request-detail) .bfpp-container > h1:first-of-type,
body:has(.bfpp-request-detail) .bfpp-section > h1:first-of-type:not(.bfpp-request-detail h1),
body.bfpp-portal-page:has(.bfpp-request-detail) .bfpp-section > h1:first-of-type:not(.bfpp-request-detail h1) {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
}

/* ============================================
   CSS Custom Properties (Brand Colors)
   ============================================ */
:root {
	--bfpp-purple: #9b51e0;
	--bfpp-purple-dark: #7a3fc7;
	--bfpp-purple-light: #f3e5f5;
	--bfpp-purple-gradient: linear-gradient(135deg, #9b51e0 0%, #7a3fc7 100%);
	--bfpp-orange: #ff6900;
	--bfpp-orange-dark: #d99d11;
	--bfpp-orange-light: #fff3e0;
	--bfpp-orange-gradient: linear-gradient(135deg, #ff6900 0%, #d99d11 100%);
	--bfpp-amber: #fcb900;
	--bfpp-green: #00d084;
	--bfpp-green-dark: #00b875;
	--bfpp-green-light: #e8f5e9;
	--bfpp-green-gradient: linear-gradient(135deg, #00d084 0%, #00b875 100%);
	--bfpp-red: #cf2e2e;
	--bfpp-red-dark: #b02626;
	--bfpp-red-light: #ffebee;
	--bfpp-red-gradient: linear-gradient(135deg, #cf2e2e 0%, #b02626 100%);
	--bfpp-blue: #0693e3;
	--bfpp-blue-light: #e3f2fd;
	--bfpp-gray: #32373c;
	--bfpp-gray-light: #f8f9fa;
	--bfpp-gray-lighter: #f5f5f5;
	--bfpp-gray-border: #e0e0e0;
	--bfpp-gray-text: #333333;
	--bfpp-gray-text-light: #666666;
	--bfpp-white: #ffffff;
	--bfpp-shadow: rgba(0, 0, 0, 0.08);
	--bfpp-shadow-md: rgba(0, 0, 0, 0.12);
	--bfpp-shadow-lg: rgba(0, 0, 0, 0.16);
	--bfpp-shadow-hover: rgba(0, 0, 0, 0.2);
	--bfpp-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	--bfpp-transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
	--bfpp-border-radius: 12px;
	--bfpp-border-radius-small: 6px;
	--bfpp-border-radius-pill: 24px;
	--bfpp-background: #fafbfc;
}

/* ============================================
   Typography - Modern Portal Styling
   ============================================ */
.bfpp-container {
	font-family: 'Nunito', 'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif !important;
	color: var(--bfpp-gray-text) !important;
	line-height: 1.6 !important;
	max-width: 1400px !important;
	margin: 0 auto !important;
	padding: clamp(1.25rem, 3vw, 2.5rem) clamp(0.75rem, 2vw, 1.5rem) !important;
	background: linear-gradient(to bottom, var(--bfpp-background) 0%, var(--bfpp-white) 100%) !important;
	min-height: 100vh !important;
}

.bfpp-container h1,
.bfpp-container h2 {
	color: var(--bfpp-purple) !important;
	font-weight: 700 !important;
	margin-bottom: 0.75em !important;
	line-height: 1.3 !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
}

.bfpp-container h2 {
	font-size: 2em !important;
}

.bfpp-container h3 {
	color: var(--bfpp-gray) !important;
	font-weight: 600 !important;
	font-size: 1.5em !important;
	margin-bottom: 0.75em !important;
	margin-top: 1.5em !important;
	line-height: 1.4 !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
}

.bfpp-container h4 {
	color: var(--bfpp-gray) !important;
	font-weight: 600 !important;
	font-size: 1.25em !important;
	margin-bottom: 0.5em !important;
	line-height: 1.4 !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
}

.bfpp-container p {
	margin-bottom: 1em !important;
	color: var(--bfpp-gray-text) !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
}

.bfpp-container strong {
	color: var(--bfpp-gray) !important;
	font-weight: 600 !important;
}

.bfpp-page-header .bfpp-form-actions {
	justify-content: space-between;
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.bfpp-form-actions--end {
	justify-content: flex-end;
}

/* ============================================
   Auth (Login/Register) Cards
   ============================================ */
.bfpp-login-container,
.bfpp-register-container {
	max-width: clamp(20rem, 92vw, 48rem);
	width: 100%;
	margin: clamp(1.5rem, 4vw, 2.5rem) auto;
	padding: 0;
}

.bfpp-auth-card {
	background: var(--bfpp-white);
	border: 1px solid var(--bfpp-gray-border);
	border-radius: var(--bfpp-border-radius);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
	padding: clamp(1.25rem, 2.5vw, 2rem);
	max-width: 100%;
	width: 100%;
	margin: 0 auto;
}

.bfpp-auth-header h2 {
	margin-bottom: 0.25em !important;
}

.bfpp-auth-header .bfpp-text-muted {
	margin-top: 0.25em;
}

.bfpp-auth-body {
	margin-top: 1.5rem;
}

.bfpp-auth-footer {
	margin-top: 1.5rem;
	border-top: 1px solid var(--bfpp-gray-border);
	padding-top: 1rem;
	color: var(--bfpp-gray-text-light);
}

.bfpp-auth-footer p {
	margin: 0.5em 0 !important;
}

/* WordPress login form styling */
#bfpp-login-form {
	display: grid;
	gap: 1rem;
}

#bfpp-login-form p {
	margin: 0 !important;
}

#bfpp-login-form label {
	font-weight: 600;
	color: var(--bfpp-gray);
	display: inline-block;
	margin-bottom: 0.35em;
}

#bfpp-login-form input[type="text"],
#bfpp-login-form input[type="password"] {
	width: 100%;
	padding: 0.75em 0.9em;
	border-radius: var(--bfpp-border-radius-small);
	border: 1px solid var(--bfpp-gray-border);
	background: var(--bfpp-white);
}

#bfpp-login-form input[type="submit"] {
	width: 100%;
	margin-top: 0.5rem;
}

#bfpp-login-form .login-remember {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.bfpp-register-form .bfpp-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	line-height: 1.4;
}

.bfpp-register-form .bfpp-checkbox input[type="checkbox"] {
	margin-top: 0.25rem;
	accent-color: var(--bfpp-purple);
}

@media (max-width: 600px) {
	.bfpp-auth-card {
		padding: 1.5rem;
	}
}

/* ============================================
   Filter Summary, Bulk Actions, Pagination
   ============================================ */
.bfpp-filter-summary {
	background: var(--bfpp-gray-light);
	border: 1px solid var(--bfpp-gray-border);
	border-radius: var(--bfpp-border-radius-small);
	padding: 0.75em 1em;
	margin: 0.75em 0 1.25em;
	box-shadow: 0 2px 8px var(--bfpp-shadow);
}

.bfpp-filter-summary__label {
	font-weight: 600;
	color: var(--bfpp-gray);
	margin-bottom: 0.5em;
}

.bfpp-filter-summary__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}

.bfpp-filter-badge {
	background: var(--bfpp-white);
	border: 1px solid var(--bfpp-gray-border);
	border-radius: var(--bfpp-border-radius-pill);
	padding: 0.35em 0.75em;
	font-size: 0.9em;
	color: var(--bfpp-gray-text);
}

.bfpp-bulk-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75em;
	align-items: center;
	margin: 0.75em 0 1em;
}

.bfpp-bulk-label {
	font-weight: 600;
}

.bfpp-checkbox-column {
	width: 44px;
	text-align: center;
}

.bfpp-checkbox-column input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--bfpp-purple);
}

.bfpp-pagination {
	margin-top: 1.5em;
}

.bfpp-pagination ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}

.bfpp-pagination li {
	margin: 0;
}

.bfpp-pagination a,
.bfpp-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	padding: 0.45em 0.8em;
	border-radius: var(--bfpp-border-radius-small);
	border: 1px solid var(--bfpp-gray-border);
	background: var(--bfpp-white);
	color: var(--bfpp-gray-text);
	text-decoration: none;
}

.bfpp-pagination .current {
	background: var(--bfpp-purple);
	color: var(--bfpp-white);
	border-color: var(--bfpp-purple);
}

/* ============================================
   Forms & Focus Visibility
   ============================================ */
.bfpp-container input:focus-visible,
.bfpp-container select:focus-visible,
.bfpp-container textarea:focus-visible,
.bfpp-container button:focus-visible,
.bfpp-container a.bfpp-button:focus-visible {
	outline: 3px solid rgba(155, 81, 224, 0.35);
	outline-offset: 2px;
}

.bfpp-filter-form input[type="date"] {
	min-width: 170px;
}

@media (max-width: 900px) {
	.bfpp-filter-row {
		flex-direction: column;
		align-items: stretch;
	}
	.bfpp-filter-row .bfpp-form-group {
		width: 100%;
	}
	.bfpp-bulk-actions {
		flex-direction: column;
		align-items: stretch;
	}
}

/* ============================================
   Sections & Layout
   ============================================ */
.bfpp-container .bfpp-section,
.bfpp-section {
	margin-bottom: 3em !important;
	padding: 2em 0 !important;
	border-bottom: 1px solid var(--bfpp-gray-border) !important;
}

.bfpp-container .bfpp-section:last-child,
.bfpp-section:last-child {
	border-bottom: none !important;
}

/* ============================================
   Buttons - Modern Enterprise Styling
   ============================================ */
.bfpp-container .bfpp-button,
.bfpp-container a.bfpp-button,
.bfpp-container button.bfpp-button,
a.bfpp-button,
button.bfpp-button,
.bfpp-container a.bfpp-button:link,
.bfpp-container a.bfpp-button:visited,
a.bfpp-button:link,
a.bfpp-button:visited {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0.75em 1.5em !important;
	background: var(--bfpp-purple-gradient) !important;
	background-color: var(--bfpp-purple) !important;
	color: var(--bfpp-white) !important;
	font-family: 'Nunito', 'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif !important;
	font-size: 0.95em !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-underline-offset: 0 !important;
	border: none !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	cursor: pointer !important;
	transition: all var(--bfpp-transition) !important;
	margin-right: 0.75em !important;
	margin-top: 0.5em !important;
	margin-bottom: 0.5em !important;
	box-shadow: 0 4px 12px rgba(155, 81, 224, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
	position: relative !important;
	overflow: hidden !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	text-shadow: none !important;
	outline: none !important;
	pointer-events: auto !important;
	user-select: none !important;
	-webkit-user-select: none !important;
	-moz-user-select: none !important;
	-ms-user-select: none !important;
}

.bfpp-container .bfpp-button::before,
a.bfpp-button::before,
button.bfpp-button::before {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: -100% !important;
	width: 100% !important;
	height: 100% !important;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent) !important;
	transition: left 0.5s !important;
}

.bfpp-container .bfpp-button:hover::before,
a.bfpp-button:hover::before,
button.bfpp-button:hover::before {
	left: 100% !important;
}

.bfpp-container .bfpp-button:hover,
.bfpp-container a.bfpp-button:hover,
.bfpp-container button.bfpp-button:hover,
a.bfpp-button:hover,
button.bfpp-button:hover {
	background: var(--bfpp-purple-gradient) !important;
	background-size: 120% 120% !important;
	color: var(--bfpp-white) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-underline-offset: 0 !important;
	border-bottom: none !important;
	text-shadow: none !important;
	box-shadow: 0 6px 20px rgba(155, 81, 224, 0.4), 0 4px 8px rgba(0, 0, 0, 0.15) !important;
	transform: translateY(-2px) scale(1.02) !important;
}

.bfpp-button:active,
a.bfpp-button:active,
button.bfpp-button:active {
	transform: translateY(0) scale(0.98) !important;
	box-shadow: 0 2px 4px var(--bfpp-shadow) !important;
}

.bfpp-button:focus,
a.bfpp-button:focus,
button.bfpp-button:focus {
	outline: 2px solid var(--bfpp-purple) !important;
	outline-offset: 2px !important;
}

/* Button Variants */
.bfpp-container .bfpp-button-secondary,
a.bfpp-button-secondary,
button.bfpp-button-secondary {
	background: var(--bfpp-orange-gradient) !important;
	box-shadow: 0 4px 12px rgba(255, 105, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

.bfpp-container .bfpp-button-secondary:hover,
a.bfpp-button-secondary:hover,
button.bfpp-button-secondary:hover {
	background: var(--bfpp-orange-gradient) !important;
	background-size: 120% 120% !important;
	box-shadow: 0 6px 20px rgba(255, 105, 0, 0.4), 0 4px 8px rgba(0, 0, 0, 0.15) !important;
	transform: translateY(-2px) scale(1.02) !important;
}

.bfpp-container .bfpp-button-success,
a.bfpp-button-success,
button.bfpp-button-success {
	background: var(--bfpp-green-gradient) !important;
	box-shadow: 0 4px 12px rgba(0, 208, 132, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

.bfpp-container .bfpp-button-success:hover,
a.bfpp-button-success:hover,
button.bfpp-button-success:hover {
	background: var(--bfpp-green-gradient) !important;
	background-size: 120% 120% !important;
	box-shadow: 0 6px 20px rgba(0, 208, 132, 0.4), 0 4px 8px rgba(0, 0, 0, 0.15) !important;
	transform: translateY(-2px) scale(1.02) !important;
}

.bfpp-container .bfpp-button-danger,
a.bfpp-button-danger,
button.bfpp-button-danger {
	background: var(--bfpp-red-gradient) !important;
	box-shadow: 0 4px 12px rgba(207, 46, 46, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

.bfpp-container .bfpp-button-danger:hover,
a.bfpp-button-danger:hover,
button.bfpp-button-danger:hover {
	background: var(--bfpp-red-gradient) !important;
	background-size: 120% 120% !important;
	box-shadow: 0 6px 20px rgba(207, 46, 46, 0.4), 0 4px 8px rgba(0, 0, 0, 0.15) !important;
	transform: translateY(-2px) scale(1.02) !important;
}

.bfpp-container .bfpp-button-outline,
a.bfpp-button-outline,
button.bfpp-button-outline {
	background-color: transparent !important;
	background: transparent !important;
	border: 2px solid var(--bfpp-purple) !important;
	color: var(--bfpp-purple) !important;
	box-shadow: 0 2px 8px rgba(155, 81, 224, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05) !important;
}

.bfpp-container .bfpp-button-outline:hover,
a.bfpp-button-outline:hover,
button.bfpp-button-outline:hover {
	background: var(--bfpp-purple-gradient) !important;
	background-color: var(--bfpp-purple) !important;
	color: var(--bfpp-white) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	border-color: var(--bfpp-purple) !important;
	box-shadow: 0 4px 16px rgba(155, 81, 224, 0.4), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
	transform: translateY(-2px) scale(1.02) !important;
}

/* Small Buttons */
.bfpp-container .bfpp-button-small,
a.bfpp-button-small,
button.bfpp-button-small {
	padding: 0.5em 1em !important;
	font-size: 0.875em !important;
	margin: 0.25em !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
}

.bfpp-container a.bfpp-button-small:hover,
a.bfpp-button-small:hover {
	text-decoration: none !important;
	text-decoration-line: none !important;
	border-bottom: none !important;
}

/* ============================================
   Forms - Modern Enterprise Styling
   ============================================ */
.bfpp-container .bfpp-form-group,
.bfpp-form-group {
	margin-bottom: 1.5em !important;
}

.bfpp-container .bfpp-form-group label,
.bfpp-form-group label {
	display: block !important;
	font-weight: 600 !important;
	color: var(--bfpp-gray) !important;
	margin-bottom: 0.5em !important;
	font-size: 0.95em !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
}

.bfpp-form-group label .required {
	color: var(--bfpp-red);
	font-weight: 700;
	margin-left: 0.25em;
}

.bfpp-form-group label .optional {
	color: var(--bfpp-gray-text-light);
	font-weight: 400;
	font-size: 0.9em;
	margin-left: 0.25em;
}

.bfpp-container .bfpp-form-group input[type="text"],
.bfpp-container .bfpp-form-group input[type="email"],
.bfpp-container .bfpp-form-group input[type="tel"],
.bfpp-container .bfpp-form-group input[type="date"],
.bfpp-container .bfpp-form-group input[type="number"],
.bfpp-container .bfpp-form-group input[type="search"],
.bfpp-container .bfpp-form-group select,
.bfpp-container .bfpp-form-group textarea,
.bfpp-container .bfpp-form-group input.regular-text,
.bfpp-container .bfpp-form-group textarea.large-text,
.bfpp-form-group input[type="text"],
.bfpp-form-group input[type="email"],
.bfpp-form-group input[type="tel"],
.bfpp-form-group input[type="date"],
.bfpp-form-group input[type="number"],
.bfpp-form-group input[type="search"],
.bfpp-form-group select,
.bfpp-form-group textarea,
.bfpp-form-group input.regular-text,
.bfpp-form-group textarea.large-text {
	width: 100% !important;
	max-width: 100% !important;
	padding: 0.75em 1em !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1em !important;
	line-height: 1.5 !important;
	color: var(--bfpp-gray-text) !important;
	background-color: var(--bfpp-white) !important;
	border: 1px solid var(--bfpp-gray-border) !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	transition: all var(--bfpp-transition-fast) !important;
	box-sizing: border-box !important;
}

.bfpp-container .bfpp-form-group input[type="text"]:focus,
.bfpp-container .bfpp-form-group input[type="email"]:focus,
.bfpp-container .bfpp-form-group input[type="tel"]:focus,
.bfpp-container .bfpp-form-group input[type="date"]:focus,
.bfpp-container .bfpp-form-group input[type="number"]:focus,
.bfpp-container .bfpp-form-group input[type="search"]:focus,
.bfpp-container .bfpp-form-group select:focus,
.bfpp-container .bfpp-form-group textarea:focus,
.bfpp-container .bfpp-form-group input.regular-text:focus,
.bfpp-container .bfpp-form-group textarea.large-text:focus,
.bfpp-form-group input[type="text"]:focus,
.bfpp-form-group input[type="email"]:focus,
.bfpp-form-group input[type="tel"]:focus,
.bfpp-form-group input[type="date"]:focus,
.bfpp-form-group input[type="number"]:focus,
.bfpp-form-group input[type="search"]:focus,
.bfpp-form-group select:focus,
.bfpp-form-group textarea:focus,
.bfpp-form-group input.regular-text:focus,
.bfpp-form-group textarea.large-text:focus {
	outline: none !important;
	border-color: var(--bfpp-purple) !important;
	box-shadow: 0 0 0 3px var(--bfpp-purple-light) !important;
}

.bfpp-container .bfpp-form-group textarea,
.bfpp-form-group textarea {
	min-height: 120px !important;
	resize: vertical !important;
}

.bfpp-container .bfpp-form-group select,
.bfpp-form-group select {
	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='%239b51e0' d='M6 9L1 4h10z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.75em center !important;
	background-size: 1em !important;
	padding-right: 2.5em !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
}

.bfpp-container .bfpp-form-group input[type="checkbox"],
.bfpp-form-group input[type="checkbox"] {
	width: auto !important;
	margin-right: 0.5em !important;
	accent-color: var(--bfpp-purple) !important;
	cursor: pointer !important;
}

.bfpp-container .bfpp-form-group label input[type="checkbox"],
.bfpp-form-group label input[type="checkbox"] {
	width: auto !important;
	max-width: none !important;
	margin-right: 0.5em !important;
}

/* Form Containers - Content Forms (Request, Offer, Response) */
.bfpp-container .bfpp-request-form,
.bfpp-container .bfpp-offer-form,
.bfpp-container .bfpp-response-form,
.bfpp-request-form,
.bfpp-offer-form,
.bfpp-response-form {
	max-width: 800px !important;
	width: 100% !important;
	background-color: var(--bfpp-white) !important;
	padding: 2em !important;
	border-radius: var(--bfpp-border-radius) !important;
	box-shadow: 0 2px 8px var(--bfpp-shadow) !important;
	margin: 2em auto !important;
	border: 1px solid var(--bfpp-gray-border) !important;
	box-sizing: border-box !important;
}

/* Register Form - Inside register container, so no separate container styling */
.bfpp-container .bfpp-register-container .bfpp-register-form,
.bfpp-register-container .bfpp-register-form {
	max-width: 100% !important;
	width: 100% !important;
	background-color: transparent !important;
	padding: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	margin: 0 !important;
	border: none !important;
	box-sizing: border-box !important;
}

/* Standalone register form (if used outside container) */
.bfpp-container .bfpp-register-form:not(.bfpp-register-container .bfpp-register-form),
.bfpp-register-form:not(.bfpp-register-container .bfpp-register-form) {
	max-width: 800px !important;
	width: 100% !important;
	background-color: var(--bfpp-white) !important;
	padding: 2em !important;
	border-radius: var(--bfpp-border-radius) !important;
	box-shadow: 0 2px 8px var(--bfpp-shadow) !important;
	margin: 2em auto !important;
	border: 1px solid var(--bfpp-gray-border) !important;
	box-sizing: border-box !important;
}

/* All form submit buttons - consistent styling */
.bfpp-container .bfpp-register-form button[type="submit"],
.bfpp-container .bfpp-register-form input[type="submit"],
.bfpp-container .bfpp-request-form button[type="submit"],
.bfpp-container .bfpp-request-form input[type="submit"],
.bfpp-container .bfpp-offer-form button[type="submit"],
.bfpp-container .bfpp-offer-form input[type="submit"],
.bfpp-container .bfpp-response-form button[type="submit"],
.bfpp-container .bfpp-response-form input[type="submit"],
.bfpp-container #bfpp-login-form input[type="submit"],
#bfpp-login-form input[type="submit"],
.bfpp-register-form button[type="submit"],
.bfpp-register-form input[type="submit"],
.bfpp-request-form button[type="submit"],
.bfpp-request-form input[type="submit"],
.bfpp-offer-form button[type="submit"],
.bfpp-offer-form input[type="submit"],
.bfpp-response-form button[type="submit"],
.bfpp-response-form input[type="submit"] {
	width: auto !important;
	min-width: 150px !important;
	padding: 0.75em 1.5em !important;
	background: var(--bfpp-purple-gradient) !important;
	color: var(--bfpp-white) !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1em !important;
	font-weight: 600 !important;
	border: none !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	cursor: pointer !important;
	transition: all var(--bfpp-transition) !important;
	margin: 0 !important;
	box-shadow: 0 4px 12px rgba(155, 81, 224, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	display: inline-block !important;
}

.bfpp-container .bfpp-register-form button[type="submit"]:hover,
.bfpp-container .bfpp-register-form input[type="submit"]:hover,
.bfpp-container .bfpp-request-form button[type="submit"]:hover,
.bfpp-container .bfpp-request-form input[type="submit"]:hover,
.bfpp-container .bfpp-offer-form button[type="submit"]:hover,
.bfpp-container .bfpp-offer-form input[type="submit"]:hover,
.bfpp-container .bfpp-response-form button[type="submit"]:hover,
.bfpp-container .bfpp-response-form input[type="submit"]:hover,
.bfpp-container #bfpp-login-form input[type="submit"]:hover,
#bfpp-login-form input[type="submit"]:hover,
.bfpp-register-form button[type="submit"]:hover,
.bfpp-register-form input[type="submit"]:hover,
.bfpp-request-form button[type="submit"]:hover,
.bfpp-request-form input[type="submit"]:hover,
.bfpp-offer-form button[type="submit"]:hover,
.bfpp-offer-form input[type="submit"]:hover,
.bfpp-response-form button[type="submit"]:hover,
.bfpp-response-form input[type="submit"]:hover {
	background: var(--bfpp-purple-gradient) !important;
	background-size: 120% 120% !important;
	color: var(--bfpp-white) !important;
	box-shadow: 0 6px 20px rgba(155, 81, 224, 0.4), 0 4px 8px rgba(0, 0, 0, 0.15) !important;
	transform: translateY(-2px) scale(1.02) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
}

/* Form Action Buttons */
.bfpp-container .bfpp-form-actions,
.bfpp-form-actions {
	display: flex !important;
	gap: 1em !important;
	align-items: center !important;
	flex-wrap: wrap !important;
	margin-top: 2em !important;
	padding-top: 1.5em !important;
	border-top: 1px solid var(--bfpp-gray-border) !important;
}

/* Form actions in login/register containers - no border-top needed */
.bfpp-container .bfpp-login-container .bfpp-form-actions,
.bfpp-container .bfpp-register-container .bfpp-form-actions,
.bfpp-login-container .bfpp-form-actions,
.bfpp-register-container .bfpp-form-actions {
	border-top: none !important;
	padding-top: 0 !important;
	margin-top: 1.5em !important;
}

.bfpp-container .bfpp-form-actions .bfpp-button,
.bfpp-form-actions .bfpp-button {
	margin: 0 !important;
	flex: 0 0 auto !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	border-bottom: none !important;
	text-shadow: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* Ensure buttons in form-actions don't have extra margins */
.bfpp-container .bfpp-form-actions .bfpp-button-outline,
.bfpp-form-actions .bfpp-button-outline {
	margin: 0 !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	border-bottom: none !important;
	text-shadow: none !important;
}

/* WordPress Editor Styling */
.bfpp-container .wp-editor-container,
.wp-editor-container {
	border: 1px solid var(--bfpp-gray-border) !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	overflow: hidden !important;
	background-color: var(--bfpp-white) !important;
}

.bfpp-container .wp-editor-wrap,
.wp-editor-wrap {
	background-color: var(--bfpp-white) !important;
}

.bfpp-container .wp-editor-area,
.wp-editor-area {
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1em !important;
	line-height: 1.6 !important;
	color: var(--bfpp-gray-text) !important;
	padding: 1em !important;
	border: none !important;
}

.bfpp-container .wp-editor-area:focus,
.wp-editor-area:focus {
	outline: none !important;
}

.bfpp-container .mce-toolbar,
.mce-toolbar {
	border-bottom: 1px solid var(--bfpp-gray-border) !important;
	background-color: var(--bfpp-gray-light) !important;
}

.bfpp-container .mce-btn,
.mce-btn {
	color: var(--bfpp-gray-text) !important;
}

.bfpp-container .mce-btn:hover,
.mce-btn:hover {
	background-color: var(--bfpp-purple-light) !important;
	color: var(--bfpp-purple) !important;
}

.bfpp-container .mce-btn.mce-active,
.mce-btn.mce-active {
	background-color: var(--bfpp-purple) !important;
	color: var(--bfpp-white) !important;
}

/* Form Description Text */
.bfpp-container .bfpp-form-group .description,
.bfpp-form-group .description {
	font-size: 0.875em !important;
	color: var(--bfpp-gray-text-light) !important;
	font-style: italic !important;
	margin-top: 0.25em !important;
	margin-bottom: 0.5em !important;
	font-weight: 400 !important;
}

/* Filter form styling is defined below in Search Forms & Filter Forms section */

/* WordPress Login Form Styling */
#bfpp-login-form {
	max-width: 400px !important;
	margin: 2em 0 !important;
}

#bfpp-login-form label {
	display: block !important;
	font-weight: 600 !important;
	color: var(--bfpp-gray) !important;
	margin-bottom: 0.5em !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
}

#bfpp-login-form input[type="text"],
#bfpp-login-form input[type="password"] {
	width: 100% !important;
	padding: 0.75em 1em !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1em !important;
	border: 1px solid var(--bfpp-gray-border) !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	transition: all var(--bfpp-transition-fast) !important;
	box-sizing: border-box !important;
}

#bfpp-login-form input[type="text"]:focus,
#bfpp-login-form input[type="password"]:focus {
	outline: none !important;
	border-color: var(--bfpp-purple) !important;
	box-shadow: 0 0 0 3px var(--bfpp-purple-light) !important;
}

#bfpp-login-form input[type="submit"],
#bfpp-login-form button[type="submit"],
.bfpp-container #bfpp-login-form input[type="submit"],
.bfpp-container #bfpp-login-form button[type="submit"] {
	width: 100% !important;
	padding: 0.75em 1.5em !important;
	background: var(--bfpp-purple-gradient) !important;
	color: var(--bfpp-white) !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1em !important;
	font-weight: 600 !important;
	border: none !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	cursor: pointer !important;
	transition: all var(--bfpp-transition) !important;
	margin-top: 1em !important;
	box-shadow: 0 4px 12px rgba(155, 81, 224, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
}

#bfpp-login-form input[type="submit"]:hover,
#bfpp-login-form button[type="submit"]:hover,
.bfpp-container #bfpp-login-form input[type="submit"]:hover,
.bfpp-container #bfpp-login-form button[type="submit"]:hover {
	background: var(--bfpp-purple-gradient) !important;
	background-size: 120% 120% !important;
	color: var(--bfpp-white) !important;
	box-shadow: 0 6px 20px rgba(155, 81, 224, 0.4), 0 4px 8px rgba(0, 0, 0, 0.15) !important;
	transform: translateY(-2px) scale(1.02) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
}

#bfpp-login-form input[type="checkbox"] {
	accent-color: var(--bfpp-purple) !important;
	margin-right: 0.5em !important;
}

/* ============================================
   Alerts & Messages
   ============================================ */
.bfpp-container .bfpp-alert,
.bfpp-alert {
	padding: 1.25em 1.5em !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	border-left: 4px solid !important;
	margin-bottom: 1.5em !important;
	box-shadow: 0 2px 4px var(--bfpp-shadow) !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
}

.bfpp-alert p {
	margin: 0.5em 0;
}

.bfpp-alert p:first-child {
	margin-top: 0;
}

.bfpp-alert p:last-child {
	margin-bottom: 0;
}

.bfpp-alert strong {
	display: block;
	margin-bottom: 0.5em;
}

.bfpp-alert-success {
	background-color: var(--bfpp-green-light);
	border-left-color: var(--bfpp-green);
	color: #1b5e20;
}

.bfpp-alert-error {
	background-color: var(--bfpp-red-light);
	border-left-color: var(--bfpp-red);
	color: #b71c1c;
}

.bfpp-alert-info {
	background-color: var(--bfpp-purple-light);
	border-left-color: var(--bfpp-purple);
	color: #4a148c;
}

.bfpp-alert-warning {
	background-color: var(--bfpp-orange-light);
	border-left-color: var(--bfpp-orange);
	color: #e65100;
}

/* ============================================
   Status Badges
   ============================================ */
.bfpp-container .bfpp-status,
.bfpp-status {
	display: inline-block !important;
	padding: 0.4em 0.8em !important;
	border-radius: var(--bfpp-border-radius-pill) !important;
	font-size: 0.875em !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	background-color: var(--bfpp-gray-light) !important;
	color: var(--bfpp-gray-text) !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
}

.bfpp-container .bfpp-status-open,
.bfpp-container .bfpp-status-available,
.bfpp-container .bfpp-status-accepted,
.bfpp-status-open,
.bfpp-status-available,
.bfpp-status-accepted {
	background-color: var(--bfpp-green-light) !important;
	color: #1b5e20 !important;
}

.bfpp-container .bfpp-status-reviewing,
.bfpp-container .bfpp-status-pending,
.bfpp-container .bfpp-status-reserved,
.bfpp-container .bfpp-status-submitted,
.bfpp-status-reviewing,
.bfpp-status-pending,
.bfpp-status-reserved,
.bfpp-status-submitted {
	background-color: var(--bfpp-orange-light) !important;
	color: #e65100 !important;
}

.bfpp-container .bfpp-status-matched,
.bfpp-container .bfpp-status-completed,
.bfpp-container .bfpp-status-donated,
.bfpp-status-matched,
.bfpp-status-completed,
.bfpp-status-donated {
	background-color: var(--bfpp-purple-light) !important;
	color: #4a148c !important;
}

.bfpp-container .bfpp-status-closed,
.bfpp-container .bfpp-status-declined,
.bfpp-container .bfpp-status-withdrawn,
.bfpp-status-closed,
.bfpp-status-declined,
.bfpp-status-withdrawn {
	background-color: #ececec !important;
	color: var(--bfpp-gray-text-light) !important;
}

/* ============================================
   Enterprise Tables - Modern Portal Design
   ============================================ */
.bfpp-container .bfpp-table-wrapper,
.bfpp-table-wrapper {
	overflow-x: auto !important;
	margin: 2em 0 !important;
	background: var(--bfpp-white) !important;
	border-radius: var(--bfpp-border-radius) !important;
	box-shadow: 0 4px 20px var(--bfpp-shadow-md), 0 1px 3px var(--bfpp-shadow) !important;
	border: 1px solid var(--bfpp-gray-border) !important;
	transition: box-shadow var(--bfpp-transition) !important;
}

.bfpp-container .bfpp-table-wrapper:hover,
.bfpp-table-wrapper:hover {
	box-shadow: 0 6px 24px var(--bfpp-shadow-lg), 0 2px 4px var(--bfpp-shadow) !important;
}

.bfpp-container .bfpp-table,
.bfpp-table {
	width: 100% !important;
	border-collapse: collapse !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 0.95em !important;
}

.bfpp-container .bfpp-table thead,
.bfpp-table thead {
	background: linear-gradient(135deg, var(--bfpp-gray-light) 0%, var(--bfpp-gray-lighter) 100%) !important;
	border-bottom: 3px solid var(--bfpp-purple) !important;
}

.bfpp-container .bfpp-table th,
.bfpp-table th {
	padding: 1em 1.25em !important;
	text-align: left !important;
	font-weight: 600 !important;
	color: var(--bfpp-gray) !important;
	font-size: 0.9em !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	border-bottom: 3px solid var(--bfpp-purple) !important;
	white-space: nowrap !important;
}

.bfpp-container .bfpp-table tbody tr,
.bfpp-table tbody tr {
	border-bottom: 1px solid var(--bfpp-gray-border) !important;
	transition: background-color var(--bfpp-transition-fast) !important;
}

.bfpp-container .bfpp-table tbody tr:hover,
.bfpp-table tbody tr:hover {
	background-color: var(--bfpp-gray-light) !important;
}

.bfpp-container .bfpp-table tbody tr:last-child,
.bfpp-table tbody tr:last-child {
	border-bottom: none !important;
}

.bfpp-container .bfpp-table td,
.bfpp-table td {
	padding: 1.25em 1.25em !important;
	vertical-align: top !important;
	color: var(--bfpp-gray-text) !important;
	line-height: 1.6 !important;
}

.bfpp-container .bfpp-table td strong,
.bfpp-table td strong {
	color: var(--bfpp-gray) !important;
	font-weight: 600 !important;
	display: block !important;
	margin-bottom: 0.25em !important;
}

.bfpp-container .bfpp-table td small,
.bfpp-table td small {
	display: block !important;
	margin-top: 0.25em !important;
}

.bfpp-container .bfpp-table .bfpp-actions-column,
.bfpp-table .bfpp-actions-column {
	width: 1% !important;
	white-space: nowrap !important;
	text-align: right !important;
}

.bfpp-container .bfpp-table .bfpp-actions-cell,
.bfpp-table .bfpp-actions-cell {
	white-space: nowrap !important;
	text-align: right !important;
}

.bfpp-container .bfpp-table .bfpp-actions-cell .bfpp-button,
.bfpp-table .bfpp-actions-cell .bfpp-button {
	margin: 0.25em 0.25em 0.25em 0 !important;
}

/* ============================================
   Table Header & Page Header
   ============================================ */
.bfpp-container .bfpp-table-header,
.bfpp-table-header {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	margin-bottom: 1.5em !important;
}

.bfpp-container .bfpp-table-header h3,
.bfpp-table-header h3 {
	margin: 0 !important;
}

.bfpp-container .bfpp-page-header,
.bfpp-page-header {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	margin-bottom: 1.5em !important;
}

.bfpp-container .bfpp-page-header h2,
.bfpp-page-header h2 {
	margin: 0 !important;
}

.bfpp-container .bfpp-count-badge,
.bfpp-count-badge {
	display: inline-block !important;
	padding: 0.25em 0.75em !important;
	background-color: var(--bfpp-purple) !important;
	color: var(--bfpp-white) !important;
	border-radius: var(--bfpp-border-radius-pill) !important;
	font-size: 0.875em !important;
	font-weight: 600 !important;
	margin-left: 0.75em !important;
}

.bfpp-container .bfpp-results-count,
.bfpp-results-count {
	margin: 1.5em 0 1em 0 !important;
	color: var(--bfpp-gray-text-light) !important;
	font-size: 0.95em !important;
}

/* ============================================
   Search Forms & Filter Forms
   ============================================ */
.bfpp-container .bfpp-search-form,
.bfpp-search-form {
	margin: 1.5em 0 !important;
}

.bfpp-container .bfpp-search-input-wrapper,
.bfpp-search-input-wrapper {
	display: flex !important;
	gap: 0.75em !important;
	align-items: flex-end !important;
}

.bfpp-container .bfpp-search-input,
.bfpp-search-input {
	flex: 1 !important;
	max-width: 400px !important;
	padding: 0.75em 1em !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1em !important;
	border: 1px solid var(--bfpp-gray-border) !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	transition: all var(--bfpp-transition-fast) !important;
	background-color: var(--bfpp-white) !important;
	color: var(--bfpp-gray-text) !important;
	box-sizing: border-box !important;
}

.bfpp-container .bfpp-search-input:focus,
.bfpp-search-input:focus {
	outline: none !important;
	border-color: var(--bfpp-purple) !important;
	box-shadow: 0 0 0 3px var(--bfpp-purple-light) !important;
}

.bfpp-container .bfpp-filter-form,
.bfpp-filter-form {
	background-color: var(--bfpp-gray-light) !important;
	padding: 1.5em !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	margin: 1.5em 0 !important;
}

.bfpp-container .bfpp-filter-row,
.bfpp-filter-row {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 1em !important;
	align-items: flex-end !important;
}

.bfpp-container .bfpp-filter-row .bfpp-form-group,
.bfpp-filter-row .bfpp-form-group {
	flex: 1 !important;
	min-width: 150px !important;
	margin-bottom: 0 !important;
}

.bfpp-container .bfpp-filter-row .bfpp-form-group-actions,
.bfpp-filter-row .bfpp-form-group-actions {
	flex: 0 0 auto !important;
	min-width: auto !important;
}

.bfpp-container .bfpp-filter-row .bfpp-form-group-actions .bfpp-button,
.bfpp-filter-row .bfpp-form-group-actions .bfpp-button {
	margin-right: 0.5em !important;
}

/* ============================================
   Action Cards / Grid Layout
   ============================================ */
.bfpp-container .bfpp-action-grid,
.bfpp-action-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
	gap: 1.5em !important;
	margin: 2em 0 !important;
}

.bfpp-container .bfpp-action-card,
.bfpp-action-card {
	background: var(--bfpp-white) !important;
	border: 1px solid var(--bfpp-gray-border) !important;
	border-radius: var(--bfpp-border-radius) !important;
	padding: 2.5em !important;
	box-shadow: 0 4px 16px var(--bfpp-shadow-md), 0 1px 3px var(--bfpp-shadow) !important;
	transition: all var(--bfpp-transition) !important;
	display: flex !important;
	flex-direction: column !important;
	position: relative !important;
	overflow: hidden !important;
}

.bfpp-container .bfpp-action-card::before,
.bfpp-action-card::before {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 4px !important;
	background: var(--bfpp-purple-gradient) !important;
	transform: scaleX(0) !important;
	transform-origin: left !important;
	transition: transform var(--bfpp-transition) !important;
}

.bfpp-container .bfpp-action-card:hover::before,
.bfpp-action-card:hover::before {
	transform: scaleX(1) !important;
}

.bfpp-container .bfpp-action-card:hover,
.bfpp-action-card:hover {
	box-shadow: 0 8px 24px var(--bfpp-shadow-lg), 0 4px 8px var(--bfpp-shadow-md) !important;
	transform: translateY(-4px) scale(1.01) !important;
	border-color: var(--bfpp-purple) !important;
}

.bfpp-container .bfpp-action-card h4,
.bfpp-action-card h4 {
	margin-top: 0 !important;
	margin-bottom: 1em !important;
	color: var(--bfpp-purple) !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1.25em !important;
	font-weight: 600 !important;
}

.bfpp-container .bfpp-action-card p,
.bfpp-action-card p {
	flex-grow: 1 !important;
	margin-bottom: 1.5em !important;
	color: var(--bfpp-gray-text) !important;
}

.bfpp-container .bfpp-action-card .bfpp-button,
.bfpp-action-card .bfpp-button {
	margin-top: auto !important;
	width: 100% !important;
	text-align: center !important;
}

/* ============================================
   Links (Regular links, NOT buttons)
   ============================================ */
.bfpp-container a:not(.bfpp-button):not(.bfpp-link) {
	color: var(--bfpp-purple) !important;
	text-decoration: none !important;
	transition: color var(--bfpp-transition-fast) !important;
}

.bfpp-container a:not(.bfpp-button):not(.bfpp-link):hover {
	color: var(--bfpp-orange) !important;
	text-decoration: underline !important;
}

.bfpp-container a:not(.bfpp-button):not(.bfpp-link):focus {
	outline: 2px solid var(--bfpp-purple) !important;
	outline-offset: 2px !important;
	border-radius: 2px !important;
}

.bfpp-container .bfpp-link,
.bfpp-link {
	color: var(--bfpp-purple) !important;
	text-decoration: none !important;
	font-weight: 600 !important;
	transition: color var(--bfpp-transition-fast) !important;
}

.bfpp-container .bfpp-link:hover,
.bfpp-link:hover {
	color: var(--bfpp-orange) !important;
	text-decoration: underline !important;
}

/* ============================================
   Enterprise Login/Register Forms
   ============================================ */
.bfpp-container .bfpp-login-container,
.bfpp-container .bfpp-register-container {
	max-width: clamp(20rem, 92vw, 48rem) !important;
	width: 100% !important;
	margin: clamp(1.5rem, 4vw, 2.5rem) auto !important;
	background: transparent !important;
	padding: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	border: none !important;
	position: relative !important;
	overflow: visible !important;
	box-sizing: border-box !important;
}

/* Ensure proper spacing for "Already Logged In" and "Already Registered" sections */
.bfpp-container .bfpp-login-container h2 + p,
.bfpp-container .bfpp-register-container h2 + p,
.bfpp-login-container h2 + p,
.bfpp-register-container h2 + p {
	margin-bottom: 1.5em !important;
}

.bfpp-container .bfpp-login-container::before,
.bfpp-container .bfpp-register-container::before,
.bfpp-login-container::before,
.bfpp-register-container::before {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 5px !important;
	background: var(--bfpp-purple-gradient) !important;
}

.bfpp-container .bfpp-login-container h2,
.bfpp-container .bfpp-register-container h2,
.bfpp-login-container h2,
.bfpp-register-container h2 {
	text-align: center !important;
	margin-bottom: 1.5em !important;
	color: var(--bfpp-purple) !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-weight: 600 !important;
}

/* CRITICAL: Ensure buttons in login/register containers are properly styled */
.bfpp-container .bfpp-login-container a.bfpp-button,
.bfpp-container .bfpp-register-container a.bfpp-button,
.bfpp-login-container a.bfpp-button,
.bfpp-register-container a.bfpp-button,
body .bfpp-container .bfpp-login-container a.bfpp-button,
body .bfpp-container .bfpp-register-container a.bfpp-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0.75em 1.5em !important;
	background: var(--bfpp-purple-gradient) !important;
	background-color: var(--bfpp-purple) !important;
	color: var(--bfpp-white) !important;
	font-family: 'Nunito', 'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif !important;
	font-size: 0.95em !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-underline-offset: 0 !important;
	border: none !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	cursor: pointer !important;
	transition: all var(--bfpp-transition) !important;
	margin: 0.5em 0.75em 0.5em 0 !important;
	box-shadow: 0 4px 12px rgba(155, 81, 224, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
	position: relative !important;
	overflow: hidden !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	text-shadow: none !important;
	outline: none !important;
	pointer-events: auto !important;
	user-select: none !important;
	-webkit-user-select: none !important;
	-moz-user-select: none !important;
	-ms-user-select: none !important;
	border-bottom: none !important;
}

.bfpp-container .bfpp-login-container a.bfpp-button:hover,
.bfpp-container .bfpp-register-container a.bfpp-button:hover,
.bfpp-login-container a.bfpp-button:hover,
.bfpp-register-container a.bfpp-button:hover,
body .bfpp-container .bfpp-login-container a.bfpp-button:hover,
body .bfpp-container .bfpp-register-container a.bfpp-button:hover {
	background: var(--bfpp-purple-gradient) !important;
	background-size: 120% 120% !important;
	color: var(--bfpp-white) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-underline-offset: 0 !important;
	border-bottom: none !important;
	text-shadow: none !important;
	box-shadow: 0 6px 20px rgba(155, 81, 224, 0.4), 0 4px 8px rgba(0, 0, 0, 0.15) !important;
	transform: translateY(-2px) scale(1.02) !important;
}

.bfpp-container .bfpp-login-container a.bfpp-button-outline,
.bfpp-container .bfpp-register-container a.bfpp-button-outline,
.bfpp-login-container a.bfpp-button-outline,
.bfpp-register-container a.bfpp-button-outline,
body .bfpp-container .bfpp-login-container a.bfpp-button-outline,
body .bfpp-container .bfpp-register-container a.bfpp-button-outline {
	background-color: transparent !important;
	background: transparent !important;
	border: 2px solid var(--bfpp-purple) !important;
	color: var(--bfpp-purple) !important;
	box-shadow: 0 2px 8px rgba(155, 81, 224, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05) !important;
}

.bfpp-container .bfpp-login-container a.bfpp-button-outline:hover,
.bfpp-container .bfpp-register-container a.bfpp-button-outline:hover,
.bfpp-login-container a.bfpp-button-outline:hover,
.bfpp-register-container a.bfpp-button-outline:hover,
body .bfpp-container .bfpp-login-container a.bfpp-button-outline:hover,
body .bfpp-container .bfpp-register-container a.bfpp-button-outline:hover {
	background: var(--bfpp-purple-gradient) !important;
	background-color: var(--bfpp-purple) !important;
	color: var(--bfpp-white) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	border-bottom: none !important;
	text-shadow: none !important;
}

.bfpp-container .bfpp-form-footer,
.bfpp-form-footer {
	margin-top: 2em !important;
	padding-top: 1.5em !important;
	border-top: 1px solid var(--bfpp-gray-border) !important;
	text-align: center !important;
}

.bfpp-container .bfpp-form-footer p,
.bfpp-form-footer p {
	margin: 0.75em 0 !important;
}

/* ============================================
   Utility Classes
   ============================================ */
.bfpp-container .bfpp-mt-1,
.bfpp-mt-1 {
	margin-top: 1em !important;
}

.bfpp-container .bfpp-mt-2,
.bfpp-mt-2 {
	margin-top: 2em !important;
}

.bfpp-container .bfpp-mb-1,
.bfpp-mb-1 {
	margin-bottom: 1em !important;
}

.bfpp-container .bfpp-mb-2,
.bfpp-mb-2 {
	margin-bottom: 2em !important;
}

.bfpp-container .bfpp-text-center,
.bfpp-text-center {
	text-align: center !important;
}

.bfpp-container .bfpp-text-muted,
.bfpp-text-muted {
	color: var(--bfpp-gray-text-light) !important;
}

.bfpp-container .bfpp-empty-state,
.bfpp-empty-state {
	text-align: center !important;
	padding: 3em 1em !important;
	color: var(--bfpp-gray-text-light) !important;
}

.bfpp-container .bfpp-empty-state p,
.bfpp-empty-state p {
	margin-bottom: 1.5em !important;
}

/* ============================================
   Responsive Design
   ============================================ */
@media screen and (max-width: 768px) {
	.bfpp-container {
		padding: 1rem 1rem !important;
	}

	.bfpp-container h2 {
		font-size: 1.75em !important;
	}

	.bfpp-container h3 {
		font-size: 1.25em !important;
	}

	.bfpp-section {
		padding: 1.5em 0 !important;
		margin-bottom: 2em !important;
	}

	.bfpp-container .bfpp-action-grid,
	.bfpp-action-grid {
		grid-template-columns: 1fr !important;
		gap: 1em !important;
	}

	.bfpp-container .bfpp-action-card,
	.bfpp-action-card {
		padding: 1.5em !important;
	}

	.bfpp-container .bfpp-page-header,
	.bfpp-page-header {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 1em !important;
	}

	.bfpp-container .bfpp-table-header,
	.bfpp-table-header {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 1em !important;
	}

	.bfpp-container .bfpp-filter-row,
	.bfpp-filter-row {
		flex-direction: column !important;
	}

	.bfpp-container .bfpp-filter-row .bfpp-form-group,
	.bfpp-filter-row .bfpp-form-group {
		width: 100% !important;
	}

	.bfpp-container .bfpp-search-input-wrapper,
	.bfpp-search-input-wrapper {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.bfpp-container .bfpp-search-input,
	.bfpp-search-input {
		max-width: 100% !important;
	}

	.bfpp-container .bfpp-table-wrapper,
	.bfpp-table-wrapper {
		overflow-x: scroll !important;
		-webkit-overflow-scrolling: touch !important;
	}

	.bfpp-container .bfpp-table,
	.bfpp-table {
		min-width: 800px !important;
	}

	.bfpp-container .bfpp-table th,
	.bfpp-container .bfpp-table td,
	.bfpp-table th,
	.bfpp-table td {
		padding: 0.75em 0.5em !important;
		font-size: 0.875em !important;
	}

	/* Mobile table-to-card layout */
	.bfpp-container .bfpp-table-wrapper,
	.bfpp-table-wrapper {
		overflow-x: visible !important;
	}

	.bfpp-container .bfpp-table,
	.bfpp-table {
		min-width: 0 !important;
		width: 100% !important;
	}

	.bfpp-container .bfpp-table thead,
	.bfpp-table thead {
		display: none !important;
	}

	.bfpp-container .bfpp-table tbody tr,
	.bfpp-table tbody tr {
		display: block !important;
		margin-bottom: 1em !important;
		border: 1px solid var(--bfpp-gray-border) !important;
		border-radius: 12px !important;
		background: #fff !important;
		padding: 0.75em 0.5em !important;
	}

	.bfpp-container .bfpp-table td,
	.bfpp-table td {
		display: flex !important;
		align-items: flex-start !important;
		justify-content: space-between !important;
		gap: 1em !important;
		border: none !important;
		padding: 0.5em 0 !important;
	}

	.bfpp-container .bfpp-table td::before,
	.bfpp-table td::before {
		content: attr(data-label) !important;
		font-weight: 600 !important;
		color: var(--bfpp-gray-text-dark) !important;
		flex: 0 0 45% !important;
	}

	.bfpp-container .bfpp-table td.bfpp-actions-cell,
	.bfpp-table td.bfpp-actions-cell {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.bfpp-container .bfpp-table td.bfpp-actions-cell::before,
	.bfpp-table td.bfpp-actions-cell::before {
		margin-bottom: 0.5em !important;
	}

	.bfpp-container .bfpp-actions-cell,
	.bfpp-actions-cell {
		white-space: normal !important;
	}

	.bfpp-container .bfpp-actions-cell .bfpp-button,
	.bfpp-actions-cell .bfpp-button {
		display: block !important;
		width: 100% !important;
		margin: 0.5em 0 !important;
	}

	.bfpp-button,
	a.bfpp-button,
	button.bfpp-button {
		display: block !important;
		width: 100% !important;
		margin-right: 0 !important;
		margin-bottom: 0.75em !important;
		text-align: center !important;
	}

	.bfpp-container .bfpp-login-container,
	.bfpp-container .bfpp-register-container {
		padding: 0 !important;
		margin: 1.5em auto !important;
	}

	.bfpp-container .bfpp-register-container .bfpp-register-form,
	.bfpp-register-container .bfpp-register-form {
		padding: 0 !important;
	}

	.bfpp-request-form,
	.bfpp-offer-form,
	.bfpp-response-form {
		padding: 1.5em !important;
	}

	.bfpp-container .bfpp-request-actions .bfpp-response-form,
	.bfpp-request-actions .bfpp-response-form {
		padding: 1.5em !important;
	}

	.bfpp-filter-form .bfpp-form-group {
		display: block;
		margin-right: 0;
		margin-bottom: 1em;
	}

	.bfpp-filter-form .bfpp-form-group select {
		max-width: 100%;
	}
}

@media screen and (max-width: 480px) {
	.bfpp-container {
		padding: 0.75rem 0.75rem;
	}

	.bfpp-container h2 {
		font-size: 1.5em;
	}

	.bfpp-container .bfpp-register-container .bfpp-register-form,
	.bfpp-register-container .bfpp-register-form {
		padding: 0 !important;
	}

	.bfpp-request-form,
	.bfpp-offer-form,
	.bfpp-response-form {
		padding: 1em !important;
	}

	.bfpp-container .bfpp-request-actions .bfpp-response-form,
	.bfpp-request-actions .bfpp-response-form {
		padding: 1em !important;
	}
}

/* ============================================
   Request Detail Page Styling
   ============================================ */
.bfpp-container .bfpp-request-detail,
.bfpp-request-detail {
	margin: 2em 0 !important;
}

.bfpp-container .bfpp-request-meta,
.bfpp-request-meta {
	background-color: var(--bfpp-gray-light) !important;
	padding: 1.5em !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	margin-bottom: 2em !important;
	border-left: 4px solid var(--bfpp-purple) !important;
}

.bfpp-container .bfpp-request-meta p,
.bfpp-request-meta p {
	margin: 0.75em 0 !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
}

.bfpp-container .bfpp-request-meta p:first-child,
.bfpp-request-meta p:first-child {
	margin-top: 0 !important;
}

.bfpp-container .bfpp-request-meta p:last-child,
.bfpp-request-meta p:last-child {
	margin-bottom: 0 !important;
}

.bfpp-container .bfpp-request-meta strong,
.bfpp-request-meta strong {
	color: var(--bfpp-gray) !important;
	font-weight: 600 !important;
	margin-right: 0.5em !important;
}

.bfpp-container .bfpp-request-description,
.bfpp-request-description {
	margin-bottom: 2em !important;
}

.bfpp-container .bfpp-request-description h3,
.bfpp-request-description h3 {
	color: var(--bfpp-purple) !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1.25em !important;
	font-weight: 600 !important;
	margin-bottom: 1em !important;
}

.bfpp-container .bfpp-request-description .bfpp-content,
.bfpp-request-description .bfpp-content {
	background-color: var(--bfpp-white) !important;
	padding: 1.5em !important;
	border-radius: var(--bfpp-border-radius-small) !important;
	border: 1px solid var(--bfpp-gray-border) !important;
	line-height: 1.7 !important;
	color: var(--bfpp-gray-text) !important;
}

.bfpp-container .bfpp-request-actions,
.bfpp-request-actions {
	margin-top: 2em !important;
	padding-top: 2em !important;
	border-top: 2px solid var(--bfpp-gray-border) !important;
}

.bfpp-container .bfpp-request-actions h3,
.bfpp-request-actions h3 {
	color: var(--bfpp-purple) !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1.25em !important;
	font-weight: 600 !important;
	margin-bottom: 1.5em !important;
}

/* Response form within request actions - ensure proper styling - MAXIMUM SPECIFICITY */
body .bfpp-container .bfpp-request-actions .bfpp-response-form,
body .bfpp-request-actions .bfpp-response-form,
body .bfpp-section .bfpp-request-actions .bfpp-response-form,
body .bfpp-container .bfpp-section .bfpp-request-actions .bfpp-response-form {
	margin-top: 1.5em !important;
	margin-bottom: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
	background-color: #ffffff !important;
	background-color: var(--bfpp-white) !important;
	padding: 2em !important;
	border-radius: 8px !important;
	border-radius: var(--bfpp-border-radius) !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
	box-shadow: 0 2px 8px var(--bfpp-shadow) !important;
	border: 1px solid #e0e0e0 !important;
	border: 1px solid var(--bfpp-gray-border) !important;
	box-sizing: border-box !important;
}

/* Ensure all form inputs in response form are styled */
body .bfpp-request-actions .bfpp-response-form .bfpp-form-group input[type="text"],
body .bfpp-request-actions .bfpp-response-form .bfpp-form-group input[type="email"],
body .bfpp-request-actions .bfpp-response-form .bfpp-form-group textarea {
	width: 100% !important;
	padding: 0.75em 1em !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1em !important;
	line-height: 1.5 !important;
	color: #333333 !important;
	background-color: #ffffff !important;
	border: 1px solid #e0e0e0 !important;
	border-radius: 4px !important;
	box-sizing: border-box !important;
}

body .bfpp-request-actions .bfpp-response-form .bfpp-form-group input[type="text"]:focus,
body .bfpp-request-actions .bfpp-response-form .bfpp-form-group textarea:focus {
	outline: none !important;
	border-color: #9b51e0 !important;
	box-shadow: 0 0 0 3px rgba(155, 81, 224, 0.1) !important;
}

/* Response form submit button - ensure proper styling */
.bfpp-container .bfpp-request-actions .bfpp-response-form .bfpp-form-actions,
.bfpp-request-actions .bfpp-response-form .bfpp-form-actions {
	margin-top: 1.5em !important;
	padding-top: 1.5em !important;
	border-top: 1px solid var(--bfpp-gray-border) !important;
	margin-bottom: 0 !important;
}

/* When form-group and form-actions are combined, override form-group margin */
.bfpp-container .bfpp-form-group.bfpp-form-actions,
.bfpp-form-group.bfpp-form-actions {
	margin-bottom: 0 !important;
}

/* Response form submit button styling - NUCLEAR OPTION with maximum specificity */
body .bfpp-container .bfpp-request-actions .bfpp-response-form button[type="submit"],
body .bfpp-request-actions .bfpp-response-form button[type="submit"],
body .bfpp-container .bfpp-response-form .bfpp-form-actions button[type="submit"],
body .bfpp-response-form .bfpp-form-actions button[type="submit"],
body .bfpp-container .bfpp-request-actions .bfpp-response-form .bfpp-button,
body .bfpp-request-actions .bfpp-response-form .bfpp-button,
body .bfpp-container .bfpp-request-actions .bfpp-response-form button.bfpp-button,
body .bfpp-request-actions .bfpp-response-form button.bfpp-button,
/* Even more specific for nested forms */
body .bfpp-container .bfpp-section .bfpp-request-actions .bfpp-response-form .bfpp-form-actions button[type="submit"],
body .bfpp-section .bfpp-request-actions .bfpp-response-form .bfpp-form-actions button[type="submit"],
/* Direct button selector - doesn't matter where it is in the form */
body .bfpp-response-form button.bfpp-button,
body .bfpp-response-form .bfpp-button,
body .bfpp-request-actions button.bfpp-button,
body .bfpp-request-actions .bfpp-button {
	width: auto !important;
	min-width: 150px !important;
	margin: 0 !important;
	padding: 0.75em 1.5em !important;
	background: var(--bfpp-purple-gradient) !important;
	background: linear-gradient(135deg, #9b51e0 0%, #7a3fc7 100%) !important;
	background-color: #9b51e0 !important;
	color: #ffffff !important;
	font-family: 'Nunito', 'Nunito Sans', sans-serif !important;
	font-size: 1em !important;
	font-weight: 600 !important;
	border: none !important;
	border-radius: 8px !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	box-shadow: 0 4px 12px rgba(155, 81, 224, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-underline-offset: 0 !important;
	border-bottom: none !important;
	text-shadow: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
}

body .bfpp-container .bfpp-request-actions .bfpp-response-form button[type="submit"]:hover,
body .bfpp-request-actions .bfpp-response-form button[type="submit"]:hover,
body .bfpp-container .bfpp-response-form .bfpp-form-actions button[type="submit"]:hover,
body .bfpp-response-form .bfpp-form-actions button[type="submit"]:hover,
body .bfpp-container .bfpp-request-actions .bfpp-response-form .bfpp-button:hover,
body .bfpp-request-actions .bfpp-response-form .bfpp-button:hover,
body .bfpp-container .bfpp-request-actions .bfpp-response-form button.bfpp-button:hover,
body .bfpp-request-actions .bfpp-response-form button.bfpp-button:hover,
body .bfpp-container .bfpp-section .bfpp-request-actions .bfpp-response-form .bfpp-form-actions button[type="submit"]:hover,
body .bfpp-section .bfpp-request-actions .bfpp-response-form .bfpp-form-actions button[type="submit"]:hover,
body .bfpp-response-form button.bfpp-button:hover,
body .bfpp-response-form .bfpp-button:hover,
body .bfpp-request-actions button.bfpp-button:hover,
body .bfpp-request-actions .bfpp-button:hover {
	background: var(--bfpp-purple-gradient) !important;
	background: linear-gradient(135deg, #9b51e0 0%, #7a3fc7 100%) !important;
	background-size: 120% 120% !important;
	background-color: #7a3fc7 !important;
	color: #ffffff !important;
	box-shadow: 0 6px 20px rgba(155, 81, 224, 0.4), 0 4px 8px rgba(0, 0, 0, 0.15) !important;
	transform: translateY(-2px) scale(1.02) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-underline-offset: 0 !important;
	border-bottom: none !important;
	text-shadow: none !important;
}

/* Remove double padding when response form is inside request actions */
.bfpp-container .bfpp-request-actions .bfpp-section .bfpp-response-form,
.bfpp-request-actions .bfpp-section .bfpp-response-form {
	padding: 0 !important;
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
	margin: 0 !important;
}

/* ============================================
   Print Styles
   ============================================ */
@media print {
	.bfpp-button,
	a.bfpp-button,
	button.bfpp-button {
		display: none !important;
	}

	.bfpp-table-wrapper {
		box-shadow: none !important;
	}
}
