.registration-history { margin-top: 20px; }
.registration-history > summary { cursor: pointer; padding-block: 12px; font-weight: 600; }
.registration-form-error { overflow-wrap: anywhere; }
.personnel-assignments[hidden] { display: none; }
.portal-club-details__body { padding-block: 1.5rem; }
@media (max-width: 575px) {
	.portal-club-details__body { padding-block: 1.25rem; }
	.portal-registration-table, .portal-registration-table tbody { display: block; width: 100%; }
	.portal-registration-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.portal-registration-table tr { display: block; padding-block: 12px; border-bottom: 1px solid var(--portal-border, #dbe2eb); }
	.portal-registration-table td { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; width: 100%; border: 0; padding: 8px 0; overflow-wrap: anywhere; text-align: left; }
	.portal-registration-table td:first-child { font-weight: 600; }
	.portal-registration-table td[data-label]::before { content: attr(data-label); color: var(--portal-muted, #607087); font-weight: 400; }
	.portal-registration-table td > * { max-width: 100%; }
	.portal-registration-table .btn { min-height: 44px; display: inline-flex; align-items: center; }
	.portal-registration-table td.text-right { justify-content: flex-start; }
}

.guest-registration-workspace { max-width: 1280px; margin: 24px auto; padding: 0 16px 32px; }

.guest-registration-access { padding-bottom: 16px; margin-bottom: 24px; border-bottom: 1px solid #dce0e5; overflow-wrap: anywhere; }
.guest-registration-access p { margin: 0 0 8px; }
.guest-registration-access__options { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px 24px; flex-wrap: wrap; }
.guest-registration-access__options details { flex: 1 1 280px; }
.guest-registration-access__options summary { cursor: pointer; min-height: 44px; padding: 10px 0; font-weight: 600; }
.guest-registration-access__settings, .guest-registration-access__actions .btn { display: inline-flex; align-items: center; min-height: 44px; }
.guest-registration-access__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.guest-registration-access summary:focus-visible, .guest-registration-access a:focus-visible { outline: 2px solid #1463e8; outline-offset: 3px; }

/* These assets belong to the portal club registration workspace. */
body.module-portal {
	--portal-accent: #245bc1;
	--portal-accent-strong: #194797;
	--portal-accent-soft: #edf3ff;
	--registration-accent: var(--portal-accent);
	--registration-line: var(--portal-border);
	--club-heading: #183454;
	--club-heading-soft: #edf4fc;
	--club-success-soft: #edf8f1;
	--club-success-text: #246341;
	--club-warning-soft: #fff6e4;
	--club-warning-text: #805512;
}

.module-portal .registration-context__header {
	padding: 24px;
	border: 1px solid #cbdcf1;
	border-radius: var(--portal-radius-md);
	background: var(--club-heading-soft);
	color: var(--club-heading);
}

.module-portal .registration-context__header > div { min-width: 0; overflow-wrap: anywhere; }
.module-portal .registration-context__header h2 { font-weight: 700; }
.module-portal .registration-context__tournament { color: #46617f; font-weight: 600; }
.module-portal .registration-context__tournament-link { flex-shrink: 0; font-weight: 600; }
.module-portal .registration-context__badge { background: var(--portal-surface); }
.module-portal .registration-context__badge--pending { background: var(--club-warning-soft); }

.module-portal .registration-context__tabs {
	gap: 4px;
	padding: 6px 8px 0;
	border: 1px solid var(--portal-border);
	border-radius: var(--portal-radius-md);
	background: var(--portal-surface);
	overflow-x: auto;
}

.module-portal .registration-context__tabs a {
	flex: 0 0 auto;
	padding: 12px 12px 14px;
	border-bottom-width: 3px;
	border-radius: 0;
	font-size: 14px;
	line-height: 1.3;
	white-space: nowrap;
}
.module-portal .registration-context__tabs a[aria-current="page"] {
	border-bottom-color: var(--portal-accent);
	background: transparent;
	color: var(--portal-accent-strong);
	font-weight: 700;
}
.module-portal .nav-tabs .nav-link.active {
	border-bottom-color: var(--portal-accent);
	background: var(--portal-accent-soft);
	color: var(--portal-accent-strong);
	font-weight: 700;
}

.module-portal .registration-context__tabs a:hover { background: #f6f8fb; color: var(--portal-accent-strong); text-decoration: none; }
.module-portal .registration-context__tabs a[aria-current="page"]:hover { background: transparent; }
.module-portal .registration-overview__row:hover { background: var(--portal-accent-soft); text-decoration: none; }
.module-portal .registration-context__tabs a:focus-visible,
.module-portal .registration-overview__row:focus-visible { outline: 2px solid var(--portal-accent); outline-offset: -3px; }
.module-portal .registration-context__mobile { font-weight: 600; color: var(--club-heading); }
.module-portal .registration-context__mobile select { border-color: #9bb5db; background-color: var(--portal-surface); }

@media (max-width: 1279px) {
	.module-portal .registration-context__tabs { display: none; }
	.module-portal .registration-context__mobile { display: block; width: 100%; }
	.module-portal .registration-context__mobile select { width: 100%; min-height: 46px; margin-top: 8px; }
}

.module-portal .registration-overview,
.module-portal .registration-summary-card,
.module-portal .hospitality__coverage,
.module-portal .hospitality__booking-card,
.module-portal .registration-log {
	border: 1px solid var(--portal-border);
	border-radius: var(--portal-radius-md);
	background: var(--portal-surface);
}

.module-portal .registration-overview__header,
.module-portal .registration-summary-card__header,
.module-portal .hospitality__coverage-header,
.module-portal .hospitality__booking-card-header,
.module-portal .portal-panel__header {
	background: var(--club-heading-soft);
	color: var(--club-heading);
}

.module-portal .portal-panel__header--delegation-teams {
	align-items: center;
	min-height: 0;
	padding: 0.75rem 1.25rem;
}

.module-portal .portal-panel__header--delegation-teams .portal-panel__title {
	margin: 0;
}

.module-portal .registration-checklist__group--action .registration-overview__header,
.module-portal .registration-checklist__group--waiting .registration-overview__header {
	background: var(--club-warning-soft);
	color: var(--club-warning-text);
}

.module-portal .registration-checklist__group--complete .registration-overview__header {
	background: var(--club-success-soft);
	color: var(--club-success-text);
}

.module-portal .registration-checklist__group .registration-overview__header > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	min-height: 28px;
	padding: 2px 8px;
	border: 1px solid currentColor;
	border-radius: 20px;
	font-size: 14px;
	font-weight: 700;
}

.module-portal .registration-overview__row b { color: var(--portal-accent-strong); }
.module-portal .registration-summary-card__data dd { color: var(--club-heading); }
.module-portal .registration-summary-card__data > div { padding-bottom: 8px; border-bottom: 1px solid #edf0f4; }
.module-portal .registration-summary-card__data > div:last-child { padding-bottom: 0; border-bottom: 0; }
.module-portal .portal-registration-table { margin-bottom: 0; }
.module-portal .portal-registration-table thead th { border-top: 0; color: var(--portal-muted); font-size: 13px; font-weight: 600; }
.module-portal .portal-registration-table tbody td { padding-block: 18px; vertical-align: middle; }
.module-portal .portal-registration-table tbody td:first-child { font-weight: 600; }
.module-portal .portal-registration-table tbody tr:hover { background: #f7faff; }
.module-portal .portal-panel + .portal-panel { margin-top: 24px; }
.module-portal .registration-log { padding-inline: 20px; }
.module-portal .registration-log__event:last-child { border-bottom: 0; }
.module-portal .portal-drawer__header { background: var(--club-heading-soft); }

.module-portal .portal-team-register-option {
	padding-left: 2rem;
}

.module-portal .portal-team-register-option .custom-control-label {
	cursor: pointer;
}

.module-portal .portal-team-register-option .custom-control-label::before,
.module-portal .portal-team-register-option .custom-control-label::after {
	top: 0.1rem;
	left: -2rem;
	width: 1.25rem;
	height: 1.25rem;
}

.module-portal .portal-team-register-option .custom-control-label::before {
	border: 2px solid var(--portal-accent);
	border-radius: 4px;
	background: var(--portal-surface);
}

.module-portal .portal-team-register-option .custom-control-label:hover::before {
	background: var(--portal-accent-soft);
}

.module-portal .portal-team-register-option .custom-control-input:checked ~ .custom-control-label::before,
.module-portal .portal-team-register-option .custom-control-input:checked ~ .custom-control-label:hover::before {
	background: var(--portal-accent);
}

.module-portal .portal-team-register-option .custom-control-input:focus-visible ~ .custom-control-label::before {
	box-shadow: 0 0 0 3px rgb(36 91 193 / 25%);
}

@media (max-width: 767px) {
	.module-portal .portal-panel__header--delegation-teams {
		align-items: stretch;
		padding: 1rem;
	}
}

@media (max-width: 575px) {
	.module-portal .registration-context__header { padding: 16px; }
	.module-portal .registration-context__tournament-link { flex-shrink: 1; }
	.module-portal .portal-registration-table tbody td { padding-block: 8px; }
	.module-portal .portal-registration-table tbody tr:last-child { border-bottom: 0; }
	.module-portal .registration-summary-card__header { flex-wrap: wrap; }
	.module-portal .registration-log { padding-inline: 16px; }
}

.module-portal .registration-context__header--tournament {
	background: var(--registration-header-background, var(--club-heading-soft));
	color: var(--registration-header-text, var(--club-heading));
	border-color: var(--registration-header-background, var(--portal-border));
	box-shadow: inset 0 0 0 1px rgb(0 0 0 / 8%);
}

.module-portal .registration-context__identity { flex: 1; min-width: 0; }
.module-portal .registration-context__header--tournament .registration-context__tournament,
.module-portal .registration-context__header--tournament .registration-context__tournament-link { color: inherit; }
.module-portal .registration-context__header--tournament .registration-context__badge { color: var(--portal-text); }
.module-portal .registration-context__header--tournament .registration-context__badge--pending { color: var(--club-warning-text); }
.module-portal .registration-context__header--tournament .registration-context__tournament-link {
	padding: 10px 14px;
	border: 1px solid currentColor;
	border-radius: var(--portal-radius-sm);
}
.module-portal .registration-context__tournament-link:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.module-portal .registration-context__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 136px;
	padding: 12px;
	border-radius: var(--portal-radius-md);
	background: var(--portal-surface);
}
.module-portal .registration-context__logo img { display: block; width: 112px; height: 88px; object-fit: contain; }

@media (max-width: 767px) {
	.module-portal .registration-context__header--tournament { flex-wrap: wrap; }
	.module-portal .registration-context__header--tournament .registration-context__identity { flex-basis: calc(100% - 112px); }
	.module-portal .registration-context__logo { flex-basis: 88px; padding: 8px; }
	.module-portal .registration-context__logo img { width: 72px; height: 64px; }
}

.portal-club-registration-tabs .badge { margin-inline-start: 8px; }

.portal-club-registrations__body { padding-top: 1.5rem; }
@media (max-width: 575px) {
	.portal-club-registrations__body { padding-top: 1.25rem; }
}
