/* =========================================================
ORDER DETAIL PAGE
Pure UI - match website style, no inner scroll
========================================================= */

.npn-order-detail-shell {
	min-height: 100vh;
	padding: 54px 18px 80px;
	background:
		radial-gradient(circle at 15% 8%, rgba(8, 213, 255, 0.12), transparent 30%),
		radial-gradient(
			circle at 86% 14%,
			rgba(65, 90, 210, 0.12),
			transparent 30%
		),
		linear-gradient(180deg, #061226 0%, #050b18 100%);
	color: #ffffff;
}

.npn-order-detail-container {
	max-width: 1480px;
	margin: 0 auto;
}

.npn-order-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 440px;
	gap: 22px;
	align-items: start;
}

/* =========================================================
Main card + summary card
========================================================= */

.npn-order-detail-main,
.npn-order-detail-summary {
	border-radius: 26px;
	border: 1px solid rgba(103, 232, 249, 0.17);
	background:
		radial-gradient(circle at 18% 0%, rgba(8, 213, 255, 0.09), transparent 36%),
		radial-gradient(
			circle at 92% 6%,
			rgba(79, 117, 255, 0.08),
			transparent 34%
		),
		linear-gradient(180deg, rgba(10, 24, 54, 0.96), rgba(5, 14, 34, 0.98));
	box-shadow:
		0 28px 80px rgba(0, 0, 0, 0.34),
		inset 0 0 0 1px rgba(255, 255, 255, 0.025),
		0 0 46px rgba(8, 213, 255, 0.045);
	backdrop-filter: blur(18px);
}

.npn-order-detail-main {
	padding: 28px;
	overflow: visible;
}

.npn-order-detail-summary {
	position: sticky;
	top: 96px;
	padding: 0;
	overflow: hidden;
}

/* =========================================================
Header
========================================================= */

.npn-order-detail-head {
	display: flex;
	align-items: center;
	gap: 14px;
}

.npn-order-back {
	min-height: 32px;
	padding: 0 12px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: rgba(225, 241, 255, 0.68);
	background: rgba(255, 255, 255, 0.035);
	border: 1px solid rgba(255, 255, 255, 0.06);
	font-size: 13px;
	line-height: 1;
	text-decoration: none;
	transition: 0.22s ease;
}

.npn-order-back:hover {
	color: #70efff;
	background: rgba(8, 213, 255, 0.09);
	border-color: rgba(103, 232, 249, 0.24);
	box-shadow: 0 0 22px rgba(8, 213, 255, 0.14);
}

.npn-order-detail-head h1 {
	margin: 0;
	color: #ffffff;
	font-size: 18px;
	font-family: "Manrope-Extra";
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.npn-order-detail-divider {
	height: 1px;
	margin: 18px 0 22px;
	background: linear-gradient(
		90deg,
		transparent,
		rgba(103, 232, 249, 0.26),
		rgba(65, 102, 159, 0.32),
		transparent
	);
}

/* =========================================================
Fields
========================================================= */

.npn-order-detail-field {
	margin-bottom: 18px;
}

.npn-order-detail-field > label {
	display: block;
	margin-bottom: 9px;
	color: rgba(238, 248, 255, 0.92);
	font-size: 14px;
	line-height: 1.25;
}

.npn-order-detail-field input[type="text"],
.npn-order-detail-field input[type="number"],
.npn-order-detail-field input[type="url"],
.npn-order-detail-field select,
.npn-order-detail-field textarea,
.npn-order-detail-subfield input,
.npn-order-detail-subfield select,
.npn-order-detail-file-count input {
	width: 100%;
	border-radius: 13px;
	border: 1px solid rgba(103, 232, 249, 0.16);
	background: linear-gradient(
		180deg,
		rgba(22, 39, 80, 0.88),
		rgba(13, 28, 62, 0.94)
	);
	color: #ffffff;
	outline: none;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.025),
		0 10px 24px rgba(0, 0, 0, 0.12);
	transition: 0.2s ease;
}

.npn-order-detail-field input[type="text"],
.npn-order-detail-field input[type="number"],
.npn-order-detail-field input[type="url"],
.npn-order-detail-field select,
.npn-order-detail-subfield input,
.npn-order-detail-subfield select {
	height: 42px;
	padding: 0 14px;
	font-size: 14px;
}

.npn-order-detail-field textarea {
	min-height: 92px;
	padding: 14px;
	font-size: 14px;
	line-height: 1.55;
	resize: vertical;
}

.npn-order-detail-field input::placeholder,
.npn-order-detail-field textarea::placeholder {
	color: rgba(225, 241, 255, 0.36);
}

.npn-order-detail-field input:hover,
.npn-order-detail-field select:hover,
.npn-order-detail-field textarea:hover,
.npn-order-detail-subfield input:hover,
.npn-order-detail-subfield select:hover,
.npn-order-detail-file-count input:hover {
	border-color: rgba(112, 239, 255, 0.3);
}

.npn-order-detail-field input:focus,
.npn-order-detail-field select:focus,
.npn-order-detail-field textarea:focus,
.npn-order-detail-subfield input:focus,
.npn-order-detail-subfield select:focus,
.npn-order-detail-file-count input:focus {
	border-color: rgba(112, 239, 255, 0.58);
	box-shadow:
		0 0 0 3px rgba(8, 213, 255, 0.09),
		0 0 26px rgba(8, 213, 255, 0.1),
		inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

/* =========================================================
Upload box
========================================================= */

.npn-order-detail-upload {
	position: relative;
	overflow: hidden;
	min-height: 145px;
	padding: 24px;
	border-radius: 18px;
	border: 1px dashed rgba(103, 232, 249, 0.36);
	background:
		radial-gradient(circle at 50% 0%, rgba(8, 213, 255, 0.12), transparent 50%),
		linear-gradient(180deg, rgba(17, 32, 70, 0.74), rgba(9, 23, 56, 0.88));
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, 0.018),
		0 16px 34px rgba(0, 0, 0, 0.16);
	transition: 0.26s ease;
}

.npn-order-detail-upload::before {
	content: "";
	position: absolute;
	top: -70%;
	left: -90%;
	width: 42%;
	height: 240%;
	background: linear-gradient(
		90deg,
		transparent,
		rgba(255, 255, 255, 0.16),
		rgba(112, 239, 255, 0.18),
		transparent
	);
	transform: skewX(-20deg);
	opacity: 0;
	pointer-events: none;
	transition: 0.6s ease;
}

.npn-order-detail-upload:hover {
	transform: translateY(-2px);
	border-color: rgba(112, 239, 255, 0.68);
	box-shadow:
		0 0 0 1px rgba(8, 213, 255, 0.08),
		0 0 34px rgba(8, 213, 255, 0.14),
		0 20px 42px rgba(0, 0, 0, 0.24);
}

.npn-order-detail-upload:hover::before {
	left: 135%;
	opacity: 1;
}

.npn-order-detail-upload-icon {
	width: 90px;
	height: 50px;
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: 14px;
	color: #1df2e2;
	background: rgba(8, 213, 255, 0.075);
	box-shadow:
		inset 0 0 0 1px rgba(103, 232, 249, 0.1),
		0 0 20px rgba(8, 213, 255, 0.08);
}

.npn-order-detail-upload-icon svg {
	width: 30px;
	height: 30px;
	display: block;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
	filter: drop-shadow(0 0 7px rgba(29, 242, 226, 0.18));
}

.npn-order-detail-upload strong {
	display: block;
	color: #ffffff;
	font-size: 14px;
	line-height: 1.35;
}

.npn-order-detail-upload p {
	margin: 6px 0 0;
	color: rgba(225, 241, 255, 0.56);
	font-size: 12px;
	line-height: 1.45;
}

.npn-order-detail-file-count {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
}

.npn-order-detail-file-count span {
	color: rgba(225, 241, 255, 0.58);
	font-size: 12px;
	white-space: nowrap;
}

.npn-order-detail-file-count input {
	width: 74px;
	height: 36px;
	padding: 0 10px;
	font-size: 13px;
}

/* =========================================================
Segment tabs
========================================================= */

.npn-order-detail-segment {
	display: grid;
	gap: 4px;
	padding: 4px;
	overflow: hidden;
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.16);
	background: linear-gradient(
		180deg,
		rgba(18, 35, 76, 0.72),
		rgba(9, 22, 52, 0.84)
	);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.025),
		0 12px 26px rgba(0, 0, 0, 0.14);
}

.npn-order-detail-segment-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.npn-order-detail-segment-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.npn-order-detail-segment button {
	position: relative;
	overflow: hidden;
	font-family: "Manrope-Extra";
	height: 44px;
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: rgba(225, 241, 255, 0.66);
	font-size: 14px;
	cursor: pointer;
	transition: 0.22s ease;
}

.npn-order-detail-segment button:hover {
	color: #ffffff;
	background: rgba(8, 213, 255, 0.07);
}

.npn-order-detail-segment button.is-active {
	color: #ffffff;
	background:
		radial-gradient(
			circle at 50% 0%,
			rgba(255, 255, 255, 0.16),
			transparent 48%
		),
		linear-gradient(135deg, #1df2e2, #0ea5e9);
	box-shadow:
		0 0 26px rgba(8, 213, 255, 0.23),
		0 12px 24px rgba(0, 0, 0, 0.2),
		inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

/* =========================================================
Inclusion toggle rows
========================================================= */

.npn-order-detail-toggle-list {
	display: grid;
	gap: 10px;
}

.npn-order-detail-toggle-row {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 14px;
	padding: 14px 14px;
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.12);
	background: linear-gradient(
		180deg,
		rgba(21, 38, 78, 0.82),
		rgba(13, 28, 62, 0.93)
	);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.018),
		0 10px 22px rgba(0, 0, 0, 0.12);
	cursor: pointer;
	transition: 0.22s ease;
}

.npn-order-detail-toggle-row:hover {
	transform: translateY(-1px);
	border-color: rgba(112, 239, 255, 0.35);
	background: linear-gradient(
		180deg,
		rgba(24, 44, 88, 0.92),
		rgba(15, 32, 70, 0.97)
	);
	box-shadow:
		0 0 26px rgba(8, 213, 255, 0.08),
		0 14px 28px rgba(0, 0, 0, 0.18);
}

.npn-order-detail-toggle-row strong {
	display: block;
	color: #ffffff;
	font-size: 14px;
	line-height: 1.3;
}

.npn-order-detail-toggle-row em {
	display: block;
	margin-top: 5px;
	color: rgba(225, 241, 255, 0.54);
	font-size: 12px;
	line-height: 1.45;
	font-style: normal;
}

.npn-order-detail-toggle-row input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.npn-order-detail-toggle-row i {
	position: relative;
	width: 42px;
	height: 24px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.18);
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, 0.06),
		0 6px 14px rgba(0, 0, 0, 0.18);
	transition: 0.22s ease;
}

.npn-order-detail-toggle-row i::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #ffffff;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.26);
	transition: 0.22s ease;
}

.npn-order-detail-toggle-row input:checked + i {
	background: linear-gradient(135deg, #1df2e2, #0ea5e9);
	box-shadow:
		0 0 20px rgba(8, 213, 255, 0.26),
		inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.npn-order-detail-toggle-row input:checked + i::before {
	left: 21px;
}

/* =========================================================
Upload details grid
========================================================= */

.npn-order-detail-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.npn-order-detail-subfield span {
	display: block;
	margin-bottom: 7px;
	color: rgba(225, 241, 255, 0.64);
	font-size: 12px;
	line-height: 1.25;
}

/* =========================================================
Actions
========================================================= */

.npn-order-detail-actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px;
	margin-top: 24px;
	padding-top: 18px;
	border-top: 1px solid rgba(103, 232, 249, 0.12);
}

.npn-order-detail-save,
.npn-order-detail-cancel {
	height: 48px;
	border: 0;
	border-radius: 14px;
	font-size: 14px;
	cursor: pointer;
	font-family: "Manrope-Extra";
	transition: 0.22s ease;
}

.npn-order-detail-save {
	position: relative;
	overflow: hidden;
	color: #fff;
	background:
		radial-gradient(
			circle at 50% 0%,
			rgba(255, 255, 255, 0.2),
			transparent 48%
		),
		linear-gradient(135deg, #1df2e2, #0ea5e9);
	box-shadow:
		0 0 32px rgba(8, 213, 255, 0.28),
		0 16px 32px rgba(0, 0, 0, 0.22);
}

.npn-order-detail-save::before {
	content: "";
	position: absolute;
	top: -70%;
	left: -70%;
	width: 38%;
	height: 240%;
	background: linear-gradient(
		90deg,
		transparent,
		rgba(255, 255, 255, 0.28),
		transparent
	);
	transform: skewX(-22deg);
	opacity: 0;
	transition: 0.55s ease;
}

.npn-order-detail-save:hover {
	transform: translateY(-2px);
	box-shadow:
		0 0 44px rgba(8, 213, 255, 0.42),
		0 20px 38px rgba(0, 0, 0, 0.3);
}

.npn-order-detail-save:hover::before {
	left: 130%;
	opacity: 1;
}

.npn-order-detail-cancel {
	padding: 0 20px;
	color: rgba(225, 241, 255, 0.78);
	background: linear-gradient(
		180deg,
		rgba(255, 255, 255, 0.08),
		rgba(255, 255, 255, 0.045)
	);
	border: 1px solid rgba(255, 255, 255, 0.06);
}

.npn-order-detail-cancel:hover {
	transform: translateY(-2px);
	color: #ffffff;
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.12);
}

/* =========================================================
Right summary
========================================================= */

.npn-order-detail-summary .npn-order-summary-head {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	border-radius: 26px 26px 0 0;
	padding: 18px 18px;
	border-bottom: 1px solid rgba(103, 232, 249, 0.12);
	background:
		radial-gradient(circle at 12% 0%, rgba(8, 213, 255, 0.1), transparent 50%),
		linear-gradient(180deg, rgba(13, 30, 65, 0.88), rgba(7, 18, 44, 0.82));
}

.npn-order-detail-summary .npn-order-cart-icon {
	flex: 0 0 34px;
	width: 34px !important;
	height: 34px !important;
	margin: 0 !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 11px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	background: rgba(8, 213, 255, 0.07);
	box-shadow: none;
}

.npn-order-detail-summary .npn-order-cart-icon svg {
	width: 23px !important;
	height: 23px !important;
	stroke: #1df2e2;
	stroke-width: 1.9;
	filter: drop-shadow(0 0 7px rgba(29, 242, 226, 0.18));
}

.npn-order-detail-summary .npn-order-summary-head h3 {
	margin: 0;
	color: #ffffff;
	font-size: 16px;
	line-height: 1.25;
	font-family: "Manrope-Extra";
}

.npn-order-detail-summary .npn-order-summary-head p {
	margin: 5px 0 0;
	color: rgba(225, 241, 255, 0.56);
	font-size: 12px;
	line-height: 1.35;
}

.npn-order-detail-summary .npn-order-summary-list {
	min-height: 380px;
	padding: 16px;
	border-bottom: 1px solid rgba(103, 232, 249, 0.12);
	background: linear-gradient(
		180deg,
		rgba(5, 15, 37, 0.12),
		rgba(5, 15, 37, 0.48)
	);
}

.npn-order-detail-summary .npn-order-summary-empty {
	min-height: 310px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: rgba(225, 241, 255, 0.5);
}

.npn-order-detail-summary .npn-order-summary-empty span {
	width: 42px;
	height: 42px;
	margin-bottom: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(8, 213, 255, 0.08);
	color: #1df2e2;
	font-size: 20px;
	box-shadow:
		inset 0 0 0 1px rgba(103, 232, 249, 0.1),
		0 0 22px rgba(8, 213, 255, 0.12);
}

.npn-order-detail-summary .npn-order-summary-empty strong {
	color: rgba(255, 255, 255, 0.72);
	font-size: 14px;
	line-height: 1.3;
}

.npn-order-detail-summary .npn-order-summary-empty p {
	margin: 7px 0 0;
	color: rgba(225, 241, 255, 0.44);
	font-size: 12px;
	line-height: 1.45;
}

.npn-order-detail-summary .npn-order-total-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 18px 12px;
	border-top: 0 !important;
	color: rgba(225, 241, 255, 0.7);
	font-size: 13px;
	border-radius: 0;
	margin-bottom: 15px;
}

.npn-order-detail-summary .npn-order-total-row span {
	color: rgba(225, 241, 255, 0.7);
	font-size: 13px;
}

.npn-order-detail-summary .npn-order-total-row strong {
	color: #ffffff;
	font-size: 20px;
	line-height: 1;
	text-shadow: 0 0 18px rgba(255, 255, 255, 0.08);
}

.npn-order-detail-summary .npn-order-checkout {
	width: calc(100% - 36px) !important;
	height: 44px !important;
	margin: 0 18px 18px !important;
	border: 0 !important;
	border-radius: 13px !important;
	background: rgba(255, 255, 255, 0.12) !important;
	color: rgba(225, 241, 255, 0.44) !important;
	font-size: 13px;
	box-shadow: none !important;
	font-family: "Manrope-Extra";
	cursor: not-allowed;
	transition: 0.22s ease;
}

.npn-order-detail-summary .npn-order-checkout:not(:disabled) {
	cursor: pointer;
	color: #04111f !important;
	background: linear-gradient(135deg, #1df2e2, #0ea5e9) !important;
	box-shadow:
		0 0 30px rgba(8, 213, 255, 0.28),
		0 16px 30px rgba(0, 0, 0, 0.24) !important;
}

.npn-order-detail-summary .npn-order-checkout:not(:disabled):hover {
	transform: translateY(-2px);
	box-shadow:
		0 0 42px rgba(8, 213, 255, 0.4),
		0 18px 36px rgba(0, 0, 0, 0.3) !important;
}

/* Summary item carried from order page */
.npn-order-detail-summary .npn-order-line {
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	background: rgba(18, 34, 70, 0.78);
	padding: 14px;
	margin-bottom: 10px;
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, 0.018),
		0 12px 28px rgba(0, 0, 0, 0.16);
}

.npn-order-detail-summary .npn-order-line-info strong {
	display: block;
	color: #ffffff;
	font-size: 14px;
	line-height: 1.35;
}

.npn-order-detail-summary .npn-order-line-info small {
	display: block;
	margin-top: 5px;
	color: rgba(225, 241, 255, 0.52);
	font-size: 12px;
	line-height: 1.35;
}

.npn-order-detail-summary .npn-order-line-bottom {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid rgba(103, 232, 249, 0.1);
	text-align: right;
}

.npn-order-detail-summary .npn-order-line-bottom strong {
	color: #1df2e2;
	font-size: 14px;
}

/* =========================================================
Responsive
========================================================= */

@media (max-width: 1180px) {
	.npn-order-detail-container {
		max-width: 1000px;
	}

	.npn-order-detail-layout {
		grid-template-columns: minmax(0, 1fr) 320px;
	}
}

@media (max-width: 980px) {
	.npn-order-detail-shell {
		padding: 38px 16px 64px;
	}

	.npn-order-detail-layout {
		grid-template-columns: 1fr;
	}

	.npn-order-detail-summary {
		position: static;
	}

	.npn-order-detail-summary .npn-order-summary-list {
		min-height: 260px;
	}
}

@media (max-width: 680px) {
	.npn-order-detail-shell {
		padding: 28px 14px 54px;
	}

	.npn-order-detail-main {
		padding: 20px;
		border-radius: 22px;
	}

	.npn-order-detail-summary {
		border-radius: 22px;
	}

	.npn-order-detail-head {
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
	}

	.npn-order-detail-grid {
		grid-template-columns: 1fr;
	}

	.npn-order-detail-segment-3 {
		grid-template-columns: 1fr;
	}

	.npn-order-detail-actions {
		grid-template-columns: 1fr;
	}

	.npn-order-detail-cancel {
		width: 100%;
	}

	.npn-order-detail-file-count {
		align-items: flex-start;
		flex-direction: column;
	}

	.npn-order-detail-file-count span {
		white-space: normal;
	}
}
/* =========================================================
SELECT DROPDOWN FIX
========================================================= */

.npn-order-detail-field select,
.npn-order-detail-subfield select {
	color-scheme: dark;
	appearance: auto;
	-webkit-appearance: menulist;
	background-color: #101f47;
	color: #ffffff;
}

.npn-order-detail-field select option,
.npn-order-detail-subfield select option {
	background-color: #101f47;
	color: #ffffff;
}

.npn-order-detail-field select option:checked,
.npn-order-detail-subfield select option:checked {
	background-color: #1d6fe8;
	color: #ffffff;
}

.npn-order-detail-field select option:hover,
.npn-order-detail-subfield select option:hover {
	background-color: #143b78;
	color: #ffffff;
}
/* =========================================================
REAL FILE UPLOAD
========================================================= */

.npn-order-detail-upload {
	cursor: pointer;
}

.npn-order-detail-file-input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
	z-index: 4;
}

.npn-order-detail-upload > *:not(.npn-order-detail-file-input) {
	position: relative;
	z-index: 2;
	pointer-events: none;
}

.npn-order-detail-upload.is-dragover {
	transform: translateY(-2px);
	border-color: rgba(112, 239, 255, 0.85);
	background:
		radial-gradient(circle at 50% 0%, rgba(8, 213, 255, 0.18), transparent 50%),
		linear-gradient(180deg, rgba(17, 42, 86, 0.9), rgba(9, 28, 68, 0.96));
	box-shadow:
		0 0 0 1px rgba(8, 213, 255, 0.12),
		0 0 42px rgba(8, 213, 255, 0.22),
		0 22px 46px rgba(0, 0, 0, 0.28);
}

.npn-order-detail-upload.has-files {
	border-style: solid;
	border-color: rgba(29, 242, 226, 0.52);
}

.npn-order-upload-file-list {
	width: 100%;
	max-width: 620px;
	margin-top: 14px;
	display: none;
	gap: 8px;
	text-align: left;
}

.npn-order-detail-upload.has-files .npn-order-upload-file-list {
	display: grid;
}

.npn-order-upload-file-item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	min-height: 36px;
	padding: 8px 10px;
	border-radius: 10px;
	border: 1px solid rgba(103, 232, 249, 0.12);
	background: rgba(18, 34, 70, 0.74);
	color: rgba(225, 241, 255, 0.82);
	font-size: 12px;
}

.npn-order-upload-file-item span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.npn-order-upload-file-item em {
	color: #1df2e2;
	font-size: 11px;
	font-style: normal;
	white-space: nowrap;
}

.npn-order-upload-more {
	color: rgba(225, 241, 255, 0.56);
	font-size: 12px;
	text-align: center;
}
/* =========================================================
ORDER DETAIL DYNAMIC ADMIN CONFIG PATCH
========================================================= */
.npn-order-detail-segment button small {
	display: inline-flex;
	margin-left: 7px;
	font-size: 11px;
	color: rgba(255, 255, 255, 0.86);
}
.npn-order-detail-field label span {
	color: rgba(225, 241, 255, 0.58);
}
.npn-order-detail-toggle-row strong b {
	margin-left: 8px;
	color: #1df2e2;
	font-size: 12px;
}
.npn-order-addon-row {
	border-color: rgba(29, 242, 226, 0.18);
}
.npn-order-check-inline {
	display: flex;
	align-items: center;
	gap: 9px;
	min-height: 42px;
	padding: 0 12px;
	border-radius: 13px;
	background: rgba(18, 34, 70, 0.72);
	color: rgba(225, 241, 255, 0.78);
	font-size: 14px;
}
.npn-order-check-inline input {
	width: auto !important;
	accent-color: #1df2e2;
}
.npn-order-detail-subfield textarea {
	width: 100%;
	min-height: 88px;
	padding: 12px 14px;
	border-radius: 13px;
	border: 1px solid rgba(103, 232, 249, 0.16);
	background: linear-gradient(
		180deg,
		rgba(22, 39, 80, 0.88),
		rgba(13, 28, 62, 0.94)
	);
	color: #fff;
	outline: none;
}
.npn-order-detail-summary .npn-order-line.is-current {
	border-color: rgba(29, 242, 226, 0.45);
	box-shadow:
		0 0 26px rgba(8, 213, 255, 0.12),
		inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}
.npn-order-detail-field select,
.npn-order-detail-subfield select {
	color-scheme: dark !important;
	background-color: #101f47 !important;
	color: #ffffff !important;
}
.npn-order-detail-field select option,
.npn-order-detail-subfield select option {
	background: #101f47 !important;
	color: #ffffff !important;
}

/* =========================================================
ORDER DETAIL NEW PROJECT/PAYMENT LAYOUT
========================================================= */
.npn-order-detail-layout-has-projects {
	grid-template-columns: 340px minmax(0, 1fr) 340px;
	gap: 12px;
}
.npn-order-detail-projects,
.npn-order-payment-panel {
	position: sticky;
	top: 96px;
	border-radius: 26px;
	border: 1px solid rgba(103, 232, 249, 0.17);
	background:
		radial-gradient(circle at 18% 0%, rgba(8, 213, 255, 0.09), transparent 36%),
		linear-gradient(180deg, rgba(10, 24, 54, 0.96), rgba(5, 14, 34, 0.98));
	box-shadow:
		0 28px 80px rgba(0, 0, 0, 0.34),
		inset 0 0 0 1px rgba(255, 255, 255, 0.025);
	overflow: visible;
}
.npn-order-detail-side-head {
	padding: 18px;
	border-bottom: 1px solid rgba(103, 232, 249, 0.12);
}
.npn-order-detail-side-head strong {
	display: block;
	font-size: 17px;
	color: #fff;
	font-family: "Manrope-Extra";
}
.npn-order-detail-side-head span {
	display: block;
	margin-top: 5px;
	font-size: 12px;
	color: rgba(225, 241, 255, 0.56);
}
.npn-order-detail-project-list {
	padding: 0 14px 14px;
	min-height: 320px;
}
.npn-order-project-empty {
	min-height: 220px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 7px;
	color: rgba(225, 241, 255, 0.52);
}
.npn-order-project-empty strong {
	color: rgba(255, 255, 255, 0.76);
	font-size: 14px;
}
.npn-order-project-empty span {
	font-size: 12px;
}
.npn-project-tree-detail .npn-project-child {
	grid-template-columns: minmax(0, 1fr) auto;
	margin: 0 10px 10px;
}
.npn-project-tree-detail .npn-project-child.is-current {
	border-color: rgba(29, 242, 226, 0.45);
	box-shadow: 0 0 26px rgba(8, 213, 255, 0.12);
}
.npn-payment-line {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 10px;
	align-items: start;
	padding: 14px;
	margin-bottom: 10px;
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	background: rgba(18, 34, 70, 0.78);
}
.npn-payment-line strong {
	display: block;
	color: #fff;
	font-size: 14px;
}
.npn-payment-line small {
	display: block;
	margin-top: 4px;
	color: rgba(225, 241, 255, 0.52);
	font-size: 12px;
}
.npn-payment-line b {
	color: #1df2e2;
	font-size: 14px;
	white-space: nowrap;
}
.npn-payment-line button {
	width: 24px;
	height: 24px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.07);
	color: rgba(225, 241, 255, 0.72);
	cursor: pointer;
}
.npn-payment-line button:hover {
	background: rgba(239, 68, 68, 0.22);
	color: #fff;
}
.npn-order-modal-overlay {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(2, 7, 18, 0.72);
	backdrop-filter: blur(10px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.npn-order-modal {
	position: relative;
	width: min(560px, 100%);
	border-radius: 24px;
	border: 1px solid rgba(103, 232, 249, 0.22);
	background: linear-gradient(
		180deg,
		rgba(10, 24, 54, 0.98),
		rgba(5, 14, 34, 0.99)
	);
	box-shadow:
		0 30px 90px rgba(0, 0, 0, 0.5),
		0 0 48px rgba(8, 213, 255, 0.12);
	padding: 26px;
	color: #fff;
}
.npn-order-modal-close {
	position: absolute;
	right: 14px;
	top: 14px;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	font-size: 22px;
	cursor: pointer;
}
.npn-order-modal h3 {
	margin: 0;
	font-size: 24px;
}
.npn-order-modal p {
	margin: 8px 0 18px;
	color: rgba(225, 241, 255, 0.62);
}
.npn-order-modal-grid {
	display: grid;
	gap: 14px;
}
.npn-order-modal-grid label span {
	display: block;
	margin-bottom: 7px;
	font-size: 13px;
	color: rgba(238, 248, 255, 0.9);
}
.npn-order-modal-grid input,
.npn-order-modal-grid select {
	width: 100%;
	height: 44px;
	border-radius: 13px;
	border: 1px solid rgba(103, 232, 249, 0.18);
	background: #101f47;
	color: #fff;
	padding: 0 14px;
}
.npn-order-modal-grid option {
	background: #101f47;
	color: #fff;
}
.npn-order-modal-actions {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	margin-top: 20px;
}
.npn-order-modal-actions button {
	height: 44px;
	border: 0;
	border-radius: 13px;
	padding: 0 18px;
	cursor: pointer;
}
.npn-order-modal-save {
	background: linear-gradient(135deg, #1df2e2, #0ea5e9);
	color: #04111f;
}
.npn-order-modal-cancel {
	background: rgba(255, 255, 255, 0.08);
	color: rgba(225, 241, 255, 0.8);
}
@media (max-width: 1180px) {
	.npn-order-detail-layout-has-projects {
		grid-template-columns: 1fr;
	}
	.npn-order-detail-projects,
	.npn-order-payment-panel {
		position: static;
	}
}

/* =========================================================
PROJECT CHILD CARD - DETAIL PAGE
========================================================= */

.npn-project-child {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px 12px;
	padding: 16px;
	border-radius: 18px;
	border: 1px solid rgba(103, 232, 249, 0.16);
	background:
		radial-gradient(circle at 12% 0%, rgba(8, 213, 255, 0.09), transparent 42%),
		linear-gradient(180deg, rgba(18, 34, 70, 0.9), rgba(10, 23, 54, 0.96));
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, 0.018),
		0 14px 30px rgba(0, 0, 0, 0.18);
	transition: 0.22s ease;
}

.npn-project-child:hover,
.npn-project-child.is-current {
	transform: translateY(-2px);
	border-color: rgba(29, 242, 226, 0.42);
	box-shadow:
		0 0 0 1px rgba(29, 242, 226, 0.08),
		0 0 28px rgba(8, 213, 255, 0.12),
		0 18px 36px rgba(0, 0, 0, 0.24);
}

.npn-project-child-info {
	min-width: 0;
}

.npn-project-child-info strong {
	display: block;
	margin: 0;
	color: #ffffff;
	font-size: 15px;
	line-height: 1.3;
	letter-spacing: -0.01em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.npn-project-child-info small {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px;
	margin-top: 8px;
	color: rgba(225, 241, 255, 0.58);
	font-size: 12px;
	line-height: 1.45;
}

.npn-project-service-name {
	color: rgba(225, 241, 255, 0.58);
}

.npn-project-status {
	display: inline-flex;
	align-items: center;
	min-height: 22px;
	padding: 0 8px;
	border-radius: 999px;
	font-size: 11px;
	line-height: 1;
}

.npn-project-status.is-unpaid {
	background: rgba(251, 191, 36, 0.13);
	color: #facc15;
}

.npn-project-status.is-paid {
	background: rgba(29, 242, 226, 0.12);
	color: #1df2e2;
}

.npn-project-child > b {
	justify-self: end;
	align-self: start;
	color: #1df2e2;
	font-size: 14px;
	line-height: 1.2;
	white-space: nowrap;
	text-shadow: 0 0 14px rgba(29, 242, 226, 0.18);
}

.npn-project-child-actions {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin-top: 4px;
	padding-top: 12px;
	border-top: 1px solid rgba(103, 232, 249, 0.1);
}

.npn-project-child-actions button {
	min-height: 34px;
	padding: 0 12px;
	border: 0;
	border-radius: 11px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.075);
	color: rgba(225, 241, 255, 0.84);
	font-size: 12px;
	line-height: 1;
	font-family: "Manrope-Extra";
	cursor: pointer;
	transition: 0.2s ease;
}

.npn-project-child-actions button:hover:not(:disabled) {
	transform: translateY(-1px);
	background: rgba(8, 213, 255, 0.12);
	color: #ffffff;
	box-shadow: 0 0 18px rgba(8, 213, 255, 0.12);
}

.npn-project-child-actions button[data-child-pay] {
	color: #04111f;
	background: linear-gradient(135deg, #1df2e2, #0ea5e9);
	box-shadow: 0 0 22px rgba(8, 213, 255, 0.18);
}

.npn-project-child-actions button[data-child-pay]:hover {
	color: #04111f;
	box-shadow: 0 0 30px rgba(8, 213, 255, 0.28);
}

.npn-project-child-actions button.is-paid-btn {
	background: rgba(29, 242, 226, 0.12);
	color: #1df2e2;
	cursor: default;
	opacity: 0.85;
}

@media (max-width: 680px) {
	.npn-project-child {
		grid-template-columns: 1fr;
	}

	.npn-project-child > b {
		justify-self: start;
	}

	.npn-project-child-actions {
		grid-template-columns: 1fr;
	}
}
.npn-project-folder.is-collapsed .npn-project-child {
	display: none !important;
}

.npn-project-folder.is-collapsed .npn-project-folder-title span {
	opacity: 0.75;
}

.npn-project-folder.is-collapsed .npn-project-folder-title strong::after {
	content: "  (closed)";
	color: rgba(225, 241, 255, 0.42);
	font-size: 11px;
}
/* =========================================================
New project/service-folder/cart flow
========================================================= */
.npn-order-detail-side-head-stack {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.npn-order-detail-side-head-stack > div {
	display: grid;
	gap: 4px;
}
.npn-project-new-btn,
.npn-project-filter-row button {
	min-height: 34px;
	padding: 0 13px;
	border: 0;
	border-radius: 11px;
	background: linear-gradient(135deg, #1df2e2, #0ea5e9);
	color: #03101f;
	font-size: 12px;
	cursor: pointer;
	font-family: "Manrope-Extra";
	font-weight: 800;
	white-space: nowrap;
}
.npn-project-filter-row {
	margin: 12px 10px 14px;
	padding: 12px;
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.12);
	background: rgba(255, 255, 255, 0.045);
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 8px;
	align-items: end;
}
.npn-project-filter-row label {
	grid-column: 1 / -1;
	color: rgba(225, 241, 255, 0.62);
	font-size: 12px;
}
.npn-project-filter-row input {
	width: 100%;
	height: 38px;
	padding: 0 12px;
	border-radius: 11px;
	border: 1px solid rgba(103, 232, 249, 0.16);
	background: rgba(7, 18, 38, 0.76);
	color: #fff;
	outline: none;
}
.npn-project-child.is-current {
	border-color: rgba(29, 242, 226, 0.38);
	box-shadow:
		0 0 0 2px rgba(29, 242, 226, 0.06),
		0 18px 34px rgba(0, 0, 0, 0.16);
}
.npn-cart-project-list {
	display: grid;
	gap: 12px;
}
.npn-cart-project {
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.12);
	background: rgba(255, 255, 255, 0.045);
	overflow: hidden;
}
.npn-cart-project-head {
	width: 100%;
	min-height: 54px;
	padding: 12px 14px;
	border: 0;
	background: rgba(255, 255, 255, 0.035);
	color: #fff;
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 10px;
	align-items: center;
	text-align: left;
	cursor: pointer;
}
.npn-cart-project-head strong {
	font-size: 14px;
}
.npn-cart-project-head b {
	color: #1df2e2;
	font-size: 13px;
	white-space: nowrap;
}
.npn-cart-project-body {
	display: none;
	padding: 12px;
	border-top: 1px solid rgba(103, 232, 249, 0.1);
}
.npn-cart-project.is-open .npn-cart-project-body {
	display: grid;
	gap: 10px;
}
.npn-cart-service-line {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 10px;
	align-items: start;
	padding: 12px;
	border-radius: 13px;
	background: rgba(7, 18, 38, 0.46);
	border: 1px solid rgba(255, 255, 255, 0.055);
	cursor: pointer;
}
.npn-cart-service-line input {
	margin-top: 4px;
}
.npn-cart-service-line strong {
	display: block;
	color: #fff;
	font-size: 13px;
}
.npn-cart-service-line em,
.npn-cart-service-line small {
	display: block;
	margin-top: 4px;
	color: rgba(225, 241, 255, 0.55);
	font-size: 12px;
	font-style: normal;
	line-height: 1.4;
}
.npn-cart-service-line b {
	color: #1df2e2;
	font-size: 13px;
	white-space: nowrap;
}
.npn-cart-remove-project {
	min-height: 34px;
	border: 0;
	border-radius: 11px;
	background: rgba(239, 68, 68, 0.13);
	color: #fecaca;
	font-size: 12px;
	cursor: pointer;
	font-family: "Manrope-Extra";
}
.npn-order-total-row-today {
	margin-top: 8px;
	border-top: 0;
	background: rgba(29, 242, 226, 0.075);
	border-radius: 14px;
	padding: 12px 14px;
}
.npn-next-service-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-top: 14px;
}
.npn-next-service-btn {
	min-height: 76px;
	padding: 14px;
	border: 1px solid rgba(103, 232, 249, 0.16);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	text-align: left;
	cursor: pointer;
}
.npn-next-service-btn strong {
	display: block;
	font-size: 14px;
}
.npn-next-service-btn span {
	display: block;
	margin-top: 5px;
	color: rgba(225, 241, 255, 0.58);
	font-size: 12px;
}
.npn-next-service-btn:hover {
	border-color: rgba(29, 242, 226, 0.38);
	background: rgba(29, 242, 226, 0.09);
}
.npn-swal-text {
	color: rgba(225, 241, 255, 0.72);
	margin: 0;
}
@media (max-width: 720px) {
	.npn-project-filter-row {
		grid-template-columns: 1fr;
	}
	.npn-next-service-grid {
		grid-template-columns: 1fr;
	}
	.npn-cart-service-line {
		grid-template-columns: auto 1fr;
	}
	.npn-cart-service-line b {
		grid-column: 2;
	}
}

/* =========================================================
Update 2026-06-10: upload preview, image categories, nicer detail popup
========================================================= */
.npn-upload-preview-grid {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin-top: 16px;
}

.npn-upload-preview-item,
.npn-upload-add-more {
	min-height: 118px;
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.17);
	background: rgba(6, 18, 38, 0.74);
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	text-align: left;
}

.npn-upload-preview-item img,
.npn-upload-preview-file {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.npn-upload-preview-file {
	display: grid;
	place-items: center;
	font-size: 12px;
	letter-spacing: 0.14em;
	color: rgba(225, 241, 255, 0.72);
	background: radial-gradient(
		circle at 50% 0%,
		rgba(8, 213, 255, 0.18),
		rgba(8, 18, 42, 0.88)
	);
}

.npn-upload-preview-item::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 58%;
	background: linear-gradient(180deg, transparent, rgba(2, 8, 20, 0.92));
}

.npn-upload-preview-item span,
.npn-upload-preview-item em {
	position: relative;
	z-index: 2;
	padding: 0 10px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.npn-upload-preview-item span {
	font-size: 12px;
	color: #fff;
}

.npn-upload-preview-item em {
	padding-bottom: 9px;
	font-size: 11px;
	font-style: normal;
	color: rgba(225, 241, 255, 0.62);
}

.npn-upload-preview-item button {
	position: absolute;
	top: 7px;
	right: 7px;
	z-index: 3;
	width: 26px;
	height: 26px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	background: rgba(239, 68, 68, 0.92);
	color: #fff;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}

.npn-upload-add-more {
	align-items: center;
	justify-content: center;
	text-align: center;
	border-style: dashed;
	color: #70efff;
	cursor: pointer;
}

.npn-inc-subcat-wrap {
	padding: 8px 8px 4px 44px;
}

.npn-inc-subcat-wrap > span {
	display: block;
	margin-bottom: 8px;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(112, 239, 255, 0.76);
}

.npn-inc-subcat-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.npn-inc-subcat-btn {
	border: 1px solid rgba(103, 232, 249, 0.18);
	border-radius: 999px;
	background: rgba(18, 38, 78, 0.72);
	color: #fff;
	padding: 8px 12px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: grab;
	transition: 0.18s ease;
}

.npn-inc-subcat-btn strong {
	font-size: 12px;
}
.npn-inc-subcat-btn em {
	font-size: 11px;
	font-style: normal;
	color: #70efff;
}
.npn-inc-subcat-btn small {
	font-size: 11px;
	color: rgba(225, 241, 255, 0.62);
}
.npn-inc-subcat-btn.has-images,
.npn-inc-subcat-btn:hover {
	border-color: rgba(112, 239, 255, 0.52);
	box-shadow: 0 0 22px rgba(8, 213, 255, 0.13);
	background: rgba(8, 213, 255, 0.13);
}
.npn-inc-subcat-btn.is-dragging {
	opacity: 0.45;
}

.npn-next-service-btn.is-selected {
	border-color: rgba(112, 239, 255, 0.72);
	background: linear-gradient(
		135deg,
		rgba(8, 213, 255, 0.2),
		rgba(79, 117, 255, 0.16)
	);
	box-shadow: 0 0 28px rgba(8, 213, 255, 0.18);
}

.npn-next-service-actions {
	display: flex;
	gap: 12px;
	justify-content: flex-end;
	margin-top: 18px;
}

.npn-next-service-continue,
.npn-next-service-new,
.npn-next-service-cancel {
	min-height: 42px;
	padding: 0 18px;
	border-radius: 999px;
	border: 0;
	cursor: pointer;
}

.npn-next-service-continue {
	background: linear-gradient(135deg, #08d5ff, #4f75ff);
	color: #fff;
}

.npn-next-service-new {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: #e5f4ff;
}

.npn-next-service-cancel {
	background: rgba(255, 255, 255, 0.045);
	border: 1px solid rgba(255, 255, 255, 0.1);
	color: rgba(225, 241, 255, 0.72);
}

.npn-next-service-cancel:hover {
	background: rgba(239, 68, 68, 0.12);
	border-color: rgba(239, 68, 68, 0.22);
	color: #fff;
}

.npn-image-library-popup p {
	margin: 0 0 14px;
	color: rgba(225, 241, 255, 0.72);
}
.npn-image-library-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	overflow: auto;
	padding-right: 4px;
}

.npn-image-library-item {
	border: 1px solid rgba(103, 232, 249, 0.14);
	border-radius: 16px;
	background: rgba(6, 18, 38, 0.72);
	padding: 0;
	overflow: hidden;
	color: #fff;
	cursor: pointer;
	text-align: left;
	min-height: 128px;
}

.npn-image-library-item img {
	width: 100%;
	height: auto;
	max-height: 250px;
	display: grid;
	place-items: center;
	object-fit: cover;
	background: rgba(10, 24, 54, 0.9);
}

.npn-image-library-item > span {
	width: 30px;
	height: 30px;
}

.npn-image-library-item small {
	display: block;
	padding: 8px;
	font-size: 11px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.npn-image-library-item.is-selected {
	border-color: rgba(112, 239, 255, 0.72);
	box-shadow:
		0 0 0 2px rgba(8, 213, 255, 0.16),
		0 0 28px rgba(8, 213, 255, 0.2);
}

.npn-service-detail-popup {
	text-align: left;
}
.npn-detail-popup-head {
	padding: 14px;
	border-radius: 16px;
	background: rgba(8, 213, 255, 0.08);
	border: 1px solid rgba(103, 232, 249, 0.16);
	margin-bottom: 14px;
	line-height: 1.8;
}

.npn-detail-file-gallery {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}

.npn-detail-file-card {
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	background: rgba(6, 18, 38, 0.72);
	overflow: hidden;
}

.npn-detail-file-card img,
.npn-detail-file-icon {
	width: 100%;
	height: 110px;
	object-fit: cover;
	display: grid;
	place-items: center;
	background: rgba(10, 24, 54, 0.9);
	font-size: 12px;
	color: rgba(225, 241, 255, 0.68);
}

.npn-detail-file-card strong,
.npn-detail-file-card span {
	display: block;
	padding: 0 10px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.npn-detail-file-card strong {
	padding-top: 9px;
	font-size: 12px;
	color: #fff;
}
.npn-detail-file-card span {
	padding-bottom: 9px;
	font-size: 11px;
	color: rgba(225, 241, 255, 0.62);
}
.npn-detail-file-empty {
	padding: 18px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.05);
	color: rgba(225, 241, 255, 0.68);
}

@media (max-width: 980px) {
	.npn-upload-preview-grid,
	.npn-image-library-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.npn-detail-file-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.npn-next-service-actions {
		flex-direction: column;
	}
}

.npn-cart-thumbs {
	display: flex;
	gap: 6px;
	margin-top: 8px;
	font-style: normal;
}

.npn-cart-thumbs img,
.npn-cart-thumbs span {
	width: 42px;
	height: 42px;
	border-radius: 10px;
	object-fit: cover;
	border: 1px solid rgba(103, 232, 249, 0.16);
	background: rgba(6, 18, 38, 0.8);
	display: grid;
	place-items: center;
	font-size: 9px;
	color: rgba(225, 241, 255, 0.68);
}

.npn-cart-service-line button[data-cart-child-view] {
	margin-top: 8px;
	width: max-content;
	min-height: 28px;
	padding: 0 10px;
	border-radius: 999px;
	border: 1px solid rgba(103, 232, 249, 0.18);
	background: rgba(8, 213, 255, 0.1);
	color: #70efff;
	font-size: 11px;
	cursor: pointer;
}

/* Admin image library selected from service config */
.npn-detail-admin-images {
	margin-top: 16px;
	padding: 14px;
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	background: rgba(6, 18, 38, 0.55);
}
.npn-detail-admin-images h4 {
	margin: 0 0 12px;
	color: #eaffff;
	font-size: 13px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.npn-detail-admin-image-row {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin-top: 10px;
}
.npn-detail-admin-image-row figure {
	margin: 0;
	border-radius: 14px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.08);
}
.npn-detail-admin-image-row img {
	width: 100%;
	height: 92px;
	object-fit: cover;
	display: block;
}
.npn-detail-admin-image-row figcaption {
	padding: 7px 8px;
	font-size: 11px;
	color: rgba(225, 241, 255, 0.72);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* v4: checkbox-style sub categories, collapsed under checked parent */
.npn-order-detail-inc-card .npn-inc-subcat-wrap {
	display: none;
}
.npn-order-detail-inc-card.is-open .npn-inc-subcat-wrap {
	display: block;
}
.npn-inc-subcat-wrap {
	padding: 12px 8px 4px 44px;
}
.npn-inc-subcat-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 10px;
}
.npn-inc-subcat-btn {
	width: 100%;
	border-radius: 16px;
	padding: 12px 14px;
	justify-content: flex-start;
	gap: 12px;
	background: linear-gradient(
		135deg,
		rgba(16, 37, 76, 0.92),
		rgba(7, 18, 40, 0.88)
	);
	border: 1px solid rgba(103, 232, 249, 0.16);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
	cursor: pointer;
	text-align: left;
}
.npn-inc-subcat-check {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	border-radius: 8px;
	border: 1px solid rgba(112, 239, 255, 0.42);
	background: rgba(2, 10, 24, 0.72);
	box-shadow: inset 0 0 0 3px rgba(7, 18, 40, 0.85);
	position: relative;
}
.npn-inc-subcat-btn.is-checked .npn-inc-subcat-check,
.npn-inc-subcat-btn.has-images .npn-inc-subcat-check {
	background: linear-gradient(135deg, #08d5ff, #4f75ff);
	border-color: rgba(112, 239, 255, 0.82);
}
.npn-inc-subcat-btn.is-checked .npn-inc-subcat-check:after,
.npn-inc-subcat-btn.has-images .npn-inc-subcat-check:after {
	content: "✓";
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-size: 15px;
	color: #fff;
}
.npn-inc-subcat-text {
	display: grid;
	gap: 3px;
	min-width: 0;
}
.npn-inc-subcat-text strong,
.npn-inc-subcat-btn strong {
	font-size: 13px;
	line-height: 1.2;
}
.npn-inc-subcat-text small,
.npn-inc-subcat-btn small {
	font-size: 11px;
	color: rgba(225, 241, 255, 0.64);
}
.npn-inc-subcat-btn.is-checked,
.npn-inc-subcat-btn.has-images,
.npn-inc-subcat-btn:hover {
	border-color: rgba(112, 239, 255, 0.62);
	background: linear-gradient(
		135deg,
		rgba(8, 213, 255, 0.18),
		rgba(79, 117, 255, 0.14)
	);
	box-shadow:
		0 0 26px rgba(8, 213, 255, 0.15),
		inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.npn-image-library-item {
	position: relative;
	overflow: hidden;
}
.npn-image-library-tick {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	display: grid;
	place-items: center;
	background: rgba(2, 10, 24, 0.72);
	border: 1px solid rgba(255, 255, 255, 0.22);
	color: transparent;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.22);
}
.npn-image-library-item.is-selected .npn-image-library-tick {
	background: linear-gradient(135deg, #08d5ff, #4f75ff);
	border-color: rgba(112, 239, 255, 0.9);
	color: #fff;
}
.npn-image-library-item.is-selected:after {
	content: "";
	position: absolute;
	inset: 0;
	border: 2px solid rgba(112, 239, 255, 0.85);
	border-radius: inherit;
	pointer-events: none;
}

/* v5: switch-style inclusion toggles. Toggle only enables/disables; clicking parent row opens sub categories. */
.npn-order-detail-inc-card .npn-inc-subcat-wrap {
	display: none !important;
}
.npn-order-detail-inc-card.is-open .npn-inc-subcat-wrap {
	display: block !important;
}
.npn-inc-parent-head {
	cursor: pointer;
	user-select: none;
}
.npn-inc-parent-head > span {
	display: grid;
	gap: 4px;
	min-width: 0;
}
.npn-inc-parent-head small {
	display: block;
	font-size: 11px;
	color: rgba(225, 241, 255, 0.56);
}
.npn-order-detail-inc-card.is-open .npn-inc-parent-head {
	border-color: rgba(112, 239, 255, 0.62);
	box-shadow:
		0 0 24px rgba(8, 213, 255, 0.12),
		inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.npn-order-detail-inc-card.is-disabled .npn-inc-parent-head {
	opacity: 0.82;
}
.npn-switch-toggle {
	position: relative;
	width: 46px;
	height: 26px;
	flex: 0 0 46px;
	display: inline-block;
	margin: 0;
	cursor: pointer;
}
.npn-switch-toggle input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.npn-switch-toggle i {
	position: absolute;
	inset: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.16);
	border: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.26);
	transition: 0.22s ease;
}
.npn-switch-toggle i:before {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.28);
	transition: 0.22s ease;
}
.npn-switch-toggle input:checked + i {
	background: linear-gradient(135deg, #22e6ff, #0fd4e6);
	box-shadow:
		0 0 18px rgba(31, 227, 255, 0.34),
		inset 0 1px 0 rgba(255, 255, 255, 0.3);
	border-color: rgba(112, 239, 255, 0.72);
}
.npn-switch-toggle input:checked + i:before {
	transform: translateX(20px);
}
.npn-order-detail-toggle-row .npn-switch-toggle,
.npn-inc-subcat-btn .npn-switch-toggle {
	margin-left: auto;
}
.npn-inc-subcat-btn {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	min-height: 58px;
	cursor: pointer;
}
.npn-inc-subcat-btn .npn-inc-subcat-check {
	display: none !important;
}
.npn-inc-subcat-btn .npn-inc-subcat-text {
	padding-right: 10px;
}
.npn-inc-subcat-btn.is-checked,
.npn-inc-subcat-btn.has-images {
	border-color: rgba(112, 239, 255, 0.56);
	background: linear-gradient(
		135deg,
		rgba(8, 213, 255, 0.16),
		rgba(79, 117, 255, 0.13)
	);
}
.npn-inc-subcat-btn:not(.is-checked):not(.has-images) {
	background: linear-gradient(
		135deg,
		rgba(16, 37, 76, 0.92),
		rgba(7, 18, 40, 0.88)
	);
}
.npn-image-library-item.is-selected .npn-image-library-tick {
	background: linear-gradient(135deg, #22e6ff, #0fd4e6) !important;
	color: #fff !important;
	border-color: rgba(112, 239, 255, 0.9) !important;
}

/* =========================================================
v6 - Scoped Order Detail switches
Tách riêng khỏi .npn-switch-toggle cũ để tránh đè CSS/vỡ layout.
========================================================= */
.npn-order-detail-wrap .npn-od-switch,
.npn-order-detail-root .npn-od-switch,
[data-npn-order-detail] .npn-od-switch {
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	width: 44px !important;
	min-width: 44px !important;
	max-width: 44px !important;
	height: 24px !important;
	min-height: 24px !important;
	max-height: 24px !important;
	flex: 0 0 44px !important;
	padding: 0 !important;
	margin: 0 0 0 14px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: transparent !important;
	overflow: visible !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
}

.npn-order-detail-wrap .npn-od-switch input,
.npn-order-detail-root .npn-od-switch input,
[data-npn-order-detail] .npn-od-switch input {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
	margin: 0 !important;
}

.npn-order-detail-wrap .npn-od-switch i,
.npn-order-detail-root .npn-od-switch i,
[data-npn-order-detail] .npn-od-switch i {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 44px !important;
	height: 24px !important;
	border-radius: 999px !important;
	background: linear-gradient(
		135deg,
		rgba(96, 115, 151, 0.86),
		rgba(43, 57, 91, 0.92)
	) !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.28) !important;
	transition:
		background 0.22s ease,
		box-shadow 0.22s ease,
		border-color 0.22s ease !important;
	box-sizing: border-box !important;
}

.npn-order-detail-wrap .npn-od-switch i::before,
.npn-order-detail-root .npn-od-switch i::before,
[data-npn-order-detail] .npn-od-switch i::before {
	content: "" !important;
	position: absolute !important;
	top: 2px !important;
	left: 3px !important;
	width: 18px !important;
	height: 18px !important;
	border-radius: 50% !important;
	background: #fff !important;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3) !important;
	transform: translateX(0) !important;
	transition: transform 0.22s ease !important;
	box-sizing: border-box !important;
}

.npn-order-detail-wrap .npn-od-switch input:checked + i,
.npn-order-detail-root .npn-od-switch input:checked + i,
[data-npn-order-detail] .npn-od-switch input:checked + i {
	background: linear-gradient(135deg, #22e6ff, #0fd4e6) !important;
	border-color: rgba(112, 239, 255, 0.72) !important;
	box-shadow:
		0 0 16px rgba(31, 227, 255, 0.3),
		inset 0 1px 0 rgba(255, 255, 255, 0.28) !important;
}

.npn-order-detail-wrap .npn-od-switch input:checked + i::before,
.npn-order-detail-root .npn-od-switch input:checked + i::before,
[data-npn-order-detail] .npn-od-switch input:checked + i::before {
	transform: translateX(20px) !important;
}

.npn-order-detail-wrap .npn-order-detail-toggle-row .npn-od-switch,
.npn-order-detail-root .npn-order-detail-toggle-row .npn-od-switch,
[data-npn-order-detail] .npn-order-detail-toggle-row .npn-od-switch,
.npn-order-detail-wrap .npn-inc-subcat-btn .npn-od-switch,
.npn-order-detail-root .npn-inc-subcat-btn .npn-od-switch,
[data-npn-order-detail] .npn-inc-subcat-btn .npn-od-switch {
	margin-left: auto !important;
}

/* =========================================================
v8 - Detail popup inclusions + outside upload preview fixes
========================================================= */

/* Move preview list outside the drop area and allow the remove button to work */
.npn-order-upload-file-list-outside {
	display: block !important;
	width: 100%;
	max-width: none;
	margin-top: 14px;
	pointer-events: auto !important;
	position: relative;
	z-index: 8;
}

.npn-order-upload-file-list-outside *,
.npn-upload-preview-grid,
.npn-upload-preview-grid * {
	pointer-events: auto !important;
}

.npn-order-detail-upload > .npn-order-upload-file-list {
	pointer-events: auto !important;
}

.npn-upload-preview-item button[data-remove-upload-file] {
	z-index: 20;
	pointer-events: auto !important;
	cursor: pointer;
}

.npn-upload-add-more {
	pointer-events: auto !important;
	cursor: pointer;
}

/* Wider and cleaner service folder detail popup */
.swal2-popup .npn-service-detail-popup {
	width: 100%;
	text-align: left;
}

.npn-detail-uploaded-section,
.npn-detail-inclusions {
	margin-top: 16px;
	padding: 16px;
	border-radius: 18px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	background:
		radial-gradient(circle at 12% 0%, rgba(8, 213, 255, 0.08), transparent 42%),
		linear-gradient(180deg, rgba(8, 24, 54, 0.78), rgba(5, 15, 36, 0.9));
}

.npn-detail-uploaded-section h4,
.npn-detail-inclusions h4 {
	margin: 0 0 14px;
	color: #eaffff;
	font-size: 13px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.npn-detail-inc-parent {
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	background: rgba(255, 255, 255, 0.045);
	overflow: hidden;
	margin-bottom: 12px;
}

.npn-detail-inc-parent:last-child {
	margin-bottom: 0;
}

.npn-detail-inc-parent-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 13px 14px;
	background: rgba(8, 213, 255, 0.07);
	border-bottom: 1px solid rgba(103, 232, 249, 0.1);
}

.npn-detail-inc-parent-head strong,
.npn-detail-inc-child-head strong {
	display: block;
	color: #ffffff;
	font-size: 14px;
	line-height: 1.3;
}

.npn-detail-inc-parent-head span {
	display: block;
	margin-top: 5px;
	color: rgba(225, 241, 255, 0.6);
	font-size: 12px;
	line-height: 1.45;
}

.npn-detail-inc-parent-head b,
.npn-detail-inc-child-head b {
	color: #1df2e2;
	font-size: 12px;
	white-space: nowrap;
}

.npn-detail-inc-children {
	display: grid;
	gap: 12px;
	padding: 12px;
}

.npn-detail-inc-child {
	border-radius: 14px;
	border: 1px solid rgba(255, 255, 255, 0.07);
	background: rgba(6, 18, 38, 0.62);
	overflow: hidden;
}

.npn-detail-inc-child-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 11px 12px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.npn-detail-inc-image-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	padding: 12px;
}

.npn-detail-inc-image-grid figure {
	margin: 0;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid rgba(103, 232, 249, 0.12);
	background: rgba(6, 18, 38, 0.8);
}

.npn-detail-inc-image-grid img {
	display: block;
	width: 100%;
	height: 110px;
	object-fit: cover;
}

.npn-detail-inc-image-grid figcaption {
	padding: 7px 8px;
	color: rgba(225, 241, 255, 0.72);
	font-size: 11px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media (max-width: 980px) {
	.npn-detail-inc-image-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* v17 - Front reference image code + per-image pricing display */
.npn-image-library-item {
	position: relative;
}
.npn-image-library-caption {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 9px 10px;
	background: rgba(3, 12, 30, 0.72);
	color: #fff;
}
.npn-image-library-caption strong {
	font-size: 12px;
	color: #1df2e2;
	white-space: nowrap;
}
.npn-image-library-caption small {
	min-width: 0;
	font-size: 11px;
	color: rgba(225, 241, 255, 0.72);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.npn-detail-inc-image-grid figcaption {
	display: grid;
	gap: 3px;
}
.npn-detail-inc-image-grid figcaption b {
	color: #1df2e2;
	font-size: 11px;
}
.npn-detail-inc-image-grid figcaption span {
	color: rgba(225, 241, 255, 0.74);
	font-size: 11px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* v18: delete button for each service folder */
.npn-project-child-actions {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.npn-project-child-actions .npn-project-child-delete,
.npn-project-child-actions button[data-child-delete] {
	background: rgba(239, 68, 68, 0.14);
	color: #fecaca;
	border: 1px solid rgba(248, 113, 113, 0.18);
}

.npn-project-child-actions .npn-project-child-delete:hover,
.npn-project-child-actions button[data-child-delete]:hover {
	background: rgba(239, 68, 68, 0.24);
	color: #ffffff;
	box-shadow: 0 0 18px rgba(239, 68, 68, 0.18);
}

@media (max-width: 680px) {
	.npn-project-child-actions {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
v29 - Inclusion image picker without sub categories
========================================================= */
.npn-inc-actions {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	justify-content: flex-end;
}
.npn-inc-image-view {
	width: max-content;
	height: auto;
	border: 1px solid rgba(112, 239, 255, 0.28);
	border-radius: 14px;
	background: rgba(8, 213, 255, 0.09);
	color: #70efff;
	font-size: 14px;
	padding: 8px 12px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 0 18px rgba(8, 213, 255, 0.08);
	transition: 0.2s ease;
}
.npn-inc-image-view:hover {
	transform: translateY(-1px);
	border-color: rgba(112, 239, 255, 0.62);
	background: rgba(8, 213, 255, 0.18);
	box-shadow: 0 0 26px rgba(8, 213, 255, 0.18);
}
.npn-order-detail-toggle-row .npn-inc-actions .npn-od-switch {
	margin-left: 0 !important;
}
.npn-image-library-caption {
	display: grid;
	gap: 3px;
	padding: 9px 10px 10px;
}
.npn-image-library-caption strong {
	min-height: 16px;
	color: #70efff;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.npn-image-library-caption small {
	color: rgba(225, 241, 255, 0.72);
	font-size: 11px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.npn-image-library-item img {
	transition:
		filter 0.28s ease,
		opacity 0.28s ease,
		transform 0.28s ease;
}
.npn-image-library-item:hover img {
	transform: scale(1.03);
}

/* popup buttons after save */
.npn-next-service-actions-main {
	justify-content: center;
	align-items: center;
}
.npn-next-service-actions-main .npn-next-service-cancel {
	order: 1;
}
.npn-next-service-actions-main .npn-next-service-continue {
	order: 2;
}
.npn-next-service-new-row {
	margin-top: 14px;
	display: flex;
	justify-content: center;
}
.npn-next-service-new-row .npn-next-service-new {
	min-width: min(100%, 360px);
	min-height: 48px;
	background: linear-gradient(135deg, #ffd43b, #ff8a00);
	color: #071226;
	box-shadow:
		0 0 28px rgba(255, 194, 40, 0.28),
		0 16px 30px rgba(0, 0, 0, 0.22);
}
.npn-next-service-new-row .npn-next-service-new:hover {
	transform: translateY(-2px);
	box-shadow:
		0 0 38px rgba(255, 194, 40, 0.4),
		0 20px 38px rgba(0, 0, 0, 0.3);
}

/* upload preview max 3 rows + lazy fade */
.npn-order-upload-file-list-outside .npn-upload-preview-grid {
	max-height: 390px;
	overflow-y: auto;
	padding-right: 8px;
	scrollbar-width: thin;
	scrollbar-color: rgba(31, 227, 255, 0.55) rgba(255, 255, 255, 0.06);
}
.npn-upload-preview-img.is-loading {
	filter: blur(12px);
	opacity: 0.45;
}
.npn-upload-preview-img:not(.is-loading) {
	filter: blur(0);
	opacity: 1;
}

/* =========================================================
v30 - Distinct service colors in after-save popup
========================================================= */
.npn-next-service-btn {
	--npn-next-color-1: hsl(var(--npn-next-hue, 185deg) 92% 55%);
	--npn-next-color-2: hsl(calc(var(--npn-next-hue, 185deg) + 42deg) 90% 62%);
	position: relative;
	overflow: hidden;
	border-color: color-mix(in srgb, var(--npn-next-color-1), transparent 68%);
	background:
		radial-gradient(
			circle at 0% 0%,
			color-mix(in srgb, var(--npn-next-color-1), transparent 86%),
			transparent 52%
		),
		linear-gradient(135deg, rgba(20, 36, 72, 0.96), rgba(11, 24, 54, 0.98));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.npn-next-service-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		color-mix(in srgb, var(--npn-next-color-1), transparent 84%),
		transparent 54%,
		color-mix(in srgb, var(--npn-next-color-2), transparent 86%)
	);
	opacity: 0.55;
	pointer-events: none;
}
.npn-next-service-btn strong,
.npn-next-service-btn span {
	position: relative;
	z-index: 1;
}
.npn-next-service-btn:hover,
.npn-next-service-btn.is-selected {
	border-color: color-mix(in srgb, var(--npn-next-color-1), white 12%);
	background:
		radial-gradient(
			circle at 0% 0%,
			color-mix(in srgb, var(--npn-next-color-1), transparent 72%),
			transparent 58%
		),
		linear-gradient(135deg, rgba(21, 43, 86, 0.98), rgba(12, 28, 65, 0.98));
	box-shadow:
		0 0 30px color-mix(in srgb, var(--npn-next-color-1), transparent 72%),
		inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.npn-next-service-btn.is-selected::after {
	content: "✓";
	position: absolute;
	right: 14px;
	top: 14px;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	display: grid;
	place-items: center;
	font-size: 13px;
	color: #071226;
	background: var(--npn-next-color-1);
	box-shadow: 0 0 18px
		color-mix(in srgb, var(--npn-next-color-1), transparent 55%);
}
.npn-next-service-theme-photo-editing {
	--npn-next-hue: 184deg;
}
.npn-next-service-theme-retouching {
	--npn-next-hue: 316deg;
}
.npn-next-service-theme-virtual-staging {
	--npn-next-hue: 252deg;
}
.npn-next-service-theme-virtual-twilight {
	--npn-next-hue: 268deg;
}
.npn-next-service-theme-green-grass {
	--npn-next-hue: 124deg;
}
.npn-next-service-theme-video {
	--npn-next-hue: 18deg;
}
.npn-next-service-theme-diy-studio {
	--npn-next-hue: 205deg;
}

/* Center the last popup service card when the total count is odd */
.npn-next-service-grid-select
> .npn-next-service-btn:last-child:nth-child(odd) {
	grid-column: 1 / -1;
	justify-self: center;
	width: calc((100% - 10px) / 2);
	max-width: calc((100% - 10px) / 2);
}
@media (max-width: 720px) {
	.npn-next-service-grid-select
	> .npn-next-service-btn:last-child:nth-child(odd) {
		width: 100%;
		max-width: 100%;
	}
}

/* =========================================================
v31 - Login redirect, compact image picker, wallet payment, upload add-more top
========================================================= */
.npn-upload-preview-toolbar {
	width: 100%;
	margin: 14px 0 0;
	padding: 12px 14px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	border-radius: 16px;
	background: rgba(6, 18, 38, 0.62);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.npn-upload-preview-toolbar strong {
	display: block;
	color: #fff;
	font-size: 13px;
}
.npn-upload-preview-toolbar span {
	display: block;
	margin-top: 3px;
	color: rgba(225, 241, 255, 0.56);
	font-size: 12px;
}
.npn-upload-add-more-top {
	min-height: 38px !important;
	width: auto !important;
	padding: 0 16px !important;
	border-radius: 999px !important;
	flex: 0 0 auto;
	align-items: center !important;
	justify-content: center !important;
	background: linear-gradient(
		135deg,
		rgba(29, 242, 226, 0.18),
		rgba(14, 165, 233, 0.14)
	) !important;
}
.npn-order-upload-file-list-outside .npn-upload-preview-grid {
	margin-top: 12px;
}
.npn-upload-preview-grid .npn-upload-add-more:not(.npn-upload-add-more-top) {
	display: none !important;
}
.npn-upload-preview-item {
	aspect-ratio: 1 / 1;
	min-height: 0;
}
.npn-upload-preview-item img {
	image-rendering: auto;
	transform: translateZ(0);
}
.npn-order-detail-summary .npn-order-checkout.is-loading {
	pointer-events: none;
	opacity: 0.76;
	filter: saturate(0.8);
}
.npn-image-library-popup-list p {
	margin-bottom: 16px;
}
.npn-image-library-layout {
	display: grid;
	grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
	gap: 16px;
	align-items: stretch;
	max-height: min(72vh, 680px);
}
.npn-image-library-list {
	display: grid;
	gap: 10px;
	align-content: start;
	overflow: auto;
	padding-right: 6px;
	scrollbar-width: thin;
	scrollbar-color: rgba(31, 227, 255, 0.55) rgba(255, 255, 255, 0.06);
}
.npn-image-library-row {
	width: 100%;
	min-height: 72px;
	padding: 8px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	border-radius: 16px;
	background: rgba(6, 18, 38, 0.68);
	color: #fff;
	display: grid;
	grid-template-columns: 82px minmax(0, 1fr) 30px;
	gap: 10px;
	align-items: center;
	text-align: left;
	cursor: pointer;
	transition: 0.2s ease;
}
.npn-image-library-row:hover,
.npn-image-library-row.is-active {
	border-color: rgba(112, 239, 255, 0.58);
	background: rgba(8, 213, 255, 0.1);
}
.npn-image-library-row.is-selected {
	box-shadow:
		0 0 0 2px rgba(8, 213, 255, 0.14),
		0 0 24px rgba(8, 213, 255, 0.14);
}
.npn-image-library-thumb {
	width: 82px !important;
	height: 56px !important;
	border-radius: 12px;
	overflow: hidden;
	background: rgba(3, 12, 30, 0.8);
	display: block !important;
}
.npn-image-library-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.npn-image-library-info {
	min-width: 0;
	display: grid !important;
	gap: 4px;
}
.npn-image-library-info strong {
	color: #70efff;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.npn-image-library-info small {
	padding: 0;
	color: rgba(225, 241, 255, 0.72);
	font-size: 12px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.npn-image-library-check {
	width: 28px;
	height: 28px;
	border-radius: 999px;
	display: grid;
	place-items: center;
	background: rgba(2, 10, 24, 0.72);
	border: 1px solid rgba(255, 255, 255, 0.22);
	color: transparent;
	font-style: normal;
}
.npn-image-library-row.is-selected .npn-image-library-check {
	background: linear-gradient(135deg, #08d5ff, #4f75ff);
	border-color: rgba(112, 239, 255, 0.9);
	color: #fff;
}
.npn-image-library-preview {
	min-height: 360px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	border-radius: 20px;
	background: rgba(3, 12, 30, 0.56);
	overflow: hidden;
	display: grid;
	place-items: center;
}
.npn-image-library-preview-figure {
	width: 100%;
	height: 100%;
	margin: 0;
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
}
.npn-image-library-preview-figure img {
	width: 100%;
	height: 100%;
	max-height: min(64vh, 620px);
	object-fit: contain;
	display: block;
	background: rgba(2, 8, 20, 0.72);
}
.npn-image-library-preview-figure figcaption {
	padding: 12px 14px;
	background: rgba(3, 12, 30, 0.88);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.npn-image-library-preview-figure figcaption strong {
	color: #70efff;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.npn-image-library-preview-figure figcaption span {
	min-width: 0;
	color: rgba(225, 241, 255, 0.78);
	font-size: 12px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
@media (max-width: 900px) {
	.npn-image-library-layout {
		grid-template-columns: 1fr;
		max-height: none;
	}
	.npn-image-library-list {
		max-height: 280px;
	}
	.npn-image-library-preview {
		min-height: 280px;
	}
}
@media (max-width: 620px) {
	.npn-upload-preview-toolbar {
		align-items: stretch;
		flex-direction: column;
	}
	.npn-upload-add-more-top {
		width: 100% !important;
	}
}

/* =========================================================
v32 - Reference image picker as horizontal folder files
========================================================= */
.npn-order-detail-toggle-row .npn-inc-actions {
	min-width: max-content;
}

.npn-image-library-popup-folder p {
	margin: 0 0 14px;
	color: rgba(225, 241, 255, 0.78);
	font-size: 15px;
	line-height: 1.5;
}

.npn-image-library-folder-layout {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.npn-image-library-folder-strip {
	display: flex;
	gap: 12px;
	padding: 8px 4px 12px;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: thin;
	scrollbar-color: rgba(31, 227, 255, 0.58) rgba(255, 255, 255, 0.06);
}

.npn-image-library-folder-file {
	position: relative;
	flex: 0 0 138px;
	width: 138px;
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	background: rgba(6, 18, 38, 0.74);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
	transition: 0.2s ease;
}

.npn-image-library-folder-file:hover,
.npn-image-library-folder-file.is-active {
	border-color: rgba(112, 239, 255, 0.62);
	background: rgba(8, 213, 255, 0.1);
	box-shadow:
		0 0 24px rgba(8, 213, 255, 0.1),
		inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.npn-image-library-folder-file.is-selected {
	border-color: rgba(29, 242, 226, 0.82);
	box-shadow:
		0 0 0 2px rgba(29, 242, 226, 0.16),
		0 0 28px rgba(8, 213, 255, 0.15);
}

.npn-image-library-folder-preview {
	width: 100%;
	padding: 8px;
	border: 0;
	background: transparent;
	color: #fff;
	text-align: left;
	cursor: zoom-in;
}

.npn-image-library-folder-thumb {
	display: block;
	width: 100%;
	height: 88px;
	border-radius: 12px;
	overflow: hidden;
	background: rgba(3, 12, 30, 0.86);
}

.npn-image-library-folder-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	image-rendering: auto;
}

.npn-image-library-folder-name {
	display: grid;
	gap: 3px;
	min-width: 0;
	padding: 8px 2px 0;
}

.npn-image-library-folder-name strong {
	color: #70efff;
	font-size: 11px;
	line-height: 1.15;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.npn-image-library-folder-name small {
	color: rgba(225, 241, 255, 0.7);
	font-size: 11px;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.npn-image-library-folder-check {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	background: rgba(2, 10, 24, 0.72);
	color: transparent;
	cursor: pointer;
	display: grid;
	place-items: center;
	font-size: 15px;
	line-height: 1;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
	transition: 0.2s ease;
}

.npn-image-library-folder-check:hover {
	border-color: rgba(112, 239, 255, 0.8);
	background: rgba(8, 213, 255, 0.22);
}

.npn-image-library-folder-file.is-selected .npn-image-library-folder-check {
	color: #061226;
	border-color: rgba(112, 239, 255, 0.95);
	background: linear-gradient(135deg, #1df2e2, #08d5ff);
	box-shadow: 0 0 18px rgba(8, 213, 255, 0.38);
}

.npn-image-library-popup-folder .npn-image-library-preview {
	min-height: min(54vh, 520px);
	max-height: min(58vh, 560px);
	border-radius: 20px;
}

.npn-image-library-popup-folder .npn-image-library-preview-figure img {
	max-height: min(50vh, 500px);
	object-fit: contain;
}

@media (max-width: 720px) {
	.npn-image-library-folder-file {
		flex-basis: 118px;
		width: 118px;
	}
	.npn-image-library-folder-thumb {
		height: 76px;
	}
	.npn-image-library-popup-folder .npn-image-library-preview {
		min-height: 260px;
	}
}

/* =========================================================
v33 - Faster lazy image loading + compact reference popup
========================================================= */
.npn-lazy-img.is-loading {
	opacity: 0;
	filter: blur(10px);
	transform: translateZ(0) scale(1.01);
}
.npn-lazy-img.is-loaded,
.npn-lazy-img.is-error {
	opacity: 1;
	filter: none;
	transform: translateZ(0) scale(1);
	transition:
		opacity 0.18s ease,
		filter 0.18s ease,
		transform 0.18s ease;
}
.npn-upload-preview-media {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(3, 12, 30, 0.72);
}
.npn-upload-preview-media img,
.npn-upload-preview-media .npn-upload-preview-file {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.npn-upload-preview-loading {
	gap: 8px;
	font-size: 10px;
	letter-spacing: 0.04em;
	text-transform: none;
}
.npn-upload-preview-loading i {
	width: 22px;
	height: 22px;
	border-radius: 999px;
	border: 2px solid rgba(112, 239, 255, 0.22);
	border-top-color: rgba(112, 239, 255, 0.92);
	animation: npnUploadPreviewSpin 0.75s linear infinite;
}
.npn-upload-preview-loading span {
	position: static;
	padding: 0;
	font-size: 11px;
	color: rgba(225, 241, 255, 0.68);
}
@keyframes npnUploadPreviewSpin {
	to {
		transform: rotate(360deg);
	}
}
.npn-upload-preview-item::after {
	z-index: 1;
}
.npn-upload-preview-item > span,
.npn-upload-preview-item > em,
.npn-upload-preview-item > button {
	z-index: 3;
}
.npn-cart-thumbs img.npn-lazy-img,
.npn-detail-file-card img.npn-lazy-img,
.npn-detail-admin-image-row img.npn-lazy-img,
.npn-detail-inc-image-grid img.npn-lazy-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.npn-image-library-popup-compact .npn-image-library-folder-layout {
	gap: 14px;
}
.npn-image-library-popup-compact .npn-image-library-preview.is-empty {
	display: none;
}
.npn-image-library-popup-compact .npn-image-library-preview.has-preview {
	display: grid;
	animation: npnRefPreviewIn 0.18s ease both;
}
@keyframes npnRefPreviewIn {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.npn-image-library-popup-compact .npn-image-library-folder-strip {
	padding-top: 10px;
	padding-bottom: 16px;
}
.npn-image-library-popup-compact .npn-image-library-folder-preview {
	cursor: zoom-in;
}
.npn-image-library-popup-compact
.npn-image-library-folder-file.is-active::after {
	content: "Previewing";
	position: absolute;
	left: 10px;
	top: 10px;
	z-index: 3;
	padding: 4px 7px;
	border-radius: 999px;
	background: rgba(2, 10, 24, 0.78);
	border: 1px solid rgba(112, 239, 255, 0.42);
	color: #70efff;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	pointer-events: none;
}
.npn-image-library-folder-thumb img.npn-lazy-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.npn-image-library-preview-figure img.npn-lazy-img {
	width: 100%;
	height: 100%;
	max-height: min(50vh, 500px);
	object-fit: contain;
	display: block;
	background: rgba(2, 8, 20, 0.72);
}

/* =========================================================
v34 - Large upload optimization: render preview in chunks
========================================================= */
.npn-upload-preview-toolbar span {
	white-space: normal;
}
.npn-upload-preview-loadbar {
	width: 100%;
	margin-top: 12px;
	padding: 12px 14px;
	border: 1px solid rgba(103, 232, 249, 0.14);
	border-radius: 16px;
	background: rgba(6, 18, 38, 0.58);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.npn-upload-preview-loadbar span {
	color: rgba(225, 241, 255, 0.64);
	font-size: 12px;
	line-height: 1.45;
}
.npn-upload-preview-loadbar div {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	flex: 0 0 auto;
}
.npn-upload-preview-loadbar button {
	min-height: 36px;
	padding: 0 14px;
	border-radius: 999px;
	border: 1px solid rgba(103, 232, 249, 0.32);
	background: linear-gradient(
		135deg,
		rgba(29, 242, 226, 0.2),
		rgba(14, 165, 233, 0.16)
	);
	color: #70efff;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
}
.npn-upload-preview-loadbar button:hover {
	border-color: rgba(29, 242, 226, 0.72);
	box-shadow: 0 0 18px rgba(29, 242, 226, 0.16);
}
.npn-upload-preview-loadbar button.is-secondary {
	background: rgba(148, 163, 184, 0.12);
	border-color: rgba(148, 163, 184, 0.24);
	color: rgba(225, 241, 255, 0.72);
}
.npn-order-upload-file-list-outside .npn-upload-preview-grid {
	contain: layout paint;
}
@media (max-width: 720px) {
	.npn-upload-preview-loadbar {
		align-items: stretch;
		flex-direction: column;
	}
	.npn-upload-preview-loadbar div {
		justify-content: stretch;
		flex-wrap: wrap;
	}
	.npn-upload-preview-loadbar button {
		flex: 1 1 auto;
	}
}

/* =========================================================
v35 - Show all saved images in View popup
========================================================= */
.npn-detail-file-gallery-note {
	margin: 0 0 10px;
	color: rgba(225, 241, 255, 0.68);
	font-size: 13px;
	font-weight: 700;
}

/* =========================================================
v36 - Fixed cart thumb size + keep upload preview scroll
========================================================= */
.npn-cart-service-line > span {
	min-width: 0;
	overflow: hidden;
}
.npn-cart-thumbs {
	width: 100%;
	max-width: 154px;
	height: 46px;
	overflow: hidden;
	align-items: center;
	flex-wrap: nowrap;
}
.npn-cart-thumbs img,
.npn-cart-thumbs img.npn-lazy-img,
.npn-cart-thumbs span {
	flex: 0 0 46px !important;
	width: 46px !important;
	height: 46px !important;
	max-width: 46px !important;
	max-height: 46px !important;
	aspect-ratio: 1 / 1;
	object-fit: cover !important;
	display: block;
}
.npn-cart-thumbs span {
	display: grid;
	place-items: center;
}
.npn-upload-preview-grid {
	overflow-anchor: none;
}

/* =========================================================
v37 - Ephemeral cart, created datetime, click-to-preview uploads
========================================================= */
.npn-project-created-inline,
.npn-project-child-created,
.npn-detail-created-inline {
	font-size: 12px;
	font-weight: 800;
	color: rgba(112, 239, 255, 0.78);
	white-space: nowrap;
}

.npn-project-child-created {
	font-size: 11px;
	color: rgba(225, 241, 255, 0.58);
}

.npn-upload-preview-item.is-clickable .npn-upload-preview-media,
.npn-detail-file-card.is-clickable {
	cursor: zoom-in;
}

.npn-upload-preview-item.is-clickable .npn-upload-preview-media::before,
.npn-detail-file-card.is-clickable::before {
	content: "View";
	position: absolute;
	left: 8px;
	top: 8px;
	z-index: 4;
	min-height: 24px;
	padding: 0 10px;
	border-radius: 999px;
	background: rgba(3, 12, 30, 0.72);
	border: 1px solid rgba(103, 232, 249, 0.28);
	color: #70efff;
	font-size: 11px;
	font-weight: 900;
	display: inline-flex;
	align-items: center;
	opacity: 0;
	transform: translateY(-3px);
	transition: 0.18s ease;
	pointer-events: none;
}

.npn-upload-preview-item.is-clickable:hover .npn-upload-preview-media::before,
.npn-detail-file-card.is-clickable:hover::before {
	opacity: 1;
	transform: translateY(0);
}

.npn-detail-file-card {
	position: relative;
	width: 100%;
	padding: 0;
	text-align: left;
	font: inherit;
	color: inherit;
}

.npn-upload-large-preview {
	display: grid;
	gap: 10px;
	justify-items: center;
}

.npn-upload-large-preview img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: min(76vh, 720px);
	object-fit: contain;
	border-radius: 16px;
	background: rgba(2, 8, 20, 0.72);
	border: 1px solid rgba(103, 232, 249, 0.16);
}

.npn-upload-large-preview strong {
	color: #fff;
	font-size: 14px;
}

.npn-upload-large-preview span {
	color: rgba(225, 241, 255, 0.62);
	font-size: 12px;
}
.npn-detail-file-card {
	appearance: none;
	-webkit-appearance: none;
	cursor: default;
}
.npn-detail-file-card.is-clickable {
	cursor: zoom-in;
}

/* =========================================================
v38 - Reference image library radio selector
========================================================= */
.npn-image-library-popup-radio .npn-image-library-folder-check {
	display: none !important;
}
.npn-image-library-popup-radio .npn-image-library-folder-radio {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 4;
	width: 31px;
	height: 31px;
	border-radius: 999px;
	cursor: pointer;
	display: block;
}
.npn-image-library-popup-radio .npn-image-library-folder-radio input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}
.npn-image-library-popup-radio .npn-image-library-folder-radio span {
	position: absolute;
	inset: 0;
	border-radius: 999px;
	border: 2px solid rgba(255, 255, 255, 0.34);
	background: rgba(2, 10, 24, 0.76);
	box-shadow:
		0 7px 18px rgba(0, 0, 0, 0.3),
		inset 0 1px 0 rgba(255, 255, 255, 0.1);
	transition: 0.18s ease;
}
.npn-image-library-popup-radio .npn-image-library-folder-radio span::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 13px;
	height: 13px;
	border-radius: 999px;
	background: linear-gradient(135deg, #1df2e2, #08d5ff);
	box-shadow: 0 0 14px rgba(8, 213, 255, 0.55);
	transform: translate(-50%, -50%) scale(0);
	transition: 0.18s ease;
}
.npn-image-library-popup-radio .npn-image-library-folder-radio:hover span,
.npn-image-library-popup-radio
.npn-image-library-folder-radio
input:focus-visible
+ span {
	border-color: rgba(112, 239, 255, 0.92);
	background: rgba(8, 213, 255, 0.18);
}
.npn-image-library-popup-radio
.npn-image-library-folder-radio
input:checked
+ span {
	border-color: rgba(112, 239, 255, 0.98);
	background: rgba(6, 18, 38, 0.94);
	box-shadow:
		0 0 0 3px rgba(29, 242, 226, 0.16),
		0 0 18px rgba(8, 213, 255, 0.28);
}
.npn-image-library-popup-radio
.npn-image-library-folder-radio
input:checked
+ span::after {
	transform: translate(-50%, -50%) scale(1);
}
.npn-image-library-popup-radio .npn-image-library-folder-file.is-selected {
	border-color: rgba(29, 242, 226, 0.86);
	box-shadow:
		0 0 0 2px rgba(29, 242, 226, 0.16),
		0 0 28px rgba(8, 213, 255, 0.18);
}

/* =========================================================
v39 - Uploaded image preview popup from upload list
========================================================= */
.npn-upload-preview-item.is-clickable .npn-upload-preview-media {
	cursor: zoom-in;
	position: relative;
}

.npn-upload-preview-item.is-clickable .npn-upload-preview-media::after {
	content: "View";
	position: absolute;
	right: 8px;
	bottom: 8px;
	z-index: 5;
	min-height: 24px;
	padding: 0 10px;
	border-radius: 999px;
	background: rgba(3, 12, 30, 0.78);
	border: 1px solid rgba(103, 232, 249, 0.28);
	color: #70efff;
	font-size: 11px;
	font-weight: 900;
	display: inline-flex;
	align-items: center;
	opacity: 0;
	transform: translateY(4px);
	transition: 0.18s ease;
	pointer-events: none;
}

.npn-upload-preview-item.is-clickable:hover .npn-upload-preview-media::after {
	opacity: 1;
	transform: translateY(0);
}

.npn-upload-large-preview {
	display: grid;
	gap: 10px;
	justify-items: center;
	text-align: center;
}

.npn-upload-large-preview img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: min(76vh, 760px);
	object-fit: contain;
	border-radius: 16px;
	background: rgba(2, 8, 20, 0.72);
	border: 1px solid rgba(103, 232, 249, 0.16);
}

.npn-upload-large-preview strong {
	color: #fff;
	font-size: 14px;
	font-weight: 900;
}

.npn-upload-large-preview span {
	color: rgba(225, 241, 255, 0.62);
	font-size: 12px;
}

/* =========================================================
v40 - Fix uploaded thumbnails not rendering
The upload popup can open from raw object URLs, but thumbnails must use a
real src immediately instead of waiting for lazy observer.
========================================================= */
.npn-upload-preview-media .npn-upload-preview-img {
	display: block !important;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 1 !important;
	filter: none !important;
	transform: none !important;
	background: rgba(3, 12, 30, 0.72);
}

.npn-upload-preview-media .npn-upload-preview-img.is-loaded,
.npn-upload-preview-media .npn-upload-preview-img:not(.is-loading) {
	opacity: 1 !important;
	filter: none !important;
}

.npn-upload-preview-item.is-clickable .npn-upload-preview-media::after {
	pointer-events: none;
}

/* =========================================================
v41 - FINAL FIX: uploaded thumbnail + real View button
- Thumbnail uses direct object URL/background fallback, not lazy observer.
- Whole card and the View button open the large preview.
- Remove button stays clickable above everything.
========================================================= */
.npn-upload-preview-item {
	position: relative !important;
	overflow: hidden !important;
}

.npn-upload-preview-item.is-clickable {
	cursor: zoom-in;
}

.npn-upload-preview-media {
	position: absolute !important;
	inset: 0 !important;
	z-index: 1 !important;
	display: block !important;
	background-color: rgba(3, 12, 30, 0.72) !important;
	background-size: cover !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	pointer-events: auto !important;
}

.npn-upload-preview-media .npn-upload-preview-img,
.npn-upload-preview-item img.npn-upload-preview-img {
	position: absolute !important;
	inset: 0 !important;
	z-index: 1 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	opacity: 1 !important;
	visibility: visible !important;
	filter: none !important;
	transform: none !important;
	background: rgba(3, 12, 30, 0.72) !important;
}

.npn-upload-preview-item::after {
	z-index: 2 !important;
	pointer-events: none !important;
}

.npn-upload-preview-item > span,
.npn-upload-preview-item > em {
	z-index: 4 !important;
	pointer-events: none !important;
}

.npn-upload-preview-remove,
.npn-upload-preview-item button.npn-upload-preview-remove,
.npn-upload-preview-item button[data-remove-upload-file] {
	position: absolute !important;
	top: 7px !important;
	right: 7px !important;
	bottom: auto !important;
	left: auto !important;
	z-index: 30 !important;
	width: 26px !important;
	height: 26px !important;
	min-width: 26px !important;
	min-height: 26px !important;
	padding: 0 !important;
	border-radius: 999px !important;
	border: 1px solid rgba(255, 255, 255, 0.24) !important;
	background: rgba(239, 68, 68, 0.94) !important;
	color: #fff !important;
	font-size: 18px !important;
	line-height: 1 !important;
	cursor: pointer !important;
	pointer-events: auto !important;
}

.npn-upload-preview-view-btn,
.npn-upload-preview-item button.npn-upload-preview-view-btn {
	position: absolute !important;
	left: 8px !important;
	top: 8px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 18 !important;
	width: auto !important;
	height: 24px !important;
	min-width: 0 !important;
	min-height: 24px !important;
	padding: 0 10px !important;
	border-radius: 999px !important;
	border: 1px solid rgba(103, 232, 249, 0.34) !important;
	background: rgba(3, 12, 30, 0.78) !important;
	color: #70efff !important;
	font-size: 11px !important;
	font-weight: 900 !important;
	line-height: 22px !important;
	letter-spacing: 0 !important;
	cursor: zoom-in !important;
	pointer-events: auto !important;
	opacity: 0 !important;
	transform: translateY(-3px) !important;
	transition: 0.18s ease !important;
}

.npn-upload-preview-item.is-clickable:hover .npn-upload-preview-view-btn {
	opacity: 1 !important;
	transform: translateY(0) !important;
}

.npn-upload-preview-item.is-clickable .npn-upload-preview-media::before,
.npn-upload-preview-item.is-clickable .npn-upload-preview-media::after {
	display: none !important;
}

/* =========================================================
Google Drive style background upload/save notice
Only appears after Save project / Save service folder.
========================================================= */
.npn-bg-save-notice {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 99999;
	width: min(390px, calc(100vw - 32px));
	border-radius: 18px;
	border: 1px solid rgba(103, 232, 249, 0.22);
	background:
		radial-gradient(circle at 18% 0%, rgba(8, 213, 255, 0.16), transparent 44%),
		linear-gradient(180deg, rgba(10, 24, 54, 0.98), rgba(5, 14, 34, 0.98));
	box-shadow:
		0 26px 70px rgba(0, 0, 0, 0.45),
		0 0 38px rgba(8, 213, 255, 0.12),
		inset 0 1px 0 rgba(255, 255, 255, 0.04);
	color: #fff;
	font-family: inherit;
	transform: translateY(22px);
	opacity: 0;
	pointer-events: none;
	transition:
		opacity 0.22s ease,
		transform 0.22s ease;
	overflow: hidden;
}

.npn-bg-save-notice.is-visible {
	transform: translateY(0);
	opacity: 1;
	pointer-events: auto;
}

.npn-bg-save-head {
	min-height: 48px;
	padding: 13px 14px 12px 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	border-bottom: 1px solid rgba(103, 232, 249, 0.13);
}

.npn-bg-save-head strong {
	min-width: 0;
	color: #fff;
	font-size: 14px;
	font-weight: 900;
	line-height: 1.25;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.npn-bg-save-actions {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.npn-bg-save-actions button {
	width: 28px;
	height: 28px;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.075);
	color: rgba(225, 241, 255, 0.82);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: 0.18s ease;
}

.npn-bg-save-actions button:hover {
	background: rgba(8, 213, 255, 0.16);
	color: #70efff;
}

.npn-bg-save-body {
	padding: 14px 16px 15px;
}

.npn-bg-save-body p {
	margin: 0 0 11px;
	color: rgba(225, 241, 255, 0.78);
	font-size: 13px;
	line-height: 1.45;
	word-break: break-word;
}

.npn-bg-save-progress {
	height: 7px;
	border-radius: 999px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.08);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.035);
}

.npn-bg-save-progress i {
	display: block;
	width: 0%;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(135deg, #1df2e2, #08d5ff);
	box-shadow: 0 0 18px rgba(8, 213, 255, 0.32);
	transition: width 0.24s ease;
}

.npn-bg-save-body small {
	display: block;
	margin-top: 9px;
	color: rgba(225, 241, 255, 0.55);
	font-size: 12px;
	line-height: 1.35;
}

.npn-bg-save-notice.is-minimized .npn-bg-save-body {
	display: none;
}

.npn-bg-save-notice.is-done .npn-bg-save-progress i {
	background: linear-gradient(135deg, #22c55e, #1df2e2);
}

.npn-bg-save-notice.is-error {
	border-color: rgba(239, 68, 68, 0.36);
	box-shadow:
		0 26px 70px rgba(0, 0, 0, 0.45),
		0 0 38px rgba(239, 68, 68, 0.12),
		inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.npn-bg-save-notice.is-error .npn-bg-save-progress i {
	width: 100% !important;
	background: linear-gradient(135deg, #ef4444, #fb7185);
}

@media (max-width: 680px) {
	.npn-bg-save-notice {
		right: 14px;
		bottom: 14px;
		width: calc(100vw - 28px);
		border-radius: 16px;
	}
}

/* =========================================================
Creating project / upload progress popup
========================================================= */
.npn-project-save-popup {
	margin-top: 8px;
	text-align: left;
}

.npn-project-save-popup p {
	margin: 0 0 14px;
	color: rgba(225, 241, 255, 0.78);
	font-size: 14px;
	line-height: 1.5;
}

.npn-project-save-progress {
	position: relative;
	overflow: hidden;
	height: 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.1);
	box-shadow:
		inset 0 0 0 1px rgba(103, 232, 249, 0.08),
		0 10px 22px rgba(0, 0, 0, 0.18);
}

.npn-project-save-progress i {
	display: block;
	height: 100%;
	width: 0;
	border-radius: inherit;
	background: linear-gradient(135deg, #1df2e2, #0ea5e9);
	box-shadow: 0 0 18px rgba(8, 213, 255, 0.32);
	transition: width 0.24s ease;
}

.npn-project-save-popup small {
	display: block;
	margin-top: 10px;
	color: rgba(225, 241, 255, 0.58);
	font-size: 12px;
	line-height: 1.4;
}

/* =========================================================
Project name lock + instruction note files
========================================================= */
.npn-order-detail-field.is-project-name-locked-field label::after {
	content: "Existing project - locked";
	display: inline-flex;
	align-items: center;
	min-height: 22px;
	margin-left: 10px;
	padding: 0 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.01em;
	color: #071226;
	background: linear-gradient(135deg, #7ef3ff, #1df2e2);
	box-shadow: 0 0 18px rgba(8, 213, 255, 0.24);
}

.npn-order-detail-field input.is-project-name-locked,
.npn-order-detail-field input[readonly].is-project-name-locked {
	cursor: not-allowed;
	color: rgba(238, 246, 255, 0.72);
	background: linear-gradient(
		180deg,
		rgba(10, 30, 64, 0.82),
		rgba(8, 22, 48, 0.92)
	) !important;
	border-color: rgba(126, 243, 255, 0.24) !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.025) !important;
}

.npn-order-note-file-field {
	margin-top: 22px;
}

.npn-order-note-upload {
	position: relative;
	min-height: 132px;
	border-radius: 22px;
	border: 1px dashed rgba(126, 243, 255, 0.42);
	background:
		radial-gradient(circle at 50% 0%, rgba(8, 213, 255, 0.13), transparent 58%),
		linear-gradient(180deg, rgba(10, 30, 64, 0.78), rgba(8, 22, 48, 0.92));
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, 0.025),
		0 18px 42px rgba(0, 0, 0, 0.18);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 22px;
	text-align: center;
	cursor: pointer;
	transition: 0.22s ease;
}

.npn-order-note-upload:hover,
.npn-order-note-upload.is-dragover {
	border-color: rgba(126, 243, 255, 0.78);
	box-shadow:
		0 0 0 4px rgba(8, 213, 255, 0.06),
		0 0 32px rgba(8, 213, 255, 0.18),
		0 18px 42px rgba(0, 0, 0, 0.22);
	transform: translateY(-1px);
}

.npn-order-note-file-input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.npn-order-note-upload-icon {
	width: 54px;
	height: 54px;
	border-radius: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1df2e2;
	background: rgba(8, 213, 255, 0.1);
	border: 1px solid rgba(126, 243, 255, 0.28);
	box-shadow: 0 0 24px rgba(8, 213, 255, 0.14);
}

.npn-order-note-upload-icon svg {
	width: 30px;
	height: 30px;
	stroke: currentColor;
	stroke-width: 2.3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.npn-order-note-upload strong {
	font-size: 17px;
	font-weight: 900;
	color: #eef6ff;
}

.npn-order-note-upload p {
	max-width: 520px;
	margin: 0;
	color: rgba(225, 241, 255, 0.68);
	font-size: 13px;
	line-height: 1.5;
}

.npn-order-note-file-list {
	margin-top: 12px;
}

.npn-note-preview-toolbar {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 12px;
	border: 1px solid rgba(126, 243, 255, 0.14);
	border-radius: 14px;
	background: rgba(8, 22, 48, 0.78);
	color: rgba(225, 241, 255, 0.72);
	font-size: 12px;
}

.npn-note-preview-toolbar strong {
	color: #eef6ff;
}

.npn-note-preview-list {
	display: grid;
	gap: 8px;
	margin-top: 8px;
}

.npn-note-preview-item {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr) auto 34px;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 8px 10px;
	border: 1px solid rgba(126, 243, 255, 0.12);
	border-radius: 14px;
	background: rgba(10, 30, 64, 0.62);
}

.npn-note-preview-item strong {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 13px;
	color: #eef6ff;
}

.npn-note-preview-item em {
	font-style: normal;
	font-size: 12px;
	color: rgba(225, 241, 255, 0.58);
}

.npn-note-preview-item button {
	width: 30px;
	height: 30px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	background: rgba(239, 68, 68, 0.14);
	color: #fecaca;
	font-weight: 900;
	cursor: pointer;
}

.npn-detail-note-text {
	margin-top: 16px;
	padding: 16px;
	border-radius: 18px;
	border: 1px solid rgba(126, 243, 255, 0.13);
	background: rgba(8, 22, 48, 0.62);
}

.npn-detail-note-text h4 {
	margin: 0 0 8px;
	color: #eef6ff;
}

.npn-detail-note-text p {
	margin: 0;
	white-space: pre-wrap;
	color: rgba(225, 241, 255, 0.72);
}

/* Custom visual services: Virtual Staging + Green Grass */
.npn-custom-service-front {
	display: grid;
	gap: 20px;
}

.npn-custom-section-helper {
	margin: 6px 0 14px;
	color: rgba(225, 241, 255, 0.66);
	font-size: 13px;
	line-height: 1.55;
}

.npn-custom-visual-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	align-items: stretch;
}

.npn-custom-visual-grid-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.npn-custom-visual-tabs {
	display: flex;
	gap: 12px;
	margin-bottom: 16px;
	overflow-x: auto;
	padding-bottom: 4px;
	scrollbar-width: thin;
}

.npn-custom-visual-tab {
	flex: 0 0 clamp(190px, 24vw, 240px);
	display: grid;
	gap: 8px;
	padding: 14px 16px;
	border-radius: 18px;
	border: 1px solid rgba(126, 243, 255, 0.14);
	background: rgba(255, 255, 255, 0.04);
	color: #eef6ff;
	text-align: left;
	cursor: pointer;
	transition: all 0.18s ease;
}

.npn-custom-visual-tab:hover {
	transform: translateY(-1px);
	border-color: rgba(112, 239, 255, 0.28);
	background: rgba(255, 255, 255, 0.06);
}

.npn-custom-visual-tab.is-active {
	border-color: rgba(67, 221, 255, 0.52);
	box-shadow: 0 0 0 1px rgba(67, 221, 255, 0.14);
	background: linear-gradient(
		180deg,
		rgba(12, 34, 72, 0.7),
		rgba(6, 18, 46, 0.72)
	);
}

.npn-custom-visual-tab.is-selected {
	border-color: rgba(67, 221, 255, 0.78);
}

.npn-custom-visual-tab-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.npn-custom-visual-tab-chip,
.npn-custom-visual-tab-selected {
	display: inline-flex;
	align-items: center;
	padding: 4px 9px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.npn-custom-visual-tab-chip {
	color: rgba(184, 243, 255, 0.86);
	background: rgba(126, 243, 255, 0.09);
	border: 1px solid rgba(126, 243, 255, 0.14);
}

.npn-custom-visual-tab-selected {
	color: #9ff4ff;
	background: rgba(67, 221, 255, 0.14);
	border: 1px solid rgba(67, 221, 255, 0.24);
}

.npn-custom-visual-tab strong {
	color: #f4f8ff;
	line-height: 1.35;
	font-size: 15px;
}

.npn-custom-visual-tab-meta {
	color: rgba(225, 241, 255, 0.62);
	font-size: 12px;
}

.npn-custom-visual-panel {
	display: block;
}

.npn-custom-visual-card,
.npn-catalog-front,
.npn-detail-custom-service {
	padding: 18px;
	border-radius: 24px;
	border: 1px solid rgba(126, 243, 255, 0.14);
	background: linear-gradient(
		180deg,
		rgba(10, 24, 54, 0.88) 0%,
		rgba(6, 16, 39, 0.84) 100%
	);
	box-shadow: 0 20px 46px rgba(0, 0, 0, 0.18);
}

.npn-custom-visual-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	width: 100%;
	min-height: 100%;
	transition:
		transform 0.18s ease,
		border-color 0.18s ease,
		box-shadow 0.18s ease,
		background 0.18s ease;
	cursor: pointer;
}

.npn-custom-visual-card:hover {
	transform: translateY(-2px);
	border-color: rgba(112, 239, 255, 0.26);
	box-shadow: 0 24px 52px rgba(0, 0, 0, 0.22);
}

.npn-custom-visual-card.is-selected,
.npn-catalog-image-choice.is-selected {
	border-color: rgba(67, 221, 255, 0.88);
	box-shadow:
		0 0 0 2px rgba(67, 221, 255, 0.18),
		0 24px 52px rgba(0, 0, 0, 0.22);
	background: linear-gradient(
		180deg,
		rgba(12, 34, 72, 0.96) 0%,
		rgba(6, 18, 46, 0.92) 100%
	);
}

.npn-custom-visual-head,
.npn-catalog-front-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
}

.npn-custom-visual-title-wrap {
	display: grid;
	gap: 6px;
	min-width: 0;
}

.npn-custom-visual-kicker {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 5px 10px;
	border-radius: 999px;
	background: rgba(126, 243, 255, 0.09);
	border: 1px solid rgba(126, 243, 255, 0.14);
	color: rgba(184, 243, 255, 0.82);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.npn-custom-visual-caption {
	color: rgba(225, 241, 255, 0.6);
	font-size: 12px;
}

.npn-custom-visual-head strong,
.npn-catalog-front-head strong,
.npn-detail-custom-service h4 {
	color: #eef6ff;
	font-size: 16px;
	line-height: 1.3;
}

.npn-custom-select-btn {
	min-width: 98px;
	padding: 10px 14px;
	border-radius: 999px;
	border: 1px solid rgba(126, 243, 255, 0.18);
	background: rgba(255, 255, 255, 0.04);
	color: #eef6ff;
	font-weight: 800;
	cursor: pointer;
	transition: all 0.18s ease;
}

.npn-custom-select-btn:hover {
	border-color: rgba(67, 221, 255, 0.46);
	background: rgba(67, 221, 255, 0.12);
}

.npn-custom-select-btn.is-selected {
	border-color: rgba(67, 221, 255, 0.7);
	background: linear-gradient(
		135deg,
		rgba(67, 221, 255, 0.24),
		rgba(67, 221, 255, 0.12)
	);
	color: #9ff4ff;
}

.npn-before-after {
	position: relative;
	overflow: hidden;
	min-height: 240px;
	aspect-ratio: 4 / 3;
	border-radius: 20px;
	background: rgba(2, 8, 23, 0.72);
	border: 1px solid rgba(255, 255, 255, 0.08);
	--pos: 50%;
}

.npn-ba-image {
	position: absolute;
	inset: 0;
}

.npn-ba-image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 240px;
	object-fit: cover;
}

.npn-ba-after {
	clip-path: inset(0 0 0 var(--pos));
}

.npn-ba-handle {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--pos);
	width: 2px;
	transform: translateX(-1px);
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 0 18px rgba(0, 0, 0, 0.42);
	pointer-events: none;
}

.npn-ba-handle::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	transform: translate(-50%, -50%);
	background: #fff;
	box-shadow: 0 3px 16px rgba(0, 0, 0, 0.34);
}

.npn-before-after input[data-ba-range] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: ew-resize;
}

.npn-before-after em {
	position: absolute;
	left: 12px;
	bottom: 12px;
	max-width: calc(100% - 24px);
	padding: 6px 10px;
	border-radius: 999px;
	background: rgba(2, 8, 23, 0.76);
	color: rgba(225, 241, 255, 0.9);
	font-style: normal;
	font-size: 12px;
}

.npn-custom-slider-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: auto;
	color: rgba(225, 241, 255, 0.74);
}

.npn-custom-slider-count {
	min-width: 76px;
	text-align: center;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.npn-custom-slider-nav-static {
	justify-content: flex-start;
	margin-top: 2px;
}

.npn-custom-slider-nav-static .npn-custom-slider-count {
	min-width: 0;
	text-align: left;
	font-size: 12px;
	color: rgba(225, 241, 255, 0.62);
}

.npn-custom-slider-nav button,
.npn-catalog-front-head button,
.npn-catalog-tabs button {
	border: 1px solid rgba(126, 243, 255, 0.16);
	background: rgba(126, 243, 255, 0.08);
	color: #eef6ff;
	border-radius: 999px;
	cursor: pointer;
	transition: all 0.18s ease;
}

.npn-custom-slider-nav button:hover,
.npn-catalog-front-head button:hover,
.npn-catalog-tabs button:hover {
	border-color: rgba(67, 221, 255, 0.4);
	background: rgba(67, 221, 255, 0.14);
}

.npn-custom-slider-nav button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	font-size: 0;
	line-height: 1;
}

.npn-custom-slider-nav button svg {
	width: 18px;
	height: 18px;
	display: block;
}

.npn-catalog-front.is-disabled {
	opacity: 0.62;
}

.npn-catalog-front-head span {
	color: rgba(225, 241, 255, 0.62);
	font-size: 13px;
}

.npn-custom-warning {
	margin: 12px 0;
	padding: 10px 12px;
	border-radius: 14px;
	background: rgba(251, 191, 36, 0.12);
	border: 1px solid rgba(251, 191, 36, 0.24);
	color: #fde68a;
}

.npn-catalog-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 16px 0 14px;
}

.npn-catalog-tabs button {
	padding: 8px 12px;
	font-weight: 800;
}

.npn-catalog-tabs button.is-active {
	background: rgba(67, 221, 255, 0.2);
	border-color: rgba(67, 221, 255, 0.54);
}

.npn-catalog-image-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
	gap: 12px;
}

.npn-catalog-image-choice {
	display: grid;
	gap: 8px;
	padding: 8px;
	border-radius: 18px;
	border: 1px solid rgba(126, 243, 255, 0.12);
	background: rgba(255, 255, 255, 0.04);
	color: rgba(225, 241, 255, 0.84);
	text-align: left;
	cursor: pointer;
	transition: all 0.18s ease;
}

.npn-catalog-image-choice:hover {
	transform: translateY(-1px);
	border-color: rgba(67, 221, 255, 0.26);
}

.npn-catalog-image-choice:disabled {
	cursor: not-allowed;
}

.npn-catalog-image-choice img,
.npn-detail-custom-service figure img {
	display: block;
	width: 100%;
	height: 110px;
	object-fit: cover;
	border-radius: 12px;
}

.npn-catalog-image-choice span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 12px;
}

.npn-detail-custom-service {
	margin-top: 16px;
}

.npn-detail-custom-service h4 {
	margin: 0 0 12px;
}

.npn-detail-custom-service p {
	margin: 0 0 12px;
	color: rgba(225, 241, 255, 0.78);
}

.npn-detail-custom-service .npn-detail-admin-image-row {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 12px;
}

.npn-detail-custom-service figure {
	margin: 0;
	padding: 8px;
	border-radius: 16px;
	border: 1px solid rgba(126, 243, 255, 0.12);
	background: rgba(255, 255, 255, 0.04);
}

.npn-detail-custom-service figcaption {
	display: grid;
	gap: 3px;
	margin-top: 8px;
	color: rgba(225, 241, 255, 0.76);
	font-size: 12px;
}

.npn-detail-custom-service figcaption span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.npn-detail-custom-service .npn-detail-image-code {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 4px 8px;
	border-radius: 999px;
	background: rgba(24, 183, 216, 0.18);
	border: 1px solid rgba(24, 183, 216, 0.34);
	color: #bff7ff;
	font-size: 12px;
	font-weight: 900;
}

.npn-detail-custom-service .npn-detail-catalog-image-row figcaption span {
	color: rgba(225, 241, 255, 0.72);
	font-size: 11px;
}

/* v46 - By Catalog source thumbnails and per-customer-image detail tabs */
.npn-catalog-map-source {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	min-width: 0;
}

.npn-catalog-source-thumb,
.npn-catalog-popup-source-thumb,
.npn-detail-catalog-tab-thumb,
.npn-detail-catalog-source-thumb {
	display: grid;
	place-items: center;
	overflow: hidden;
	border-radius: 10px;
	border: 1px solid rgba(126, 243, 255, 0.2);
	background: rgba(2, 6, 23, 0.66);
	color: rgba(203, 213, 225, 0.66);
	font-size: 10px;
	font-style: normal;
}

.npn-catalog-source-thumb {
	width: 58px;
	height: 48px;
}

.npn-catalog-source-thumb img,
.npn-catalog-popup-source-thumb img,
.npn-detail-catalog-tab-thumb img,
.npn-detail-catalog-source-thumb img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

.npn-catalog-map-source strong {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #f8fafc;
}

.npn-catalog-popup-file {
	grid-template-columns: 64px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
}

.npn-catalog-popup-source-thumb {
	width: 64px;
	height: 54px;
}

.npn-catalog-popup-file-copy {
	display: grid;
	gap: 5px;
	min-width: 0;
}

.npn-catalog-popup-file-copy strong,
.npn-catalog-popup-file-copy small {
	display: block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.npn-catalog-popup-file-copy strong {
	color: #f8fafc;
}

.npn-catalog-popup-file-copy small {
	color: rgba(203, 213, 225, 0.72);
	font-size: 12px;
}

.npn-detail-catalog-mapping {
	display: grid;
	gap: 14px;
	margin-top: 14px;
}

.npn-detail-catalog-help {
	margin: 0;
	color: rgba(225, 241, 255, 0.72);
	font-size: 13px;
}

.npn-detail-catalog-tabs {
	display: flex;
	gap: 10px;
	padding: 2px 2px 8px;
	overflow-x: auto;
	scrollbar-width: thin;
}

.npn-detail-catalog-tab {
	flex: 0 0 min(260px, 72vw);
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	padding: 9px;
	border: 1px solid rgba(126, 243, 255, 0.16);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.04);
	color: #eef6ff;
	text-align: left;
	cursor: pointer;
}

.npn-detail-catalog-tab.is-active {
	border-color: rgba(34, 211, 238, 0.72);
	background: rgba(34, 211, 238, 0.13);
	box-shadow: inset 0 -3px 0 rgba(34, 211, 238, 0.72);
}

.npn-detail-catalog-tab-thumb {
	width: 64px;
	height: 54px;
}

.npn-detail-catalog-tab > span:last-child {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.npn-detail-catalog-tab strong,
.npn-detail-catalog-tab small {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.npn-detail-catalog-tab small {
	color: rgba(225, 241, 255, 0.68);
}

.npn-detail-catalog-panel {
	display: grid;
	gap: 14px;
	padding: 14px;
	border: 1px solid rgba(126, 243, 255, 0.14);
	border-radius: 16px;
	background: rgba(2, 12, 30, 0.42);
}

.npn-detail-catalog-panel[hidden] {
	display: none !important;
}

.npn-detail-catalog-source {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	align-items: center;
	gap: 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(126, 243, 255, 0.12);
}

.npn-detail-catalog-source-thumb {
	width: 96px;
	height: 72px;
}

.npn-detail-catalog-source > div {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.npn-detail-catalog-source small {
	color: rgba(225, 241, 255, 0.62);
}

.npn-detail-catalog-source strong {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #ffffff;
}

@media (max-width: 640px) {
	.npn-catalog-popup-file {
		grid-template-columns: 56px minmax(0, 1fr);
	}

	.npn-catalog-popup-source-thumb {
		width: 56px;
		height: 48px;
	}

	.npn-detail-catalog-source {
		grid-template-columns: 72px minmax(0, 1fr);
	}

	.npn-detail-catalog-source-thumb {
		width: 72px;
		height: 58px;
	}
}

.npn-custom-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 180px;
	padding: 18px;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.05);
	color: rgba(225, 241, 255, 0.68);
	text-align: center;
	line-height: 1.6;
}

.npn-order-note-upload.is-disabled {
	opacity: 0.5;
	pointer-events: none;
}

@media (max-width: 960px) {
	.npn-custom-visual-grid,
	.npn-custom-visual-grid-2 {
		grid-template-columns: 1fr;
	}

	.npn-custom-visual-tabs {
		display: grid;
		grid-template-columns: 1fr;
		overflow: visible;
	}

	.npn-custom-visual-tab {
		flex-basis: auto;
	}

	.npn-custom-visual-head,
	.npn-catalog-front-head {
		flex-direction: column;
		align-items: stretch;
	}

	.npn-custom-select-btn {
		width: 100%;
	}
}

/* v8 compact tab layout refinement */
.npn-custom-visual-tabs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
	overflow: visible;
	padding-bottom: 0;
}

.npn-custom-visual-tab {
	flex: initial;
	min-width: 0;
	padding: 13px 15px;
	border-radius: 8px;
}

.npn-custom-visual-tab strong {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 40px;
}

.npn-custom-visual-panel {
	max-width: 100%;
}

.npn-custom-visual-panel .npn-custom-visual-card {
	padding: 18px;
	border-radius: 24px;
	cursor: default;
}

.npn-custom-visual-panel .npn-custom-visual-head {
	align-items: center;
}

.npn-custom-visual-panel .npn-custom-visual-preview {
	width: 100%;
}

.npn-custom-visual-panel .npn-before-after {
	width: 100%;
	height: clamp(240px, 38vw, 390px);
	min-height: 0;
	aspect-ratio: auto;
	border-radius: 20px;
}

.npn-custom-visual-panel .npn-ba-image img {
	min-height: 0;
	height: 100%;
}

.npn-custom-visual-panel .npn-custom-slider-nav {
	margin-top: 12px;
}

.npn-custom-select-btn {
	white-space: nowrap;
}

@media (max-width: 720px) {
	.npn-custom-visual-tabs {
		grid-template-columns: 1fr;
	}

	.npn-custom-visual-panel .npn-custom-visual-head {
		align-items: stretch;
	}

	.npn-custom-visual-panel .npn-before-after {
		height: 260px;
	}
}

/* v9 remove duplicated option text and compact visual tab panels */
.npn-custom-section-helper {
	display: none !important;
}

.npn-custom-visual-tabs {
	margin-top: 10px;
	margin-bottom: 14px;
}

.npn-custom-visual-tab {
	padding: 12px 14px;
	min-height: 50px;
}

.npn-custom-visual-tab strong {
	min-height: 0;
	font-size: 14px;
	text-transform: uppercase;
}

.npn-custom-visual-tab-meta {
	font-size: 11px;
}

.npn-custom-visual-panel .npn-custom-visual-card {
	padding: 14px 18px 16px;
	border-radius: 22px;
	gap: 12px;
}

.npn-custom-visual-head-compact {
	justify-content: flex-end;
	margin: 0;
}

.npn-custom-visual-head-compact .npn-custom-select-btn {
	min-width: 150px;
	padding: 9px 14px;
}

.npn-custom-visual-panel .npn-before-after {
	height: clamp(220px, 30vw, 330px);
	border-radius: 18px;
}

.npn-custom-visual-panel .npn-custom-slider-nav {
	margin-top: 8px;
}

.npn-custom-visual-panel .npn-custom-slider-nav button {
	width: 34px;
	height: 34px;
}

.npn-custom-visual-panel .npn-custom-slider-count {
	font-size: 15px;
}

@media (max-width: 720px) {
	.npn-custom-visual-panel .npn-before-after {
		height: 230px;
	}

	.npn-custom-visual-head-compact .npn-custom-select-btn {
		width: 100%;
	}
}

/* Virtual Staging catalog popup mode */
.npn-catalog-front-compact {
	padding: 16px 18px;
}

.npn-catalog-front-compact .npn-catalog-front-head {
	align-items: center;
	margin: 0;
}

.npn-catalog-front-compact .npn-catalog-front-head > div:first-child {
	display: grid;
	gap: 5px;
}

.npn-catalog-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.npn-catalog-open-btn,
.data-catalog-clear-all {
	min-width: 130px;
	padding: 10px 15px;
	font-weight: 700;
	font-family: "Manrope-Extra";
}

.npn-catalog-open-btn:disabled {
	cursor: not-allowed;
	opacity: 0.55;
}

.npn-catalog-selected-summary {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 8px;
	margin-top: 14px;
}

.npn-catalog-selected-summary span,
.npn-catalog-empty-summary {
	margin: 0;
	padding: 10px 12px;
	border-radius: 14px;
	border: 1px solid rgba(126, 243, 255, 0.12);
	background: rgba(255, 255, 255, 0.04);
	color: rgba(225, 241, 255, 0.72);
	font-size: 13px;
}
.npn-catalog-empty-summary {
	margin-top: 14px;
}
.npn-catalog-selected-summary b {
	color: #eaf7ff;
}

.npn-catalog-popup {
	text-align: left;
}

.npn-catalog-popup-head {
	display: grid;
	gap: 5px;
	margin-bottom: 16px;
}

.npn-catalog-popup-head strong {
	color: #eef6ff;
	font-size: 18px;
}

.npn-catalog-popup-head span {
	color: rgba(225, 241, 255, 0.64);
	font-size: 13px;
}

.npn-catalog-popup-folders {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 10px;
	margin-bottom: 16px;
}

.npn-catalog-popup-folder {
	display: grid;
	gap: 5px;
	padding: 13px 14px;
	border-radius: 16px;
	border: 1px solid rgba(126, 243, 255, 0.14);
	background: rgba(255, 255, 255, 0.04);
	color: #eef6ff;
	text-align: left;
	cursor: pointer;
	transition: all 0.16s ease;
}

.npn-catalog-popup-folder:hover {
	transform: translateY(-1px);
	border-color: rgba(67, 221, 255, 0.38);
	background: rgba(67, 221, 255, 0.08);
}

.npn-catalog-popup-folder.is-active {
	border-color: rgba(67, 221, 255, 0.6);
	background: linear-gradient(
		180deg,
		rgba(12, 34, 72, 0.86),
		rgba(6, 18, 46, 0.82)
	);
}

.npn-catalog-popup-folder.is-selected {
	box-shadow: inset 0 0 0 1px rgba(67, 221, 255, 0.18);
}

.npn-catalog-popup-folder strong {
	font-size: 14px;
}

.npn-catalog-popup-folder span {
	color: rgba(225, 241, 255, 0.62);
	font-size: 12px;
}

.npn-catalog-popup-body:empty {
	display: none;
}

.npn-catalog-popup-images {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(145px, 1fr));
	gap: 12px;
	max-height: min(58vh, 560px);
	overflow: auto;
	padding: 2px 4px 2px 0;
}

.npn-catalog-popup-image {
	display: grid;
	gap: 8px;
	padding: 8px;
	border-radius: 16px;
	border: 1px solid rgba(126, 243, 255, 0.12);
	background: rgba(255, 255, 255, 0.04);
	color: rgba(225, 241, 255, 0.84);
	text-align: left;
	cursor: pointer;
	transition: all 0.16s ease;
}

.npn-catalog-popup-image:hover {
	transform: translateY(-1px);
	border-color: rgba(67, 221, 255, 0.32);
}

.npn-catalog-popup-image.is-selected {
	border-color: rgba(67, 221, 255, 0.85);
	box-shadow: 0 0 0 2px rgba(67, 221, 255, 0.16);
	background: rgba(67, 221, 255, 0.08);
}

.npn-catalog-popup-image img {
	display: block;
	width: 100%;
	height: 112px;
	object-fit: cover;
	border-radius: 12px;
}

.npn-catalog-popup-image span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 12px;
}

.npn-catalog-popup-empty {
	display: grid;
	place-items: center;
	gap: 6px;
	min-height: 180px;
	padding: 22px;
	border-radius: 16px;
	border: 1px dashed rgba(126, 243, 255, 0.18);
	color: rgba(225, 241, 255, 0.62);
	text-align: center;
}

.npn-catalog-popup-empty strong {
	color: #eef6ff;
	font-size: 15px;
}

.npn-catalog-popup-empty span {
	color: rgba(225, 241, 255, 0.62);
	font-size: 13px;
}

@media (max-width: 720px) {
	.npn-catalog-front-compact .npn-catalog-front-head {
		align-items: stretch;
	}

	.npn-catalog-actions,
	.npn-catalog-open-btn {
		width: 100%;
	}

	.npn-catalog-actions {
		justify-content: stretch;
	}
}

/* Catalog selection highlight + large preview */
.npn-catalog-popup-image {
	position: relative;
}

.npn-catalog-popup-thumb {
	display: block;
	overflow: visible !important;
	text-overflow: clip !important;
	white-space: normal !important;
	font-size: inherit !important;
}

.npn-catalog-popup-image strong {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #eef6ff;
	font-size: 12px;
	line-height: 1.25;
}

.npn-catalog-popup-image em {
	display: block;
	color: rgba(184, 243, 255, 0.66);
	font-size: 11px;
	font-style: normal;
	line-height: 1.2;
}

.npn-catalog-popup-check {
	position: absolute;
	top: 9px;
	right: 9px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.5);
	background: linear-gradient(135deg, #17d9ff, #0ea5e9);
	color: #021124;
	font-size: 15px;
	font-weight: 1000;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.34);
	opacity: 0;
	transform: scale(0.78);
	transition:
		opacity 0.14s ease,
		transform 0.14s ease;
}

.npn-catalog-popup-image.is-selected {
	border-color: rgba(23, 217, 255, 0.95);
	box-shadow:
		0 0 0 2px rgba(23, 217, 255, 0.24),
		0 18px 36px rgba(0, 0, 0, 0.25);
	background: linear-gradient(
		180deg,
		rgba(14, 165, 233, 0.18),
		rgba(8, 24, 58, 0.72)
	);
}

.npn-catalog-popup-image.is-selected .npn-catalog-popup-check {
	opacity: 1;
	transform: scale(1);
}

.npn-catalog-popup-image.is-selected img {
	outline: 2px solid rgba(23, 217, 255, 0.72);
	outline-offset: -2px;
}

.npn-catalog-zoom {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: grid;
	place-items: center;
	padding: 28px;
	background: rgba(2, 8, 23, 0.78);
	backdrop-filter: blur(8px);
}

.npn-catalog-zoom-card {
	position: relative;
	width: min(94vw, 980px);
	max-height: 90vh;
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	overflow: hidden;
	border-radius: 24px;
	border: 1px solid rgba(126, 243, 255, 0.24);
	background: #071226;
	box-shadow: 0 30px 90px rgba(0, 0, 0, 0.55);
}

.npn-catalog-zoom-close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 999px;
	background: rgba(2, 8, 23, 0.72);
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}

.npn-catalog-zoom-image {
	display: grid;
	place-items: center;
	min-height: 260px;
	background: rgba(2, 8, 23, 0.64);
}

.npn-catalog-zoom-image img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: calc(90vh - 90px);
	object-fit: contain;
}

.npn-catalog-zoom-caption {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 14px 18px;
	border-top: 1px solid rgba(126, 243, 255, 0.14);
	color: rgba(225, 241, 255, 0.78);
}

.npn-catalog-zoom-caption strong {
	color: #eef6ff;
}

.npn-catalog-zoom-caption span {
	color: rgba(184, 243, 255, 0.72);
}

@media (max-width: 720px) {
	.npn-catalog-zoom {
		padding: 14px;
	}

	.npn-catalog-zoom-card {
		border-radius: 18px;
	}

	.npn-catalog-zoom-caption {
		display: grid;
	}
}

/* Catalog card actions: selection and preview are separate actions */
.npn-catalog-popup-image {
	cursor: default;
}

.npn-catalog-popup-select {
	display: grid;
	gap: 8px;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	text-align: left;
	cursor: pointer;
}

.npn-catalog-popup-select:hover img {
	filter: brightness(1.04);
}

.npn-catalog-popup-view {
	width: 100%;
	min-height: 32px;
	border: 1px solid rgba(126, 243, 255, 0.22);
	border-radius: 999px;
	background: rgba(126, 243, 255, 0.08);
	color: #eef6ff;
	font-size: 12px;
	font-weight: 900;
	cursor: pointer;
	transition: all 0.16s ease;
}

.npn-catalog-popup-view:hover {
	border-color: rgba(23, 217, 255, 0.55);
	background: rgba(23, 217, 255, 0.14);
	transform: translateY(-1px);
}

.npn-catalog-popup-image.is-selected .npn-catalog-popup-view {
	border-color: rgba(23, 217, 255, 0.42);
}

/* Strong selected state for Virtual Staging / Green Grass option tabs */
.npn-custom-visual-tab {
	position: relative;
	overflow: hidden;
}

.npn-custom-visual-tab.is-selected,
.npn-custom-visual-tab.is-active.is-selected {
	border-color: #22d3ee !important;
	background:
		radial-gradient(
			circle at 92% 8%,
			rgba(34, 211, 238, 0.24),
			transparent 34%
		),
		linear-gradient(
			180deg,
			rgba(8, 44, 82, 0.96) 0%,
			rgba(5, 24, 54, 0.96) 100%
		) !important;
	box-shadow:
		0 0 0 2px rgba(34, 211, 238, 0.28),
		0 14px 34px rgba(34, 211, 238, 0.16),
		inset 0 0 0 1px rgba(255, 255, 255, 0.08) !important;
}

.npn-custom-visual-tab.is-selected .npn-custom-visual-tab-chip {
	background: #22d3ee !important;
	border-color: #22d3ee !important;
	color: #03131f !important;
	box-shadow: 0 0 18px rgba(34, 211, 238, 0.38);
}

.npn-custom-visual-tab.is-selected strong {
	color: #ffffff !important;
}

.npn-custom-visual-tab.is-selected .npn-custom-visual-tab-meta {
	color: rgba(226, 252, 255, 0.92) !important;
}

.npn-custom-visual-tab-selected {
	padding: 5px 10px !important;
	background: #22d3ee !important;
	border-color: #22d3ee !important;
	color: #03131f !important;
	box-shadow: 0 0 18px rgba(34, 211, 238, 0.36);
}

.npn-custom-select-btn.is-selected {
	position: relative;
	border-color: #22d3ee !important;
	background: #22d3ee !important;
	color: #03131f !important;
	box-shadow:
		0 0 0 2px rgba(34, 211, 238, 0.22),
		0 12px 30px rgba(34, 211, 238, 0.26) !important;
}

.npn-custom-visual-card.is-selected {
	border-color: #22d3ee !important;
	box-shadow:
		0 0 0 2px rgba(34, 211, 238, 0.18),
		0 20px 46px rgba(34, 211, 238, 0.12) !important;
}

.npn-custom-visual-card.is-selected .npn-custom-select-btn::before {
	content: "";
}

/* v33 - Inclusions: 2 items per row; odd last item full width */
.npn-order-detail-toggle-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.npn-order-detail-toggle-list
> .npn-order-detail-inc-card:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

.npn-order-detail-toggle-list
> .npn-order-detail-inc-card
.npn-order-detail-toggle-row {
	height: 100%;
}

@media (max-width: 820px) {
	.npn-order-detail-toggle-list {
		grid-template-columns: 1fr;
	}

	.npn-order-detail-toggle-list
	> .npn-order-detail-inc-card:last-child:nth-child(odd) {
		grid-column: auto;
	}
}

/* Custom visual service refinements */
.npn-custom-visual-card[data-visual-option-select] {
	cursor: pointer;
	transition:
		border-color 0.18s ease,
		transform 0.18s ease,
		box-shadow 0.18s ease;
}
.npn-custom-visual-card[data-visual-option-select]:hover {
	transform: translateY(-2px);
}
.npn-custom-visual-card.is-selected {
	border-color: rgba(45, 212, 191, 0.7);
	box-shadow: 0 20px 54px rgba(20, 184, 166, 0.18);
}
.npn-custom-selected-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 11px;
	border-radius: 999px;
	background: rgba(45, 212, 191, 0.16);
	border: 1px solid rgba(45, 212, 191, 0.34);
	color: rgba(235, 255, 252, 0.95);
	font-size: 12px;
	font-weight: 800;
}
.npn-custom-selected-pill.is-muted {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.12);
	color: rgba(226, 232, 240, 0.76);
}
.npn-staging-mode-tabs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: 14px 0;
}
.npn-staging-mode-tabs span {
	display: inline-flex;
	min-height: 38px;
	align-items: center;
	padding: 0 15px;
	border-radius: 999px;
	border: 1px solid rgba(148, 163, 184, 0.22);
	background: rgba(15, 23, 42, 0.66);
	color: rgba(226, 232, 240, 0.88);
	font-weight: 800;
}
.npn-staging-mode-tabs span.is-active {
	border-color: rgba(45, 212, 191, 0.5);
	background: rgba(20, 184, 166, 0.16);
	color: #ecfeff;
}
.npn-staging-mode-tabs small {
	flex-basis: 100%;
	color: rgba(203, 213, 225, 0.7);
}
.npn-catalog-map-summary {
	display: grid;
	gap: 10px;
	margin-top: 12px;
}
.npn-catalog-map-row {
	display: grid;
	gap: 7px;
	padding: 12px;
	border-radius: 16px;
	border: 1px solid rgba(148, 163, 184, 0.16);
	background: rgba(15, 23, 42, 0.45);
}
.npn-catalog-map-row > strong {
	color: #f8fafc;
}
.npn-catalog-map-row > span {
	color: rgba(203, 213, 225, 0.78);
}
.npn-catalog-popup-layout {
	display: grid;
	grid-template-columns: minmax(180px, 0.85fr) minmax(190px, 0.9fr) minmax(
		280px,
		1.8fr
	);
	gap: 16px;
	align-items: stretch;
}
.npn-catalog-popup-files,
.npn-catalog-popup-folders,
.npn-catalog-popup-body {
	min-height: 420px;
	max-height: 70vh;
	overflow: auto;
	padding: 12px;
	border-radius: 20px;
	border: 1px solid rgba(148, 163, 184, 0.18);
	background: rgba(15, 23, 42, 0.58);
}
.npn-catalog-popup-file,
.npn-catalog-popup-folder {
	width: 100%;
	display: grid;
	height: max-content;
	gap: 5px;
	text-align: left;
	padding: 12px;
	margin: 0 0 10px;
	border-radius: 15px;
	border: 1px solid rgba(148, 163, 184, 0.18);
	background: rgba(255, 255, 255, 0.045);
	color: #e2e8f0;
	cursor: pointer;
}
.npn-catalog-popup-file.is-active,
.npn-catalog-popup-folder.is-active {
	border-color: rgba(45, 212, 191, 0.54);
	background: rgba(20, 184, 166, 0.14);
}
.npn-catalog-popup-file.is-selected,
.npn-catalog-popup-folder.is-selected {
	box-shadow: inset 3px 0 0 rgba(45, 212, 191, 0.8);
}
.npn-catalog-popup-file span,
.npn-catalog-popup-folder span {
	color: rgba(203, 213, 225, 0.72);
	font-size: 12px;
}
.npn-catalog-popup-images {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
	gap: 12px;
}
.npn-catalog-popup-image {
	position: relative;
	border: 1px solid rgba(148, 163, 184, 0.18);
	border-radius: 18px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.045);
}
.npn-catalog-popup-image.is-selected {
	border-color: rgba(45, 212, 191, 0.64);
	box-shadow: 0 16px 40px rgba(20, 184, 166, 0.16);
}
.npn-catalog-popup-check {
	position: absolute;
	z-index: 2;
	top: 9px;
	right: 9px;
	display: none;
	min-width: 25px;
	min-height: 25px;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: rgba(13, 148, 136, 0.95);
	color: #fff;
	font-style: normal;
	font-weight: 900;
}
.npn-catalog-popup-image.is-selected .npn-catalog-popup-check {
	display: inline-flex;
}
.npn-catalog-popup-select {
	width: 100%;
	display: grid;
	gap: 7px;
	padding: 10px;
	border: 0;
	background: transparent;
	color: inherit;
	text-align: left;
	cursor: pointer;
}
.npn-catalog-popup-thumb {
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
	background: rgba(2, 6, 23, 0.55);
}
.npn-catalog-popup-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.npn-catalog-popup-select strong {
	color: #f8fafc;
}
.npn-catalog-popup-select small,
.npn-catalog-popup-select em {
	color: rgba(203, 213, 225, 0.72);
	font-size: 12px;
}
.npn-catalog-popup-view {
	width: calc(100% - 20px);
	margin: 0 10px 10px;
	border: 1px solid rgba(148, 163, 184, 0.2);
	border-radius: 999px;
	background: rgba(15, 23, 42, 0.7);
	color: #e2e8f0;
	min-height: 34px;
	cursor: pointer;
}
.npn-catalog-popup-empty {
	display: grid;
	place-items: center;
	min-height: 220px;
	color: rgba(203, 213, 225, 0.72);
	text-align: center;
}
@media (max-width: 900px) {
	.npn-catalog-popup-layout {
		grid-template-columns: 1fr;
	}
	.npn-catalog-popup-files,
	.npn-catalog-popup-folders,
	.npn-catalog-popup-body {
		min-height: auto;
		max-height: 46vh;
	}
}

/* Revised visual-service workflow and compact instruction editor */
.npn-visual-main-options {
	margin-bottom: 18px;
}

.npn-custom-visual-tabs-top {
	margin-bottom: 0;
}

.npn-visual-main-options .npn-custom-visual-tab {
	flex: 1 1 210px;
	min-width: 210px;
}

.npn-visual-workflow-field {
	margin-top: 0;
}

.npn-staging-mode-tabs button {
	display: inline-flex;
	min-height: 38px;
	align-items: center;
	padding: 0 15px;
	border-radius: 999px;
	border: 1px solid rgba(148, 163, 184, 0.22);
	background: rgba(15, 23, 42, 0.66);
	color: rgba(226, 232, 240, 0.88);
	font-weight: 800;
	cursor: pointer;
	transition: 0.18s ease;
}

.npn-staging-mode-tabs button:hover,
.npn-staging-mode-tabs button.is-active {
	border-color: rgba(45, 212, 191, 0.5);
	background: rgba(20, 184, 166, 0.16);
	color: #ecfeff;
}

.npn-order-editor-field {
	margin-top: 22px;
}

.npn-order-wysiwyg {
	border-radius: 22px;
	border: 1px solid rgba(126, 243, 255, 0.18);
	background: linear-gradient(
		180deg,
		rgba(10, 30, 64, 0.78),
		rgba(8, 22, 48, 0.92)
	);
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, 0.025),
		0 18px 42px rgba(0, 0, 0, 0.18);
	overflow: hidden;
}

.npn-order-wysiwyg-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 12px;
	border-bottom: 1px solid rgba(126, 243, 255, 0.12);
	background: rgba(15, 23, 42, 0.36);
}

.npn-order-wysiwyg-toolbar button {
	min-height: 32px;
	padding: 0 12px;
	border-radius: 10px;
	border: 1px solid rgba(148, 163, 184, 0.22);
	background: rgba(255, 255, 255, 0.055);
	color: rgba(238, 246, 255, 0.9);
	font-weight: 800;
	cursor: pointer;
}

.npn-order-wysiwyg-toolbar button:hover {
	border-color: rgba(126, 243, 255, 0.45);
	background: rgba(8, 213, 255, 0.12);
}

.npn-order-wysiwyg-body {
	min-height: 128px;
	padding: 16px;
	color: #eef6ff;
	line-height: 1.65;
	outline: none;
	white-space: pre-wrap;
}

.npn-order-wysiwyg-body:empty::before {
	content: attr(data-placeholder);
	color: rgba(225, 241, 255, 0.42);
}

.npn-order-wysiwyg-body.is-disabled {
	opacity: 0.58;
	cursor: not-allowed;
}

.npn-order-wysiwyg-footer {
	display: grid;
	gap: 12px;
	padding: 12px;
	border-top: 1px solid rgba(126, 243, 255, 0.12);
	background: rgba(15, 23, 42, 0.28);
}

.npn-order-wysiwyg-footer .npn-order-note-upload {
	min-height: 64px;
	flex-direction: row;
	justify-content: flex-start;
	text-align: left;
	padding: 12px 14px;
	border-radius: 16px;
	gap: 12px;
}

.npn-order-wysiwyg-footer .npn-order-note-upload-icon {
	width: 42px;
	height: 42px;
	border-radius: 14px;
	flex: 0 0 auto;
}

.npn-order-wysiwyg-footer .npn-order-note-upload-icon svg {
	width: 24px;
	height: 24px;
}

.npn-order-wysiwyg-footer .npn-order-note-upload span {
	display: grid;
	gap: 3px;
}

.npn-order-wysiwyg-footer .npn-order-note-upload small {
	color: rgba(225, 241, 255, 0.62);
	font-size: 12px;
}

.npn-order-wysiwyg-footer .npn-order-note-file-list {
	margin-top: 0;
}

@media (max-width: 760px) {
	.npn-visual-main-options .npn-custom-visual-tab {
		min-width: 100%;
	}
	.npn-order-wysiwyg-footer .npn-order-note-upload {
		align-items: flex-start;
	}
}

/* v34 - Visual service layout: options + review stay above request fields, workflow is 50/50 below uploads */
.npn-visual-review-field {
	margin-top: -2px;
	margin-bottom: 22px;
}

.npn-custom-visual-panel-top .npn-custom-visual-card {
	padding: 20px;
	border-radius: 24px;
	border-color: rgba(34, 211, 238, 0.35);
	background:
		radial-gradient(
			circle at 88% 0%,
			rgba(34, 211, 238, 0.16),
			transparent 34%
		),
		linear-gradient(180deg, rgba(9, 28, 62, 0.96), rgba(5, 16, 40, 0.96));
	box-shadow:
		0 24px 58px rgba(0, 0, 0, 0.26),
		0 0 34px rgba(34, 211, 238, 0.08);
}

.npn-custom-visual-panel-top .npn-custom-visual-head-compact {
	justify-content: space-between;
	margin-bottom: 4px;
}

.npn-custom-visual-panel-top .npn-custom-visual-head-compact strong {
	font-size: 17px;
}

.npn-custom-visual-panel-top .npn-before-after {
	height: clamp(260px, 36vw, 430px);
	border-radius: 20px;
}

.npn-visual-workflow-field {
	margin-top: 0;
	margin-bottom: 18px;
}

.npn-visual-workflow-field > label {
	margin-bottom: 12px;
}

.npn-visual-workflow-field .npn-staging-mode-tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 6px;
	border-radius: 22px;
	border: 1px solid rgba(103, 232, 249, 0.16);
	background: rgba(255, 255, 255, 0.035);
}

.npn-visual-workflow-field .npn-staging-mode-tabs button {
	width: 100%;
	min-height: 58px;
	justify-content: center;
	border-radius: 17px;
	border: 1px solid rgba(126, 243, 255, 0.16);
	background: linear-gradient(
		180deg,
		rgba(22, 39, 80, 0.88),
		rgba(13, 28, 62, 0.94)
	);
	color: rgba(238, 248, 255, 0.84);
	font-size: 15px;
	font-weight: 700;
	font-family: 'Manrope-Extra';
	letter-spacing: -0.01em;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.025),
		0 10px 24px rgba(0, 0, 0, 0.12);
}

.npn-visual-workflow-field .npn-staging-mode-tabs button:hover {
	transform: translateY(-1px);
	border-color: rgba(112, 239, 255, 0.34);
	background:
		radial-gradient(
			circle at 88% 10%,
			rgba(34, 211, 238, 0.16),
			transparent 34%
		),
		linear-gradient(180deg, rgba(22, 47, 90, 0.92), rgba(12, 30, 66, 0.96));
}

.npn-visual-workflow-field .npn-staging-mode-tabs button.is-active {
	border-color: rgba(34, 211, 238, 0.72);
	background: linear-gradient(
		135deg,
		rgba(29, 242, 226, 0.92),
		rgba(14, 165, 233, 0.92)
	);
	color: #03131f;
	box-shadow:
		0 0 0 2px rgba(34, 211, 238, 0.18),
		0 16px 34px rgba(8, 213, 255, 0.2);
}

.npn-visual-workflow-field .npn-staging-mode-tabs small {
	grid-column: 1 / -1;
	padding: 0 4px 2px;
	color: rgba(203, 213, 225, 0.72);
	line-height: 1.45;
}

@media (max-width: 680px) {
	.npn-visual-workflow-field .npn-staging-mode-tabs {
		grid-template-columns: 1fr;
	}

	.npn-custom-visual-panel-top .npn-before-after {
		height: 245px;
	}
}

/* v35 - Visual service cleanup: option cards show only service names, review card is preview-only */
.npn-custom-visual-tab-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
}

.npn-custom-visual-tab-title strong {
	min-width: 0;
}

.npn-custom-visual-tab-chip,
.npn-custom-visual-tab-meta {
	display: none !important;
}

.npn-custom-visual-card-preview-only {
	cursor: default;
	gap: 0;
}

.npn-custom-visual-card-preview-only:hover {
	transform: none;
}

.npn-custom-visual-card-preview-only .npn-custom-visual-preview {
	width: 100%;
}

.npn-custom-visual-card-preview-only .npn-before-after {
	margin: 0;
}

.npn-custom-slider-nav-icons-only {
	margin-top: 14px;
}

.npn-custom-slider-nav-icons-only .npn-custom-slider-count {
	display: none;
}

@media (max-width: 760px) {
	.npn-custom-visual-tab-title {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}
}

/* Project list loading state */
.npn-project-list-loading {
	min-height: 300px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 28px 18px;
	text-align: center;
	color: rgba(225, 241, 255, 0.68);
}
.npn-project-list-loading strong {
	font-family: "Manrope-Extra";
	font-size: 14px;
	color: rgba(255, 255, 255, 0.9);
}
.npn-project-list-loading span {
	font-size: 12px;
	color: rgba(225, 241, 255, 0.54);
}
.npn-project-list-spinner {
	width: 42px;
	height: 42px;
	border-radius: 999px;
	background: conic-gradient(from 0deg, rgba(29, 242, 226, 0), rgba(29, 242, 226, 0.95), rgba(29, 183, 216, 0.35), rgba(29, 242, 226, 0));
	position: relative;
	animation: npn-project-spin 0.9s linear infinite;
	box-shadow: 0 0 28px rgba(29, 242, 226, 0.2);
}
.npn-project-list-spinner::after {
	content: "";
	position: absolute;
	inset: 5px;
	border-radius: inherit;
	background: #071226;
	box-shadow: inset 0 0 0 1px rgba(103, 232, 249, 0.16);
}
.npn-project-skeleton-stack {
	width: min(100%, 260px);
	margin-top: 12px;	display: grid;
	gap: 9px;
}
.npn-project-skeleton-stack i {
	display: block;
	height: 52px;
	border-radius: 16px;
	border: 1px solid rgba(103, 232, 249, 0.12);
	background: linear-gradient(90deg, rgba(16, 38, 74, 0.62), rgba(29, 242, 226, 0.12), rgba(16, 38, 74, 0.62));
	background-size: 220% 100%;
	animation: npn-project-shimmer 1.2s ease-in-out infinite;
}
.npn-project-skeleton-stack i:nth-child(2) { animation-delay: 0.12s; opacity: 0.76; }
.npn-project-skeleton-stack i:nth-child(3) { animation-delay: 0.24s; opacity: 0.52; }
@keyframes npn-project-spin {
	to { transform: rotate(360deg); }
}
@keyframes npn-project-shimmer {
	0% { background-position: 120% 0; }
	100% { background-position: -120% 0; }
}


/* =========================================================
   Upload summary confirmation popup
========================================================= */
body .swal2-popup.npn-upload-summary-swal {
    border-radius: 26px;
    border: 1px solid rgba(103, 232, 249, 0.22);
    box-shadow: 0 28px 90px rgba(2, 8, 23, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    padding: 0 0 24px;
}

body .swal2-popup.npn-upload-summary-swal .swal2-title {
    display: none;
}

body .swal2-popup.npn-upload-summary-swal .swal2-html-container {
    margin: 0;
    padding: 0;
    overflow: visible;
}

.npn-upload-summary-popup {
    text-align: left;
}

.npn-upload-summary-modern {
    padding: 26px 26px 6px;
}

.npn-upload-summary-title {
    margin-bottom: 18px;
}

.npn-upload-summary-title strong {
    display: block;
    color: #ffffff;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.npn-upload-summary-title small,
.npn-upload-summary-popup p {
    color: rgba(226, 241, 255, 0.72);
    font-size: 13px;
    line-height: 1.55;
}

.npn-upload-summary-table {
    display: grid;
    gap: 8px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(103, 232, 249, 0.18);
    background: linear-gradient(145deg, rgba(8, 23, 52, 0.92), rgba(13, 37, 76, 0.68));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.npn-upload-summary-headrow,
.npn-upload-summary-datarow {
    display: grid;
    grid-template-columns: 1fr minmax(72px, auto);
    align-items: center;
    gap: 16px;
}

.npn-upload-summary-headrow {
    color: rgba(226, 241, 255, 0.62);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.npn-upload-summary-headrow span:last-child,
.npn-upload-summary-datarow strong {
    text-align: right;
}

.npn-upload-summary-datarow span {
    color: #ffffff;
    font-size: 15px;
    font-weight: 800;
}

.npn-upload-summary-datarow strong {
    color: #ffffff;
    font-size: 17px;
    font-weight: 900;
}

.npn-upload-summary-divider {
    height: 1px;
    margin: 16px 0;
    background: linear-gradient(90deg, transparent, rgba(103, 232, 249, 0.36), transparent);
}

.npn-upload-summary-totals {
    display: grid;
    gap: 10px;
}

.npn-upload-summary-totals > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.045);
    border: 1px solid rgba(255, 255, 255, 0.07);
}

.npn-upload-summary-totals span {
    color: rgba(226, 241, 255, 0.78);
    font-size: 14px;
    font-weight: 750;
}

.npn-upload-summary-totals strong {
    color: #ffffff;
    font-size: 17px;
    font-weight: 900;
}

.npn-upload-summary-totals .is-grand-total {
    background: linear-gradient(135deg, rgba(33, 230, 213, 0.16), rgba(24, 183, 216, 0.10));
    border-color: rgba(33, 230, 213, 0.26);
}

.npn-upload-summary-totals .is-grand-total strong {
    color: #21e6d5;
    font-size: 22px;
}

.npn-upload-summary-popup p {
    margin: 16px 2px 0;
}

body .swal2-popup.npn-upload-summary-swal .swal2-actions {
    gap: 10px;
    margin-top: 18px;
}


.npn-upload-summary-totalrow {
    display: grid;
    grid-template-columns: 1fr minmax(72px, auto);
    align-items: center;
    gap: 16px;
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid rgba(103, 232, 249, 0.16);
}

.npn-upload-summary-totalrow span {
    color: rgba(226, 241, 255, 0.78);
    font-size: 13px;
    font-weight: 800;
}

.npn-upload-summary-totalrow strong {
    color: #21e6d5;
    text-align: right;
    font-size: 18px;
    font-weight: 950;
}

.npn-upload-summary-datarow.is-unclassified span {
    color: rgba(226, 241, 255, 0.72);
}

.npn-upload-summary-warning {
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(248, 113, 113, 0.22);
    background: rgba(248, 113, 113, 0.10);
    color: #fecaca !important;
}

.npn-image-type-edit-form {
    display: grid;
    gap: 12px;
    text-align: left;
}

.npn-image-type-edit-form p {
    margin: 0 0 4px;
    color: rgba(226, 241, 255, 0.72);
    font-size: 13px;
    line-height: 1.5;
}

.npn-image-type-edit-form label {
    display: grid;
    grid-template-columns: 1fr 110px;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(103, 232, 249, 0.16);
    background: rgba(255, 255, 255, 0.04);
    border-radius: 14px;
}

.npn-image-type-edit-form span {
    color: #ffffff;
    font-weight: 850;
}

.npn-image-type-edit-form input {
    width: 100%;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: rgba(15, 23, 42, 0.82);
    color: #ffffff;
    border-radius: 10px;
    padding: 9px 10px;
    text-align: right;
    font-weight: 850;
}

.npn-image-type-edit-form small {
    display: block;
    color: #21e6d5;
    font-size: 13px;
    font-weight: 900;
    text-align: right;
}

body .swal2-popup.npn-upload-summary-swal .swal2-confirm,
body .swal2-popup.npn-upload-summary-swal .swal2-deny {
    border-radius: 999px !important;
    padding: 11px 24px !important;
    font-weight: 900 !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.26) !important;
	font-family: 'Manrope-Re';
}

@media (max-width: 560px) {
    .npn-upload-summary-modern {
        padding: 22px 18px 4px;
    }

    .npn-upload-summary-title strong {
        font-size: 19px;
    }
}

.npn-order-detail-save.npn-order-save-pulse {
    animation: npnSaveButtonPulse 1.35s ease-in-out 1;
}

@keyframes npnSaveButtonPulse {
    0%, 100% {
        box-shadow: 0 12px 28px rgba(8, 213, 255, 0.26);
        transform: translateY(0);
    }
    45% {
        box-shadow: 0 0 0 6px rgba(33, 230, 213, 0.16), 0 20px 46px rgba(8, 213, 255, 0.42);
        transform: translateY(-2px);
    }
}

.npn-order-detail-actions.npn-order-save-focus {
    border-radius: 18px;
    background: linear-gradient(90deg, rgba(33, 230, 213, 0.08), rgba(8, 213, 255, 0.06));
    box-shadow: 0 0 0 1px rgba(33, 230, 213, 0.14), 0 18px 38px rgba(2, 8, 23, 0.22);
}

/* =========================================================
   Demo popup, By Design folder note, inclusion random choice
========================================================= */
.npn-tab-demo-btn {
    border: 1px solid rgba(103, 232, 249, 0.34);
    background: rgba(8, 145, 178, 0.16);
    color: #67e8f9;
    border-radius: 999px;
    min-height: 36px;
    padding: 0 16px;
    font-weight: 900;
    cursor: pointer;
}

.npn-tab-demo-btn:hover,
.npn-tab-demo-btn:focus-visible {
    border-color: rgba(103, 232, 249, 0.72);
    background: rgba(34, 211, 238, 0.22);
}

.npn-demo-popup {
    display: grid;
    gap: 18px;
    text-align: left;
}

.npn-demo-popup-item {
    border: 1px solid rgba(103, 232, 249, 0.16);
    border-radius: 18px;
    background: rgba(8, 23, 52, 0.72);
    padding: 12px;
}

.npn-demo-popup .npn-before-after {
    min-height: min(54vw, 480px);
}

.npn-design-catalog-front,
.npn-design-catalog-popup {
    text-align: left;
}

.npn-design-folder-list {
    display: grid;
    gap: 10px;
    max-height: 48vh;
    overflow: auto;
    padding-right: 4px;
}

.npn-design-folder-option {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid rgba(103, 232, 249, 0.18);
    border-radius: 14px;
    background: rgba(8, 23, 52, 0.72);
    cursor: pointer;
}

.npn-design-folder-option span {
    display: grid;
    gap: 2px;
}

.npn-design-folder-option small,
.npn-catalog-empty-summary {
    color: rgba(226, 241, 255, 0.68);
    font-weight: 700;
}

.npn-design-note-field {
    display: grid;
    gap: 8px;
    font-weight: 900;
}

.npn-design-note-field textarea {
    width: 100%;
    border-radius: 14px;
    border: 1px solid rgba(103, 232, 249, 0.22);
    background: rgba(2, 8, 23, 0.48);
    color: #ffffff;
    padding: 12px 14px;
    resize: vertical;
}

.npn-design-folder-summary,
.npn-design-note-summary {
    margin-top: 8px;
}

.npn-design-note-summary p {
    margin: 6px 0 0;
    color: rgba(226, 241, 255, 0.74);
    white-space: pre-wrap;
}

.npn-inc-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.npn-inc-image-random {
    border: 1px solid rgba(250, 204, 21, 0.42);
    background: rgba(250, 204, 21, 0.1);
    color: #fde68a;
    border-radius: 999px;
    min-height: 32px;
    padding: 0 12px;
    font-weight: 900;
    cursor: pointer;
}

.npn-inc-image-random.is-active {
    background: rgba(250, 204, 21, 0.24);
    box-shadow: 0 0 0 2px rgba(250, 204, 21, 0.14);
}

@media (max-width: 720px) {
    .npn-demo-popup .npn-before-after {
        min-height: 320px;
    }

    .npn-inc-actions {
        justify-content: flex-start;
    }
}

/* v35 - per-option demo buttons and cleaner inclusion actions */
.npn-order-detail-segment .npn-order-tab-option {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.npn-order-detail-segment .npn-order-tab-option > button[data-class-index] {
    width: 100%;
    min-height: 52px;
}

.npn-order-detail-segment .npn-order-tab-option > .npn-tab-demo-btn,
.npn-visual-tab-option > .npn-tab-demo-btn {
    width: 100%;
    min-height: 38px;
    height: auto;
    border: 1px solid rgba(103, 232, 249, 0.34);
    background: rgba(8, 145, 178, 0.16);
    color: #67e8f9;
    border-radius: 999px;
    padding: 0 14px;
    font-family: "Manrope-Extra";
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: none;
}

.npn-order-detail-segment .npn-order-tab-option > .npn-tab-demo-btn:hover,
.npn-order-detail-segment .npn-order-tab-option > .npn-tab-demo-btn:focus-visible,
.npn-visual-tab-option > .npn-tab-demo-btn:hover,
.npn-visual-tab-option > .npn-tab-demo-btn:focus-visible {
    border-color: rgba(103, 232, 249, 0.72);
    background: rgba(34, 211, 238, 0.22);
    color: #dffcff;
}

.npn-custom-visual-tabs-top {
    align-items: stretch;
}

.npn-visual-tab-option {
    flex: 1 1 210px;
    min-width: 210px;
    display: grid;
    gap: 10px;
}

.npn-visual-main-options .npn-visual-tab-option .npn-custom-visual-tab {
    width: 100%;
    min-width: 0;
    min-height: 70px;
    flex: none;
}

.npn-inc-parent-head {
    align-items: flex-start;
}

.npn-inc-parent-head .npn-od-switch {
    flex: 0 0 auto;
    margin-left: 12px;
}

.npn-inc-actions-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid rgba(103, 232, 249, 0.11);
}

.npn-inc-actions-row .npn-inc-image-view,
.npn-inc-actions-row .npn-inc-image-random {
    min-height: 36px;
    padding: 0 18px;
    border-radius: 999px;
}

body .swal2-container {
    z-index: 999999 !important;
}

body .swal2-popup .npn-demo-popup {
    max-height: calc(100vh - 180px);
    overflow: auto;
    padding-right: 4px;
}

body .swal2-popup .npn-demo-popup .npn-before-after {
    min-height: min(58vh, 560px);
}

@media (max-width: 760px) {
    .npn-order-detail-segment-2,
    .npn-order-detail-segment-3 {
        grid-template-columns: 1fr;
    }

    .npn-visual-tab-option {
        min-width: 100%;
    }

    .npn-inc-actions-row {
        justify-content: flex-start;
    }
}

.npn-order-detail-toggle-list > .npn-order-detail-inc-card .npn-order-detail-toggle-row {
    height: auto;
    min-height: 94px;
}

.npn-order-detail-inc-card {
    display: grid;
    align-content: start;
}

/* v36 - keep demo/action controls inside their option cards and use slideshow demo popup */
.npn-order-detail-segment .npn-order-tab-option,
.npn-visual-tab-option {
    display: grid;
    gap: 10px;
    align-content: center;
    min-width: 0;
    padding: 10px;
    border-radius: 18px;
    border: 1px solid rgba(103, 232, 249, 0.16);
    background: linear-gradient(180deg, rgba(21, 38, 78, 0.68), rgba(11, 25, 57, 0.86));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.025);
}

.npn-order-detail-segment .npn-order-tab-option.is-active,
.npn-visual-tab-option.is-active,
.npn-visual-tab-option.is-selected {
    border-color: rgba(67, 221, 255, 0.58);
    background: linear-gradient(180deg, rgba(12, 34, 72, 0.82), rgba(6, 18, 46, 0.9));
    box-shadow: 0 0 0 1px rgba(67, 221, 255, 0.14), 0 0 26px rgba(8, 213, 255, 0.12);
}

.npn-order-detail-segment .npn-order-tab-option > button[data-class-index],
.npn-visual-main-options .npn-visual-tab-option .npn-custom-visual-tab {
    width: 100%;
    min-width: 0;
    min-height: 54px;
    height: auto;
    padding: 8px 10px;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #eef6ff;
}

.npn-order-detail-segment .npn-order-tab-option > button[data-class-index]:hover,
.npn-visual-main-options .npn-visual-tab-option .npn-custom-visual-tab:hover {
    transform: none;
    background: rgba(8, 213, 255, 0.06) !important;
}

.npn-tab-demo-row {
    width: 100%;
}

.npn-order-detail-segment .npn-order-tab-option .npn-tab-demo-row > .npn-tab-demo-btn,
.npn-visual-tab-option .npn-tab-demo-row > .npn-tab-demo-btn {
    width: 100%;
    min-height: 38px;
    height: auto;
    border: 1px solid rgba(103, 232, 249, 0.34);
    background: rgba(8, 145, 178, 0.16);
    color: #67e8f9;
    border-radius: 999px;
    padding: 0 14px;
    font-family: "Manrope-Extra";
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: none;
}

.npn-order-detail-segment .npn-order-tab-option .npn-tab-demo-row > .npn-tab-demo-btn:hover,
.npn-order-detail-segment .npn-order-tab-option .npn-tab-demo-row > .npn-tab-demo-btn:focus-visible,
.npn-visual-tab-option .npn-tab-demo-row > .npn-tab-demo-btn:hover,
.npn-visual-tab-option .npn-tab-demo-row > .npn-tab-demo-btn:focus-visible {
    border-color: rgba(103, 232, 249, 0.72);
    background: rgba(34, 211, 238, 0.22);
    color: #dffcff;
}

.npn-order-detail-toggle-list > .npn-order-detail-inc-card {
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(103, 232, 249, 0.16);
    background: linear-gradient(180deg, rgba(21, 38, 78, 0.82), rgba(13, 28, 62, 0.94));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.02), 0 10px 22px rgba(0,0,0,0.12);
}

.npn-order-detail-toggle-list > .npn-order-detail-inc-card:hover {
    border-color: rgba(112, 239, 255, 0.35);
    box-shadow: 0 0 26px rgba(8, 213, 255, 0.08), 0 14px 28px rgba(0,0,0,0.18);
}

.npn-order-detail-toggle-list > .npn-order-detail-inc-card .npn-order-detail-toggle-row {
    min-height: max-content;
    height: auto !important;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.npn-order-detail-toggle-list > .npn-order-detail-inc-card .npn-order-detail-toggle-row:hover {
    transform: none;
    border-color: transparent;
    background: transparent;
    box-shadow: none;
}

.npn-order-detail-toggle-list > .npn-order-detail-inc-card .npn-inc-actions-row {
    width: 100%;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(103, 232, 249, 0.12);
}

.npn-demo-popup-slider {
    gap: 14px;
}

.npn-demo-slider-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    margin-top: 2px;
}

.npn-demo-slider-nav button {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid rgba(103, 232, 249, 0.34);
    background: rgba(8, 145, 178, 0.18);
    color: #67e8f9;
    cursor: pointer;
}

.npn-demo-slider-nav button:hover,
.npn-demo-slider-nav button:focus-visible {
    border-color: rgba(103, 232, 249, 0.72);
    background: rgba(34, 211, 238, 0.22);
}

.npn-demo-slider-nav button svg {
    width: 22px;
    height: 22px;
}

.npn-demo-slider-nav span {
    min-width: 64px;
    color: rgba(226, 241, 255, 0.78);
    font-weight: 900;
    text-align: center;
}

/* v37 - fit demo slide popup inside viewport without page scrolling */
body .swal2-popup.npn-demo-swal-popup {
    width: min(96vw, 1160px) !important;
    max-width: 96vw !important;
    max-height: calc(100dvh - 28px) !important;
    padding: clamp(10px, 1.6vh, 18px) clamp(12px, 1.8vw, 24px) clamp(12px, 1.8vh, 20px) !important;
    overflow: hidden !important;
    box-sizing: border-box;
}

body .swal2-popup.npn-demo-swal-popup .swal2-close {
    top: 8px;
    right: 10px;
}

body .swal2-popup.npn-demo-swal-popup .npn-demo-swal-title,
body .swal2-popup.npn-demo-swal-popup .swal2-title {
    margin: 0 42px 12px !important;
    padding: 0 !important;
    line-height: 1.15 !important;
    font-size: clamp(24px, 3.2vw, 40px) !important;
}

body .swal2-popup.npn-demo-swal-popup .npn-demo-swal-html,
body .swal2-popup.npn-demo-swal-popup .swal2-html-container {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-height: none !important;
    overflow: hidden !important;
}

body .swal2-popup.npn-demo-swal-popup .npn-demo-popup {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    gap: clamp(8px, 1.2vh, 14px);
    max-height: calc(100dvh - 110px) !important;
    overflow: hidden !important;
    padding: 0 !important;
}

body .swal2-popup.npn-demo-swal-popup .npn-demo-popup-item {
    min-height: 0;
    padding: clamp(6px, 1vh, 10px);
    overflow: hidden;
}

body .swal2-popup.npn-demo-swal-popup .npn-demo-popup .npn-before-after {
    width: 100%;
    height: min(70vh, calc(100dvh - 180px));
    min-height: 0 !important;
    aspect-ratio: auto;
    border-radius: 16px;
}

body .swal2-popup.npn-demo-swal-popup .npn-demo-popup[data-demo-slides="1"] .npn-before-after {
    height: min(76vh, calc(100dvh - 150px));
}

body .swal2-popup.npn-demo-swal-popup .npn-ba-image img {
    width: 100%;
    height: 100%;
    min-height: 0 !important;
    object-fit: contain;
    background: rgba(2, 8, 23, 0.72);
}

body .swal2-popup.npn-demo-swal-popup .npn-demo-slider-nav {
    margin: 0;
    min-height: 42px;
}

body .swal2-popup.npn-demo-swal-popup .npn-demo-slider-nav button {
    width: 40px;
    height: 40px;
}

@media (max-height: 720px) {
    body .swal2-popup.npn-demo-swal-popup {
        max-height: calc(100dvh - 16px) !important;
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }

    body .swal2-popup.npn-demo-swal-popup .npn-demo-swal-title,
    body .swal2-popup.npn-demo-swal-popup .swal2-title {
        font-size: clamp(22px, 3vw, 30px) !important;
        margin-bottom: 8px !important;
    }

    body .swal2-popup.npn-demo-swal-popup .npn-demo-popup {
        max-height: calc(100dvh - 88px) !important;
        gap: 8px;
    }

    body .swal2-popup.npn-demo-swal-popup .npn-demo-popup .npn-before-after {
        height: min(68vh, calc(100dvh - 150px));
    }

    body .swal2-popup.npn-demo-swal-popup .npn-demo-popup[data-demo-slides="1"] .npn-before-after {
        height: min(74vh, calc(100dvh - 120px));
    }
}

@media (max-width: 760px) {
    body .swal2-popup.npn-demo-swal-popup {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
    }

    body .swal2-popup.npn-demo-swal-popup .npn-demo-swal-title,
    body .swal2-popup.npn-demo-swal-popup .swal2-title {
        margin-left: 28px !important;
        margin-right: 28px !important;
    }
}

/* By Design mapped popup: uploaded images + folder assignment + note, no folder image thumbnails */
.npn-design-catalog-front .npn-catalog-front-head {
    align-items: center;
}

.npn-design-catalog-popup-mapped .npn-design-popup-layout {
    grid-template-columns: minmax(210px, 0.9fr) minmax(260px, 1.1fr) minmax(280px, 1.15fr);
}

.npn-design-catalog-popup-mapped .npn-design-popup-files,
.npn-design-catalog-popup-mapped .npn-design-popup-folders,
.npn-design-catalog-popup-mapped .npn-design-popup-note {
    min-height: 420px;
    max-height: 70vh;
}

.npn-design-catalog-popup-mapped .npn-design-popup-folders {
    display: block;
    margin-bottom: 0;
}

.npn-design-catalog-popup-mapped .npn-catalog-popup-folder.is-selected {
    border-color: rgba(250, 204, 21, 0.58);
    background: rgba(250, 204, 21, 0.12);
    box-shadow: inset 3px 0 0 rgba(250, 204, 21, 0.86);
}

.npn-design-popup-note {
    align-self: stretch;
    padding: 12px;
    border-radius: 20px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(15, 23, 42, 0.58);
}

.npn-design-popup-note textarea {
    min-height: 320px;
    height: 100%;
}

.npn-design-selected-summary .npn-catalog-map-row {
    min-width: 0;
}

@media (max-width: 900px) {
    .npn-design-catalog-popup-mapped .npn-design-popup-layout {
        grid-template-columns: 1fr;
    }

    .npn-design-catalog-popup-mapped .npn-design-popup-files,
    .npn-design-catalog-popup-mapped .npn-design-popup-folders,
    .npn-design-catalog-popup-mapped .npn-design-popup-note {
        min-height: auto;
        max-height: 46vh;
    }

    .npn-design-popup-note textarea {
        min-height: 180px;
    }
}


.npn-project-price-line {
	display: flex !important;
	flex-direction: column;
	align-items: flex-start !important;
	gap: 2px !important;
	margin-top: 8px;
	line-height: 1.45;
}

.npn-project-price-line .npn-project-price-code {
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	border-radius: 999px;
	background: rgba(19, 213, 255, 0.10);
	border: 1px solid rgba(19, 213, 255, 0.18);
	color: rgba(146, 236, 255, 0.95);
	font-size: 11px;
	font-weight: 700;
	margin-bottom: 2px;
}

.npn-project-price-line .npn-project-price-row {
	display: block;
	color: rgba(225, 241, 255, 0.72);
}

.npn-project-price-line .npn-project-price-row strong {
	color: rgba(255, 255, 255, 0.90);
	font-weight: 700;
}


/* Clean vertical price/VAT rows inside project service cards */
.npn-project-child-info .npn-project-price-line {
	display: grid !important;
	grid-template-columns: 1fr;
	align-items: stretch !important;
	gap: 3px !important;
	margin-top: 9px;
	max-width: 170px;
}

.npn-project-child-info .npn-project-price-line .npn-project-price-row {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	color: rgba(225, 241, 255, 0.70);
	font-size: 12px;
	line-height: 1.35;
}

.npn-project-child-info .npn-project-price-line .npn-project-price-label {
	font-weight: 700;
	color: rgba(255, 255, 255, 0.82);
}

.npn-project-child-info .npn-project-price-line .npn-project-price-value {
	font-weight: 700;
	color: rgba(225, 241, 255, 0.78);
	text-align: right;
	white-space: nowrap;
}

.npn-project-child-info .npn-project-price-line .npn-project-price-row.is-total .npn-project-price-label,
.npn-project-child-info .npn-project-price-line .npn-project-price-row.is-total .npn-project-price-value {
	color: rgba(255, 255, 255, 0.95);
}

/* v38 - clearer modern service option tabs across all service types */
.npn-order-detail-segment,
.npn-custom-visual-tabs-top,
.npn-visual-main-options,
.npn-staging-mode-tabs {
    gap: 12px;
}

.npn-order-detail-segment {
    padding: 8px;
    border-radius: 22px;
    border-color: rgba(86, 212, 255, 0.22);
    background:
        radial-gradient(circle at 16% 0%, rgba(34, 211, 238, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(16, 38, 80, 0.86), rgba(7, 19, 49, 0.92));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 18px 38px rgba(0, 0, 0, 0.18);
}

.npn-order-detail-segment .npn-order-tab-option,
.npn-visual-tab-option {
    position: relative;
    min-height: 128px;
    padding: 13px;
    border-radius: 22px;
    overflow: hidden;
    border: 1px solid rgba(107, 150, 206, 0.28);
    background:
        radial-gradient(circle at 50% 0%, rgba(112, 161, 255, 0.13), transparent 42%),
        linear-gradient(180deg, rgba(28, 47, 91, 0.82), rgba(14, 28, 65, 0.96));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 14px 28px rgba(0, 0, 0, 0.16);
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.npn-order-detail-segment .npn-order-tab-option::before,
.npn-visual-tab-option::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(135deg, rgba(255,255,255,0.08), transparent 35%, rgba(34,211,238,0.06));
    opacity: 0.58;
}

.npn-order-detail-segment .npn-order-tab-option:hover,
.npn-visual-tab-option:hover {
    transform: translateY(-2px);
    border-color: rgba(103, 232, 249, 0.46);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.07),
        0 18px 36px rgba(0, 0, 0, 0.22),
        0 0 24px rgba(8, 213, 255, 0.10);
}

.npn-order-detail-segment .npn-order-tab-option.is-active,
.npn-visual-tab-option.is-active,
.npn-visual-tab-option.is-selected {
    border-color: rgba(29, 242, 226, 0.82);
    background:
        radial-gradient(circle at 50% 0%, rgba(29, 242, 226, 0.20), transparent 44%),
        linear-gradient(180deg, rgba(16, 53, 98, 0.95), rgba(8, 26, 64, 0.98));
    box-shadow:
        0 0 0 1px rgba(29, 242, 226, 0.22),
        0 0 34px rgba(8, 213, 255, 0.22),
        0 20px 42px rgba(0, 0, 0, 0.26),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

/* .npn-order-detail-segment .npn-order-tab-option.is-active::after,
.npn-visual-tab-option.is-active::after,
.npn-visual-tab-option.is-selected::after {
    content: '✓';
    position: absolute;
    top: 12px;
    right: 12px;
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: linear-gradient(135deg, #1df2e2, #0ea5e9);
    color: #00111f;
    font-size: 13px;
    font-weight: 900;
    box-shadow: 0 0 18px rgba(29, 242, 226, 0.34);
    z-index: 2;
}
 */
.npn-order-detail-segment .npn-order-tab-option > button[data-class-index],
.npn-visual-main-options .npn-visual-tab-option .npn-custom-visual-tab {
    position: relative;
    z-index: 1;
    min-height: 58px;
    padding: 10px 14px 10px 14px;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, 0.025) !important;
    color: rgba(239, 248, 255, 0.92) !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-active > button[data-class-index],
.npn-order-detail-segment .npn-order-tab-option > button[data-class-index].is-active,
.npn-visual-tab-option.is-active .npn-custom-visual-tab,
.npn-visual-tab-option.is-selected .npn-custom-visual-tab {
    color: #ffffff !important;
    background: rgba(29, 242, 226, 0.065) !important;
}

.npn-order-detail-segment .npn-tab-service-name,
.npn-custom-visual-tab-title strong {
    display: block;
    color: inherit;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 700;
    text-align: center;
}

.npn-order-detail-segment .npn-order-tab-option.is-active .npn-tab-service-name,
.npn-visual-tab-option.is-active .npn-custom-visual-tab-title strong,
.npn-visual-tab-option.is-selected .npn-custom-visual-tab-title strong {
    text-shadow: 0 0 18px rgba(103, 232, 249, 0.26);
}

.npn-order-detail-segment .npn-order-tab-option .npn-tab-demo-row,
.npn-visual-tab-option .npn-tab-demo-row {
    position: relative;
    z-index: 1;
    margin-top: 4px;
}

.npn-order-detail-segment .npn-order-tab-option .npn-tab-demo-row > .npn-tab-demo-btn,
.npn-visual-tab-option .npn-tab-demo-row > .npn-tab-demo-btn,
.npn-order-detail-segment .npn-order-tab-option > .npn-tab-demo-btn,
.npn-visual-tab-option > .npn-tab-demo-btn {
    min-height: 42px;
    border-radius: 16px;
    border: 1px solid rgba(103, 232, 249, 0.42);
    background:
        linear-gradient(180deg, rgba(8, 145, 178, 0.28), rgba(6, 95, 128, 0.20));
    color: #8ef8ff;
    letter-spacing: -0.01em;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.npn-order-detail-segment .npn-order-tab-option.is-active .npn-tab-demo-row > .npn-tab-demo-btn,
.npn-visual-tab-option.is-active .npn-tab-demo-row > .npn-tab-demo-btn,
.npn-visual-tab-option.is-selected .npn-tab-demo-row > .npn-tab-demo-btn {
    border-color: rgba(29, 242, 226, 0.62);
    background: linear-gradient(135deg, rgba(29, 242, 226, 0.22), rgba(14, 165, 233, 0.20));
    color: #eaffff;
}

.npn-order-detail-segment .npn-order-tab-option .npn-tab-demo-row > .npn-tab-demo-btn:hover,
.npn-visual-tab-option .npn-tab-demo-row > .npn-tab-demo-btn:hover {
    transform: translateY(-1px);
    border-color: rgba(165, 243, 252, 0.86);
    background: linear-gradient(135deg, rgba(29, 242, 226, 0.28), rgba(14, 165, 233, 0.24));
}

.npn-staging-mode-tabs button {
    min-height: 74px;
    border-radius: 22px;
    border: 1px solid rgba(107, 150, 206, 0.26);
    background:
        radial-gradient(circle at 50% 0%, rgba(112, 161, 255, 0.12), transparent 44%),
        linear-gradient(180deg, rgba(28, 47, 91, 0.82), rgba(14, 28, 65, 0.96));
    color: rgba(239, 248, 255, 0.82);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.npn-staging-mode-tabs button:hover,
.npn-staging-mode-tabs button.is-active {
    border-color: rgba(29, 242, 226, 0.76);
    background:
        radial-gradient(circle at 50% 0%, rgba(29, 242, 226, 0.18), transparent 44%),
        linear-gradient(180deg, rgba(16, 53, 98, 0.94), rgba(8, 26, 64, 0.98));
    color: #ffffff;
    box-shadow: 0 0 0 1px rgba(29, 242, 226, 0.16), 0 0 28px rgba(8, 213, 255, 0.18);
}

@media (max-width: 860px) {
    .npn-order-detail-segment-2,
    .npn-order-detail-segment-3 {
        grid-template-columns: 1fr;
    }

    .npn-visual-tab-option,
    .npn-order-detail-segment .npn-order-tab-option {
        min-height: 112px;
    }
}


/* v43 - upload filename clamp + safer By Design popup/buttons */
.npn-upload-preview-item > .npn-upload-preview-name,
.npn-upload-preview-item > span.npn-upload-preview-name {
    display: block !important;
    width: calc(100% - 20px) !important;
    max-width: calc(100% - 20px) !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
}

.npn-upload-preview-item > em {
    display: block !important;
    width: calc(100% - 20px) !important;
    max-width: calc(100% - 20px) !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
}

.npn-inc-actions-row {
    justify-content: flex-start;
}

.npn-inc-actions-row .npn-inc-image-random {
    order: 1;
}

.npn-inc-actions-row .npn-inc-image-view {
    order: 2;
}

.npn-design-catalog-popup button,
.npn-catalog-popup button,
.npn-upload-preview-toolbar button,
.npn-upload-preview-loadbar button {
    scroll-margin-top: 120px;
}


/* v44 - strict filename ellipsis and By Design scroll-safe cards */
.npn-design-selected-summary .npn-catalog-map-row,
.npn-catalog-selected-summary-mapped .npn-catalog-map-row {
    min-width: 0 !important;
    overflow: hidden !important;
}

.npn-design-selected-summary .npn-catalog-map-row > strong,
.npn-catalog-selected-summary-mapped .npn-catalog-map-row > strong,
.npn-design-popup-files .npn-catalog-popup-file > strong,
.npn-catalog-popup-files .npn-catalog-popup-file > strong {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.npn-design-popup-files .npn-catalog-popup-file,
.npn-catalog-popup-files .npn-catalog-popup-file {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    scroll-margin: 0 !important;
}

.npn-design-popup-files,
.npn-design-popup-folders {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
}

/* v45 - apply filename ellipsis and scroll preservation support to By Catalog too */
.npn-catalog-popup-files,
.npn-catalog-popup-folders,
.npn-catalog-popup-body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
}

.npn-catalog-popup-file > strong,
.npn-catalog-popup-folder > strong,
.npn-catalog-popup-image strong,
.npn-catalog-map-row > strong {
    display: block !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.npn-catalog-popup-file,
.npn-catalog-popup-folder,
.npn-catalog-popup-image {
    min-width: 0 !important;
    max-width: 100% !important;
    scroll-margin: 0 !important;
}

/* Rate-card layout for Retouching / Video / DIY services */
.npn-order-detail-segment .npn-order-tab-option.is-rate-card {
    align-items: stretch;
    gap: 8px;
}

.npn-order-detail-segment .npn-order-tab-option.is-rate-card > button[data-class-index] {
    text-align: left;
    line-height: 1.35;
}

.npn-order-detail-segment .npn-tab-service-name {
    display: block;
    font-weight: 700;
    margin-bottom: 3px;
}

.npn-order-detail-segment .npn-tab-meta,
.npn-order-detail-segment .npn-tab-comment {
    display: block;
    font-size: 12px;
    line-height: 1.35;
    opacity: .82;
    margin-top: 2px;
}

.npn-order-detail-segment .npn-quote-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: fit-content;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    background: rgba(245, 158, 11, .14);
    border: 1px solid rgba(245, 158, 11, .28);
}

.npn-order-detail-segment .npn-rate-card-box {
    border: 1px solid rgba(148, 163, 184, .28);
    border-radius: 14px;
    padding: 14px;
    background: rgba(255,255,255,.7);
}

.npn-order-detail-segment .npn-rate-card-box .npn-detail-price {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    border-bottom: 1px dashed rgba(148, 163, 184, .35);
}

.npn-order-detail-segment .npn-rate-card-box .npn-detail-price:last-child {
    border-bottom: 0;
}

.npn-order-detail-segment .npn-rate-card-box .npn-rate-note {
    margin-top: 10px;
    font-size: 13px;
    opacity: .82;
}

/* Rate-card grouping note: Basic 1/2/3 -> Basic, auto tier by file count/condition */
.npn-order-detail-segment .npn-tab-tier {
    display: block;
    font-size: 12px;
    line-height: 1.35;
    font-weight: 700;
    margin-top: 2px;
}

.npn-order-detail-segment .npn-rate-card-note {
    margin: 0 0 10px;
    padding: 8px 10px;
    border-radius: 10px;
    background: rgba(148, 163, 184, .12);
    font-size: 12px;
    line-height: 1.45;
}

/* Hide internal rate-card explanation on the customer order screen. */
.npn-rate-card-summary,
.npn-rate-card-note,
.npn-rate-card-box {
  display: none !important;
}

/* Rate Card frontend cleanup: Retouching / Video / DIY */
.npn-rate-card-summary,
.npn-rate-card-box,
.npn-rate-card-note {
    display: none !important;
}
.npn-order-tab-option.is-rate-card .npn-tab-service-name {
    display: block;
    font-weight: 800;
}
.npn-order-tab-option.is-rate-card:not(.is-active) .npn-tab-meta {
    display: none !important;
}
.npn-order-tab-option.is-rate-card .npn-tab-meta-clean {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.35;
    opacity: .9;
}

/* v47 - unified option cards, 2x2 layout for four options, premium filename tooltip */
.npn-order-detail-segment-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.npn-order-detail-segment {
    gap: 14px !important;
    padding: 12px !important;
    border-radius: 24px !important;
}

.npn-order-detail-segment .npn-order-tab-option {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: stretch !important;
    min-height: 124px !important;
    padding: 0 !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    border: 1px solid rgba(107, 150, 206, 0.32) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(112, 161, 255, 0.14), transparent 46%),
        linear-gradient(180deg, rgba(27, 47, 90, 0.90), rgba(13, 28, 64, 0.98)) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.055),
        0 14px 28px rgba(0, 0, 0, 0.16) !important;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease, opacity .2s ease !important;
}

.npn-order-detail-segment .npn-order-tab-option > button[data-class-index] {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-height: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 18px 20px !important;
    border: 0 !important;
    border-radius: inherit !important;
    background: transparent !important;
    box-shadow: none !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    text-align: center !important;
}

.npn-order-detail-segment .npn-order-tab-option:hover {
    transform: translateY(-2px) !important;
    border-color: rgba(103, 232, 249, 0.52) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.07),
        0 18px 34px rgba(0, 0, 0, 0.23),
        0 0 24px rgba(8, 213, 255, 0.11) !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-active {
    transform: translateY(-4px) scale(1.01) !important;
    border-color: rgba(74, 252, 240, 0.96) !important;
    background:
        radial-gradient(circle at 48% 0%, rgba(67, 255, 243, 0.30), transparent 48%),
        linear-gradient(180deg, rgba(8, 58, 108, 0.99), rgba(4, 24, 64, 1)) !important;
    box-shadow:
        0 0 0 2px rgba(67, 255, 243, 0.20),
        0 0 0 5px rgba(67, 255, 243, 0.07),
        0 0 42px rgba(16, 229, 255, 0.28),
        0 24px 44px rgba(0, 0, 0, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.13) !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-active::after {
    content: '✓' !important;
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 999px !important;
    display: grid !important;
    place-items: center !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    color: #012130 !important;
    background: linear-gradient(135deg, #67f7ff, #28d7ff) !important;
    box-shadow: 0 10px 24px rgba(40, 215, 255, 0.35) !important;
    z-index: 3 !important;
}

.npn-order-detail-segment .npn-tab-service-name {
    margin: 0 !important;
    color: rgba(238, 248, 255, 0.90) !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
    font-weight: 850 !important;
    letter-spacing: -0.015em !important;
    text-align: center !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-active .npn-tab-service-name {
    color: #ffffff !important;
    font-size: 19px !important;
    text-shadow: 0 0 22px rgba(103, 232, 249, 0.30) !important;
}

.npn-order-detail-segment .npn-tab-meta {
    display: block !important;
    margin: 0 !important;
    color: rgba(233, 251, 255, 0.94) !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    font-weight: 750 !important;
    opacity: 0.96 !important;
    text-align: center !important;
}

.npn-order-detail-segment .npn-order-tab-option:not(.is-active) .npn-tab-meta,
.npn-order-detail-segment .npn-order-tab-option:not(.is-active) .npn-tab-tier,
.npn-order-detail-segment .npn-order-tab-option:not(.is-active) .npn-tab-comment {
    display: none !important;
}

.npn-order-detail-segment .npn-order-tab-option .npn-tab-demo-row {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 12px 12px !important;
}

.npn-order-detail-segment .npn-order-tab-option .npn-tab-demo-row > .npn-tab-demo-btn {
    width: 100% !important;
    min-height: 38px !important;
}

.npn-upload-preview-item > .npn-upload-preview-name,
.npn-upload-preview-item > span.npn-upload-preview-name {
    pointer-events: auto !important;
    cursor: help !important;
    z-index: 35 !important;
    border-radius: 8px !important;
    outline: none !important;
}

.npn-upload-preview-item > .npn-upload-preview-name:hover,
.npn-upload-preview-item > span.npn-upload-preview-name:hover,
.npn-upload-preview-item > .npn-upload-preview-name:focus-visible,
.npn-upload-preview-item > span.npn-upload-preview-name:focus-visible {
    background: rgba(15, 23, 42, 0.70) !important;
    box-shadow: 0 0 0 1px rgba(103, 232, 249, 0.30) !important;
}

.npn-file-name-tooltip {
    position: fixed;
    z-index: 999999;
    max-width: min(420px, calc(100vw - 32px));
    padding: 10px 13px;
    border-radius: 12px;
    border: 1px solid rgba(103, 232, 249, 0.34);
    background:
        radial-gradient(circle at 12% 0%, rgba(34, 211, 238, 0.20), transparent 38%),
        rgba(6, 18, 43, 0.96);
    color: #f3fbff;
    font-size: 12px;
    line-height: 1.45;
    font-weight: 700;
    letter-spacing: -0.01em;
    box-shadow:
        0 18px 44px rgba(0, 0, 0, 0.38),
        0 0 0 1px rgba(255, 255, 255, 0.04) inset;
    opacity: 0;
    transform: translateY(4px) scale(0.98);
    pointer-events: none;
    white-space: normal;
    overflow-wrap: anywhere;
    transition: opacity .16s ease, transform .16s ease;
}

.npn-file-name-tooltip.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

@media (max-width: 860px) {
    .npn-order-detail-segment-2,
    .npn-order-detail-segment-3,
    .npn-order-detail-segment-4 {
        grid-template-columns: 1fr !important;
    }
    .npn-order-detail-segment .npn-order-tab-option {
        min-height: 108px !important;
    }
    .npn-order-detail-segment .npn-tab-service-name {
        font-size: 16px !important;
    }
}

/* v48 - unified option cards, equal height by max content, brighter random button */

.npn-order-detail-segment.npn-order-detail-segment-4,
.npn-order-detail-segment-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.npn-order-detail-segment .npn-order-tab-option {
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: stretch !important;
}

.npn-order-detail-segment .npn-order-tab-option > button[data-class-index] {
    flex: 1 1 auto !important;
    min-height: 96px !important;
    border-radius: 22px 22px 0 0 !important;
    padding: 18px 18px 14px !important;
}

.npn-order-detail-segment .npn-order-tab-option .npn-tab-demo-row {
    margin-top: auto !important;
    padding: 0 12px 12px !important;
}

.npn-order-detail-segment .npn-order-tab-option .npn-tab-demo-row > .npn-tab-demo-btn {
    min-height: 40px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(103, 232, 249, 0.42) !important;
    background: linear-gradient(135deg, rgba(34, 211, 238, 0.16), rgba(14, 165, 233, 0.12)) !important;
    color: #dffcff !important;
    font-weight: 850 !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-active .npn-tab-demo-row > .npn-tab-demo-btn {
    border-color: rgba(125, 249, 255, 0.72) !important;
    background: linear-gradient(135deg, rgba(34, 211, 238, 0.34), rgba(14, 165, 233, 0.24)) !important;
    color: #ffffff !important;
    box-shadow: 0 10px 24px rgba(14, 165, 233, 0.18) !important;
}

.npn-order-detail-segment .npn-order-tab-option:not(.is-active) > button[data-class-index] {
    border-radius: 22px 22px 0 0 !important;
}

.npn-inc-image-random {
    border-color: rgba(255, 213, 74, 0.85) !important;
    background: linear-gradient(135deg, #ffd84d, #f59e0b) !important;
    color: #3a2400 !important;
    box-shadow: 0 10px 24px rgba(245, 158, 11, 0.24), inset 0 1px 0 rgba(255,255,255,0.35) !important;
}

.npn-inc-image-random:hover,
.npn-inc-image-random:focus-visible,
.npn-inc-image-random.is-active {
    border-color: rgba(255, 236, 153, 1) !important;
    background: linear-gradient(135deg, #ffe87a, #fbbf24) !important;
    color: #271800 !important;
    box-shadow: 0 0 0 3px rgba(250, 204, 21, 0.18), 0 14px 30px rgba(245, 158, 11, 0.30) !important;
}

.npn-file-name-tooltip {
    padding: 12px 14px 11px !important;
    border-radius: 14px !important;
    border-color: rgba(125, 249, 255, 0.42) !important;
    background:
        radial-gradient(circle at 10% 0%, rgba(34, 211, 238, 0.24), transparent 36%),
        linear-gradient(180deg, rgba(8, 25, 60, 0.98), rgba(4, 13, 33, 0.98)) !important;
    box-shadow: 0 22px 54px rgba(0, 0, 0, 0.44), 0 0 0 1px rgba(255,255,255,0.06) inset !important;
}

.npn-file-name-tooltip::before {
    content: 'File name';
    display: block;
    margin-bottom: 4px;
    color: rgba(125, 249, 255, 0.86);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.npn-file-name-tooltip::after {
    content: '';
    position: absolute;
    left: 18px;
    top: -6px;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
    background: rgba(8, 25, 60, 0.98);
    border-left: 1px solid rgba(125, 249, 255, 0.28);
    border-top: 1px solid rgba(125, 249, 255, 0.28);
}

@media (max-width: 860px) {
    .npn-order-detail-segment.npn-order-detail-segment-4,
    .npn-order-detail-segment-4 {
        grid-template-columns: 1fr !important;
    }
}

/* =========================================================
   Image classifier recent results
========================================================= */
.npn-order-detail-file-input[data-order-folder-input] {
    display: none;
}

.npn-order-upload-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 12px;
}

.npn-order-upload-folder-btn {
    border: 1px solid rgba(103, 232, 249, 0.28);
    background: rgba(15, 23, 42, 0.72);
    color: #e5f6ff;
    border-radius: 999px;
    padding: 9px 16px;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}

.npn-order-upload-folder-btn:hover {
    border-color: rgba(33, 230, 213, 0.58);
    background: rgba(33, 230, 213, 0.10);
}

.npn-order-classifier-results {
    margin-top: 18px;
}

.npn-classifier-results-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 12px;
}

.npn-classifier-results-head strong {
    color: #b9d8ff;
    font-size: 14px;
    font-weight: 900;
}

.npn-classifier-results-head button {
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 8px;
    background: rgba(30, 41, 59, 0.82);
    color: #e2e8f0;
    padding: 7px 12px;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}

.npn-classifier-results-list {
    display: grid;
    gap: 10px;
}

.npn-classifier-result-row {
    display: grid;
    gap: 4px;
    width: 100%;
    text-align: left;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 10px;
    background: rgba(21, 29, 42, 0.92);
    padding: 13px 14px;
    cursor: pointer;
}

.npn-classifier-result-row:hover {
    border-color: rgba(88, 166, 255, 0.56);
    background: rgba(22, 33, 52, 0.98);
}

.npn-classifier-result-row strong {
    color: #ffffff;
    font-size: 14px;
    font-weight: 900;
}

.npn-classifier-result-row span {
    color: #9fb7d3;
    font-size: 12px;
}

.npn-classifier-result-row em {
    color: rgba(148, 163, 184, 0.82);
    font-size: 11px;
    font-style: normal;
}

body .swal2-popup.npn-classifier-result-swal {
    border-radius: 22px;
    border: 1px solid rgba(103, 232, 249, 0.18);
    padding: 0 0 20px;
}

body .swal2-popup.npn-classifier-result-swal .swal2-title {
    display: none;
}

body .swal2-popup.npn-classifier-result-swal .swal2-html-container {
    margin: 0;
    padding: 0;
}

.npn-classifier-popup {
    text-align: left;
    padding: 24px;
}

.npn-classifier-popup-title {
    display: grid;
    gap: 8px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
}

.npn-classifier-popup-title strong {
    color: #ffffff;
    font-size: 20px;
    font-weight: 950;
}

.npn-classifier-popup-title span,
.npn-classifier-popup-meta {
    color: #9fb7d3;
    font-size: 12px;
}

.npn-classifier-popup-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: 22px 0;
}

.npn-classifier-popup-card {
    min-height: 122px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 10px;
    background: rgba(21, 29, 42, 0.92);
    padding: 18px 20px;
    border-left: 4px solid rgba(88, 166, 255, 0.78);
}

.npn-classifier-popup-card.is-total { border-left-color: #a78bfa; }
.npn-classifier-popup-card.is-exterior { border-left-color: #22c55e; }
.npn-classifier-popup-card.is-twilight { border-left-color: #eab308; }
.npn-classifier-popup-card.is-interior { border-left-color: #58a6ff; }

.npn-classifier-popup-card span {
    display: block;
    color: #93a8c2;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.npn-classifier-popup-card strong {
    display: block;
    margin-top: 10px;
    color: #ffffff;
    font-size: 30px;
    line-height: 1;
    font-weight: 950;
}

.npn-classifier-popup-card em,
.npn-classifier-popup-card b {
    display: inline-flex;
    margin-top: 12px;
    color: #b7c7db;
    font-style: normal;
    font-size: 12px;
    font-weight: 650;
}

.npn-classifier-popup-card b {
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(88, 166, 255, 0.18);
    color: #dbeafe;
}

.npn-classifier-popup-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin: 10px 0;
}

.npn-classifier-popup-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0 16px;
}

.npn-classifier-popup-chips span,
.npn-scene-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 7px;
    background: rgba(88, 166, 255, 0.18);
    color: #dbeafe;
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 850;
}

.npn-classifier-popup-table-wrap {
    overflow: auto;
    border-radius: 10px;
    background: rgba(15, 23, 42, 0.72);
}

.npn-classifier-popup-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 820px;
}

.npn-classifier-popup-table th,
.npn-classifier-popup-table td {
    padding: 13px 12px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.12);
    color: #e5edf8;
    font-size: 12px;
    vertical-align: top;
}

.npn-classifier-popup-table th {
    background: rgba(30, 41, 59, 0.96);
    color: #a9bad0;
    font-weight: 900;
    letter-spacing: 0.04em;
}

@media (max-width: 820px) {
    .npn-classifier-popup-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .npn-classifier-popup {
        padding: 18px;
    }
    .npn-classifier-popup-cards {
        grid-template-columns: 1fr;
    }
}

/* API classifier confirmation modal - compact production review */
body .swal2-popup.npn-confirm-count-swal {
    background: #171c23 !important;
    border: 1px solid rgba(148, 163, 184, 0.24) !important;
    border-radius: 14px !important;
    box-shadow: 0 22px 80px rgba(0, 0, 0, 0.55) !important;
    padding: 0 0 22px !important;
}
body .swal2-popup.npn-confirm-count-swal .swal2-html-container {
    margin: 0 !important;
    padding: 0 !important;
}
body .swal2-popup.npn-confirm-count-swal .swal2-actions {
    display: flex !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    width: calc(100% - 44px) !important;
    margin: 18px 22px 0 !important;
}
body .swal2-popup.npn-confirm-count-swal .swal2-confirm,
body .swal2-popup.npn-confirm-count-swal .swal2-deny,
body .swal2-popup.npn-confirm-count-swal .swal2-cancel {
    border-radius: 5px !important;
    min-width: 130px !important;
    padding: 11px 18px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    box-shadow: none !important;
}
body .swal2-popup.npn-confirm-count-swal .swal2-cancel,
body .swal2-popup.npn-confirm-count-swal .swal2-deny {
    border: 1px solid rgba(148, 163, 184, 0.18) !important;
}
.npn-confirm-count-popup {
    padding: 26px 22px 0;
    text-align: left;
    color: #e5eefc;
}
.npn-confirm-count-popup h2 {
    margin: 0 0 10px;
    color: #f8fafc;
    font-size: 21px;
    font-weight: 900;
    letter-spacing: -0.02em;
}
.npn-confirm-count-subtitle {
    margin: 0 0 18px;
    color: #9fb0c6;
    font-size: 14px;
    line-height: 1.5;
}
.npn-confirm-count-form {
    display: grid;
    gap: 10px;
    margin-bottom: 16px;
}
.npn-confirm-count-row {
    display: grid;
    grid-template-columns: 1fr 120px;
    align-items: center;
    gap: 18px;
}
.npn-confirm-count-row span {
    color: #c8d5e6;
    font-size: 14px;
    font-weight: 600;
}
.npn-confirm-count-row input {
    width: 100%;
    min-height: 33px;
    border-radius: 6px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(15, 19, 26, 0.88);
    color: #f8fafc;
    padding: 6px 10px;
    text-align: center;
    font-weight: 800;
    outline: none;
}
.npn-confirm-count-line {
    height: 1px;
    margin: 14px 0 16px;
    background: rgba(148, 163, 184, 0.16);
}
.npn-confirm-count-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    margin-bottom: 8px;
    color: #ffffff;
}
.npn-confirm-count-total strong {
    font-size: 16px;
    font-weight: 900;
}
.npn-confirm-count-total b {
    color: #4ade80;
}
.npn-confirm-count-rate {
    margin-bottom: 14px;
    color: #9fb0c6;
    font-size: 13px;
}
.npn-confirm-count-note,
.npn-confirm-count-warning {
    margin: 0;
    color: #9fb0c6;
    font-size: 13px;
    line-height: 1.5;
}
.npn-confirm-count-warning {
    color: #fecaca;
}
@media (max-width: 640px) {
    .npn-confirm-count-row {
        grid-template-columns: 1fr 92px;
    }
    .npn-confirm-count-total {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }
    body .swal2-popup.npn-confirm-count-swal .swal2-actions {
        flex-direction: column-reverse !important;
    }
    body .swal2-popup.npn-confirm-count-swal .swal2-confirm,
    body .swal2-popup.npn-confirm-count-swal .swal2-deny,
    body .swal2-popup.npn-confirm-count-swal .swal2-cancel {
        width: 100% !important;
    }
}

/* Front upload classifier debug panel */
.npn-order-classifier-debug {
    margin: 12px 0 18px;
    padding: 12px 14px;
    border: 1px solid rgba(88, 166, 255, 0.28);
    border-radius: 12px;
    background: rgba(8, 20, 38, 0.72);
    color: #b6c7dc;
    font-size: 13px;
    line-height: 1.45;
}
.npn-order-classifier-debug strong {
    display: block;
    color: #e6f1ff;
    font-size: 13px;
    margin-bottom: 4px;
}
.npn-order-classifier-debug > span {
    display: block;
}
.npn-order-classifier-debug.is-loading {
    border-color: rgba(24, 183, 216, 0.48);
    background: rgba(3, 25, 42, 0.78);
}
.npn-order-classifier-debug.is-success {
    border-color: rgba(34, 197, 94, 0.46);
    background: rgba(5, 46, 35, 0.72);
}
.npn-order-classifier-debug.is-error {
    border-color: rgba(248, 113, 113, 0.56);
    background: rgba(69, 10, 10, 0.58);
    color: #fecaca;
}
.npn-order-classifier-debug details {
    margin-top: 8px;
}
.npn-order-classifier-debug summary {
    cursor: pointer;
    color: #93c5fd;
    user-select: none;
}
.npn-order-classifier-debug pre {
    margin: 8px 0 0;
    max-height: 240px;
    overflow: auto;
    padding: 10px;
    border-radius: 10px;
    background: rgba(2, 6, 23, 0.74);
    color: #cbd5e1;
    font-size: 12px;
    white-space: pre-wrap;
}


/* v6 Image Classifier UI - match customer web style */
.npn-order-classifier-results {
    margin: 18px 0 22px;
    padding: 0;
}
.npn-classifier-results-head {
    align-items: flex-end;
    margin-bottom: 12px;
}
.npn-classifier-results-head > div {
    display: grid;
    gap: 3px;
}
.npn-classifier-results-head strong {
    color: #dffaff;
    font-size: 15px;
    letter-spacing: -0.01em;
}
.npn-classifier-results-head span {
    color: rgba(174, 197, 221, 0.78);
    font-size: 12px;
}
.npn-classifier-results-head button {
    border-color: rgba(34, 211, 238, 0.26) !important;
    border-radius: 999px !important;
    background: linear-gradient(180deg, rgba(11, 45, 72, 0.92), rgba(7, 25, 47, 0.92)) !important;
    color: #e6fbff !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.03), 0 8px 24px rgba(3, 12, 25, 0.24);
}
.npn-classifier-results-list {
    gap: 12px;
}
.npn-classifier-result-row {
    position: relative;
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px !important;
    min-height: 78px;
    padding: 14px 16px !important;
    border: 1px solid rgba(22, 208, 202, 0.35) !important;
    border-radius: 18px !important;
    background:
        radial-gradient(circle at 20% 0%, rgba(30, 198, 206, 0.16), transparent 35%),
        linear-gradient(180deg, rgba(7, 22, 45, 0.96), rgba(5, 15, 34, 0.96)) !important;
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.24), inset 0 0 0 1px rgba(255,255,255,.025);
    overflow: hidden;
}
.npn-classifier-result-row:hover {
    border-color: rgba(22, 208, 202, 0.72) !important;
    transform: translateY(-1px);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.30), 0 0 24px rgba(20, 184, 166, 0.12);
}
.npn-classifier-result-icon {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(20, 184, 166, 0.16);
    border: 1px solid rgba(45, 212, 191, 0.35);
    color: #5eead4 !important;
    font-weight: 950;
}
.npn-classifier-result-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.npn-classifier-result-copy strong {
    color: #f8fbff !important;
    font-size: 14px !important;
}
.npn-classifier-result-copy span {
    color: rgba(195, 213, 232, 0.78) !important;
}
.npn-classifier-result-copy em {
    color: rgba(148, 169, 193, 0.92) !important;
}
.npn-classifier-result-total {
    display: grid;
    justify-items: end;
    gap: 2px;
    color: #9eefff !important;
}
.npn-classifier-result-total b {
    font-size: 24px;
    line-height: 1;
    color: #31fff0;
}
.npn-classifier-result-total small {
    font-size: 10px;
    color: rgba(188, 209, 232, 0.70);
    text-transform: uppercase;
    letter-spacing: .06em;
}
body .swal2-popup.npn-confirm-count-swal {
    background:
        radial-gradient(circle at 20% 0%, rgba(18, 184, 166, 0.18), transparent 38%),
        linear-gradient(180deg, #071b33 0%, #061328 100%) !important;
    border: 1px solid rgba(32, 214, 207, 0.32) !important;
    border-radius: 26px !important;
    padding: 0 0 24px !important;
    box-shadow: 0 30px 100px rgba(0, 0, 0, 0.62), 0 0 0 1px rgba(255,255,255,.025) inset !important;
    overflow: hidden;
}
body .swal2-popup.npn-confirm-count-swal .swal2-actions {
    width: calc(100% - 54px) !important;
    margin: 22px 27px 0 !important;
    gap: 12px !important;
}
body .swal2-popup.npn-confirm-count-swal .swal2-confirm,
body .swal2-popup.npn-confirm-count-swal .swal2-deny,
body .swal2-popup.npn-confirm-count-swal .swal2-cancel {
    border-radius: 14px !important;
    min-width: 132px !important;
    padding: 13px 20px !important;
    font-weight: 900 !important;
}
body .swal2-popup.npn-confirm-count-swal .swal2-confirm {
    background: linear-gradient(135deg, #16d0ca, #20e08a) !important;
    color: #041522 !important;
}
body .swal2-popup.npn-confirm-count-swal .swal2-deny,
body .swal2-popup.npn-confirm-count-swal .swal2-cancel {
    background: rgba(22, 37, 61, 0.96) !important;
    color: #e8f5ff !important;
    border: 1px solid rgba(128, 169, 209, 0.24) !important;
}
.npn-confirm-count-popup {
    padding: 28px 27px 0 !important;
    color: #e8f6ff !important;
}
.npn-confirm-count-hero {
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
}
.npn-confirm-count-hero span {
    width: max-content;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(20, 184, 166, 0.12);
    border: 1px solid rgba(45, 212, 191, 0.25);
    color: #67e8f9;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.npn-confirm-count-hero strong {
    color: #ffffff;
    font-size: clamp(22px, 4vw, 28px);
    line-height: 1.12;
    letter-spacing: -0.045em;
}
.npn-confirm-count-hero em {
    color: #5eead4;
    font-style: normal;
    font-size: 13px;
    font-weight: 800;
}
.npn-confirm-count-popup h2 { display: none; }
.npn-confirm-count-subtitle {
    color: rgba(205, 221, 237, 0.82) !important;
    font-size: 14px !important;
    margin-bottom: 18px !important;
}
.npn-confirm-count-form {
    gap: 12px !important;
    margin-bottom: 18px !important;
}
.npn-confirm-count-row {
    grid-template-columns: 1fr 128px !important;
    gap: 16px !important;
    padding: 12px 12px 12px 14px;
    border: 1px solid rgba(56, 189, 248, 0.17);
    border-radius: 16px;
    background: rgba(4, 16, 34, 0.56);
}
.npn-confirm-count-row span {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #dbeafe !important;
    font-weight: 850 !important;
}
.npn-confirm-count-row span i {
    min-width: 36px;
    height: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: rgba(59, 130, 246, 0.18);
    color: #a5f3fc;
    font-size: 10px;
    font-style: normal;
    font-weight: 950;
    letter-spacing: .06em;
}
.npn-confirm-count-row input {
    min-height: 42px !important;
    border-radius: 12px !important;
    border-color: rgba(56, 189, 248, 0.28) !important;
    background: rgba(3, 10, 26, 0.78) !important;
    color: #ffffff !important;
    font-size: 16px;
}
.npn-confirm-count-line { display: none; }
.npn-confirm-count-total {
    margin: 4px 0 10px !important;
    padding: 16px 18px;
    border-radius: 18px;
    border: 1px solid rgba(45, 212, 191, 0.34);
    background: linear-gradient(135deg, rgba(20, 184, 166, 0.22), rgba(6, 49, 91, 0.32));
}
.npn-confirm-count-total strong {
    display: inline-flex;
    gap: 8px;
    align-items: baseline;
    color: #f8fafc !important;
}
.npn-confirm-count-total b {
    color: #27ffcb !important;
    font-size: 22px;
}
.npn-confirm-count-rate,
.npn-confirm-count-note,
.npn-confirm-count-warning {
    color: rgba(205, 221, 237, 0.78) !important;
}
.npn-confirm-count-warning {
    color: #ffd2d2 !important;
}
body .swal2-popup.npn-classifier-result-swal {
    background:
        radial-gradient(circle at 20% 0%, rgba(18, 184, 166, 0.14), transparent 42%),
        linear-gradient(180deg, #071b33 0%, #061328 100%) !important;
    border-color: rgba(32, 214, 207, 0.30) !important;
    border-radius: 26px !important;
}
.npn-classifier-popup {
    color: #e8f6ff;
}
.npn-classifier-popup-title {
    border-color: rgba(32, 214, 207, 0.18) !important;
}
.npn-classifier-popup-card {
    border-radius: 18px !important;
    background: linear-gradient(180deg, rgba(7, 26, 51, 0.94), rgba(7, 18, 38, 0.94)) !important;
    border-color: rgba(82, 180, 222, 0.20) !important;
}
.npn-classifier-popup-table-wrap {
    border: 1px solid rgba(82, 180, 222, 0.16);
    background: rgba(4, 13, 29, 0.82) !important;
}
.npn-classifier-popup-table th {
    background: rgba(13, 35, 63, 0.96) !important;
}
@media (max-width: 640px) {
    .npn-classifier-result-row {
        grid-template-columns: 32px minmax(0, 1fr);
    }
    .npn-classifier-result-total {
        grid-column: 2;
        justify-items: start;
    }
    .npn-confirm-count-row {
        grid-template-columns: 1fr 88px !important;
    }
}

/* Quote popup */
.npn-quote-popup { display: grid; gap: 16px; text-align: left; }
.npn-quote-popup-head { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.npn-quote-popup-head p { grid-column: 1 / -1; margin: 0; color: rgba(225,241,255,.72); }
.npn-quote-popup-head div { border: 1px solid rgba(103,232,249,.14); border-radius: 14px; padding: 12px; background: rgba(255,255,255,.045); }
.npn-quote-popup-head span { display: block; color: rgba(225,241,255,.62); font-size: 12px; margin-bottom: 4px; }
.npn-quote-popup-head strong { color: #fff; }
.npn-quote-popup-table { overflow: auto; border: 1px solid rgba(103,232,249,.14); border-radius: 14px; }
.npn-quote-popup-table table { width: 100%; min-width: 620px; border-collapse: collapse; }
.npn-quote-popup-table th,
.npn-quote-popup-table td { padding: 12px; border-bottom: 1px solid rgba(255,255,255,.08); }
.npn-quote-popup-table th { color: rgba(225,241,255,.64); font-size: 12px; }
.npn-quote-popup-table td { color: #fff; }
.npn-quote-popup-table button,
.npn-quote-popup-actions button { border: 1px solid rgba(103,232,249,.18); border-radius: 12px; background: rgba(255,255,255,.07); color: #eaf8ff; padding: 9px 14px; cursor: pointer; }

.npn-quote-popup-table button[data-quote-delete-row],
.npn-quote-popup-table .npn-quote-delete-row {
    border-color: rgba(248,113,113,.42);
    background: rgba(239,68,68,.16);
    color: #fecaca;
    font-weight: 800;
}
.npn-quote-popup-table button[data-quote-delete-row]:hover,
.npn-quote-popup-table .npn-quote-delete-row:hover {
    border-color: rgba(248,113,113,.72);
    background: rgba(239,68,68,.24);
    color: #fff;
}
.npn-quote-popup-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.npn-quote-popup-actions .npn-quote-agree { background: linear-gradient(135deg, #1df2e2, #0ea5e9); color: #00111f; border: 0; font-weight: 800; }

/* v61 - Retouching quote choices and folder demo browser */
.npn-order-detail-segment-retouching-quote {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 16px !important;
    padding: 12px !important;
}
.npn-order-detail-segment-retouching-quote .npn-order-tab-option.is-rate-card {
    min-height: 84px !important;
    padding: 8px !important;
    border-radius: 26px !important;
    display: flex;
}
.npn-order-detail-segment-retouching-quote .npn-order-tab-option > button[data-retouch-quote-choice] {
    width: 100%;
    min-height: 72px;
    padding: 14px 18px;
    border-radius: 22px !important;
    border: 1px solid rgba(103, 232, 249, .32) !important;
    background: linear-gradient(180deg, rgba(24, 49, 93, .94), rgba(13, 31, 72, .96)) !important;
    color: rgba(239, 248, 255, .9) !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2px;
    text-align: center;
    letter-spacing: -0.02em;
}
.npn-order-detail-segment-retouching-quote .npn-order-tab-option.is-active > button[data-retouch-quote-choice],
.npn-order-detail-segment-retouching-quote .npn-order-tab-option > button[data-retouch-quote-choice].is-active {
    background: linear-gradient(135deg, #22eee5, #14b8e6) !important;
    color: #021323 !important;
    border-color: rgba(180, 255, 255, .82) !important;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.20), 0 0 0 2px rgba(34,238,229,.22), 0 16px 36px rgba(14, 165, 233, .34);
}
.npn-order-detail-segment-retouching-quote .npn-order-tab-option > button[data-retouch-quote-choice] .npn-tab-service-name {
    font-size: clamp(16px, 1.8vw, 21px);
    font-weight: 900;
    line-height: 1.08;
}
.npn-order-detail-segment-retouching-quote .npn-order-tab-option > button[data-retouch-quote-choice] .npn-tab-meta {
    font-size: 13px;
    line-height: 1.2;
    opacity: .9;
}
.npn-retouch-demo-front-row {
    grid-column: 1 / -1;
    display: flex;
    justify-content: center;
    padding-top: 2px;
}
.npn-retouch-demo-front-btn {
    min-width: min(100%, 360px);
    min-height: 48px;
    border: 1px solid rgba(103, 232, 249, .46);
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(10, 179, 216, .34), rgba(29, 242, 226, .20));
    color: #dffcff;
    font-weight: 900;
    letter-spacing: -.01em;
    box-shadow: 0 14px 30px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.08);
}
.npn-retouch-demo-front-btn:hover,
.npn-retouch-demo-front-btn:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(165, 243, 252, .9);
    background: linear-gradient(135deg, rgba(29, 242, 226, .42), rgba(14, 165, 233, .34));
}
.npn-retouch-demo-catalog-popup .npn-catalog-popup-layout,
.npn-retouch-demo-popup-layout {
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr) !important;
}
.npn-retouch-demo-popup-images {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.npn-retouch-demo-popup-image {
    position: relative;
    padding: 14px;
    border: 1px solid rgba(107, 150, 206, .26);
    border-radius: 18px;
    background: rgba(15, 29, 62, .92);
    display: grid;
    gap: 8px;
    min-width: 0;
}
.npn-retouch-demo-popup-thumb {
    display: block;
    aspect-ratio: 4 / 3;
    border-radius: 12px;
    overflow: hidden;
    background: rgba(2, 6, 23, .55);
}
.npn-retouch-demo-popup-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.npn-retouch-demo-popup-image strong,
.npn-retouch-demo-popup-image small {
    display: block;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.npn-retouch-demo-popup-image small {
    color: rgba(226, 232, 240, .72);
}
.npn-retouch-demo-popup-view {
    min-height: 38px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, .32);
    background: rgba(15, 23, 42, .55);
    color: #f8fafc;
    font-weight: 800;
}
.npn-retouch-demo-popup-view:hover,
.npn-retouch-demo-popup-view:focus-visible {
    border-color: rgba(103, 232, 249, .72);
    background: rgba(14, 165, 233, .20);
}
@media (max-width: 900px) {
    .npn-order-detail-segment-retouching-quote,
    .npn-retouch-demo-catalog-popup .npn-catalog-popup-layout,
    .npn-retouch-demo-popup-layout {
        grid-template-columns: 1fr !important;
    }
    .npn-retouch-demo-popup-images {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 560px) {
    .npn-retouch-demo-popup-images {
        grid-template-columns: 1fr;
    }
}

/* v62 - Retouching: 3 main tabs first, quote options after tab selection */
.npn-order-detail-segment-retouching-quote {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 14px !important;
}
.npn-retouch-primary-tabs,
.npn-retouch-quote-choice-row {
    display: grid;
    gap: 14px;
    width: 100%;
}
.npn-retouch-primary-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.npn-retouch-quote-choice-row {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option,
.npn-order-detail-segment-retouching-quote .npn-retouch-quote-choice-row .npn-order-tab-option {
    min-height: 72px !important;
    padding: 8px !important;
    border-radius: 24px !important;
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option > button[data-retouch-primary-tab],
.npn-order-detail-segment-retouching-quote .npn-retouch-quote-choice-row .npn-order-tab-option > button[data-retouch-quote-choice] {
    width: 100%;
    min-height: 64px;
    padding: 14px 18px;
    border-radius: 20px !important;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option > button[data-retouch-primary-tab] {
    border: 1px solid rgba(103, 232, 249, .30) !important;
    background: linear-gradient(180deg, rgba(24, 49, 93, .94), rgba(13, 31, 72, .96)) !important;
    color: rgba(239, 248, 255, .92) !important;
    font-weight: 900;
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option.is-active > button[data-retouch-primary-tab],
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option > button[data-retouch-primary-tab].is-active {
    background: linear-gradient(135deg, #22eee5, #14b8e6) !important;
    color: #021323 !important;
    border-color: rgba(180, 255, 255, .86) !important;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.20), 0 14px 34px rgba(14, 165, 233, .30);
}
.npn-order-detail-segment-retouching-quote .npn-retouch-quote-choice-row .npn-order-tab-option > button[data-retouch-quote-choice] {
    min-height: 76px;
}
@media (max-width: 820px) {
    .npn-retouch-primary-tabs,
    .npn-retouch-quote-choice-row {
        grid-template-columns: 1fr;
    }
}

/* v64 - Retouching demo supports direct before/after images without folder list */
.npn-retouch-demo-direct-popup .npn-retouch-demo-popup-body {
    margin-top: 14px;
}
.npn-retouch-demo-direct-popup .npn-retouch-demo-popup-images {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 900px) {
    .npn-retouch-demo-direct-popup .npn-retouch-demo-popup-images {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 560px) {
    .npn-retouch-demo-direct-popup .npn-retouch-demo-popup-images {
        grid-template-columns: 1fr;
    }
}

/* v66 - Retouching primary tabs aligned with visual service cards */
.npn-order-detail-segment-retouching-quote {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 14px !important;
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tabs {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 100%;
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option.npn-visual-tab-option {
    min-height: 146px !important;
    padding: 13px !important;
    border-radius: 24px !important;
    display: grid !important;
    grid-template-rows: minmax(72px, 1fr) auto;
    gap: 12px;
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option > button[data-retouch-primary-tab].npn-custom-visual-tab {
    position: relative;
    z-index: 1;
    width: 100%;
    min-height: 72px;
    border: 0 !important;
    border-radius: 18px !important;
    padding: 14px 18px;
    display: grid;
    place-items: center;
    background: linear-gradient(180deg, rgba(30, 54, 102, .74), rgba(16, 35, 78, .82)) !important;
    color: #edf7ff !important;
    font-weight: 900;
    text-align: center;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option.is-active > button[data-retouch-primary-tab].npn-custom-visual-tab,
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option > button[data-retouch-primary-tab].npn-custom-visual-tab.is-active {
    background: linear-gradient(135deg, rgba(29,242,226,.24), rgba(14,165,233,.20)) !important;
    color: #f8feff !important;
    border: 0 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option .npn-custom-visual-tab-title {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    line-height: 1.18;
    text-transform: none;
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option .npn-custom-visual-tab-selected {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: linear-gradient(135deg, #22eee5, #0ea5e9);
    color: #031425;
    font-weight: 900;
    box-shadow: 0 10px 24px rgba(14, 165, 233, .24);
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option .npn-retouch-tab-demo-row {
    position: relative;
    z-index: 1;
    margin-top: 0;
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option .npn-retouch-demo-front-btn {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    border-radius: 16px;
    border: 1px solid rgba(103, 232, 249, .46);
    background: linear-gradient(180deg, rgba(8, 145, 178, .30), rgba(6, 95, 128, .22));
    color: #9dfbff;
    font-weight: 900;
    letter-spacing: -.01em;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option.is-active .npn-retouch-demo-front-btn,
.npn-order-detail-segment-retouching-quote .npn-retouch-primary-tab-option.is-selected .npn-retouch-demo-front-btn {
    border-color: rgba(29, 242, 226, .68);
    background: linear-gradient(135deg, rgba(29, 242, 226, .24), rgba(14, 165, 233, .22));
    color: #eaffff;
}
.npn-order-detail-segment-retouching-quote .npn-retouch-quote-choice-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(260px, 1fr)) !important;
    gap: 16px !important;
    width: 100%;
}
.npn-order-detail-segment-retouching-quote .npn-retouch-quote-choice-row .npn-order-tab-option {
    min-height: 86px !important;
}
.npn-retouch-demo-front-row { display: none !important; }
@media (max-width: 920px) {
    .npn-order-detail-segment-retouching-quote .npn-retouch-primary-tabs,
    .npn-order-detail-segment-retouching-quote .npn-retouch-quote-choice-row {
        grid-template-columns: 1fr !important;
    }
}


/* v72 - compact Retouching demo folder list and highlight Real Twilight tab */
.npn-retouch-demo-catalog-popup .npn-retouch-demo-popup-folders {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-rows: max-content !important;
    align-content: start !important;
    gap: 10px !important;
}
.npn-retouch-demo-catalog-popup .npn-retouch-demo-popup-folders .npn-catalog-popup-folder {
    margin: 0 !important;
    min-height: 64px !important;
    padding: 13px 16px !important;
}
.npn-retouch-demo-catalog-popup .npn-catalog-popup-layout,
.npn-retouch-demo-popup-layout {
    align-items: start !important;
}
.npn-retouch-demo-catalog-popup .npn-retouch-demo-popup-body,
.npn-retouch-demo-catalog-popup .npn-retouch-demo-popup-folders {
    min-height: 0 !important;
    max-height: min(70vh, 560px) !important;
}
.npn-visual-tab-option.is-real-twilight {
    border-color: rgba(250, 204, 21, 0.58) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(251, 191, 36, 0.20), transparent 46%),
        linear-gradient(180deg, rgba(91, 57, 20, 0.92), rgba(54, 35, 75, 0.94)) !important;
    box-shadow:
        0 0 0 1px rgba(251, 191, 36, 0.14),
        0 16px 34px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255,255,255,0.08) !important;
}
.npn-visual-tab-option.is-real-twilight:hover {
    border-color: rgba(253, 224, 71, 0.82) !important;
    box-shadow:
        0 0 0 1px rgba(253, 224, 71, 0.20),
        0 18px 42px rgba(251, 191, 36, 0.12),
        inset 0 1px 0 rgba(255,255,255,0.10) !important;
}
.npn-visual-tab-option.is-real-twilight .npn-custom-visual-tab {
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 237, 153, 0.20), transparent 50%),
        linear-gradient(180deg, rgba(154, 93, 33, 0.42), rgba(67, 42, 95, 0.40)) !important;
    color: #fff7d6 !important;
}
.npn-visual-tab-option.is-real-twilight .npn-custom-visual-tab-title strong {
    color: #fff7d6 !important;
    text-shadow: 0 0 18px rgba(251, 191, 36, 0.28) !important;
}
.npn-visual-tab-option.is-real-twilight .npn-tab-demo-row > .npn-tab-demo-btn,
.npn-visual-tab-option.is-real-twilight > .npn-tab-demo-btn {
    border-color: rgba(253, 224, 71, 0.58) !important;
    background: linear-gradient(135deg, rgba(251, 191, 36, 0.24), rgba(245, 158, 11, 0.18)) !important;
    color: #fff7d6 !important;
}
.npn-visual-tab-option.is-real-twilight.is-active,
.npn-visual-tab-option.is-real-twilight.is-selected {
    border-color: rgba(253, 224, 71, 0.92) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(253, 224, 71, 0.26), transparent 48%),
        linear-gradient(180deg, rgba(118, 72, 24, 0.98), rgba(76, 45, 101, 0.98)) !important;
    box-shadow:
        0 0 0 1px rgba(253, 224, 71, 0.24),
        0 0 34px rgba(251, 191, 36, 0.24),
        0 20px 42px rgba(0, 0, 0, 0.26),
        inset 0 1px 0 rgba(255, 255, 255, 0.10) !important;
}
.npn-visual-tab-option.is-real-twilight .npn-custom-visual-tab-selected {
    background: linear-gradient(135deg, #fde047, #f59e0b) !important;
    color: #221407 !important;
}


/* v73 - Real Twilight is an Editing Class tab, not a visual-section tab. */
.npn-order-detail-segment .npn-order-tab-option.is-real-twilight-class {
    border-color: rgba(250, 204, 21, 0.62) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(252, 211, 77, 0.22), transparent 48%),
        linear-gradient(180deg, rgba(125, 78, 22, 0.96), rgba(54, 37, 94, 0.98)) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.10),
        0 18px 34px rgba(0, 0, 0, 0.22),
        0 0 26px rgba(251, 191, 36, 0.13) !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-real-twilight-class > button[data-class-index] {
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 237, 153, 0.18), transparent 50%),
        linear-gradient(180deg, rgba(171, 104, 26, 0.30), rgba(79, 49, 116, 0.18)) !important;
    color: #fff7d6 !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-real-twilight-class .npn-tab-service-name {
    color: #fff4c2 !important;
    text-shadow: 0 0 18px rgba(251, 191, 36, 0.30) !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-real-twilight-class .npn-tab-demo-row > .npn-tab-demo-btn {
    border-color: rgba(253, 224, 71, 0.64) !important;
    background: linear-gradient(135deg, rgba(251, 191, 36, 0.25), rgba(245, 158, 11, 0.16)) !important;
    color: #fff7d6 !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-real-twilight-class:hover {
    border-color: rgba(253, 224, 71, 0.88) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        0 20px 42px rgba(0, 0, 0, 0.25),
        0 0 34px rgba(251, 191, 36, 0.20) !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-real-twilight-class.is-active {
    border-color: rgba(253, 224, 71, 0.98) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(253, 224, 71, 0.30), transparent 50%),
        linear-gradient(180deg, rgba(159, 96, 22, 1), rgba(82, 49, 120, 1)) !important;
    box-shadow:
        0 0 0 2px rgba(253, 224, 71, 0.22),
        0 0 0 5px rgba(251, 191, 36, 0.07),
        0 0 44px rgba(251, 191, 36, 0.30),
        0 24px 44px rgba(0, 0, 0, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
}

.npn-order-detail-segment .npn-order-tab-option.is-real-twilight-class.is-active::after {
    color: #241307 !important;
    background: linear-gradient(135deg, #fde047, #f59e0b) !important;
    box-shadow: 0 10px 24px rgba(251, 191, 36, 0.34) !important;
}

/* v71 - Quote choice options for quote-only Virtual Staging tabs */
.npn-visual-quote-choice-wrap {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(148, 163, 184, .16);
}
.npn-visual-quote-choice-wrap > label {
    display: block;
    margin-bottom: 10px;
    color: rgba(226, 239, 255, .90);
    font-weight: 800;
}
.npn-visual-quote-choice-row {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
}
.npn-visual-quote-choice-row .npn-order-tab-option {
    min-height: 74px !important;
    padding: 8px !important;
    border-radius: 24px !important;
}
.npn-visual-quote-choice-row .npn-order-tab-option > button[data-visual-quote-choice] {
    width: 100%;
    min-height: 72px;
    padding: 14px 18px;
    border-radius: 20px !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 4px;
}
.npn-visual-quote-choice-row .npn-order-tab-option > button[data-visual-quote-choice].is-active {
    background: linear-gradient(135deg, #22eee5, #14b8e6) !important;
    color: #021323 !important;
    border-color: rgba(180, 255, 255, .86) !important;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.18), 0 14px 34px rgba(14, 165, 233, .30);
}
.npn-visual-quote-choice-row .npn-tab-meta {
    color: inherit;
    opacity: .82;
}
@media (max-width: 820px) {
    .npn-visual-quote-choice-row {
        grid-template-columns: 1fr;
    }
}

/* v72 - Browser-safe placeholder while LibRaw creates a RAW thumbnail */
.npn-upload-preview-file.npn-upload-preview-raw {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 14px;
    text-align: center;
    letter-spacing: normal;
    background:
        radial-gradient(circle at 50% 18%, rgba(34, 238, 229, .22), transparent 48%),
        linear-gradient(145deg, rgba(5, 24, 50, .98), rgba(3, 12, 30, .98));
}
.npn-upload-preview-file.npn-upload-preview-raw b {
    display: block;
    color: #70efff;
    font-size: 19px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .12em;
}
.npn-upload-preview-file.npn-upload-preview-raw span,
.npn-upload-preview-file.npn-upload-preview-raw small {
    position: static !important;
    z-index: 1;
    display: block;
    max-width: 100%;
    padding: 0 !important;
    overflow: hidden;
    color: rgba(225, 241, 255, .78);
    text-overflow: ellipsis;
    white-space: nowrap;
}
.npn-upload-preview-file.npn-upload-preview-raw span {
    font-size: 11px;
    font-weight: 800;
}
.npn-upload-preview-file.npn-upload-preview-raw small {
    color: rgba(225, 241, 255, .58);
    font-size: 9px;
}

/* =========================================================
v53 - Collapsible project jobs + internal project-list scroll
========================================================= */
.npn-order-detail-project-list {
	max-height: min(620px, calc(100vh - 310px));
	overflow-y: auto;
	overflow-x: hidden;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
	scrollbar-width: thin;
	scrollbar-color: rgba(112, 239, 255, 0.45) rgba(255, 255, 255, 0.045);
}

.npn-order-detail-project-list::-webkit-scrollbar {
	width: 8px;
}

.npn-order-detail-project-list::-webkit-scrollbar-track {
	background: rgba(255, 255, 255, 0.035);
	border-radius: 999px;
}

.npn-order-detail-project-list::-webkit-scrollbar-thumb {
	background: rgba(112, 239, 255, 0.36);
	border: 2px solid transparent;
	background-clip: padding-box;
	border-radius: 999px;
}

.npn-order-detail-project-list::-webkit-scrollbar-thumb:hover {
	background: rgba(112, 239, 255, 0.58);
	border: 2px solid transparent;
	background-clip: padding-box;
}

.npn-project-folder-title {
	align-items: center;
}

.npn-project-folder-chevron {
	width: 24px;
	height: 24px;
	margin-left: auto;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.055);
	color: rgba(225, 241, 255, 0.68);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.npn-project-folder-chevron svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.npn-project-folder-title:hover .npn-project-folder-chevron {
	background: rgba(8, 213, 255, 0.12);
	color: #70efff;
}

.npn-project-folder-body {
	display: block;
}

.npn-project-folder.is-collapsed .npn-project-folder-body {
	display: none !important;
}

.npn-project-folder.is-collapsed .npn-project-folder-chevron {
	transform: rotate(-90deg);
}

.npn-project-folder.is-collapsed .npn-project-folder-title strong::after {
	content: none !important;
}

@media (max-width: 1180px) {
	.npn-order-detail-project-list {
		max-height: min(560px, calc(100vh - 220px));
	}
}

@media (max-width: 680px) {
	.npn-order-detail-project-list {
		min-height: 0;
		max-height: min(520px, calc(100vh - 180px));
		padding-right: 10px;
	}
	.npn-project-folder-title {
		gap: 7px;
	}
	.npn-project-folder-title em {
		max-width: 96px;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}
