.subsensor-builder,
.subsensor-builder-picker {
	--builder-primary: #120fbf;
	--builder-primary-dark: #120fbf;
	--builder-primary-soft: #fff;
	--builder-accent: #8fc4ff;
	--builder-ink: #17203a;
	--builder-muted: #667085;
	--builder-border: #e4e7ec;
	--builder-soft: #f7f8fc;
	box-sizing: border-box;
	color: var(--builder-ink);
}

.subsensor-builder *,
.subsensor-builder *::before,
.subsensor-builder *::after {
	box-sizing: border-box;
}

.subsensor-builder__header {
	margin-bottom: 24px;
}

.subsensor-builder__header h2,
.subsensor-builder__header p {
	margin: 0;
}

.subsensor-builder__header h2 {
	font-size: clamp(29px,4vw,42px);
	letter-spacing: -.025em;
}

.subsensor-builder__header p:last-child {
	max-width: 720px;
	margin-top: 8px;
	color: var(--builder-muted);
	line-height: 1.65;
}

.subsensor-builder__eyebrow {
	margin-bottom: 7px !important;
	color: var(--builder-primary) !important;
	font-size: 11px;
	font-weight: 850;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.subsensor-builder__layout {
	display: grid;
	grid-template-columns: minmax(0,1fr) minmax(280px,340px);
	align-items: start;
	gap: 24px;
}

.subsensor-builder__components {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 14px;
}

.subsensor-builder-component {
	-webkit-appearance: none;
	appearance: none;
	position: relative;
	display: grid;
	min-height: 154px;
	grid-template-rows: auto 1fr;
	align-content: center;
	justify-items: center;
	gap: 13px;
	padding: 20px 16px;
	border: 1px solid var(--builder-border);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 7px 20px rgba(23,32,58,.06);
	color: var(--builder-ink);
	text-align: center;
	cursor: pointer;
}

.subsensor-builder-component:hover,
.subsensor-builder-component:focus-visible {
	border-color: var(--builder-border);
	background: #fff !important;
	box-shadow: 0 7px 20px rgba(23,32,58,.06);
	color: var(--builder-ink) !important;
}

.subsensor-builder-component::before,
.subsensor-builder-component::after {
	display: none !important;
}

.subsensor-builder-component.is-selected {
	border-color: var(--builder-accent);
	background: var(--builder-soft) !important;
}

.subsensor-builder-component.is-locked {
	opacity: .56;
	cursor: not-allowed;
}

.subsensor-builder-component__icon {
	display: grid;
	width: 58px;
	height: 58px;
	background: transparent;
	color: var(--builder-primary);
	place-items: center;
}

.subsensor-builder-component__icon svg {
	width: 52px;
	height: 52px;
	fill: none;
	stroke: currentColor;
}

.subsensor-builder-component.is-selected .subsensor-builder-component__icon {
	color: var(--builder-primary);
}

.subsensor-builder-component__body {
	display: grid;
	gap: 5px;
}

.subsensor-builder-component__body strong {
	font-size: 14px;
}

.subsensor-builder-component__body small {
	display: -webkit-box;
	overflow: hidden;
	color: var(--builder-muted);
	font-size: 11px;
	line-height: 1.4;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.subsensor-builder-summary {
	position: sticky;
	top: 120px;
	padding: 20px;
	border: 1px solid var(--builder-border);
	border-radius: 16px;
	background: var(--builder-soft);
}

.subsensor-builder-summary h3 {
	margin: 0 0 16px;
	font-size: 21px;
}

.subsensor-builder-summary > label {
	display: block;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 800;
}

.subsensor-builder-summary > input {
	width: 100%;
	min-height: 44px;
	padding: 9px 11px;
	border: 1px solid var(--builder-border);
	border-radius: 9px;
	background: #fff;
}

.subsensor-builder-summary__parts {
	display: grid;
	max-height: 330px;
	gap: 8px;
	margin-top: 16px;
	overflow: auto;
}

.subsensor-builder-summary__parts > p {
	margin: 0;
	padding: 15px;
	border: 1px dashed var(--builder-accent);
	border-radius: 10px;
	background: #fff;
	color: var(--builder-muted);
	font-size: 12px;
	text-align: center;
}

.subsensor-builder-summary__item {
	display: grid;
	grid-template-columns: minmax(0,1fr) auto;
	align-items: center;
	gap: 10px;
	padding: 10px;
	border: 1px solid var(--builder-border);
	border-radius: 10px;
	background: #fff;
}

.subsensor-builder-summary__item > div {
	display: grid;
	gap: 2px;
}

.subsensor-builder-summary__item small,
.subsensor-builder-summary__item span {
	color: var(--builder-muted);
	font-size: 9px;
}

.subsensor-builder-summary__item strong {
	overflow: hidden;
	font-size: 11px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.subsensor-builder-summary__item button {
	padding: 0;
	border: 0;
	background: transparent;
	color: #b42318;
	font-size: 20px;
	cursor: pointer;
}

.subsensor-builder-summary__totals {
	display: grid;
	gap: 9px;
	margin: 18px 0;
}

.subsensor-builder-summary__totals > div {
	display: flex;
	justify-content: space-between;
	gap: 14px;
}

.subsensor-builder-summary__totals dt,
.subsensor-builder-summary__totals dd {
	margin: 0;
	font-size: 12px;
}

.subsensor-builder-summary__totals dd {
	font-weight: 800;
}

[data-builder-wattage-note] {
	display: block;
	max-width: 175px;
	font-weight: 500;
	line-height: 1.35;
}

.subsensor-builder-summary__issues {
	margin: 0 0 16px;
	padding: 0 0 0 18px;
	font-size: 12px;
	line-height: 1.45;
}

.subsensor-builder-summary__issues[hidden] {
	display: none;
}

.subsensor-builder-summary__issues li + li {
	margin-top: 4px;
}

.subsensor-builder-summary__price {
	margin-top: 4px;
	padding-top: 12px;
	border-top: 1px solid var(--builder-border);
}

.subsensor-builder-summary__price dd {
	color: var(--builder-primary);
	font-size: 18px;
}

.subsensor-builder-summary__price dd.needs-confirmation::after {
	display: block;
	margin-top: 3px;
	content: 'Price confirmation required for one or more parts';
	color: var(--builder-muted);
	font-size: 9px;
	font-weight: 700;
}

.subsensor-builder-summary__actions {
	display: grid;
	gap: 10px;
}

.subsensor-builder-summary__primary-actions {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 10px;
}

.subsensor-builder__save,
.subsensor-builder__cart {
	display: inline-flex;
	width: 100%;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	padding: 10px 18px;
	border: 1px solid var(--builder-primary) !important;
	border-radius: 10px;
	box-shadow: none !important;
	font-weight: 700;
	text-transform: none;
}

.subsensor-builder__save,
.subsensor-builder__save:hover,
.subsensor-builder__save:focus-visible,
.subsensor-builder__save:active {
	background: #fff !important;
	color: var(--builder-primary) !important;
}

.subsensor-builder__cart,
.subsensor-builder__cart:hover,
.subsensor-builder__cart:focus-visible,
.subsensor-builder__cart:active {
	background: var(--builder-primary) !important;
	color: #fff !important;
}

.subsensor-builder-summary__actions button:disabled {
	opacity: .48;
	cursor: not-allowed;
}

.subsensor-builder__reset {
	padding: 8px 5px;
	border: 0;
	background: transparent;
	color: var(--builder-primary);
	font-weight: 800;
	cursor: pointer;
}

.subsensor-builder-summary__notice {
	min-height: 18px;
	margin: 10px 0 0;
	color: var(--builder-muted);
	font-size: 11px;
}

.subsensor-builder-summary__notice a {
	color: var(--builder-primary);
	font-weight: 800;
}

.subsensor-builder-summary__notice.has-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	padding: 9px 10px;
	border: 1px solid #f0b4ad;
	border-radius: 8px;
	background: #fff6f5;
}

.subsensor-builder-summary__notice.has-actions button,
.subsensor-builder-summary__notice.has-actions a {
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--builder-primary);
	font: inherit;
	font-weight: 800;
	text-decoration: underline;
	cursor: pointer;
}

.subsensor-builder-summary__notice.is-error {
	color: #b42318;
	font-weight: 700;
}

body.subsensor-builder-picker-open {
	overflow: hidden;
}

.subsensor-builder-picker[hidden] {
	display: none;
}

.subsensor-builder-picker {
	position: fixed;
	z-index: 2147483000;
	inset: 0;
}

.subsensor-builder-picker__backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: rgba(0,0,0,.12) !important;
	cursor: default;
}

.subsensor-builder-picker__panel {
	position: absolute;
	top: 0;
	right: 0;
	display: grid;
	width: min(680px,92vw);
	height: 100%;
	grid-template-rows: auto auto minmax(0,1fr);
	background: #fff;
	box-shadow: -18px 0 50px rgba(7,10,16,.2);
}

.subsensor-builder-picker__panel > header {
	display: grid;
	grid-template-columns: auto minmax(0,1fr) auto;
	align-items: center;
	gap: 20px;
	padding: 22px;
	border-bottom: 1px solid var(--builder-border);
}

.subsensor-builder-picker__panel header p,
.subsensor-builder-picker__panel header h3 {
	margin: 0;
}

.subsensor-builder-picker__return {
	display: inline-flex;
	min-height: 38px;
	align-items: center;
	gap: 5px;
	padding: 7px 9px;
	border: 0;
	background: transparent;
	color: var(--builder-primary);
	font-size: 11px;
	font-weight: 800;
	cursor: pointer;
}

.subsensor-builder-picker__return::before,
.subsensor-builder-picker__return::after {
	display: none !important;
}

.subsensor-builder-picker__return svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

.subsensor-builder-picker__return:hover,
.subsensor-builder-picker__return:focus-visible {
	background: transparent;
	color: var(--builder-primary);
}

.subsensor-builder-picker__panel header p {
	color: var(--builder-primary);
	font-size: 10px;
	font-weight: 850;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.subsensor-builder-picker__panel header h3 {
	margin-top: 4px;
	font-size: 24px;
}

.subsensor-builder-picker__close {
	display: grid;
	width: 36px;
	height: 36px;
	align-items: center;
	justify-items: center;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--builder-ink);
	cursor: pointer;
}

.subsensor-builder-picker__close:hover,
.subsensor-builder-picker__close:focus-visible,
.subsensor-builder-picker__close:active {
	background: transparent;
	color: var(--builder-ink);
}

.subsensor-builder-picker__close svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-width: 2;
}

.subsensor-builder-picker__search {
	padding: 15px 22px;
	border-bottom: 1px solid var(--builder-border);
	background: var(--builder-soft);
}

.subsensor-builder-picker__search input {
	width: 100%;
	min-height: 46px;
	padding: 10px 13px;
	border: 1px solid var(--builder-border);
	border-radius: 10px;
	background: #fff;
}

.subsensor-builder-picker__results {
	display: grid;
	align-content: start;
	gap: 1px;
	overflow-y: auto;
	background: var(--builder-border);
}

.subsensor-builder-picker__empty {
	margin: 0;
	padding: 38px 22px;
	background: #fff;
	color: var(--builder-muted);
	text-align: center;
}

.subsensor-builder-product {
	display: grid;
	grid-template-columns: 96px minmax(0,1fr) auto;
	align-items: center;
	gap: 16px;
	padding: 18px 22px;
	background: #fff;
}

.subsensor-builder-product__image {
	display: grid;
	width: 96px;
	height: 82px;
	overflow: hidden;
	border-radius: 9px;
	background: var(--builder-soft);
	place-items: center;
}

.subsensor-builder-product__image img {
	width: 96px;
	height: 82px;
	object-fit: contain;
}

.subsensor-builder-product__content {
	display: grid;
	gap: 5px;
}

.subsensor-builder-product__content h4,
.subsensor-builder-product__content p {
	margin: 0;
}

.subsensor-builder-product__content h4 {
	font-size: 14px;
	line-height: 1.45;
}

.subsensor-builder-product__content h4 a {
	color: var(--builder-ink) !important;
	text-decoration: none;
}

.subsensor-builder-product__content h4 a:hover,
.subsensor-builder-product__content h4 a:focus-visible {
	color: var(--builder-primary) !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.subsensor-builder-product__content p {
	color: var(--builder-muted);
	font-size: 11px;
	line-height: 1.45;
	white-space: pre-line;
}

.subsensor-builder-product__content > strong {
	color: var(--builder-primary);
	font-size: 15px;
}

.subsensor-builder-product__availability {
	justify-self: start;
}

.subsensor-builder-product__lead-time {
	justify-self: start;
	color: var(--builder-muted);
	font-size: 10px;
	font-weight: 650;
	line-height: 1.35;
}

.subsensor-builder-product__compatibility {
	justify-self: start;
	padding: 3px 7px;
	border-radius: 999px;
	background: #ecfdf3;
	color: #067647;
	font-size: 9px;
	font-weight: 850;
}

.subsensor-builder-product__compatibility[data-status="unverified"],
.subsensor-builder-product__compatibility[data-status="advisory"] {
	background: #fffaeb;
	color: #b54708;
}

[data-builder-compatibility] {
	max-width: 62%;
	overflow-wrap: anywhere;
	text-align: right;
}

.subsensor-builder-product__compatibility[data-status="incompatible"] {
	background: #fef3f2;
	color: #b42318;
}

.subsensor-builder-product__variation {
	width: 100%;
	min-height: 38px;
	margin: 2px 0;
	padding: 7px 30px 7px 9px;
	border: 1px solid var(--builder-border);
	border-radius: 8px;
	background: #fff;
	color: var(--builder-ink);
	font-size: 11px;
}

.subsensor-builder-product__select {
	display: grid;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--builder-primary);
	border-radius: 9px;
	background: var(--builder-primary);
	color: #fff;
	cursor: pointer;
	place-items: center;
}

.subsensor-builder-product__select:hover,
.subsensor-builder-product__select:focus-visible,
.subsensor-builder-product__select:active {
	background: var(--builder-primary);
	color: #fff;
}

.subsensor-builder-product__select:disabled {
	border-color: var(--builder-accent);
	background: var(--builder-primary-soft);
	color: var(--builder-primary);
	cursor: default;
	opacity: 1 !important;
}

.subsensor-builder-product__select svg {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

.subsensor-builder-product__actions {
	display: grid;
	justify-items: stretch;
	gap: 8px;
}

.subsensor-builder-product__wishlist {
	display: grid;
	width: 40px;
	height: 40px;
	justify-self: center;
	padding: 0;
	border: 1px solid var(--builder-border);
	border-radius: 9px;
	background: #fff;
	color: var(--builder-primary);
	cursor: pointer;
	place-items: center;
}

.subsensor-builder-product__wishlist::before,
.subsensor-builder-product__wishlist::after {
	display: none !important;
}

.subsensor-builder-product__wishlist svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.subsensor-builder-product__wishlist.is-saved {
	border-color: var(--builder-accent);
	background: var(--builder-primary-soft);
}

.subsensor-builder-product__wishlist.is-saved svg {
	fill: currentColor;
}

.subsensor-builder-product__wishlist:hover,
.subsensor-builder-product__wishlist:focus-visible,
.subsensor-builder-product__wishlist:active {
	background: #fff;
	color: var(--builder-primary);
}

.subsensor-builder-product__wishlist.is-saved:hover,
.subsensor-builder-product__wishlist.is-saved:focus-visible,
.subsensor-builder-product__wishlist.is-saved:active {
	background: var(--builder-primary-soft);
}

.subsensor-builder-faq {
	margin-top: 34px;
	padding: 24px;
	border: 1px solid var(--builder-border);
	border-radius: 16px;
	background: var(--builder-soft);
}

.subsensor-builder-faq__header {
	margin-bottom: 14px;
	text-align: center;
}

.subsensor-builder-faq__header h2,
.subsensor-builder-faq__header p {
	margin: 0;
}

.subsensor-builder-faq__header h2 {
	font-size: clamp(24px,3vw,32px);
	letter-spacing: -.02em;
}

.subsensor-builder-faq__header > p:last-child {
	margin-top: 5px;
	color: var(--builder-muted);
	font-size: 13px;
}

.subsensor-builder-faq__list {
	columns: 2;
	column-gap: 12px;
}

.subsensor-builder-faq__item {
	display: inline-block;
	width: 100%;
	margin: 0 0 10px;
	padding: 0 14px;
	break-inside: avoid;
	border: 1px solid var(--builder-border);
	border-radius: 11px;
	background: #fff;
}

.subsensor-builder-faq__item summary {
	position: relative;
	padding: 13px 25px 13px 0;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.4;
	list-style: none;
	cursor: pointer;
}

.subsensor-builder-faq__item summary::-webkit-details-marker {
	display: none;
}

.subsensor-builder-faq__item summary::after {
	position: absolute;
	top: 50%;
	right: 1px;
	content: '+';
	color: var(--builder-primary);
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
	transform: translateY(-50%);
}

.subsensor-builder-faq__item[open] summary::after {
	content: '−';
}

.subsensor-builder-faq__item p {
	margin: -2px 0 13px;
	color: var(--builder-muted);
	font-size: 12px;
	line-height: 1.55;
}

@media (max-width: 1100px) {
	.subsensor-builder__components {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}
}

@media (max-width: 820px) {
	.subsensor-builder__layout {
		grid-template-columns: minmax(0,1fr);
	}

	.subsensor-builder-summary {
		position: static;
	}
}

@media (max-width: 600px) {
	.subsensor-builder__components {
		gap: 10px;
	}

	.subsensor-builder-component {
		min-height: 132px;
		padding: 16px 10px;
	}

	.subsensor-builder-picker__panel {
		width: 100%;
	}

	.subsensor-builder-picker__panel > header {
		gap: 8px;
		padding: 15px 14px;
	}

	.subsensor-builder-picker__return span {
		display: none;
	}

	.subsensor-builder-picker__return {
		width: 40px;
		justify-content: center;
		padding: 0;
	}

	.subsensor-builder-picker__heading h3 {
		font-size: 21px;
	}

	.subsensor-builder-product {
		grid-template-columns: 72px minmax(0,1fr);
		padding: 15px;
	}

	.subsensor-builder-product__image,
	.subsensor-builder-product__image img {
		width: 72px;
		height: 68px;
	}

	.subsensor-builder-product__actions {
		grid-column: 2;
		grid-template-columns: 42px 42px;
		justify-content: end;
	}

	.subsensor-builder-faq {
		margin-top: 24px;
		padding: 18px 10px 10px;
	}

	.subsensor-builder-faq__list {
		columns: 1;
	}
}

@media (max-width: 360px) {
	.subsensor-builder-summary__primary-actions {
		grid-template-columns: minmax(0,1fr);
	}
}
.subsensor-builder-reconciliation[hidden],
.subsensor-builder-reconciliation [hidden] {
	display: none !important;
}

.subsensor-builder-reconciliation {
	margin: 0 0 18px;
	padding: 16px;
	border: 1px solid #8fc4ff;
	border-radius: 14px;
	background: #fff;
	color: #17203a;
}

.subsensor-builder-reconciliation[data-status="blocked"] {
	border-color: #fed7aa;
	background: #fff7ed;
}

.subsensor-builder-reconciliation__heading,
.subsensor-builder-reconciliation__lines li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
}

.subsensor-builder-reconciliation__heading p,
.subsensor-builder-reconciliation__lines span,
.subsensor-builder-reconciliation__lines small {
	display: block;
	margin: 3px 0 0;
	color: #667085;
	font-size: 12px;
}

.subsensor-builder-reconciliation__totals {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid rgba(23,32,58,.12);
	font-size: 12px;
}

.subsensor-builder-reconciliation__lines {
	display: grid;
	gap: 8px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.subsensor-builder-reconciliation__lines li {
	padding: 10px 12px;
	border-radius: 10px;
	background: #fff;
}

.subsensor-builder-reconciliation__lines button {
	flex: 0 0 auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: #120fbf;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
}

@media (max-width: 600px) {
	.subsensor-builder-reconciliation__heading,
	.subsensor-builder-reconciliation__lines li {
		align-items: flex-start;
		flex-direction: column;
	}
}
