/* NEMONET Consent Mode v2 — banner & preferences panel.
   Brand-neutral by design: every site sets --ncm-accent (banner.primary_color)
   and picks light/dark via the ncm-theme-* class — nothing else to restyle
   for a typical install. */

#ncm {
	position: fixed;
	inset: 0;
	z-index: 999999;
	pointer-events: none;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

#ncm-ov {
	position: absolute;
	inset: 0;
	background: rgba(10, 10, 10, 0.45);
	opacity: 0;
	pointer-events: none;
}

#ncm.ncm-pos-center #ncm-ov {
	opacity: 1;
	pointer-events: auto;
}

#ncm-box {
	position: absolute;
	pointer-events: auto;
	width: 100%;
	max-width: 460px;
	box-sizing: border-box;
	padding: 24px 22px 20px;
	border-radius: 14px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
	line-height: 1.5;
}

.ncm-theme-dark #ncm-box { background: #14181a; color: #eef1f2; }
.ncm-theme-light #ncm-box { background: #ffffff; color: #1a1c1e; border: 1px solid #e4e6e8; }

/* Positions */
#ncm.ncm-pos-bottom #ncm-box { left: 0; right: 0; bottom: 0; max-width: none; border-radius: 14px 14px 0 0; margin: 0 auto; }
#ncm.ncm-pos-bottom-left #ncm-box { left: 16px; bottom: 16px; }
#ncm.ncm-pos-bottom-right #ncm-box { right: 16px; bottom: 16px; }
#ncm.ncm-pos-center #ncm-box { left: 50%; top: 50%; transform: translate(-50%, -50%); }

@media (max-width: 560px) {
	#ncm.ncm-pos-bottom-left #ncm-box,
	#ncm.ncm-pos-bottom-right #ncm-box { left: 10px; right: 10px; bottom: 10px; max-width: none; }
	#ncm.ncm-pos-center #ncm-box { width: calc(100% - 20px); }
}

#ncm-h { font-size: 17px; font-weight: 600; margin: 0 0 8px; color: var(--ncm-accent, #072c25); }
#ncm-p { font-size: 13.5px; opacity: 0.85; margin: 0 0 16px; }
#ncm-p a { color: inherit; text-decoration: underline; }

#ncm-row { display: flex; gap: 8px; flex-wrap: wrap; }
#ncm-row button {
	flex: 1 1 auto;
	min-width: 110px;
	padding: 10px 12px;
	font-size: 12.5px;
	font-weight: 600;
	border-radius: 8px;
	border-width: 1px;
	border-style: solid;
	cursor: pointer;
	font-family: inherit;
	transition: opacity 0.15s, transform 0.05s;
}
#ncm-row button:active { transform: scale(0.98); }

/* Accept and Reject are deliberately styled as equals — same fill
   treatment, same size, same weight — just different colours. GDPR/EDPB
   guidance requires "equal prominence" for the two consent choices;
   giving Accept a solid fill and leaving Reject as a faint outline is
   exactly the nudge regulators flag, regardless of which one reads
   first. Customize stays visually distinct on purpose: it isn't a
   consent decision itself, just a third path to one. */
.ncm-theme-dark #ncm-rej { background: #3a3f44; color: #fff; }
.ncm-theme-light #ncm-rej { background: #4b5054; color: #fff; }
#ncm-cst { background: transparent; color: var(--ncm-accent, #072c25); border-color: var(--ncm-accent, #072c25); }
#ncm-acc { background: var(--ncm-accent, #072c25); color: #fff; }
#ncm-row button:hover { opacity: 0.85; }

#ncm-ftr { margin-top: 12px; display: flex; gap: 14px; }
#ncm-ftr a { font-size: 11.5px; color: var(--ncm-accent, #072c25); opacity: 0.85; text-decoration: underline; }
#ncm-ftr a:hover { opacity: 1; }

/* Customize view */
#ncm-cust-hd { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
#ncm-back { background: none; border: none; font-size: 16px; cursor: pointer; color: inherit; padding: 2px 6px; }
#ncm-cust-title { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.8; }

.ncm-cat { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 12px 0; border-top: 1px solid rgba(128,128,128,0.2); }
.ncm-cat:first-of-type { border-top: none; }
.ncm-cat-l { font-size: 13.5px; font-weight: 600; margin-bottom: 3px; }
.ncm-cat-d { font-size: 12px; opacity: 0.7; line-height: 1.45; }

.ncm-tgl { position: relative; flex-shrink: 0; width: 40px; height: 22px; margin-top: 2px; }
.ncm-tgl input { position: absolute; opacity: 0; width: 0; height: 0; }
.ncm-tgl-t { display: block; position: absolute; inset: 0; border-radius: 11px; background: rgba(128,128,128,0.35); cursor: pointer; transition: background 0.18s; }
.ncm-tgl input:checked + .ncm-tgl-t { background: var(--ncm-accent, #072c25); }
.ncm-tgl-t::after { content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.25); transition: transform 0.18s; }
.ncm-tgl input:checked + .ncm-tgl-t::after { transform: translateX(18px); }
.ncm-tgl input:disabled + .ncm-tgl-t { cursor: default; opacity: 0.5; }

#ncm-save {
	display: block;
	width: 100%;
	margin-top: 16px;
	padding: 11px;
	border-radius: 8px;
	border: none;
	background: var(--ncm-accent, #072c25);
	color: #fff;
	font-size: 12.5px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
}
#ncm-save:hover { opacity: 0.9; }

/* Persistent "privacy settings" footer link */
#ncm-footer-link {
	position: fixed;
	left: 12px;
	bottom: 12px;
	z-index: 999998;
	background: #14181a;
	color: #eef1f2;
	font-size: 11px;
	padding: 6px 10px;
	border-radius: 999px;
	text-decoration: none;
	opacity: 0.55;
	box-shadow: 0 2px 8px rgba(0,0,0,0.25);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
#ncm-footer-link:hover { opacity: 1; }
