.nem-consent,
.nem-consent *,
.nem-consent-reopen {
	box-sizing: border-box;
}

.nem-consent {
	--nem-consent-bg: var(--nx-panel-soft, #071829);
	--nem-consent-panel: var(--nx-panel, #0b2137);
	--nem-consent-soft: var(--nx-border, #102b43);
	--nem-consent-border: var(--nx-border, #243a56);
	--nem-consent-text: var(--nx-text, #edf6ff);
	--nem-consent-muted: var(--nx-text-muted, #a9bbcd);
	--nem-consent-accent: #2dd4d0;
	position: fixed;
	z-index: 2147483000;
	inset: auto 18px 18px;
	display: flex;
	justify-content: center;
	pointer-events: none;
	font-family: var(--nx-font-family, "Outfit", Inter, system-ui, sans-serif);
}

.nem-consent[hidden],
.nem-consent-reopen[hidden],
.nem-consent [hidden] {
	display: none !important;
}

.nem-consent__panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 20px;
	width: min(1120px, 100%);
	max-height: calc(100vh - 36px);
	overflow: auto;
	padding: 20px 22px;
	border: 1px solid var(--nem-consent-border);
	border-radius: 18px;
	background:
		linear-gradient(145deg, rgba(15, 47, 72, .98), rgba(5, 19, 34, .99)),
		var(--nem-consent-bg);
	color: var(--nem-consent-text);
	box-shadow: 0 28px 80px rgba(0, 0, 0, .58);
	pointer-events: auto;
}

.nem-consent__eyebrow {
	color: var(--nem-consent-accent);
	font-size: 10px;
	font-weight: 850;
	letter-spacing: .13em;
}

.nem-consent__intro h2 {
	margin: 5px 0 7px;
	color: var(--nem-consent-text);
	font-size: clamp(18px, 2vw, 24px);
	line-height: 1.15;
}

.nem-consent__intro p {
	max-width: 760px;
	margin: 0;
	color: var(--nem-consent-muted);
	font-size: 13px;
	line-height: 1.55;
}

.nem-consent__links {
	display: flex;
	gap: 14px;
	margin-top: 8px !important;
}

.nem-consent__links a {
	color: var(--nem-consent-accent);
	font-weight: 750;
	text-decoration: none;
}

.nem-consent__links a:hover,
.nem-consent__links a:focus-visible {
	text-decoration: underline;
}

.nem-consent__summary {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 9px;
	min-width: max-content;
}

.nem-consent__button {
	min-height: 40px;
	padding: 9px 14px;
	border: 1px solid var(--nem-consent-border);
	border-radius: 10px;
	background: var(--nem-consent-soft);
	color: var(--nem-consent-text);
	font: inherit;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
}

.nem-consent__button.is-primary {
	border-color: transparent;
	background: linear-gradient(135deg, var(--nx-emerald-soft, #17c9a5), var(--nx-cyan, #2ac9eb));
	color: var(--nx-bg-deep, #03161b);
}

.nem-consent__button:hover:not(:disabled),
.nem-consent__button:focus-visible {
	transform: translateY(-1px);
	filter: brightness(1.08);
}

.nem-consent__button:disabled,
.nem-consent input:disabled {
	cursor: wait;
	opacity: .58;
}

.nem-consent__preferences {
	grid-column: 1 / -1;
	display: grid;
	gap: 9px;
}

.nem-consent__choice {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 12px 14px;
	border: 1px solid var(--nem-consent-border);
	border-radius: 12px;
	background: rgba(8, 29, 48, .82);
}

.nem-consent__choice div {
	display: grid;
	gap: 3px;
}

.nem-consent__choice strong {
	color: var(--nem-consent-text);
	font-size: 13px;
}

.nem-consent__choice span {
	color: var(--nem-consent-muted);
	font-size: 12px;
	line-height: 1.4;
}

.nem-consent__choice input {
	flex: 0 0 auto;
	width: 21px;
	height: 21px;
	accent-color: var(--nem-consent-accent);
}

.nem-consent__required {
	flex: 0 0 auto;
	padding: 5px 8px;
	border-radius: 999px;
	background: rgba(45, 212, 208, .12);
	color: var(--nem-consent-accent) !important;
	font-weight: 800;
}

.nem-consent__preference-actions {
	display: flex;
	justify-content: flex-end;
	gap: 9px;
}

.nem-consent__status {
	grid-column: 1 / -1;
	margin: 0;
	color: var(--nx-emerald-soft, #9ff0d2);
	font-size: 12px;
	font-weight: 750;
}

.nem-consent__status.is-error {
	color: var(--nx-rose-soft, #ffb4c5);
}

/*
 * This control is appended to <body>, outside the page component that owns the
 * visible content. Some legacy surfaces therefore reach it with global button
 * rules (including !important declarations). Treat it as an isolated widget so
 * Privacy choices has one shape and type treatment everywhere.
 */
button.nem-consent-reopen[data-nem-consent-reopen] {
	-webkit-appearance: none !important;
	appearance: none !important;
	position: fixed !important;
	z-index: 2147482999 !important;
	top: auto !important;
	/* 22px edge + 58px Help launcher + 12px breathing room. */
	right: 92px !important;
	bottom: 18px !important;
	left: auto !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 7px !important;
	box-sizing: border-box !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	height: auto !important;
	min-height: 34px !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 7px 11px !important;
	border: 1px solid var(--nx-border, #243a56) !important;
	border-radius: 999px !important;
	background: var(--nx-panel, #0b2137) !important;
	background-image: none !important;
	color: var(--nx-text, #dff5ff) !important;
	box-shadow: 0 8px 28px rgba(0, 0, 0, .32) !important;
	font: 750 11px/1.2 var(--nx-font-family, "Outfit", Inter, system-ui, sans-serif) !important;
	letter-spacing: normal !important;
	text-align: center !important;
	text-decoration: none !important;
	text-indent: 0 !important;
	text-shadow: none !important;
	text-transform: none !important;
	white-space: nowrap !important;
	opacity: 1 !important;
	visibility: visible !important;
	cursor: pointer !important;
}

button.nem-consent-reopen[data-nem-consent-reopen][hidden] {
	display: none !important;
}

button.nem-consent-reopen[data-nem-consent-reopen] > span {
	display: inline-block !important;
	flex: 0 0 auto !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: #2dd4d0 !important;
	font: inherit !important;
	line-height: 1 !important;
}

@media (max-width: 900px) {
	.nem-consent__panel {
		grid-template-columns: 1fr;
	}

	.nem-consent__summary {
		flex-wrap: wrap;
		justify-content: flex-start;
		min-width: 0;
	}
}

@media (max-width: 620px) {
	.nem-consent {
		inset: auto 8px 8px;
	}

	.nem-consent__panel {
		gap: 14px;
		padding: 16px;
		border-radius: 14px;
	}

	.nem-consent__summary,
	.nem-consent__preference-actions {
		display: grid;
		grid-template-columns: 1fr;
	}

	.nem-consent__button {
		width: 100%;
	}

	.nem-consent__choice {
		align-items: flex-start;
	}

	button.nem-consent-reopen[data-nem-consent-reopen] {
		right: 68px !important;
		bottom: 12px !important;
		padding: 8px !important;
		font-size: 0 !important;
	}

	button.nem-consent-reopen[data-nem-consent-reopen] > span {
		font-size: 14px !important;
	}
}
