/**
 * RCP Registration Form - Modern Clean Design
 *
 * High-specificity CSS to ensure consistent styling across all themes.
 * Uses `body` prefix and `!important` to prevent theme overrides.
 *
 * @package Restrict Content Pro
 * @since 3.5.46
 */

/* ============================================
   CSS Variables for easy customization
   ============================================ */
body #rcp_registration_form,
body .rcp_form {
	--rcp-primary: #2563eb;
	--rcp-primary-hover: #1d4ed8;
	--rcp-success: #059669;
	--rcp-error: #dc2626;
	--rcp-border: #e5e7eb;
	--rcp-border-focus: #2563eb;
	--rcp-bg: #ffffff;
	--rcp-bg-muted: #f9fafb;
	--rcp-text: #111827;
	--rcp-text-muted: #6b7280;
	--rcp-radius: 8px;
	--rcp-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
	--rcp-shadow-lg: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
}

/* ============================================
   Form Container - Card Style
   ============================================ */
body #rcp_registration_form,
body .rcp_form {
	max-width: 480px !important;
	margin: 0 auto !important;
	padding: 24px !important;
	background: var(--rcp-bg) !important;
	border: 1px solid var(--rcp-border) !important;
	border-radius: var(--rcp-radius) !important;
	box-shadow: var(--rcp-shadow) !important;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
	font-size: 14px !important;
	line-height: 1.5 !important;
	color: var(--rcp-text) !important;
	box-sizing: border-box !important;
}

body #rcp_registration_form *,
body .rcp_form * {
	box-sizing: border-box !important;
	min-height: 0 !important;
}

/* ============================================
   Reset excessive spacing
   ============================================ */
body #rcp_registration_form fieldset,
body .rcp_form fieldset {
	margin: 0 0 16px 0 !important;
	padding: 0 !important;
	border: none !important;
}

body #rcp_registration_form p,
body .rcp_form p {
	margin: 0 0 12px 0 !important;
	padding: 0 !important;
}

body #rcp_registration_form legend,
body .rcp_form legend {
	padding: 0 !important;
	margin: 0 0 8px 0 !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--rcp-text) !important;
}

/* ============================================
   Labels
   ============================================ */
body #rcp_registration_form label,
body .rcp_form label {
	display: block !important;
	margin: 0 0 4px 0 !important;
	padding: 0 !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	color: var(--rcp-text) !important;
	line-height: 1.4 !important;
}

body #rcp_registration_form .required,
body .rcp_form .required {
	color: var(--rcp-error) !important;
}

/* ============================================
   Form Fields
   ============================================ */
body #rcp_registration_form .rcp_form_field,
body .rcp_form .rcp_form_field {
	margin: 0 0 14px 0 !important;
	padding: 0 !important;
}

body #rcp_registration_form input[type="text"],
body #rcp_registration_form input[type="email"],
body #rcp_registration_form input[type="password"],
body #rcp_registration_form input[type="tel"],
body #rcp_registration_form input[type="number"],
body #rcp_registration_form input[type="url"],
body #rcp_registration_form select,
body #rcp_registration_form textarea,
body .rcp_form input[type="text"],
body .rcp_form input[type="email"],
body .rcp_form input[type="password"],
body .rcp_form input[type="tel"],
body .rcp_form input[type="number"],
body .rcp_form input[type="url"],
body .rcp_form select,
body .rcp_form textarea {
	width: 100% !important;
	height: auto !important;
	margin: 0 !important;
	padding: 10px 12px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	color: var(--rcp-text) !important;
	background: var(--rcp-bg) !important;
	border: 1px solid var(--rcp-border) !important;
	border-radius: 6px !important;
	outline: none !important;
	box-shadow: none !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

body #rcp_registration_form input:focus,
body #rcp_registration_form select:focus,
body #rcp_registration_form textarea:focus,
body .rcp_form input:focus,
body .rcp_form select:focus,
body .rcp_form textarea:focus {
	border-color: var(--rcp-border-focus) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1) !important;
}

body #rcp_registration_form select {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important;
	background-position: right 10px center !important;
	background-repeat: no-repeat !important;
	background-size: 16px !important;
	padding-right: 36px !important;
}

/* ============================================
   Subscription Levels
   ============================================ */
body #rcp_registration_form #rcp_subscription_levels,
body #rcp_registration_form .rcp_subscription_levels,
body .rcp_form #rcp_subscription_levels,
body .rcp_form .rcp_subscription_levels {
	margin: 0 0 16px 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body #rcp_registration_form #rcp_subscription_levels li,
body #rcp_registration_form .rcp_subscription_levels li,
body .rcp_form #rcp_subscription_levels li,
body .rcp_form .rcp_subscription_levels li {
	margin: 0 0 8px 0 !important;
	padding: 12px !important;
	background: var(--rcp-bg-muted) !important;
	border: 1px solid var(--rcp-border) !important;
	border-radius: 6px !important;
	list-style: none !important;
	transition: border-color 0.15s ease, background-color 0.15s ease !important;
}

body #rcp_registration_form #rcp_subscription_levels li:last-child,
body .rcp_form #rcp_subscription_levels li:last-child {
	margin-bottom: 0 !important;
}

body #rcp_registration_form #rcp_subscription_levels li:hover,
body .rcp_form #rcp_subscription_levels li:hover {
	border-color: var(--rcp-primary) !important;
	background: #eff6ff !important;
}

body #rcp_registration_form #rcp_subscription_levels li.rcp_selected,
body .rcp_form #rcp_subscription_levels li.rcp_selected {
	border-color: var(--rcp-primary) !important;
	background: #eff6ff !important;
}

body #rcp_registration_form #rcp_subscription_levels li label,
body .rcp_form #rcp_subscription_levels li label {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
	cursor: pointer !important;
	font-weight: 400 !important;
}

body #rcp_registration_form #rcp_subscription_levels input[type="radio"],
body .rcp_form #rcp_subscription_levels input[type="radio"] {
	width: 18px !important;
	height: 18px !important;
	margin: 0 !important;
	padding: 0 !important;
	flex-shrink: 0 !important;
	cursor: pointer !important;
	accent-color: var(--rcp-primary) !important;
}

body #rcp_registration_form .rcp_subscription_level_name,
body #rcp_registration_form .rcp_level_name,
body .rcp_form .rcp_subscription_level_name,
body .rcp_form .rcp_level_name {
	font-weight: 600 !important;
	color: var(--rcp-text) !important;
}

body #rcp_registration_form .rcp_subscription_level_price,
body #rcp_registration_form .rcp_level_price,
body .rcp_form .rcp_subscription_level_price,
body .rcp_form .rcp_level_price {
	color: var(--rcp-text-muted) !important;
	font-size: 13px !important;
}

/* ============================================
   Subscription Details Box
   ============================================ */
body #rcp_registration_form #rcp_subscription_details,
body #rcp_registration_form .rcp_subscription_details,
body #rcp_registration_form .rcp_details,
body .rcp_form #rcp_subscription_details,
body .rcp_form .rcp_subscription_details,
body .rcp_form .rcp_details {
	margin: 16px 0 !important;
	padding: 14px !important;
	background: var(--rcp-bg-muted) !important;
	border: 1px solid var(--rcp-border) !important;
	border-radius: 6px !important;
}

body #rcp_registration_form .rcp_details table,
body .rcp_form .rcp_details table {
	width: 100% !important;
	border-collapse: collapse !important;
	margin: 0 !important;
}

body #rcp_registration_form .rcp_details th,
body #rcp_registration_form .rcp_details td,
body .rcp_form .rcp_details th,
body .rcp_form .rcp_details td {
	padding: 6px 0 !important;
	border: none !important;
	border-bottom: 1px solid var(--rcp-border) !important;
	font-size: 13px !important;
	text-align: left !important;
	background: transparent !important;
}

body #rcp_registration_form .rcp_details th:last-child,
body #rcp_registration_form .rcp_details td:last-child,
body .rcp_form .rcp_details th:last-child,
body .rcp_form .rcp_details td:last-child {
	text-align: right !important;
}

body #rcp_registration_form .rcp_details tr:last-child th,
body #rcp_registration_form .rcp_details tr:last-child td,
body .rcp_form .rcp_details tr:last-child th,
body .rcp_form .rcp_details tr:last-child td {
	border-bottom: none !important;
	font-weight: 600 !important;
}

/* ============================================
   Gateway Selection
   ============================================ */
body #rcp_registration_form #rcp_gateway_fields,
body #rcp_registration_form .rcp_gateway_fields,
body .rcp_form #rcp_gateway_fields,
body .rcp_form .rcp_gateway_fields {
	margin: 16px 0 !important;
	padding: 0 !important;
}

body #rcp_registration_form #rcp_gateway_fields ul,
body #rcp_registration_form .rcp_gateway_fields ul,
body .rcp_form #rcp_gateway_fields ul,
body .rcp_form .rcp_gateway_fields ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body #rcp_registration_form #rcp_gateway_fields li,
body #rcp_registration_form .rcp_gateway_fields li,
body .rcp_form #rcp_gateway_fields li,
body .rcp_form .rcp_gateway_fields li {
	margin: 0 0 6px 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body #rcp_registration_form #rcp_gateway_fields label,
body #rcp_registration_form .rcp_gateway_fields label,
body .rcp_form #rcp_gateway_fields label,
body .rcp_form .rcp_gateway_fields label {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	cursor: pointer !important;
	font-weight: 400 !important;
}

body #rcp_registration_form #rcp_gateway_fields input[type="radio"],
body .rcp_form #rcp_gateway_fields input[type="radio"] {
	width: 16px !important;
	height: 16px !important;
	margin: 0 !important;
	accent-color: var(--rcp-primary) !important;
}

/* ============================================
   Daraja M-Pesa Fields
   ============================================ */
body #rcp_registration_form .rcp_daraja_fields,
body .rcp_form .rcp_daraja_fields {
	margin: 12px 0 !important;
	padding: 14px !important;
	background: #fef3c7 !important;
	border: 1px solid #fbbf24 !important;
	border-radius: 6px !important;
}

body #rcp_registration_form .rcp_daraja_fields p,
body .rcp_form .rcp_daraja_fields p {
	margin: 0 !important;
}

body #rcp_registration_form .rcp_daraja_fields label,
body .rcp_form .rcp_daraja_fields label {
	color: #92400e !important;
}

body #rcp_registration_form .rcp_daraja_fields input[type="tel"],
body .rcp_form .rcp_daraja_fields input[type="tel"] {
	max-width: 200px !important;
	background: #fff !important;
}

body #rcp_registration_form .rcp_daraja_phone_description,
body .rcp_form .rcp_daraja_phone_description {
	display: block !important;
	margin-top: 4px !important;
	font-size: 12px !important;
	color: #92400e !important;
}

/* ============================================
   Submit Button
   ============================================ */
body #rcp_registration_form #rcp_submit,
body #rcp_registration_form .rcp_submit,
body .rcp_form #rcp_submit,
body .rcp_form .rcp_submit {
	display: block !important;
	width: 100% !important;
	margin: 20px 0 0 0 !important;
	padding: 12px 24px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	color: #fff !important;
	background: var(--rcp-primary) !important;
	border: none !important;
	border-radius: 6px !important;
	cursor: pointer !important;
	transition: background-color 0.15s ease, transform 0.1s ease !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

body #rcp_registration_form #rcp_submit:hover,
body .rcp_form #rcp_submit:hover {
	background: var(--rcp-primary-hover) !important;
}

body #rcp_registration_form #rcp_submit:active,
body .rcp_form #rcp_submit:active {
	transform: translateY(1px) !important;
}

body #rcp_registration_form #rcp_submit:disabled,
body .rcp_form #rcp_submit:disabled {
	background: #9ca3af !important;
	cursor: not-allowed !important;
	transform: none !important;
}

/* ============================================
   Messages (Error/Success)
   ============================================ */
body #rcp_registration_form .rcp_message,
body .rcp_form .rcp_message {
	margin: 12px 0 !important;
	padding: 10px 14px !important;
	border-radius: 6px !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
}

body #rcp_registration_form .rcp_message.error,
body .rcp_form .rcp_message.error {
	background: #fef2f2 !important;
	border: 1px solid #fecaca !important;
	color: #991b1b !important;
}

body #rcp_registration_form .rcp_message.success,
body .rcp_form .rcp_message.success {
	background: #f0fdf4 !important;
	border: 1px solid #bbf7d0 !important;
	color: #166534 !important;
}

/* ============================================
   Daraja Status Messages
   ============================================ */
body #rcp_registration_form .rcp-daraja-status,
body .rcp_form .rcp-daraja-status {
	margin: 14px 0 !important;
	padding: 14px !important;
	border-radius: 6px !important;
	font-size: 14px !important;
}

body #rcp_registration_form .rcp-daraja-status.info,
body .rcp_form .rcp-daraja-status.info {
	background: #eff6ff !important;
	border: 1px solid #bfdbfe !important;
	color: #1e40af !important;
}

body #rcp_registration_form .rcp-daraja-status.success,
body .rcp_form .rcp-daraja-status.success {
	background: #f0fdf4 !important;
	border: 1px solid #bbf7d0 !important;
	color: #166534 !important;
}

body #rcp_registration_form .rcp-daraja-status.error,
body .rcp_form .rcp-daraja-status.error {
	background: #fef2f2 !important;
	border: 1px solid #fecaca !important;
	color: #991b1b !important;
}

body #rcp_registration_form .rcp-daraja-status-text,
body .rcp_form .rcp-daraja-status-text {
	display: inline !important;
	margin: 0 !important;
	font-weight: 500 !important;
}

body #rcp_registration_form .rcp-daraja-spinner,
body .rcp_form .rcp-daraja-spinner {
	display: inline-block !important;
	width: 16px !important;
	height: 16px !important;
	margin-left: 8px !important;
	border: 2px solid #bfdbfe !important;
	border-top-color: #2563eb !important;
	border-radius: 50% !important;
	animation: rcp-daraja-spin 0.8s linear infinite !important;
	vertical-align: middle !important;
}

@keyframes rcp-daraja-spin {
	to { transform: rotate(360deg); }
}

body #rcp_registration_form .rcp-daraja-manual-check,
body .rcp_form .rcp-daraja-manual-check {
	margin-top: 12px !important;
	padding-top: 12px !important;
	border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
}

body #rcp_registration_form .rcp-daraja-manual-intro,
body .rcp_form .rcp-daraja-manual-intro {
	margin: 0 0 8px 0 !important;
	font-size: 13px !important;
	color: inherit !important;
	opacity: 0.8 !important;
}

body #rcp_registration_form .rcp-daraja-check-btn,
body #rcp_registration_form .rcp-daraja-verify-receipt-btn,
body .rcp_form .rcp-daraja-check-btn,
body .rcp_form .rcp-daraja-verify-receipt-btn {
	display: inline-block !important;
	padding: 8px 14px !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	color: var(--rcp-primary) !important;
	background: #fff !important;
	border: 1px solid var(--rcp-primary) !important;
	border-radius: 5px !important;
	cursor: pointer !important;
	transition: all 0.15s ease !important;
}

body #rcp_registration_form .rcp-daraja-check-btn:hover,
body #rcp_registration_form .rcp-daraja-verify-receipt-btn:hover,
body .rcp_form .rcp-daraja-check-btn:hover,
body .rcp_form .rcp-daraja-verify-receipt-btn:hover {
	background: var(--rcp-primary) !important;
	color: #fff !important;
}

body #rcp_registration_form .rcp-daraja-check-btn:disabled,
body #rcp_registration_form .rcp-daraja-verify-receipt-btn:disabled,
body .rcp_form .rcp-daraja-check-btn:disabled,
body .rcp_form .rcp-daraja-verify-receipt-btn:disabled {
	opacity: 0.5 !important;
	cursor: not-allowed !important;
}

body #rcp_registration_form .rcp-daraja-receipt-section,
body .rcp_form .rcp-daraja-receipt-section {
	margin-top: 12px !important;
	padding-top: 12px !important;
	border-top: 1px dashed rgba(0, 0, 0, 0.08) !important;
}

body #rcp_registration_form .rcp-daraja-receipt-intro,
body .rcp_form .rcp-daraja-receipt-intro {
	margin: 0 0 8px 0 !important;
	font-size: 12px !important;
	color: inherit !important;
	opacity: 0.8 !important;
}

body #rcp_registration_form .rcp-daraja-receipt-input,
body .rcp_form .rcp-daraja-receipt-input {
	width: 130px !important;
	padding: 8px 10px !important;
	margin-right: 8px !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace !important;
	font-size: 13px !important;
	text-transform: uppercase !important;
	border: 1px solid var(--rcp-border) !important;
	border-radius: 5px !important;
}

/* ============================================
   Discount/Promo Code
   ============================================ */
body #rcp_registration_form #rcp_discount_code_wrap,
body .rcp_form #rcp_discount_code_wrap {
	margin: 14px 0 !important;
	padding: 0 !important;
}

body #rcp_registration_form #rcp_discount_code,
body .rcp_form #rcp_discount_code {
	max-width: 200px !important;
}

/* ============================================
   Terms & Conditions
   ============================================ */
body #rcp_registration_form .rcp_agree_to_terms,
body .rcp_form .rcp_agree_to_terms {
	margin: 14px 0 !important;
}

body #rcp_registration_form .rcp_agree_to_terms label,
body .rcp_form .rcp_agree_to_terms label {
	display: inline-flex !important;
	align-items: flex-start !important;
	gap: 8px !important;
	font-weight: 400 !important;
	cursor: pointer !important;
}

body #rcp_registration_form .rcp_agree_to_terms input[type="checkbox"],
body .rcp_form .rcp_agree_to_terms input[type="checkbox"] {
	width: 16px !important;
	height: 16px !important;
	margin: 2px 0 0 0 !important;
	flex-shrink: 0 !important;
	accent-color: var(--rcp-primary) !important;
}

/* ============================================
   Helper Text / Descriptions
   ============================================ */
body #rcp_registration_form .description,
body #rcp_registration_form small,
body .rcp_form .description,
body .rcp_form small {
	display: block !important;
	margin-top: 4px !important;
	font-size: 12px !important;
	color: var(--rcp-text-muted) !important;
	line-height: 1.4 !important;
}

/* ============================================
   Responsive Design
   ============================================ */
@media (max-width: 520px) {
	body #rcp_registration_form,
	body .rcp_form {
		margin: 0 10px !important;
		padding: 16px !important;
		max-width: none !important;
	}

	body #rcp_registration_form #rcp_subscription_levels li label,
	body .rcp_form #rcp_subscription_levels li label {
		flex-wrap: wrap !important;
	}

	body #rcp_registration_form .rcp_daraja_fields input[type="tel"],
	body .rcp_form .rcp_daraja_fields input[type="tel"] {
		max-width: 100% !important;
	}

	body #rcp_registration_form .rcp-daraja-receipt-input,
	body .rcp_form .rcp-daraja-receipt-input {
		width: 100% !important;
		margin-bottom: 8px !important;
		margin-right: 0 !important;
	}

	body #rcp_registration_form .rcp-daraja-verify-receipt-btn,
	body .rcp_form .rcp-daraja-verify-receipt-btn {
		width: 100% !important;
	}

	/* Membership Details Table - Mobile Fix for horizontal scroll */
	body #rcp_registration_form .rcp_registration_total_details,
	body .rcp_form .rcp_registration_total_details {
		width: 100% !important;
		max-width: 100% !important;
		overflow-x: hidden !important;
	}

	body #rcp_registration_form .rcp_registration_total_details tr,
	body .rcp_form .rcp_registration_total_details tr {
		width: 100% !important;
		max-width: 100% !important;
		display: flex !important;
		flex-wrap: wrap !important;
		justify-content: space-between !important;
		gap: 4px !important;
	}

	body #rcp_registration_form .rcp_registration_total_details td,
	body #rcp_registration_form .rcp_registration_total_details th,
	body .rcp_form .rcp_registration_total_details td,
	body .rcp_form .rcp_registration_total_details th {
		flex: 1 1 auto !important;
		min-width: 0 !important;
		word-break: break-word !important;
	}

	body #rcp_registration_form .rcp_registration_total_details td:last-child,
	body .rcp_form .rcp_registration_total_details td:last-child {
		text-align: right !important;
	}
}
