.psb-set-items {
	margin: 15px 0 20px;
	padding: 16px;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	background: #fafafa;
	max-width: 480px;
}

.psb-set-price-line {
	margin: 0 0 8px;
	font-size: 15px;
}

.psb-set-instructions {
	margin: 0 0 12px;
	font-size: 13px;
	color: #666;
}

.psb-select-all-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	padding: 10px 8px;
	background: #f0eaf7;
	border-radius: 6px;
	cursor: pointer;
	margin-bottom: 10px;
	min-height: 44px;
}

.psb-select-all-label input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin: 0;
	flex-shrink: 0;
	accent-color: royalblue !important;
}

.psb-items-list {
	list-style: none;
	margin: 0 0 12px;
	padding: 0;
	max-height: 320px;
	overflow-y: auto;
}

.psb-item-row {
	border-bottom: 1px solid #e8e8e8;
}

.psb-item-row label {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 4px;
	cursor: pointer;
	min-height: 44px;
}

.psb-item-row input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin: 0;
	flex-shrink: 0;
	accent-color: royalblue !important;
}

.psb-item-name {
	flex: 1 1 auto;
	font-size: 14px;
}

.psb-item-price {
	flex: 0 0 auto;
	font-size: 14px;
	color: #555;
	white-space: nowrap;
}

.psb-total-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 17px;
	font-weight: 700;
	padding: 10px 8px;
	border-top: 2px solid #ddd;
}

.psb-total-amount {
	color: #7f54b3;
}

.psb-set-items input[type="checkbox"] {
	border-color: royalblue !important;
}

button.single_add_to_cart_button.psb-disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* Deep blue add-to-cart / select-options buttons for set products,
   overriding the theme's default color (e.g. red) on both desktop
   and mobile. */
.single_add_to_cart_button.psb-set-btn,
a.psb-select-options {
	background-color: #163a8c !important;
	border-color: #163a8c !important;
	color: #ffffff !important;
}

.single_add_to_cart_button.psb-set-btn:hover,
.single_add_to_cart_button.psb-set-btn:focus,
a.psb-select-options:hover,
a.psb-select-options:focus {
	background-color: #102a66 !important;
	border-color: #102a66 !important;
	color: #ffffff !important;
}

/* Mobile adjustments */
@media (max-width: 600px) {
	.psb-set-items {
		max-width: 100%;
		padding: 12px;
	}

	.psb-item-name,
	.psb-item-price {
		font-size: 13px;
	}

	.psb-total-row {
		position: sticky;
		bottom: 0;
		background: #fafafa;
	}

	.psb-items-list {
		max-height: 260px;
	}
}
