/* Shared badge rendering (admin designer + front-end preview). */
.ebc-badge {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #fff;
	-webkit-user-select: none;
	user-select: none;
	line-height: 1;
}
.ebc-badge--no-bg {
	background:
		repeating-conic-gradient(#f0f0f1 0% 25%, #fff 0% 50%) 50% / 24px 24px;
	outline: 1px dashed #c3c4c7;
}
.ebc-badge__bg {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	display: block;
	object-fit: fill;
	pointer-events: none;
}
.ebc-badge__name { position: absolute; inset: 0; pointer-events: none; }
.ebc-badge__line {
	position: absolute;
	white-space: nowrap;
	overflow: visible;
	font-weight: normal;
	letter-spacing: normal;
	text-transform: none;
	margin: 0;
	padding: 0;
	transition: opacity .2s ease;
}
.ebc-badge__name.is-placeholder .ebc-badge__line { opacity: .28; }
.ebc-badge__qr { position: absolute; pointer-events: none; }
.ebc-badge__qr svg { display: block; width: 100%; height: 100%; }
.ebc-badge__qr.is-placeholder { opacity: .22; filter: blur(2px); }
.ebc-badge__qr:not(.is-placeholder) { animation: ebc-qr-in .45s ease both; }
@keyframes ebc-qr-in { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
	.ebc-badge__qr:not(.is-placeholder) { animation: none; }
}
