:root {
	--abbey-events-primary: #5b31d2;
	--abbey-events-primary-dark: #3c1d9d;
	--abbey-events-primary-soft: #f1edff;
	--abbey-events-ink: #24164f;
	--abbey-events-text: #3f3a4d;
	--abbey-events-muted: #726c80;
	--abbey-events-border: #e5e0ef;
	--abbey-events-success: #16803d;
	--abbey-events-danger: #b3261e;
	--abbey-events-radius: 16px;
}

.abbey-events-shell,
.abbey-events-single {
	box-sizing: border-box;
	color: var(--abbey-events-text);
}

.abbey-events-shell *,
.abbey-events-single * {
	box-sizing: border-box;
}

.abbey-events-shell {
	width: min(1180px, calc(100% - 32px));
	margin: 36px auto 70px;
}

.abbey-events-heading,
.abbey-events-section-heading,
.abbey-events-publish-card,
.abbey-events-heading-actions,
.abbey-events-card-actions,
.abbey-events-manual-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.abbey-events-heading {
	margin-bottom: 28px;
}

.abbey-events-heading h1,
.abbey-events-heading h2,
.abbey-events-card h2,
.abbey-events-card h3,
.abbey-events-single h1,
.abbey-events-single h2,
.abbey-events-single h3 {
	color: var(--abbey-events-ink);
}

.abbey-events-heading h1 {
	margin: 5px 0 8px;
	font-size: clamp(32px, 5vw, 48px);
	line-height: 1.08;
}

.abbey-events-heading p,
.abbey-events-section-heading p {
	margin: 0;
	color: var(--abbey-events-muted);
}

.abbey-events-eyebrow {
	display: block;
	color: var(--abbey-events-primary);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.abbey-events-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 20px;
	border: 1px solid var(--abbey-events-primary);
	border-radius: 10px;
	background: var(--abbey-events-primary);
	color: #fff !important;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition: transform .15s ease, background .15s ease;
}

.abbey-events-button:hover,
.abbey-events-button:focus {
	background: var(--abbey-events-primary-dark);
	transform: translateY(-1px);
}

.abbey-events-button-secondary {
	background: #fff;
	color: var(--abbey-events-primary) !important;
}

.abbey-events-button-small {
	min-height: 38px;
	padding: 8px 15px;
}

.abbey-events-button-block {
	width: 100%;
}

.abbey-events-link,
.abbey-events-back-link,
.abbey-events-action-link {
	color: var(--abbey-events-primary) !important;
	font-weight: 700;
	text-decoration: none !important;
}

.abbey-events-back-link {
	display: inline-block;
	margin-bottom: 16px;
}

.abbey-events-card {
	padding: 28px;
	margin-bottom: 24px;
	border: 1px solid var(--abbey-events-border);
	border-radius: var(--abbey-events-radius);
	background: #fff;
	box-shadow: 0 8px 30px rgba(36, 22, 79, .05);
}

.abbey-events-card > h2:first-child {
	margin-top: 0;
}

.abbey-events-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.abbey-events-field {
	margin: 20px 0;
}

.abbey-events-form-grid .abbey-events-field,
.abbey-events-ticket-editor .abbey-events-field {
	margin: 0;
}

.abbey-events-field label,
.abbey-events-scanner-event label,
#abbey-events-manual-checkin > label {
	display: block;
	margin-bottom: 7px;
	color: var(--abbey-events-ink);
	font-size: 14px;
	font-weight: 700;
}

.abbey-events-field label span {
	color: var(--abbey-events-danger);
}

.abbey-events-field input:not([type="checkbox"]):not([type="radio"]),
.abbey-events-field select,
.abbey-events-field textarea,
.abbey-events-scanner-event select,
.abbey-events-manual-row input {
	display: block;
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	border: 1px solid #cfc8dc;
	border-radius: 9px;
	background: #fff;
	color: var(--abbey-events-text);
	font: inherit;
}

.abbey-events-field textarea {
	min-height: 90px;
}

.abbey-events-field input:focus,
.abbey-events-field select:focus,
.abbey-events-field textarea:focus,
.abbey-events-manual-row input:focus {
	border-color: var(--abbey-events-primary);
	box-shadow: 0 0 0 3px rgba(91, 49, 210, .12);
	outline: 0;
}

.abbey-events-field small,
.abbey-events-form-note,
.abbey-events-deadline {
	display: block;
	margin-top: 6px;
	color: var(--abbey-events-muted);
	font-size: 12px;
}

.abbey-events-cover-preview img {
	display: block;
	max-width: 420px;
	margin-bottom: 12px;
	border-radius: 10px;
}

.abbey-events-ticket-editor {
	position: relative;
	display: grid;
	grid-template-columns: 1.6fr .6fr .55fr .6fr 36px;
	gap: 14px;
	align-items: end;
	padding: 18px;
	margin-top: 14px;
	border: 1px solid var(--abbey-events-border);
	border-radius: 12px;
	background: #faf9fd;
}

.abbey-events-ticket-description {
	grid-column: 1 / -2;
}

.abbey-events-remove-ticket {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 50%;
	background: #f9e3e3;
	color: var(--abbey-events-danger);
	font-size: 24px;
	cursor: pointer;
}

.abbey-events-publish-card {
	position: sticky;
	z-index: 20;
	bottom: 16px;
	box-shadow: 0 16px 42px rgba(36, 22, 79, .14);
}

.abbey-events-publish-card h2,
.abbey-events-publish-card p {
	margin: 0 0 4px;
}

.abbey-events-manager-grid,
.abbey-events-ticket-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.abbey-events-manager-card {
	padding: 0;
	overflow: hidden;
}

.abbey-events-manager-card > a img {
	display: block;
	width: 100%;
	height: 190px;
	object-fit: cover;
}

.abbey-events-manager-card-body {
	padding: 22px;
}

.abbey-events-manager-card h2 {
	margin: 12px 0 6px;
	font-size: 21px;
}

.abbey-events-mini-stats {
	display: flex;
	gap: 16px;
	padding: 12px 0;
	margin: 12px 0;
	border-top: 1px solid var(--abbey-events-border);
	border-bottom: 1px solid var(--abbey-events-border);
	font-size: 12px;
}

.abbey-events-mini-stats strong {
	color: var(--abbey-events-ink);
	font-size: 18px;
}

.abbey-events-stat-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 24px;
}

.abbey-events-stat-grid > div {
	padding: 22px;
	border: 1px solid var(--abbey-events-border);
	border-radius: 14px;
	background: linear-gradient(145deg, #fff, #faf8ff);
}

.abbey-events-stat-grid span,
.abbey-events-stat-grid strong {
	display: block;
}

.abbey-events-stat-grid span {
	color: var(--abbey-events-muted);
	font-size: 13px;
}

.abbey-events-stat-grid strong {
	margin-top: 6px;
	color: var(--abbey-events-ink);
	font-size: 32px;
}

.abbey-events-table-wrap {
	overflow-x: auto;
}

.abbey-events-table {
	width: 100%;
	border-collapse: collapse;
}

.abbey-events-table th,
.abbey-events-table td {
	padding: 14px 10px;
	border-bottom: 1px solid var(--abbey-events-border);
	text-align: left;
	vertical-align: middle;
}

.abbey-events-table th {
	color: var(--abbey-events-muted);
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.abbey-events-table td small {
	display: block;
	margin-top: 4px;
	color: var(--abbey-events-muted);
}

.abbey-events-person {
	display: flex;
	align-items: center;
	gap: 10px;
}

.abbey-events-person img {
	border-radius: 50%;
}

.abbey-events-person span,
.abbey-events-person strong,
.abbey-events-person small {
	display: block;
}

.abbey-events-action-link {
	display: inline-block;
	margin: 3px 7px 3px 0;
	font-size: 12px;
}

.abbey-events-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #dff5e6;
	color: var(--abbey-events-success);
	font-weight: 800;
}

.abbey-events-status {
	display: inline-block;
	padding: 4px 9px;
	border-radius: 999px;
	background: #eeeaf6;
	color: #514968;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.abbey-events-status-confirmed,
.abbey-events-status-publish {
	background: #dff5e6;
	color: var(--abbey-events-success);
}

.abbey-events-status-pending,
.abbey-events-status-draft {
	background: #fff2cc;
	color: #765a00;
}

.abbey-events-status-cancelled {
	background: #fae2e0;
	color: var(--abbey-events-danger);
}

.abbey-events-my-tickets {
	margin-top: 52px;
}

.abbey-events-my-ticket {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
}

.abbey-events-my-ticket h3 {
	margin: 12px 0 6px;
}

.abbey-events-ticket-qr-small {
	width: 100px;
	height: 100px;
	object-fit: contain;
}

.abbey-events-message {
	padding: 14px 17px;
	margin: 0 0 18px;
	border: 1px solid #cfc8dc;
	border-radius: 10px;
	background: #f8f6fc;
}

.abbey-events-message p:last-child {
	margin-bottom: 0;
}

.abbey-events-message-success {
	border-color: #b8dfc4;
	background: #edf9f1;
	color: #126b2e;
}

.abbey-events-message-error {
	border-color: #e8b8b4;
	background: #fff1f0;
	color: #8c1d18;
}

.abbey-events-single {
	padding-bottom: 70px;
	background: #f8f7fb;
}

.abbey-events-single-hero {
	position: relative;
	min-height: 520px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: linear-gradient(145deg, #2b175e, #7655d9);
}

.abbey-events-single-hero > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.abbey-events-single-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(22, 10, 54, .05) 20%, rgba(22, 10, 54, .88) 100%);
}

.abbey-events-single-hero-content {
	position: relative;
	z-index: 2;
	width: min(1180px, calc(100% - 32px));
	margin: 0 auto;
	padding: 90px 0 60px;
	color: #fff;
}

.abbey-events-single-hero-content .abbey-events-eyebrow {
	color: #d8cdff;
}

.abbey-events-single-hero-content h1 {
	max-width: 900px;
	margin: 8px 0 12px;
	color: #fff;
	font-size: clamp(40px, 7vw, 76px);
	line-height: 1.02;
}

.abbey-events-single-hero-content p {
	max-width: 700px;
	margin: 0;
	font-size: 18px;
}

.abbey-events-single-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(320px, .8fr);
	gap: 36px;
	width: min(1180px, calc(100% - 32px));
	margin: 0 auto;
	padding-top: 40px;
}

.abbey-events-single-content {
	padding: 32px;
	border: 1px solid var(--abbey-events-border);
	border-radius: var(--abbey-events-radius);
	background: #fff;
}

.abbey-events-event-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	padding-bottom: 28px;
	margin-bottom: 30px;
	border-bottom: 1px solid var(--abbey-events-border);
}

.abbey-events-event-facts > div {
	display: flex;
	gap: 12px;
}

.abbey-events-event-facts .dashicons {
	width: 42px;
	height: 42px;
	padding: 10px;
	border-radius: 10px;
	background: var(--abbey-events-primary-soft);
	color: var(--abbey-events-primary);
}

.abbey-events-event-facts p,
.abbey-events-event-facts strong,
.abbey-events-event-facts small {
	display: block;
	margin: 0;
}

.abbey-events-event-facts small {
	margin-top: 4px;
	color: var(--abbey-events-muted);
}

.abbey-events-description {
	font-size: 17px;
	line-height: 1.75;
}

.abbey-events-registration-card {
	position: sticky;
	top: 110px;
	align-self: start;
	padding: 28px;
	border: 1px solid var(--abbey-events-border);
	border-radius: var(--abbey-events-radius);
	background: #fff;
	box-shadow: 0 14px 45px rgba(36, 22, 79, .09);
}

.abbey-events-registration-card > h2 {
	margin-top: 0;
}

.abbey-events-ticket-choice {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 10px;
	align-items: center;
	padding: 15px;
	margin-bottom: 10px;
	border: 1px solid var(--abbey-events-border);
	border-radius: 11px;
	cursor: pointer;
}

.abbey-events-ticket-choice:has(input:checked) {
	border-color: var(--abbey-events-primary);
	background: var(--abbey-events-primary-soft);
}

.abbey-events-ticket-choice strong,
.abbey-events-ticket-choice small {
	display: block;
}

.abbey-events-ticket-choice small {
	margin-top: 3px;
	color: var(--abbey-events-muted);
}

.abbey-events-ticket-choice b {
	color: var(--abbey-events-primary);
}

.abbey-events-ticket-choice.is-sold-out {
	opacity: .55;
	cursor: not-allowed;
}

.abbey-events-e-ticket {
	padding: 20px;
	border: 1px solid #d8ccfa;
	border-radius: 14px;
	background: linear-gradient(145deg, #fff, #f5f1ff);
	text-align: center;
}

.abbey-events-e-ticket > span {
	color: var(--abbey-events-primary);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .13em;
}

.abbey-events-e-ticket img {
	display: block;
	width: min(240px, 100%);
	height: auto;
	margin: 15px auto;
}

.abbey-events-e-ticket code {
	display: block;
	word-break: break-all;
}

.abbey-events-center {
	text-align: center;
}

.abbey-events-scanner-event {
	max-width: 420px;
	margin-bottom: 20px;
}

.abbey-events-scanner-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
	gap: 24px;
}

.abbey-events-camera-card {
	text-align: center;
}

#abbey-events-reader {
	min-height: 360px;
	margin-bottom: 16px;
	overflow: hidden;
	border: 0 !important;
	border-radius: 14px;
	background: #171126;
}

#abbey-events-reader video {
	border-radius: 14px;
}

.abbey-events-scan-result {
	padding: 30px 10px;
	text-align: center;
}

.abbey-events-scan-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 74px;
	height: 74px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: var(--abbey-events-primary-soft);
	color: var(--abbey-events-primary);
	font-size: 38px;
	font-weight: 800;
}

.abbey-events-scan-result.is-success .abbey-events-scan-icon {
	background: #dff5e6;
	color: var(--abbey-events-success);
}

.abbey-events-scan-result.is-error .abbey-events-scan-icon {
	background: #fae2e0;
	color: var(--abbey-events-danger);
}

.abbey-events-scan-avatar {
	width: 72px;
	height: 72px;
	margin-bottom: 8px;
	border-radius: 50%;
}

.abbey-events-manual-row input {
	flex: 1;
}

@media (max-width: 960px) {
	.abbey-events-manager-grid,
	.abbey-events-ticket-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.abbey-events-ticket-editor {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.abbey-events-ticket-description {
		grid-column: 1 / -1;
	}

	.abbey-events-single-layout,
	.abbey-events-scanner-layout {
		grid-template-columns: 1fr;
	}

	.abbey-events-registration-card {
		position: static;
	}
}

@media (max-width: 720px) {
	.abbey-events-shell {
		width: min(100% - 20px, 1180px);
		margin-top: 22px;
	}

	.abbey-events-heading,
	.abbey-events-section-heading,
	.abbey-events-publish-card,
	.abbey-events-heading-actions,
	.abbey-events-publish-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.abbey-events-form-grid,
	.abbey-events-manager-grid,
	.abbey-events-ticket-grid,
	.abbey-events-stat-grid,
	.abbey-events-ticket-editor,
	.abbey-events-event-facts {
		grid-template-columns: 1fr;
	}

	.abbey-events-card,
	.abbey-events-single-content,
	.abbey-events-registration-card {
		padding: 20px;
	}

	.abbey-events-publish-card {
		position: static;
	}

	.abbey-events-single-hero {
		min-height: 430px;
	}

	.abbey-events-single-hero-content {
		width: min(100% - 28px, 1180px);
		padding-bottom: 40px;
	}

	.abbey-events-single-layout {
		width: min(100% - 20px, 1180px);
		gap: 18px;
		padding-top: 20px;
	}

	.abbey-events-manual-row {
		align-items: stretch;
		flex-direction: column;
	}
}
