/**
 * Form controls — shared input/select/textarea focus styling.
 */

/* —— Component classes —— */
.cb-input,
.cb-select,
.cb-textarea {
	width: 100%;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-md);
	font-family: inherit;
	font-size: var(--text-base);
	background: var(--color-bg);
	color: var(--color-text);
	box-sizing: border-box;
	transition: var(--input-focus-transition);
}

.cb-textarea {
	min-height: 120px;
	resize: vertical;
}

.cb-input-group,
.cb-blog-hero__search,
.cb-cart__coupon,
.cb-footer__input-row {
	transition: var(--input-focus-transition);
}

/* —— Shared focus: soft ring, no dark border —— */
.cb-input:focus,
.cb-select:focus,
.cb-textarea:focus,
.cb-auth__field input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):focus,
.cb-dashboard-profile__field input:focus,
.cb-dashboard-seller__field input:focus,
.cb-contact__form input:focus,
.cb-contact__form textarea:focus,
.cb-courses-hero__search input:focus,
.cb-blog-newsletter__form input:focus,
.cb-shop-toolbar__sort select:focus,
.cb-shop-toolbar__sort .orderby:focus,
.cb-courses-toolbar__select:focus,
.cb-product-purchase .variations select:focus,
.cb-store-sidebar .dokan-form-group input:focus,
.cb-store-sidebar .dokan-form-group textarea:focus,
#dokan-store-listing-filter-wrap .sort-by select:focus,
#dokan-store-listing-filter-form-wrap select:focus,
#dokan-store-listing-filter-form-wrap input[type="search"]:focus,
body.login input[type="text"]:focus,
body.login input[type="password"]:focus,
.cb-learn__panel textarea:focus,
.elementor-field-textual:focus,
input.input-text:focus,
textarea.input-text:focus {
	outline: none;
	border-color: var(--input-focus-border);
	box-shadow: var(--input-focus-ring);
}

/* WooCommerce + dashboard address forms (beats currentColor focus). */
.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus,
.cb-dashboard-addresses .cb-dashboard-addresses__form-panel .form-row input.input-text:focus,
.cb-dashboard-addresses .cb-dashboard-addresses__form-panel .form-row select:focus,
.cb-dashboard-addresses .cb-dashboard-addresses__form-panel .form-row textarea:focus,
.cb-dashboard-addresses .cb-dashboard-addresses__form-panel .woocommerce-address-fields .form-row input.input-text:focus,
.cb-dashboard-addresses .cb-dashboard-addresses__form-panel .woocommerce-address-fields .form-row select:focus,
.cb-dashboard-addresses .cb-dashboard-addresses__form-panel .woocommerce-address-fields .form-row textarea:focus {
	outline: none;
	border-color: var(--input-focus-border);
	box-shadow: var(--input-focus-ring);
}

/* —— WooCommerce Select2 / SelectWoo (state, country, etc.) —— */
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple,
.select2-container .select2-selection--single:focus,
.select2-container .select2-selection--multiple:focus,
.cb-dashboard-addresses .cb-dashboard-addresses__form-panel .select2-container--focus .select2-selection--single,
.cb-dashboard-addresses .cb-dashboard-addresses__form-panel .select2-container--open .select2-selection--single {
	outline: none;
	border-color: var(--input-focus-border);
	box-shadow: var(--input-focus-ring);
}

.cb-dashboard-addresses__form-panel .select2-container .select2-selection--single,
.cb-dashboard-addresses__form-panel .select2-container .select2-selection--multiple {
	border: 1px solid var(--color-border, rgba(184, 92, 122, 0.14));
	border-radius: var(--radius-md);
	min-height: 44px;
	transition: var(--input-focus-transition);
}

.cb-dashboard-addresses__form-panel .select2-container .select2-selection__rendered {
	line-height: 42px;
	padding-inline: var(--space-3);
}

/* —— Composite pills: focus ring on wrapper —— */
.cb-input-group:focus-within,
.cb-blog-hero__search:focus-within,
.cb-cart__coupon:focus-within,
.cb-footer__input-row:focus-within {
	border-color: var(--input-focus-border);
	box-shadow: var(--input-focus-ring);
}

/* —— Checkbox & Radio styling —— */
input[type="checkbox"],
input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	accent-color: var(--color-primary);
	color-scheme: light;
	width: 20px;
	height: 20px;
	min-width: 20px;
	min-height: 20px;
	max-width: 20px;
	max-height: 20px;
	border: 2px solid var(--color-border);
	border-radius: 6px;
	background: var(--color-bg-elevated);
	cursor: pointer;
	transition: all 0.2s ease;
	position: relative;
	flex-shrink: 0;
	margin: 0;
	vertical-align: middle;
	-webkit-tap-highlight-color: transparent;
}

input[type="checkbox"]:focus,
input[type="checkbox"]:focus-visible,
input[type="radio"]:focus,
input[type="radio"]:focus-visible {
	outline: none;
	border-color: var(--input-focus-border);
	box-shadow: var(--input-focus-ring);
}

input[type="checkbox"]:checked,
input[type="checkbox"]:checked:hover,
input[type="checkbox"]:checked:focus,
input[type="checkbox"]:checked:focus-visible,
input[type="checkbox"]:checked:active {
	appearance: none;
	-webkit-appearance: none;
	background: var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6.5 5.5 9 9.5 3.5' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
	border-color: var(--color-primary);
	outline: none;
	-webkit-tap-highlight-color: transparent;
}

input[type="checkbox"]:checked:hover,
input[type="checkbox"]:checked:focus,
input[type="checkbox"]:checked:focus-visible {
	box-shadow: 0 0 0 3px rgba(194, 102, 120, 0.18);
}

input[type="checkbox"]:checked:active {
	background: var(--color-primary-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6.5 5.5 9 9.5 3.5' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
	border-color: var(--color-primary-dark);
	box-shadow: 0 0 0 3px rgba(194, 102, 120, 0.24);
}

input[type="checkbox"]:active:not(:checked),
input[type="radio"]:active:not(:checked) {
	outline: none;
	border-color: var(--input-focus-border);
	box-shadow: var(--input-focus-ring);
}

input[type="radio"] {
	border-radius: 50%;
}

input[type="radio"]:checked {
	background: var(--color-primary);
	border-color: var(--color-primary);
}

input[type="radio"]:checked::after {
	content: '';
	position: absolute;
	top: 50%;
	inset-inline-start: 50%;
	width: 6px;
	height: 6px;
	background: var(--color-bg-elevated);
	border-radius: 50%;
	transform: translate(-50%, -50%);
}

/* Checkbox label alignment */
label:has(input[type="checkbox"]),
label:has(input[type="radio"]) {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	cursor: pointer;
	user-select: none;
}

/* WooCommerce checkbox styling */
.woocommerce form .form-row input[type="checkbox"],
.woocommerce form .form-row input[type="radio"],
.dokan-form-group input[type="checkbox"],
.dokan-form-group input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	accent-color: var(--color-primary);
	width: 20px;
	height: 20px;
	min-width: 20px;
	min-height: 20px;
	max-width: 20px;
	max-height: 20px;
	border: 2px solid var(--color-border);
	border-radius: 6px;
	background: var(--color-bg-elevated);
	cursor: pointer;
	transition: all 0.2s ease;
	position: relative;
	flex-shrink: 0;
	margin: 0;
	vertical-align: middle;
	-webkit-tap-highlight-color: transparent;
}

.woocommerce form .form-row input[type="checkbox"]:focus,
.woocommerce form .form-row input[type="checkbox"]:focus-visible,
.woocommerce form .form-row input[type="radio"]:focus,
.woocommerce form .form-row input[type="radio"]:focus-visible,
.dokan-form-group input[type="checkbox"]:focus,
.dokan-form-group input[type="checkbox"]:focus-visible,
.dokan-form-group input[type="radio"]:focus,
.dokan-form-group input[type="radio"]:focus-visible {
	outline: none;
	border-color: var(--input-focus-border);
	box-shadow: var(--input-focus-ring);
}

.woocommerce form .form-row input[type="checkbox"]:checked,
.woocommerce form .form-row input[type="checkbox"]:checked:hover,
.woocommerce form .form-row input[type="checkbox"]:checked:focus,
.woocommerce form .form-row input[type="checkbox"]:checked:focus-visible,
.woocommerce form .form-row input[type="checkbox"]:checked:active,
.dokan-form-group input[type="checkbox"]:checked,
.dokan-form-group input[type="checkbox"]:checked:hover,
.dokan-form-group input[type="checkbox"]:checked:focus,
.dokan-form-group input[type="checkbox"]:checked:focus-visible,
.dokan-form-group input[type="checkbox"]:checked:active {
	appearance: none;
	-webkit-appearance: none;
	background: var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6.5 5.5 9 9.5 3.5' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
	border-color: var(--color-primary);
	outline: none;
	-webkit-tap-highlight-color: transparent;
}

.woocommerce form .form-row input[type="checkbox"]:checked:hover,
.woocommerce form .form-row input[type="checkbox"]:checked:focus,
.woocommerce form .form-row input[type="checkbox"]:checked:focus-visible,
.dokan-form-group input[type="checkbox"]:checked:hover,
.dokan-form-group input[type="checkbox"]:checked:focus,
.dokan-form-group input[type="checkbox"]:checked:focus-visible {
	box-shadow: 0 0 0 3px rgba(194, 102, 120, 0.18);
}

.woocommerce form .form-row input[type="checkbox"]:checked:active,
.dokan-form-group input[type="checkbox"]:checked:active {
	background: var(--color-primary-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6.5 5.5 9 9.5 3.5' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
	border-color: var(--color-primary-dark);
	box-shadow: 0 0 0 3px rgba(194, 102, 120, 0.24);
}

.woocommerce form .form-row input[type="checkbox"]:active:not(:checked),
.woocommerce form .form-row input[type="radio"]:active:not(:checked),
.dokan-form-group input[type="checkbox"]:active:not(:checked),
.dokan-form-group input[type="radio"]:active:not(:checked) {
	outline: none;
	border-color: var(--input-focus-border);
	box-shadow: var(--input-focus-ring);
}

.woocommerce form .form-row input[type="radio"],
.dokan-form-group input[type="radio"] {
	border-radius: 50%;
}

.woocommerce form .form-row input[type="radio"]:checked,
.dokan-form-group input[type="radio"]:checked {
	background: var(--color-primary);
	border-color: var(--color-primary);
}

.woocommerce form .form-row input[type="radio"]:checked::after,
.dokan-form-group input[type="radio"]:checked::after {
	content: '';
	position: absolute;
	top: 50%;
	inset-inline-start: 50%;
	width: 6px;
	height: 6px;
	background: var(--color-bg-elevated);
	border-radius: 50%;
	transform: translate(-50%, -50%);
}

/* Checkbox hover states */
input[type="checkbox"]:hover:not(:checked),
input[type="radio"]:hover:not(:checked),
.woocommerce form .form-row input[type="checkbox"]:hover:not(:checked),
.woocommerce form .form-row input[type="radio"]:hover:not(:checked),
.dokan-form-group input[type="checkbox"]:hover:not(:checked),
.dokan-form-group input[type="radio"]:hover:not(:checked) {
	appearance: none;
	-webkit-appearance: none;
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(194, 102, 120, 0.1);
}
