.rewards-sr-only {
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	overflow: hidden !important;
	position: absolute !important;
	white-space: nowrap !important;
	width: 1px !important;
}

.rewards-skip-link {
	background: #fff;
	border: 3px solid #0f766e;
	border-radius: 0 0 10px 0;
	color: #0f172a;
	font-size: 16px;
	font-weight: 800;
	left: 0;
	padding: 12px 16px;
	position: fixed;
	top: 0;
	transform: translateY(-130%);
	z-index: 100000;
}

.rewards-skip-link:focus { transform: translateY(0); }

.loyalty-admin-page :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.loyalty-page :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.rw4-local-list :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.rw4-intro :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	box-shadow: 0 0 0 3px #fff, 0 0 0 6px #0f766e !important;
	outline: 3px solid transparent !important;
	outline-offset: 3px !important;
}

[aria-busy="true"] { cursor: progress; }
[aria-disabled="true"] { opacity: .72; pointer-events: none; }
[role="tabpanel"]:focus { outline: none; }
[role="tabpanel"]:focus-visible { box-shadow: inset 0 0 0 3px #0f766e; }

.loyalty-admin-page :is(button, input, select, textarea, .btn),
.loyalty-page :is(button, input, select, textarea, .loyalty-button),
.rw4-local-list :is(button, input, select, textarea) { min-height: 44px; }

.loyalty-scan-video {
	background: #0f172a;
	border-radius: 12px;
	display: block;
	max-height: 50vh;
	object-fit: cover;
	width: 100%;
}

.loyalty-scan-status {
	background: #eef7f5;
	border: 1px solid #b9ddd5;
	border-radius: 10px;
	color: #23443e;
	line-height: 1.45;
	margin-top: 10px;
	padding: 10px 12px;
}

.rewards-manual-help { color: #526273; display: block; line-height: 1.4; margin-top: 6px; }

@media (max-width: 50rem) {
	.loyalty-admin-page, .loyalty-page, .rw4-local-list { overflow-wrap: anywhere; }
	.loyalty-admin-page *, .loyalty-page *, .rw4-local-list * { min-width: 0; }
	.loyalty-tabs { flex-wrap: nowrap !important; overflow-x: auto; overscroll-behavior-inline: contain; }
	.loyalty-tabs .nav-item { flex: 0 0 auto; }
	.loyalty-tabs .nav-link { min-height: 48px; white-space: nowrap; }
	.loyalty-tab-body { padding: 16px !important; }
	.rewards-form-grid, .loyalty-grid, .loyalty-design-grid, .rewards-public-preview,
	.mission-modal-grid, .rewards-grid, .rw4-balances, .rw4-redeem { grid-template-columns: 1fr !important; }
	.loyalty-admin-header, .loyalty-header-actions, .loyalty-client-tools { align-items: stretch !important; flex-direction: column; }
	.loyalty-header-actions > *, .loyalty-client-tools > * { max-width: none !important; width: 100%; }
	.loyalty-table { max-width: 100%; }
	.loyalty-client-card { grid-template-columns: 1fr !important; }
	.loyalty-modal .modal-dialog { margin: 8px; max-width: calc(100% - 16px); }
	.loyalty-modal .modal-content { max-height: calc(100vh - 16px); }
	.loyalty-modal .modal-body { overflow-y: auto; }
	.loyalty-scan-video { min-height: 180px !important; max-height: 35vh; }
	.loyalty-modal .modal-footer { align-items: stretch; display: grid; gap: 8px; grid-template-columns: 1fr; }
	.loyalty-modal .modal-footer .btn { margin: 0; min-height: 48px; width: 100%; }
}

@media (max-width: 25rem) {
	.loyalty-admin-card, .loyalty-tab-body, .rw4-local, .rw4-intro { padding: 12px !important; }
	.loyalty-admin-page :is(button, .btn, input, select, textarea, summary),
	.loyalty-page :is(button, .btn, input, select, textarea, summary),
	.rw4-local-list :is(button, .btn, input, select, textarea, summary) { font-size: 16px; min-height: 44px; }
	.rw4-local-head, .rw4-local-identity, .rw4-section-head { align-items: flex-start !important; flex-direction: column; }
	.rw4-qr-card { align-items: flex-start !important; flex-direction: column; }
	.rw4-qr-card img { height: auto !important; max-width: 180px; width: 100% !important; }
}

@media (prefers-reduced-motion: reduce) {
	html:focus-within { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}

@media (forced-colors: active) {
	.rewards-skip-link, .loyalty-scan-status, .rw4-state, .loyalty-tabs .nav-link.active { border: 2px solid ButtonText; }
	[role="progressbar"] { border: 1px solid CanvasText; }
	:is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid Highlight !important; }
}
