/* ============================================
   NWPCPG Admin UI Kit - Modern Design System
   Scoped under .nwpcpg-admin only
   ============================================ */

.nwpcpg-admin {
	--nwpcpg-primary: #2271b1;
	--nwpcpg-primary-hover: #135e96;
	--nwpcpg-success: #00a32a;
	--nwpcpg-warning: #dba617;
	--nwpcpg-border: #dcdcde;
	--nwpcpg-border-light: #e5e5e5;
	--nwpcpg-bg: #fff;
	--nwpcpg-bg-light: #f6f7f7;
	--nwpcpg-text: #1d2327;
	--nwpcpg-text-muted: #646970;
	--nwpcpg-radius: 12px;
	--nwpcpg-radius-sm: 8px;
	--nwpcpg-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
	--nwpcpg-shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Container */
.nwpcpg-admin .nwpcpg-container {
	max-width: 980px;
	margin: 0 auto;
	overflow: visible;
}

.nwpcpg-admin .nwpcpg-container--wide {
	max-width: none;
	margin: 0;
	padding: 0 20px;
}

/* Spacing utilities */
.nwpcpg-admin .nwpcpg-mt-0 { margin-top: 0; }
.nwpcpg-admin .nwpcpg-mt-1 { margin-top: 8px; }
.nwpcpg-admin .nwpcpg-mt-2 { margin-top: 16px; }
.nwpcpg-admin .nwpcpg-mt-3 { margin-top: 24px; }
.nwpcpg-admin .nwpcpg-mt-4 { margin-top: 32px; }

.nwpcpg-admin .nwpcpg-mb-0 { margin-bottom: 0; }
.nwpcpg-admin .nwpcpg-mb-1 { margin-bottom: 8px; }
.nwpcpg-admin .nwpcpg-mb-2 { margin-bottom: 16px; }
.nwpcpg-admin .nwpcpg-mb-3 { margin-bottom: 24px; }
.nwpcpg-admin .nwpcpg-mb-4 { margin-bottom: 32px; }

.nwpcpg-admin .nwpcpg-gap-1 { gap: 8px; }
.nwpcpg-admin .nwpcpg-gap-2 { gap: 16px; }
.nwpcpg-admin .nwpcpg-gap-3 { gap: 24px; }

/* Header */
.nwpcpg-admin .nwpcpg-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 24px;
	flex-wrap: wrap;
	gap: 12px;
}

.nwpcpg-admin .nwpcpg-header h1 {
	flex: 1;
	margin: 0;
}

.nwpcpg-admin .nwpcpg-header h1 {
	margin: 0;
	font-size: 23px;
	font-weight: 400;
}

.nwpcpg-admin .nwpcpg-header-actions {
	display: flex;
	gap: 8px;
}

/* Cards */
.nwpcpg-admin .nwpcpg-card {
	background: var(--nwpcpg-bg);
	border: 1px solid var(--nwpcpg-border);
	border-radius: var(--nwpcpg-radius);
	padding: 20px;
	margin-bottom: 24px;
	box-shadow: var(--nwpcpg-shadow);
}

.nwpcpg-admin .nwpcpg-card__title {
	font-size: 18px;
	font-weight: 500;
	margin: 0 0 16px;
	color: var(--nwpcpg-text);
}

.nwpcpg-admin .nwpcpg-card__body {
	margin: 0;
}

/* Buttons */
.nwpcpg-admin .nwpcpg-btn {
	display: inline-block;
	padding: 8px 16px;
	font-size: 14px;
	line-height: 1.5;
	border-radius: var(--nwpcpg-radius-sm);
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: all 0.2s ease;
	font-weight: 500;
}

.nwpcpg-admin .nwpcpg-btn-primary {
	background: var(--nwpcpg-primary);
	color: #fff;
	border-color: var(--nwpcpg-primary);
}

.nwpcpg-admin .nwpcpg-btn-primary:hover {
	background: var(--nwpcpg-primary-hover);
	border-color: var(--nwpcpg-primary-hover);
	color: #fff;
}

.nwpcpg-admin .nwpcpg-btn-secondary {
	background: var(--nwpcpg-bg);
	color: var(--nwpcpg-text);
	border-color: var(--nwpcpg-border);
}

.nwpcpg-admin .nwpcpg-btn-secondary:hover {
	background: var(--nwpcpg-bg-light);
	border-color: var(--nwpcpg-primary);
	color: var(--nwpcpg-primary);
}

.nwpcpg-admin .nwpcpg-btn-link {
	background: transparent;
	border-color: transparent;
	color: var(--nwpcpg-primary);
}

.nwpcpg-admin .nwpcpg-btn-link:hover {
	background: transparent;
	border-color: transparent;
	color: var(--nwpcpg-primary-hover);
	text-decoration: underline;
}

/* Form fields */
.nwpcpg-admin .nwpcpg-field {
	margin-bottom: 20px;
}

.nwpcpg-admin .nwpcpg-field:last-child {
	margin-bottom: 0;
}

.nwpcpg-admin .nwpcpg-label {
	display: block;
	font-weight: 500;
	margin-bottom: 6px;
	color: var(--nwpcpg-text);
	font-size: 14px;
}

.nwpcpg-admin .nwpcpg-input,
.nwpcpg-admin .nwpcpg-select,
.nwpcpg-admin .nwpcpg-textarea {
	width: 100%;
	padding: 8px 12px;
	border: 1px solid var(--nwpcpg-border);
	border-radius: var(--nwpcpg-radius-sm);
	font-size: 14px;
	line-height: 1.5;
	transition: border-color 0.2s ease;
}

/* Exclude Select2 search fields from input styling - prevent them from getting .nwpcpg-input styles */
.nwpcpg-admin .select2-search__field,
.nwpcpg-admin .select2-container .select2-search__field,
.nwpcpg-admin .select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	width: auto !important;
	min-width: 150px;
}


.nwpcpg-admin .nwpcpg-input:focus,
.nwpcpg-admin .nwpcpg-select:focus,
.nwpcpg-admin .nwpcpg-textarea:focus {
	outline: none;
	border-color: var(--nwpcpg-primary);
	box-shadow: 0 0 0 2px rgba(34, 113, 177, 0.1);
}

/* Exclude Select2 search fields from focus styling */
.nwpcpg-admin .select2-search__field:focus,
.nwpcpg-admin .select2-container .select2-search__field:focus {
	border: none !important;
	box-shadow: none !important;
	outline: none !important;
}

.nwpcpg-admin .nwpcpg-help {
	margin-top: 6px;
	font-size: 13px;
	color: var(--nwpcpg-text-muted);
}

/* Grid */
.nwpcpg-admin .nwpcpg-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

.nwpcpg-admin .nwpcpg-grid-3 {
	grid-template-columns: repeat(3, 1fr);
}

/* Table */
.nwpcpg-admin .nwpcpg-table-wrapper {
	background: var(--nwpcpg-bg);
	border: 1px solid var(--nwpcpg-border);
	border-radius: var(--nwpcpg-radius);
	overflow: hidden;
	box-shadow: var(--nwpcpg-shadow);
}

.nwpcpg-admin .nwpcpg-table-wrapper .wp-list-table {
	margin: 0;
	border: 0;
}

.nwpcpg-admin .nwpcpg-table-wrapper .wp-list-table thead th {
	background: var(--nwpcpg-bg-light);
	border-bottom: 2px solid var(--nwpcpg-border);
	font-weight: 600;
	padding: 12px 16px;
}

.nwpcpg-admin .nwpcpg-table-wrapper .wp-list-table tbody tr {
	transition: background-color 0.15s ease;
}

.nwpcpg-admin .nwpcpg-table-wrapper .wp-list-table tbody tr:hover {
	background-color: var(--nwpcpg-bg-light);
}

.nwpcpg-admin .nwpcpg-table-wrapper .wp-list-table tbody td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--nwpcpg-border-light);
}

/* Badges */
.nwpcpg-admin .nwpcpg-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.3px;
}

.nwpcpg-admin .nwpcpg-badge--enabled {
	background: #d1e7dd;
	color: #0f5132;
}

.nwpcpg-admin .nwpcpg-badge--disabled {
	background: #fff3cd;
	color: #856404;
}

.nwpcpg-admin .nwpcpg-badge--gray {
	background: #e9ecef;
	color: #495057;
}

.nwpcpg-badge--pro {
	background: linear-gradient(135deg, #f59e0b, #d97706);
	color: #fff;
	font-size: 10px;
	padding: 2px 7px;
	border-radius: 4px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	vertical-align: middle;
	margin-left: 6px;
	display: inline-block;
	line-height: 1.6;
}

/* Summary box */
.nwpcpg-admin .nwpcpg-summary {
	background: #f0f6fc;
	border-left: 4px solid var(--nwpcpg-primary);
	border-radius: var(--nwpcpg-radius-sm);
	padding: 16px 20px;
	margin: 24px 0 0 0;
}

.nwpcpg-admin .nwpcpg-summary__title {
	font-weight: 600;
	margin: 0 0 8px;
	font-size: 14px;
	color: var(--nwpcpg-text);
}

.nwpcpg-admin .nwpcpg-summary__content {
	margin: 0;
	font-size: 14px;
	color: var(--nwpcpg-text-muted);
	line-height: 1.6;
}

/* Checkbox/Radio lists */
.nwpcpg-admin .nwpcpg-checkbox-list,
.nwpcpg-admin .nwpcpg-gateways-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px 20px;
	margin-top: 0;
}

.nwpcpg-admin .nwpcpg-checkbox-item,
.nwpcpg-admin .nwpcpg-gateway-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 0;
}

.nwpcpg-admin .nwpcpg-checkbox-item input[type="checkbox"],
.nwpcpg-admin .nwpcpg-gateway-item input[type="checkbox"] {
	margin: 0;
	flex-shrink: 0;
}

.nwpcpg-admin .nwpcpg-gateway-title {
	font-weight: 500;
}

/* Number inputs grid */
.nwpcpg-admin .nwpcpg-number-inputs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-top: 12px;
}

.nwpcpg-admin .nwpcpg-number-inputs > div {
	display: flex;
	flex-direction: column;
}

.nwpcpg-admin .nwpcpg-number-inputs label {
	margin-bottom: 6px;
	font-weight: 500;
	font-size: 14px;
}

/* Empty state */
.nwpcpg-admin .nwpcpg-empty-state {
	text-align: center;
	padding: 80px 20px;
	background: var(--nwpcpg-bg);
	border: 1px solid var(--nwpcpg-border);
	border-radius: var(--nwpcpg-radius);
	margin-top: 24px;
}

.nwpcpg-admin .nwpcpg-empty-state h2 {
	margin: 0 0 12px;
	font-size: 24px;
	font-weight: 500;
	color: var(--nwpcpg-text);
}

.nwpcpg-admin .nwpcpg-empty-state p {
	margin: 0 0 24px;
	color: var(--nwpcpg-text-muted);
	font-size: 15px;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
	line-height: 1.6;
}

/* Modal */
.nwpcpg-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 100000;
	display: none;
	align-items: center;
	justify-content: center;
	backdrop-filter: blur(2px);
}

.nwpcpg-modal-overlay.active {
	display: flex;
}

.nwpcpg-modal {
	background: var(--nwpcpg-bg);
	max-width: 800px;
	width: 90%;
	max-height: 85vh;
	overflow: auto;
	box-shadow: var(--nwpcpg-shadow-lg);
	border-radius: var(--nwpcpg-radius);
}

.nwpcpg-modal-header {
	padding: 20px 24px;
	border-bottom: 1px solid var(--nwpcpg-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: var(--nwpcpg-bg-light);
	border-radius: var(--nwpcpg-radius) var(--nwpcpg-radius) 0 0;
}

.nwpcpg-modal-header h2 {
	margin: 0;
	font-size: 20px;
	font-weight: 500;
	color: var(--nwpcpg-text);
}

.nwpcpg-modal-header .button-link {
	font-size: 24px;
	line-height: 1;
	padding: 0;
	width: 32px;
	height: 32px;
	text-align: center;
	border-radius: var(--nwpcpg-radius-sm);
	transition: background-color 0.2s ease;
}

.nwpcpg-modal-header .button-link:hover {
	background: var(--nwpcpg-bg);
}

.nwpcpg-modal-body {
	padding: 24px;
}

.nwpcpg-template-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

.nwpcpg-template-card {
	border: 1px solid var(--nwpcpg-border);
	background: var(--nwpcpg-bg);
	padding: 20px;
	text-decoration: none;
	color: inherit;
	display: block;
	border-radius: var(--nwpcpg-radius);
	transition: all 0.2s ease;
}

.nwpcpg-template-card:hover {
	border-color: var(--nwpcpg-primary);
	box-shadow: 0 0 0 2px rgba(34, 113, 177, 0.1);
	text-decoration: none;
	color: inherit;
	transform: translateY(-2px);
}

.nwpcpg-template-card h3 {
	margin: 0 0 8px;
	font-size: 16px;
	font-weight: 600;
	color: var(--nwpcpg-text);
}

.nwpcpg-template-card p {
	margin: 0 0 16px;
	color: var(--nwpcpg-text-muted);
	font-size: 14px;
	line-height: 1.5;
}

.nwpcpg-template-card .button {
	margin: 0;
}

.nwpcpg-template-card--locked {
	border-style: dashed;
	opacity: 0.85;
	position: relative;
}

.nwpcpg-template-card--locked:hover {
	border-color: #d97706;
	box-shadow: 0 0 0 2px rgba(217, 119, 6, 0.15);
}

.nwpcpg-template-card--locked p {
	color: #9ca3af;
}

.nwpcpg-btn-upgrade {
	display: inline-block;
	padding: 8px 16px;
	font-size: 13px;
	line-height: 1.5;
	border-radius: var(--nwpcpg-radius-sm, 8px);
	border: 1px solid #d97706;
	background: linear-gradient(135deg, #f59e0b, #d97706);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: all 0.2s ease;
}

.nwpcpg-btn-upgrade:hover {
	background: linear-gradient(135deg, #d97706, #b45309);
	border-color: #b45309;
	color: #fff;
	text-decoration: none;
}

.nwpcpg-admin .nwpcpg-pro-notice {
	background: #fffbeb;
	border: 1px solid #f59e0b;
	border-left-width: 4px;
	border-radius: 4px;
	padding: 12px 16px;
	margin-bottom: 16px;
	display: flex;
	align-items: center;
	gap: 12px;
}

.nwpcpg-admin .nwpcpg-pro-notice p {
	margin: 0;
	flex: 1;
}

.nwpcpg-admin .nwpcpg-pro-notice .nwpcpg-btn-upgrade {
	flex-shrink: 0;
	font-size: 12px;
	padding: 6px 14px;
}

/* Sticky footer */
.nwpcpg-admin .nwpcpg-footer {
	position: sticky;
	bottom: 20px;
	background: var(--nwpcpg-bg);
	border: 1px solid var(--nwpcpg-border);
	padding: 16px 20px;
	margin-top: 24px;
	margin-bottom: 0;
	border-radius: var(--nwpcpg-radius);
	box-shadow: var(--nwpcpg-shadow-lg);
	z-index: 10;
}

.nwpcpg-admin .nwpcpg-footer__actions {
	display: flex;
	justify-content: flex-end;
	gap: 12px;
}

.nwpcpg-admin .nwpcpg-btn-danger {
	background: #d63638;
	color: #fff;
	border-color: #d63638;
}

.nwpcpg-admin .nwpcpg-btn-danger:hover {
	background: #b32d2e;
	border-color: #b32d2e;
	color: #fff;
}

/* Responsive */
@media (max-width: 782px) {
	.nwpcpg-admin .nwpcpg-grid,
	.nwpcpg-admin .nwpcpg-checkbox-list,
	.nwpcpg-admin .nwpcpg-gateways-list,
	.nwpcpg-template-grid {
		grid-template-columns: 1fr;
	}

	.nwpcpg-admin .nwpcpg-number-inputs {
		grid-template-columns: 1fr;
	}

	.nwpcpg-admin .nwpcpg-header {
		flex-direction: column;
		align-items: flex-start;
	}

	.nwpcpg-admin .nwpcpg-header-actions {
		width: 100%;
	}

	.nwpcpg-admin .nwpcpg-header-actions .nwpcpg-btn {
		flex: 1;
		text-align: center;
	}

	.nwpcpg-admin .nwpcpg-footer {
		bottom: 10px;
		padding: 12px 16px;
	}

	.nwpcpg-admin .nwpcpg-footer__actions {
		flex-direction: column;
	}
	
	.nwpcpg-admin .nwpcpg-footer .nwpcpg-btn {
		width: 100%;
		justify-content: center;
	}
}

/* Validation error styles */
.nwpcpg-admin .nwpcpg-field-error .nwpcpg-input,
.nwpcpg-admin .nwpcpg-field-error .nwpcpg-select {
	border-color: #d63638;
}

.nwpcpg-admin .nwpcpg-field-error .nwpcpg-label {
	color: #d63638;
}

.nwpcpg-admin .nwpcpg-error-text {
	color: #d63638;
	font-size: 13px;
	margin-top: 4px;
	margin-bottom: 0;
}

.nwpcpg-admin .nwpcpg-checkbox-list.nwpcpg-field-error {
	border: 1px solid #d63638;
	border-radius: 4px;
	padding: 8px;
}

/* Select2 / wc-product-search styling - minimal fixes to match WooCommerce admin */

/* Hide original select when Select2 container exists */
.nwpcpg-admin .nwpcpg-field:has(.select2-container) select.nwpcpg-select2,
.nwpcpg-admin .nwpcpg-field:has(.select2-container) select.wc-product-search,
.nwpcpg-admin select.wc-product-search.select2-hidden-accessible,
.nwpcpg-admin select.nwpcpg-select2.select2-hidden-accessible {
	display: none !important;
	visibility: hidden !important;
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
}

/* Hide original select when Select2 is initialized */
.nwpcpg-admin select.select2-hidden-accessible,
.nwpcpg-admin .select2-hidden-accessible {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border-width: 0 !important;
}

/* Select2 container - ensure full width and proper display */
.nwpcpg-admin .select2-container {
	width: 100% !important;
	display: block !important;
	margin-bottom: 0;
}

/* Single select styling */
.nwpcpg-admin .select2-container--default .select2-selection--single {
	height: auto;
	min-height: 30px;
	border: 1px solid #ddd;
	border-radius: 4px;
	background-color: #fff;
	box-sizing: border-box;
}

.nwpcpg-admin .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 8px;
	line-height: 30px;
	color: #444;
}

.nwpcpg-admin .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 28px;
	right: 8px;
}

/* Ensure selection area maintains proper layout - match WooCommerce native */
.nwpcpg-admin .select2-container--default .select2-selection--multiple {
	min-height: 32px;
	box-sizing: border-box;
	border: 1px solid #ddd;
	border-radius: 4px;
	background-color: #fff;
	cursor: text;
	display: block;
}

.nwpcpg-admin .select2-container--default .select2-selection--multiple .select2-selection__rendered {
	box-sizing: border-box;
	display: block;
	width: 100%;
	padding: 2px 8px;
	list-style: none;
	margin: 0;
}

/* Fix search input styling inside multiple select - match WooCommerce native */
.nwpcpg-admin .select2-container--default .select2-selection--multiple .select2-search--inline {
	float: left;
	padding: 0;
	margin: 0;
	width: auto;
}

.nwpcpg-admin .select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
	box-sizing: border-box;
	border: none !important;
	font-size: 100%;
	margin: 0;
	padding: 3px 0;
	background: transparent !important;
	min-width: 150px;
	height: auto;
	box-shadow: none !important;
	outline: none !important;
}

.nwpcpg-admin .select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field:focus {
	outline: none !important;
	background: transparent !important;
	box-shadow: none !important;
	border: none !important;
}

/* Ensure selected choices display properly - inside the container */
.nwpcpg-admin .select2-container--default .select2-selection--multiple .select2-selection__choice {
	margin: 2px 4px 2px 0;
	margin-top: 2px;
	box-sizing: border-box;
	float: left;
	background-color: #e4e4e4;
	border: 1px solid #aaa;
	border-radius: 4px;
	padding: 0 5px;
	cursor: default;
	line-height: 1.5;
}

/* Ensure dropdown stays within card bounds */
.nwpcpg-admin .nwpcpg-card {
	overflow: visible;
	position: relative;
}

/* Select2 dropdown styling - ensure it applies to all Select2 dropdowns */
/* Note: Select2 dropdowns are appended to body, so we need global rules */
.select2-dropdown.select2-container--default,
.select2-dropdown.select2-container--open,
.nwpcpg-admin .select2-dropdown,
.nwpcpg-admin .select2-container .select2-dropdown {
	z-index: 999999 !important;
	background-color: #fff !important;
	border: 1px solid #ddd !important;
	border-radius: 4px !important;
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1) !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Ensure dropdown width matches container width */
.nwpcpg-admin .select2-container--open .select2-dropdown {
	width: 100% !important;
	min-width: 100% !important;
}

/* Force dropdown to match container width using JavaScript-set width attribute */
.select2-dropdown[style*="width"] {
	box-sizing: border-box !important;
}

/* Target dropdowns that are opened from our plugin fields */
body .select2-dropdown:has(+ .nwpcpg-admin),
body .select2-dropdown[id*="nwpcpg"],
body .select2-dropdown[class*="nwpcpg"] {
	background-color: #fff !important;
}

.nwpcpg-admin .select2-dropdown--below,
.nwpcpg-admin .select2-container .select2-dropdown--below {
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1) !important;
}

.nwpcpg-admin .select2-dropdown--above,
.nwpcpg-admin .select2-container .select2-dropdown--above {
	box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1) !important;
}

/* Select2 results container - global rules since dropdown is in body */
.select2-results,
.select2-dropdown .select2-results,
.nwpcpg-admin .select2-results,
.nwpcpg-admin .select2-container .select2-results {
	display: block !important;
	line-height: 1.5em !important;
	background-color: #fff !important;
}

.select2-results__options,
.select2-dropdown .select2-results__options,
.nwpcpg-admin .select2-results__options,
.nwpcpg-admin .select2-container .select2-results__options {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	max-height: 200px !important;
	overflow-y: auto !important;
	background-color: #fff !important;
}

/* Select2 result options - including loading and placeholder messages */
/* Global rules since dropdown is in body */
.select2-results__option,
.select2-dropdown .select2-results__option,
.select2-results__option.loading-results,
.select2-dropdown .select2-results__option.loading-results,
.nwpcpg-admin .select2-results__option,
.nwpcpg-admin .select2-container .select2-results__option,
.nwpcpg-admin .select2-results__option.loading-results,
.nwpcpg-admin .select2-container .select2-results__option.loading-results {
	padding: 8px !important;
	margin: 0 !important;
	user-select: none !important;
	-webkit-user-select: none !important;
	cursor: pointer !important;
	color: #444 !important;
	background-color: #fff !important;
}

/* Hover and selected states - global rules */
.select2-results__option:hover,
.select2-results__option[aria-selected="true"],
.select2-dropdown .select2-results__option:hover,
.select2-dropdown .select2-results__option[aria-selected="true"],
.nwpcpg-admin .select2-results__option:hover,
.nwpcpg-admin .select2-results__option[aria-selected="true"],
.nwpcpg-admin .select2-container .select2-results__option:hover,
.nwpcpg-admin .select2-container .select2-results__option[aria-selected="true"] {
	background-color: #f0f0f1 !important;
	color: #1d2327 !important;
}

.select2-results__option--highlighted,
.select2-dropdown .select2-results__option--highlighted,
.nwpcpg-admin .select2-results__option--highlighted,
.nwpcpg-admin .select2-container .select2-results__option--highlighted {
	background-color: #2271b1 !important;
	color: #fff !important;
}

.select2-results__option[data-selected="true"],
.select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted),
.select2-dropdown .select2-results__option[data-selected="true"],
.select2-dropdown .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted),
.nwpcpg-admin .select2-results__option[data-selected="true"],
.nwpcpg-admin .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted),
.nwpcpg-admin .select2-container .select2-results__option[data-selected="true"],
.nwpcpg-admin .select2-container .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted) {
	background-color: #f0f0f1 !important;
}

.select2-results__option[aria-disabled="true"],
.select2-dropdown .select2-results__option[aria-disabled="true"],
.nwpcpg-admin .select2-results__option[aria-disabled="true"],
.nwpcpg-admin .select2-container .select2-results__option[aria-disabled="true"] {
	color: #999 !important;
	cursor: default !important;
	background-color: #fff !important;
}

/* Loading and no results messages - global rules */
.select2-results__option.loading-results,
.select2-dropdown .select2-results__option.loading-results,
.nwpcpg-admin .select2-results__option.loading-results,
.nwpcpg-admin .select2-container .select2-results__option.loading-results {
	background-color: #fff !important;
	color: #646970 !important;
	font-style: italic;
}

/* Select2 search field in dropdown */
.nwpcpg-admin .select2-search--dropdown {
	display: block;
	padding: 4px;
}

.nwpcpg-admin .select2-search--dropdown .select2-search__field {
	padding: 4px;
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #ddd;
	border-radius: 4px;
}

.nwpcpg-admin .select2-search--dropdown .select2-search__field:focus {
	border-color: #2271b1;
	outline: none;
	box-shadow: 0 0 0 1px #2271b1;
}

/* Focus state - more visible border */
.nwpcpg-admin .select2-container--default.select2-container--focus .select2-selection--multiple {
	border-color: #2271b1;
	outline: none;
}

/* Error state only */
.nwpcpg-admin .nwpcpg-field-error .select2-container--default .select2-selection--multiple,
.nwpcpg-admin .nwpcpg-field-error .select2-container--default .select2-selection--single {
	border-color: #d63638;
}

.nwpcpg-admin .nwpcpg-field-error .select2-container--default.select2-container--focus .select2-selection--multiple,
.nwpcpg-admin .nwpcpg-field-error .select2-container--default.select2-container--focus .select2-selection--single {
	border-color: #d63638;
	box-shadow: 0 0 0 1px #d63638;
}

/* Toggle switch styling - WordPress admin consistent */
.nwpcpg-admin .nwpcpg-toggle-switch {
	position: relative;
	display: inline-block;
	width: 50px;
	height: 24px;
	margin: 0;
}

.nwpcpg-admin .nwpcpg-toggle-switch input[type="checkbox"] {
	opacity: 0;
	width: 0;
	height: 0;
	position: absolute;
}

.nwpcpg-admin .nwpcpg-toggle-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #c3c4c7;
	transition: 0.2s;
	border-radius: 24px;
}

.nwpcpg-admin .nwpcpg-toggle-slider:before {
	position: absolute;
	content: "";
	height: 18px;
	width: 18px;
	left: 3px;
	bottom: 3px;
	background-color: #fff;
	transition: 0.2s;
	border-radius: 50%;
}

.nwpcpg-admin .nwpcpg-toggle-switch input:checked + .nwpcpg-toggle-slider {
	background-color: #2271b1;
}

.nwpcpg-admin .nwpcpg-toggle-switch input:checked + .nwpcpg-toggle-slider:before {
	transform: translateX(26px);
}

.nwpcpg-admin .nwpcpg-toggle-switch input:focus + .nwpcpg-toggle-slider {
	box-shadow: 0 0 0 2px rgba(34, 113, 177, 0.3);
}

.nwpcpg-admin .nwpcpg-toggle-switch input:disabled + .nwpcpg-toggle-slider {
	opacity: 0.5;
	cursor: not-allowed;
}

/* Drag Handle Styling */
.nwpcpg-admin .nwpcpg-drag-handle {
	cursor: move;
	color: #787c82;
	font-size: 18px;
	vertical-align: middle;
}

.nwpcpg-admin .nwpcpg-drag-handle:hover {
	color: #2271b1;
}

.nwpcpg-admin .nwpcpg-sortable-placeholder {
	background: #f0f0f1;
	border: 2px dashed #c3c4c7;
	height: 40px;
}

.nwpcpg-admin #the-list.ui-sortable tr {
	cursor: default;
}

.nwpcpg-admin #the-list.ui-sortable tr .nwpcpg-drag-handle {
	cursor: move;
}

/* Admin notices above title (full width) */
.nwpcpg-admin > .notice {
	margin: 20px 0 0 0;
}

.nwpcpg-admin > .notice:first-child {
	margin-top: 0;
}

/* Rule Editor 2-Column Layout */
.nwpcpg-admin .nwpcpg-rule-editor-layout {
	display: flex;
	gap: 20px;
	align-items: flex-start;
}

.nwpcpg-admin .nwpcpg-rule-editor-main {
	flex: 1;
	min-width: 0;
}

.nwpcpg-admin .nwpcpg-rule-editor-sidebar {
	width: 320px;
	flex-shrink: 0;
}

.nwpcpg-admin .nwpcpg-summary-card {
	background: #fff;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
	position: sticky;
	top: 32px; /* Account for WP admin bar (32px on desktop, 46px on mobile) */
	max-height: calc(100vh - 50px);
	overflow-y: auto;
}

/* Adjust for mobile admin bar */
@media screen and (max-width: 782px) {
	.nwpcpg-admin .nwpcpg-summary-card {
		top: 46px;
		max-height: calc(100vh - 64px);
	}
}

.nwpcpg-admin .nwpcpg-summary-card__title {
	margin: 0;
	padding: 12px 16px;
	font-size: 14px;
	font-weight: 600;
	border-bottom: 1px solid #c3c4c7;
	background: #f6f7f7;
}

.nwpcpg-admin .nwpcpg-summary-card__body {
	padding: 16px;
}

.nwpcpg-admin .nwpcpg-summary-item {
	margin-bottom: 12px;
	font-size: 13px;
	line-height: 1.6;
}

.nwpcpg-admin .nwpcpg-summary-item:last-child {
	margin-bottom: 0;
}

.nwpcpg-admin .nwpcpg-summary-item strong {
	display: block;
	margin-bottom: 4px;
	color: #1d2327;
}

.nwpcpg-admin .nwpcpg-summary-item span,
.nwpcpg-admin .nwpcpg-summary-item div {
	color: #50575e;
	word-break: break-word;
}

.nwpcpg-admin .nwpcpg-summary-item--full {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid #c3c4c7;
}

.nwpcpg-admin .nwpcpg-example-text {
	margin-top: 8px;
	padding: 12px;
	background: #f6f7f7;
	border-radius: 4px;
	font-style: italic;
	color: #50575e;
	line-height: 1.6;
}

.nwpcpg-admin .nwpcpg-example-text .description {
	font-style: normal;
	color: #646970;
}

.nwpcpg-admin .nwpcpg-summary-condition,
.nwpcpg-admin .nwpcpg-summary-gateways {
	margin-top: 4px;
}

.nwpcpg-admin .nwpcpg-summary-gateways .description {
	color: #646970;
	font-style: italic;
}

/* Hidden field for coupon code when mode is "any" */
.nwpcpg-admin .nwpcpg-field-hidden {
	display: none !important;
}

.nwpcpg-admin .nwpcpg-label .required {
	color: #d63638;
	margin-left: 2px;
}

/* Radio group styling */
.nwpcpg-admin .nwpcpg-radio-group {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 8px;
}

.nwpcpg-admin .nwpcpg-radio-group label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: normal;
	cursor: pointer;
}

.nwpcpg-admin .nwpcpg-radio-group input[type="radio"] {
	margin: 0;
	cursor: pointer;
}

/* Price input with currency symbol (inline input-group style) */
.nwpcpg-admin .nwpcpg-price-field {
	margin-bottom: 16px;
}

.nwpcpg-admin .nwpcpg-price-input-wrapper {
	display: flex !important;
	align-items: center !important;
	flex-wrap: nowrap !important;
	flex-direction: row !important;
	border: 1px solid #8c8f94;
	border-radius: 3px;
	background: #fff;
	overflow: hidden;
	width: 100%;
	min-height: 30px;
}

.nwpcpg-admin .nwpcpg-currency-symbol {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	padding: 0 10px;
	background: #f6f7f7;
	border-right: 1px solid #8c8f94;
	color: #646970;
	font-weight: 500;
	font-size: 14px;
	line-height: 1;
	white-space: nowrap;
	flex-shrink: 0;
	flex-grow: 0;
	width: auto !important;
	min-width: 40px;
	height: 30px;
}

.nwpcpg-admin .nwpcpg-price-input-wrapper .wc_input_price {
	flex: 1 1 auto !important;
	border: none;
	border-radius: 0;
	padding: 0 8px;
	margin: 0;
	min-width: 0;
	min-height: 30px;
	line-height: 2;
	font-size: 14px;
	vertical-align: middle;
	box-shadow: none;
	background: transparent;
	width: 100%;
	box-sizing: border-box;
}

/* Match WooCommerce input styling */
.nwpcpg-admin .nwpcpg-price-input-wrapper input.input-text {
}

/* Override any conflicting styles that might make the span block-level */
.nwpcpg-admin .nwpcpg-price-field .nwpcpg-currency-symbol {
	display: inline-flex !important;
	width: auto !important;
	max-width: none !important;
}

/* Ensure WooCommerce input-wrapper doesn't interfere */
.nwpcpg-admin .nwpcpg-price-field .woocommerce-input-wrapper {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
}

/* Prevent any child elements from breaking the layout */
.nwpcpg-admin .nwpcpg-price-field .woocommerce-input-wrapper > * {
	flex-shrink: 0;
}

.nwpcpg-admin .nwpcpg-price-field .woocommerce-input-wrapper > .wc_input_price,
.nwpcpg-admin .nwpcpg-price-field .woocommerce-input-wrapper > input {
	flex-shrink: 1;
	flex-grow: 1;
}

.nwpcpg-admin .nwpcpg-price-input-wrapper:focus-within {
	border-color: #2271b1;
	box-shadow: 0 0 0 1px #2271b1;
}

.nwpcpg-admin .nwpcpg-price-input-wrapper:focus-within .nwpcpg-currency-symbol {
	border-right-color: #2271b1;
}

/* RTL support for currency symbol */
.rtl .nwpcpg-admin .nwpcpg-currency-symbol {
	border-right: none;
	border-left: 1px solid #8c8f94;
}

.rtl .nwpcpg-admin .nwpcpg-price-input-wrapper:focus-within .nwpcpg-currency-symbol {
	border-left-color: #2271b1;
}

/* Responsive: Stack on narrow screens */
@media screen and (max-width: 1200px) {
	.nwpcpg-admin .nwpcpg-rule-editor-layout {
		flex-direction: column;
	}

	.nwpcpg-admin .nwpcpg-rule-editor-sidebar {
		width: 100%;
	}

	.nwpcpg-admin .nwpcpg-summary-card {
		position: static;
	}
}
