.eshpos-loyalty {
	--eshpos-loyalty-ink: #101828;
	--eshpos-loyalty-muted: #667085;
	--eshpos-loyalty-line: #e4e7ec;
	--eshpos-loyalty-bg: #f8fafc;
	--eshpos-loyalty-card: #ffffff;
	--eshpos-loyalty-accent: #175cd3;
	--eshpos-loyalty-accent-deep: #0f4f99;
	--eshpos-loyalty-accent-soft: #eff4ff;
	--eshpos-loyalty-good: #067647;
	--eshpos-loyalty-good-soft: #ecfdf3;
	--eshpos-loyalty-warn: #b42318;
	--eshpos-loyalty-warn-soft: #fef3f2;
	--eshpos-loyalty-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 12px 28px rgba(16, 24, 40, 0.06);
	box-sizing: border-box;
	color: var(--eshpos-loyalty-ink);
	display: grid;
	gap: 20px;
	width: 100%;
}

.eshpos-loyalty *,
.eshpos-loyalty *::before,
.eshpos-loyalty *::after {
	box-sizing: border-box;
}

.eshpos-loyalty__hero {
	align-items: stretch;
	background:
		radial-gradient(circle at 12% 18%, rgba(23, 92, 211, 0.12), transparent 34%),
		radial-gradient(circle at 88% 8%, rgba(6, 118, 71, 0.1), transparent 28%),
		linear-gradient(145deg, #f5f9ff 0%, #eef3f9 52%, #f7fafc 100%);
	border: 1px solid #dbe4f0;
	border-radius: 22px;
	box-shadow: var(--eshpos-loyalty-shadow);
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.95fr);
	overflow: hidden;
	padding: 24px;
	position: relative;
}

.eshpos-loyalty__hero::after {
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.55), transparent);
	content: "";
	height: 1px;
	left: 24px;
	opacity: 0.8;
	position: absolute;
	right: 24px;
	top: 0;
}

.eshpos-loyalty__hero-main {
	display: grid;
	gap: 16px;
	grid-template-columns: minmax(0, 1.2fr) minmax(180px, 0.8fr);
}

.eshpos-loyalty__eyebrow {
	color: var(--eshpos-loyalty-accent);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin: 0 0 10px;
	text-transform: uppercase;
}

.eshpos-loyalty__hero-copy h2 {
	color: var(--eshpos-loyalty-ink);
	font-size: clamp(1.7rem, 2.6vw, 2.15rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.12;
	margin: 0 0 10px;
}

.eshpos-loyalty__hero-copy p {
	color: var(--eshpos-loyalty-muted);
	font-size: 0.98rem;
	line-height: 1.6;
	margin: 0;
	max-width: 34rem;
}

.eshpos-loyalty__balance-card {
	align-content: start;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid #d7e3f0;
	border-radius: 18px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 10px 24px rgba(16, 24, 40, 0.05);
	display: grid;
	gap: 8px;
	padding: 18px 18px 16px;
}

.eshpos-loyalty__balance-label {
	color: var(--eshpos-loyalty-muted);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.eshpos-loyalty__balance-row {
	align-items: baseline;
	display: flex;
	gap: 8px;
}

.eshpos-loyalty__balance-value {
	color: var(--eshpos-loyalty-ink);
	font-size: clamp(2.4rem, 5vw, 3.1rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 0.95;
}

.eshpos-loyalty__balance-unit {
	color: var(--eshpos-loyalty-accent);
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.eshpos-loyalty__balance-meta {
	color: var(--eshpos-loyalty-good);
	font-size: 0.9rem;
	font-weight: 700;
}

.eshpos-loyalty__member-qr {
	align-items: center;
	background: rgba(255, 255, 255, 0.96);
	border: 1px solid #d7e3f0;
	border-radius: 18px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85), 0 10px 24px rgba(16, 24, 40, 0.05);
	display: grid;
	gap: 14px;
	grid-template-columns: 118px minmax(0, 1fr);
	padding: 16px;
}

.eshpos-loyalty__member-qr-code {
	align-items: center;
	aspect-ratio: 1;
	background:
		linear-gradient(#fff, #fff) padding-box,
		linear-gradient(145deg, #91b8f5, #b7ecd0) border-box;
	border: 1px solid transparent;
	border-radius: 14px;
	display: flex;
	justify-content: center;
	padding: 8px;
}

.eshpos-loyalty__member-qr-code svg {
	display: block;
	height: auto;
	max-width: 100%;
	width: 100%;
}

.eshpos-loyalty__member-qr-title {
	color: var(--eshpos-loyalty-ink);
	display: block;
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 4px 0 6px;
}

.eshpos-loyalty__member-qr-copy p {
	color: var(--eshpos-loyalty-muted);
	font-size: 0.86rem;
	line-height: 1.5;
	margin: 0 0 10px;
}

.eshpos-loyalty__member-qr-copy code {
	background: var(--eshpos-loyalty-bg);
	border: 1px solid var(--eshpos-loyalty-line);
	border-radius: 999px;
	color: var(--eshpos-loyalty-ink);
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	padding: 6px 10px;
}

.eshpos-loyalty__expiry-note {
	align-items: center;
	color: #98a2b3;
	display: flex;
	flex-wrap: wrap;
	font-size: 0.78rem;
	gap: 6px 8px;
	letter-spacing: 0.01em;
	line-height: 1.4;
	margin: -6px 2px 0;
}

.eshpos-loyalty__expiry-sep {
	color: #d0d5dd;
}

.eshpos-loyalty__panel {
	background: var(--eshpos-loyalty-card);
	border: 1px solid var(--eshpos-loyalty-line);
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.03);
	overflow: hidden;
}

.eshpos-loyalty__panel--wide {
	width: 100%;
}

.eshpos-loyalty__panel-summary {
	align-items: flex-start;
	cursor: pointer;
	display: grid;
	gap: 4px;
	list-style: none;
	padding: 16px 44px 16px 18px;
	position: relative;
	user-select: none;
}

.eshpos-loyalty__panel-summary::-webkit-details-marker {
	display: none;
}

.eshpos-loyalty__panel-summary::after {
	border-right: 2px solid #98a2b3;
	border-bottom: 2px solid #98a2b3;
	content: "";
	height: 8px;
	margin-top: -5px;
	position: absolute;
	right: 18px;
	top: 50%;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
	width: 8px;
}

.eshpos-loyalty__panel[open] > .eshpos-loyalty__panel-summary::after {
	margin-top: -2px;
	transform: rotate(225deg);
}

.eshpos-loyalty__panel-title {
	color: var(--eshpos-loyalty-ink);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.eshpos-loyalty__panel-desc {
	color: var(--eshpos-loyalty-muted);
	font-size: 0.86rem;
	line-height: 1.45;
}

.eshpos-loyalty__panel-body {
	border-top: 1px solid var(--eshpos-loyalty-line);
	padding: 16px 18px 18px;
}

.eshpos-loyalty__panel-body .eshpos-loyalty__rules {
	margin: 0;
}

.eshpos-loyalty__panel-body .eshpos-loyalty__card::before,
.eshpos-loyalty__panel::before {
	display: none;
}

/* Animated Loyalty nav icon */
.woocommerce-MyAccount-navigation-link--loyalty > a {
	align-items: center;
	display: flex !important;
	gap: 0.55em;
}

.woocommerce-MyAccount-navigation-link--loyalty > a > .eshpos-loyalty-nav-icon {
	animation: eshpos-loyalty-icon-pulse 1.8s ease-in-out infinite;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 3l1.8 4.2L18 9l-4.2 1.8L12 15l-1.8-4.2L6 9l4.2-1.8L12 3z' fill='%23175cd3'/%3E%3Cpath d='M18.5 14.5l.9 2.1 2.1.9-2.1.9-.9 2.1-.9-2.1-2.1-.9 2.1-.9.9-2.1z' fill='%23067647'/%3E%3Cpath d='M6.2 15.2l.7 1.6 1.6.7-1.6.7-.7 1.6-.7-1.6-1.6-.7 1.6-.7.7-1.6z' fill='%23e11d48'/%3E%3C/svg%3E");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	display: inline-block;
	flex: 0 0 auto;
	height: 1.15em;
	transform-origin: center;
	width: 1.15em;
}

.woocommerce-MyAccount-navigation-link--loyalty.is-active > a > .eshpos-loyalty-nav-icon,
.woocommerce-MyAccount-navigation-link--loyalty > a:hover > .eshpos-loyalty-nav-icon {
	animation: eshpos-loyalty-icon-spin 2.4s linear infinite;
}

.woocommerce-MyAccount-navigation-link--loyalty.eshpos-loyalty-nav-ready > a > svg,
.woocommerce-MyAccount-navigation-link--loyalty.eshpos-loyalty-nav-ready > a > i,
.woocommerce-MyAccount-navigation-link--loyalty.eshpos-loyalty-nav-ready > a > .ct-icon-container,
.woocommerce-MyAccount-navigation-link--loyalty.eshpos-loyalty-nav-ready > a > .icon {
	display: none !important;
}

@keyframes eshpos-loyalty-icon-pulse {
	0%,
	100% {
		filter: drop-shadow(0 0 0 rgba(23, 92, 211, 0));
		transform: scale(1);
	}
	50% {
		filter: drop-shadow(0 0 6px rgba(23, 92, 211, 0.4));
		transform: scale(1.12);
	}
}

@keyframes eshpos-loyalty-icon-spin {
	0% {
		transform: rotate(0deg) scale(1.05);
	}
	50% {
		transform: rotate(180deg) scale(1.14);
	}
	100% {
		transform: rotate(360deg) scale(1.05);
	}
}

.eshpos-loyalty__rules {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.eshpos-loyalty__rules article {
	background: var(--eshpos-loyalty-card);
	border: 1px solid var(--eshpos-loyalty-line);
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.03);
	display: grid;
	gap: 8px;
	padding: 16px 16px 15px;
	position: relative;
	transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.eshpos-loyalty__rules article:hover {
	border-color: #c7d7ea;
	box-shadow: var(--eshpos-loyalty-shadow);
	transform: translateY(-1px);
}

.eshpos-loyalty__rules article::before {
	background: var(--eshpos-loyalty-accent-soft);
	border-radius: 999px;
	color: var(--eshpos-loyalty-accent);
	content: "";
	display: block;
	font-size: 12px;
	font-weight: 800;
	height: 28px;
	letter-spacing: 0.02em;
	line-height: 28px;
	margin-bottom: 2px;
	text-align: center;
	width: 28px;
}

.eshpos-loyalty__rules article.is-earn::before {
	content: "1";
}

.eshpos-loyalty__rules article.is-redeem::before {
	background: var(--eshpos-loyalty-good-soft);
	color: var(--eshpos-loyalty-good);
	content: "2";
}

.eshpos-loyalty__rules article.is-minimum::before {
	background: #fff4ed;
	color: #c4320a;
	content: "3";
}

.eshpos-loyalty__rules span {
	color: var(--eshpos-loyalty-muted);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.eshpos-loyalty__rules strong {
	color: var(--eshpos-loyalty-ink);
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.35;
}

.eshpos-loyalty__grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.eshpos-loyalty__card {
	background: var(--eshpos-loyalty-card);
	border: 1px solid var(--eshpos-loyalty-line);
	border-radius: 18px;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.03);
	padding: 20px;
	position: relative;
}

.eshpos-loyalty__card::before {
	background: linear-gradient(90deg, var(--eshpos-loyalty-accent), #57a0ff);
	border-radius: 18px 18px 0 0;
	content: "";
	height: 3px;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.eshpos-loyalty__card--wide {
	width: 100%;
}

.eshpos-loyalty__card--wide::before {
	background: linear-gradient(90deg, #667085, #98a2b3);
}

.eshpos-loyalty__card-head {
	margin-bottom: 18px;
}

.eshpos-loyalty__card-head h3 {
	color: var(--eshpos-loyalty-ink);
	font-size: 1.12rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 0 6px;
}

.eshpos-loyalty__card-head p {
	color: var(--eshpos-loyalty-muted);
	font-size: 0.92rem;
	line-height: 1.5;
	margin: 0;
}

.eshpos-loyalty__form label {
	color: var(--eshpos-loyalty-ink);
	display: block;
	font-size: 0.88rem;
	font-weight: 700;
	margin-bottom: 8px;
}

.eshpos-loyalty__form-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.eshpos-loyalty__form input[type="number"] {
	background: #fff;
	border: 1px solid #cfd8e3;
	border-radius: 12px;
	box-shadow: 0 1px 1px rgba(16, 24, 40, 0.03);
	flex: 1 1 120px;
	font-size: 1rem;
	font-weight: 700;
	max-width: 160px;
	min-height: 46px;
	padding: 10px 12px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.eshpos-loyalty__form input[type="number"]:focus {
	border-color: #84a9e0;
	box-shadow: 0 0 0 4px rgba(23, 92, 211, 0.12);
	outline: none;
}

.eshpos-loyalty__button {
	align-items: center;
	background: var(--eshpos-loyalty-accent);
	border: 1px solid var(--eshpos-loyalty-accent);
	border-radius: 12px;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font-size: 0.94rem;
	font-weight: 700;
	justify-content: center;
	min-height: 46px;
	padding: 10px 16px;
	text-decoration: none;
	transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.eshpos-loyalty__button:hover {
	background: var(--eshpos-loyalty-accent-deep);
	border-color: var(--eshpos-loyalty-accent-deep);
	color: #fff;
	transform: translateY(-1px);
}

.eshpos-loyalty__button--ghost {
	background: #fff;
	border-color: #c8d2dc;
	box-shadow: none;
	color: var(--eshpos-loyalty-ink);
}

.eshpos-loyalty__button--ghost:hover {
	background: var(--eshpos-loyalty-bg);
	border-color: #b7c3d0;
	color: var(--eshpos-loyalty-ink);
}

.eshpos-loyalty__hint {
	background: var(--eshpos-loyalty-accent-soft);
	border-radius: 10px;
	color: var(--eshpos-loyalty-accent-deep);
	font-size: 0.86rem;
	font-weight: 600;
	margin: 12px 0 0;
	padding: 10px 12px;
}

.eshpos-loyalty__empty {
	align-items: flex-start;
	background:
		radial-gradient(circle at top left, rgba(23, 92, 211, 0.06), transparent 45%),
		var(--eshpos-loyalty-bg);
	border: 1px dashed #d0d5dd;
	border-radius: 14px;
	display: grid;
	gap: 12px;
	justify-items: start;
	padding: 20px;
}

.eshpos-loyalty__empty p {
	color: var(--eshpos-loyalty-muted);
	line-height: 1.5;
	margin: 0;
}

.eshpos-loyalty__voucher-list {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.eshpos-loyalty__voucher {
	align-items: center;
	background: linear-gradient(180deg, #fcfdff 0%, #f7f9fc 100%);
	border: 1px solid var(--eshpos-loyalty-line);
	border-radius: 14px;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	padding: 14px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.eshpos-loyalty__voucher:hover {
	border-color: #c7d7ea;
	box-shadow: 0 8px 18px rgba(16, 24, 40, 0.05);
}

.eshpos-loyalty__voucher code {
	background: transparent;
	color: var(--eshpos-loyalty-ink);
	display: block;
	font-size: 0.98rem;
	font-weight: 800;
	letter-spacing: 0.04em;
}

.eshpos-loyalty__voucher span {
	color: var(--eshpos-loyalty-muted);
	display: block;
	font-size: 0.85rem;
	margin-top: 3px;
}

.eshpos-loyalty__copy {
	background: #fff;
	border: 1px solid #c8d2dc;
	border-radius: 10px;
	color: var(--eshpos-loyalty-ink);
	cursor: pointer;
	flex: 0 0 auto;
	font-size: 0.84rem;
	font-weight: 700;
	min-height: 36px;
	padding: 8px 12px;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.eshpos-loyalty__copy:hover {
	background: var(--eshpos-loyalty-accent-soft);
	border-color: #9db8d9;
}

.eshpos-loyalty__voucher-actions {
	display: flex;
	flex: 0 0 auto;
	flex-wrap: wrap;
	gap: 8px;
}

.eshpos-loyalty__view {
	background: var(--eshpos-loyalty-accent);
	border-color: var(--eshpos-loyalty-accent);
	color: #fff;
}

.eshpos-loyalty__view:hover {
	background: var(--eshpos-loyalty-accent-deep);
	border-color: var(--eshpos-loyalty-accent-deep);
	color: #fff;
}

.eshpos-loyalty__table-wrap {
	overflow-x: auto;
	width: 100%;
}

.eshpos-loyalty__table {
	border-collapse: collapse;
	width: 100%;
}

.eshpos-loyalty__table th,
.eshpos-loyalty__table td {
	border-bottom: 1px solid var(--eshpos-loyalty-line);
	padding: 13px 10px;
	text-align: left;
	vertical-align: top;
}

.eshpos-loyalty__table th {
	color: var(--eshpos-loyalty-muted);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.eshpos-loyalty__table tbody tr:hover td {
	background: #fafbff;
}

.eshpos-loyalty__table td {
	color: var(--eshpos-loyalty-ink);
	font-size: 0.92rem;
}

.eshpos-loyalty__table code {
	background: var(--eshpos-loyalty-bg);
	border-radius: 8px;
	font-weight: 700;
	padding: 3px 7px;
}

.eshpos-loyalty__table .is-positive {
	color: var(--eshpos-loyalty-good);
	font-weight: 800;
}

.eshpos-loyalty__table .is-negative {
	color: var(--eshpos-loyalty-warn);
	font-weight: 800;
}

.eshpos-loyalty__type {
	border-radius: 999px;
	display: inline-flex;
	font-size: 12px;
	font-weight: 700;
	padding: 4px 10px;
}

.eshpos-loyalty__type.is-earn,
.eshpos-loyalty__type.is-active {
	background: var(--eshpos-loyalty-good-soft);
	color: var(--eshpos-loyalty-good);
}

.eshpos-loyalty__type.is-voucher,
.eshpos-loyalty__type.is-redeem,
.eshpos-loyalty__type.is-used {
	background: var(--eshpos-loyalty-warn-soft);
	color: var(--eshpos-loyalty-warn);
}

.eshpos-loyalty__type.is-adjust,
.eshpos-loyalty__type.is-void,
.eshpos-loyalty__type.is-expired,
.eshpos-loyalty__type.is-expire {
	background: var(--eshpos-loyalty-accent-soft);
	color: var(--eshpos-loyalty-accent);
}

.eshpos-loyalty__note {
	color: var(--eshpos-loyalty-muted);
	display: block;
	font-size: 0.82rem;
	margin-top: 4px;
}

.eshpos-voucher-modal {
	align-items: center;
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 24px 16px;
	position: fixed;
	z-index: 100000;
}

.eshpos-voucher-modal[hidden] {
	display: none !important;
}

.eshpos-voucher-modal__backdrop {
	background: rgba(15, 23, 42, 0.55);
	inset: 0;
	position: absolute;
}

.eshpos-voucher-modal__dialog {
	background: transparent;
	max-height: calc(100vh - 48px);
	max-width: 440px;
	overflow: auto;
	position: relative;
	width: 100%;
	z-index: 1;
}

.eshpos-voucher-modal__toolbar {
	display: flex;
	gap: 8px;
	justify-content: flex-end;
	margin-bottom: 10px;
}

.eshpos-voucher-sheet {
	background: #fff;
	border: 1px solid #d7e0ea;
	border-radius: 18px;
	box-shadow: 0 24px 60px rgba(15, 23, 42, 0.22);
	overflow: hidden;
}

.eshpos-voucher-sheet__inner {
	background:
		radial-gradient(circle at top right, rgba(23, 92, 211, 0.08), transparent 42%),
		linear-gradient(180deg, #f8fbff 0%, #ffffff 38%);
	padding: 22px 20px 20px;
}

.eshpos-voucher-sheet__header {
	border-bottom: 1px dashed #d5dee8;
	margin-bottom: 18px;
	padding-bottom: 16px;
	text-align: center;
}

.eshpos-voucher-sheet__logo {
	display: block;
	height: auto;
	margin: 0 auto 12px;
	max-height: 64px;
	max-width: 180px;
	object-fit: contain;
}

.eshpos-voucher-sheet__store {
	color: var(--eshpos-loyalty-ink);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 0 10px;
}

.eshpos-voucher-sheet__eyebrow {
	color: var(--eshpos-loyalty-accent);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin: 0 0 8px;
	text-transform: uppercase;
}

.eshpos-voucher-sheet__header h2 {
	color: var(--eshpos-loyalty-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 1.35rem;
	letter-spacing: 0.06em;
	margin: 0 0 8px;
}

.eshpos-voucher-sheet__lead {
	color: var(--eshpos-loyalty-muted);
	font-size: 0.88rem;
	line-height: 1.45;
	margin: 0 auto;
	max-width: 28rem;
}

.eshpos-voucher-sheet__codes {
	align-items: center;
	display: grid;
	gap: 14px;
	grid-template-columns: 1.4fr 0.8fr;
	margin-bottom: 18px;
}

.eshpos-voucher-sheet__barcode,
.eshpos-voucher-sheet__qr {
	align-items: center;
	background: #fff;
	border: 1px solid #e2e8ef;
	border-radius: 12px;
	display: flex;
	justify-content: center;
	min-height: 120px;
	padding: 12px;
}

.eshpos-voucher-sheet__barcode svg,
.eshpos-voucher-sheet__qr svg {
	display: block;
	height: auto;
	max-width: 100%;
	width: 100%;
}

.eshpos-voucher-sheet__qr svg {
	max-width: 132px;
}

.eshpos-voucher-sheet__meta {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
}

.eshpos-voucher-sheet__meta > div {
	background: var(--eshpos-loyalty-bg);
	border: 1px solid var(--eshpos-loyalty-line);
	border-radius: 12px;
	padding: 10px 12px;
}

.eshpos-voucher-sheet__meta dt {
	color: var(--eshpos-loyalty-muted);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.04em;
	margin: 0 0 4px;
	text-transform: uppercase;
}

.eshpos-voucher-sheet__meta dd {
	color: var(--eshpos-loyalty-ink);
	font-size: 0.95rem;
	font-weight: 700;
	margin: 0;
}

.eshpos-voucher-sheet__meta code {
	background: transparent;
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.04em;
}

.eshpos-voucher-sheet__empty {
	color: var(--eshpos-loyalty-muted);
	margin: 0;
	padding: 24px;
	text-align: center;
}

body.eshpos-voucher-modal-open {
	overflow: hidden;
}

@media print {
	body.eshpos-voucher-modal-open * {
		visibility: hidden !important;
	}

	body.eshpos-voucher-modal-open .eshpos-voucher-modal,
	body.eshpos-voucher-modal-open .eshpos-voucher-modal * {
		visibility: visible !important;
	}

	body.eshpos-voucher-modal-open .eshpos-voucher-modal {
		background: #fff;
		inset: 0;
		padding: 0;
		position: absolute;
	}

	body.eshpos-voucher-modal-open .eshpos-voucher-modal__backdrop,
	body.eshpos-voucher-modal-open .eshpos-voucher-modal__toolbar {
		display: none !important;
	}

	body.eshpos-voucher-modal-open .eshpos-voucher-modal__dialog {
		max-width: none;
		width: 100%;
	}

	body.eshpos-voucher-modal-open .eshpos-voucher-sheet {
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}
}

@media (max-width: 1100px) {
	.eshpos-loyalty__hero,
	.eshpos-loyalty__hero-main {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.eshpos-loyalty__rules,
	.eshpos-loyalty__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.eshpos-loyalty {
		gap: 14px;
	}

	.eshpos-loyalty__hero,
	.eshpos-loyalty__card {
		border-radius: 16px;
		padding: 16px;
	}

	.eshpos-loyalty__form-row {
		flex-direction: column;
	}

	.eshpos-loyalty__form input[type="number"],
	.eshpos-loyalty__button {
		max-width: none;
		width: 100%;
	}

	.eshpos-loyalty__voucher {
		align-items: flex-start;
		flex-direction: column;
	}

	.eshpos-loyalty__voucher-actions,
	.eshpos-loyalty__copy {
		width: 100%;
	}

	.eshpos-loyalty__voucher-actions .eshpos-loyalty__copy {
		flex: 1 1 auto;
	}

	.eshpos-loyalty__member-qr {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	.eshpos-loyalty__member-qr-code {
		max-width: 168px;
		width: 100%;
	}

	.eshpos-loyalty__member-qr-copy {
		width: 100%;
	}

	.eshpos-loyalty__member-qr-copy p {
		margin-left: auto;
		margin-right: auto;
		max-width: 28ch;
	}

	.eshpos-voucher-sheet__codes,
	.eshpos-voucher-sheet__meta {
		grid-template-columns: 1fr;
	}

	.eshpos-loyalty__table thead {
		display: none;
	}

	.eshpos-loyalty__table,
	.eshpos-loyalty__table tbody,
	.eshpos-loyalty__table tr,
	.eshpos-loyalty__table td {
		display: block;
		width: 100%;
	}

	.eshpos-loyalty__table tr {
		background: var(--eshpos-loyalty-bg);
		border: 1px solid var(--eshpos-loyalty-line);
		border-radius: 12px;
		margin-bottom: 10px;
		padding: 8px 12px;
	}

	.eshpos-loyalty__table td {
		border: 0;
		padding: 8px 0;
	}

	.eshpos-loyalty__table tbody tr:hover td {
		background: transparent;
	}

	.eshpos-loyalty__table td::before {
		color: var(--eshpos-loyalty-muted);
		content: attr(data-label);
		display: block;
		font-size: 11px;
		font-weight: 800;
		letter-spacing: 0.04em;
		margin-bottom: 4px;
		text-transform: uppercase;
	}
}

/* Mobile-friendly WooCommerce My Account navigation */
@media (max-width: 781px) {
	body.woocommerce-account .site-content,
	body.woocommerce-account .entry-content,
	body.woocommerce-account .ct-container,
	body.woocommerce-account .ct-container-full,
	body.woocommerce-account .ast-container,
	body.woocommerce-account .wp-block-group,
	body.woocommerce-account main {
		padding-left: max(16px, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(16px, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
	}

	body.woocommerce-account .woocommerce,
	body.woocommerce-account .woocommerce-MyAccount-content,
	body.woocommerce-account .woocommerce-MyAccount-navigation {
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
	}

	body.woocommerce-account .woocommerce {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation {
		margin: 0 0 16px !important;
	}

	body.woocommerce-account .eshpos-loyalty {
		padding-left: 0;
		padding-right: 0;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation ul,
	body.woocommerce-account .woocommerce-MyAccount-navigation > ul {
		align-items: stretch;
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		gap: 8px;
		grid-template-columns: none !important;
		list-style: none !important;
		margin: 0 !important;
		overflow-x: auto;
		overflow-y: hidden;
		padding: 2px 0 12px !important;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
		scrollbar-width: thin;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
		height: 4px;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar-thumb {
		background: #d0d5dd;
		border-radius: 999px;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation li,
	body.woocommerce-account .woocommerce-MyAccount-navigation > ul > li {
		display: block !important;
		flex: 0 0 auto !important;
		float: none !important;
		margin: 0 !important;
		max-width: none !important;
		width: auto !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation a {
		align-items: center !important;
		background: #ffffff !important;
		border: 1px solid #e4e7ec !important;
		border-radius: 999px !important;
		box-shadow: none !important;
		color: #101828 !important;
		display: inline-flex !important;
		font-size: 0.86rem !important;
		font-weight: 700 !important;
		gap: 0.4em;
		justify-content: center;
		line-height: 1.2 !important;
		margin: 0 !important;
		min-height: 40px;
		padding: 8px 14px !important;
		scroll-snap-align: start;
		text-align: center !important;
		text-decoration: none !important;
		white-space: nowrap !important;
		width: auto !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation .is-active > a,
	body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active > a,
	body.woocommerce-account .woocommerce-MyAccount-navigation a[aria-current="page"] {
		background: #175cd3 !important;
		border-color: #175cd3 !important;
		color: #ffffff !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation a::before,
	body.woocommerce-account .woocommerce-MyAccount-navigation a .eshpos-loyalty-nav-icon,
	body.woocommerce-account .woocommerce-MyAccount-navigation a svg,
	body.woocommerce-account .woocommerce-MyAccount-navigation a i,
	body.woocommerce-account .woocommerce-MyAccount-navigation a .ct-icon-container,
	body.woocommerce-account .woocommerce-MyAccount-navigation a .icon {
		flex: 0 0 auto;
		height: 1em !important;
		margin: 0 !important;
		width: 1em !important;
	}
}

