/* ============================================
   ACCOUNT SETTINGS PAGE PATTERNS
   Shared styles for account settings pages (contact details, bookings, memberships, etc.)
   ============================================ */

/* Base page structure */
.account-settings-page {
	background: var(--background);
	width: 100%;
	max-width: 100vw;
	overflow-x: hidden;
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
}

.account-settings-page__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
}

.account-settings-page__right-column {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
	min-height: 0;
}

.account-settings-page__content-column {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

/* Page shell — flex fill for centered loading */
.account-settings-page__container {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-m);
	align-self: stretch;
	width: 100%;
	min-width: 0;
	flex: 1 0 0;
	min-height: 0;
	padding-top: var(--spacing-m);
	padding-inline: var(--spacing-m);
	padding-bottom: 0;
	box-sizing: border-box;
	background: var(--background-neutral-light);
}

/* List / empty-state pages (memberships, enrolments, bookings): bottom inset on the shell */
.account-settings-page__container.account-settings-memberships-page,
.account-settings-page__container.account-settings-enrolments,
.account-settings-page__container.manage-bookings-page__container {
	padding-bottom: calc(var(--safe-area-inset-bottom) + var(--spacing-m));
}

/* Form pages: pin actions to the bottom of the shell; safe-area inset sits below the buttons */
.contact-details-page__actions,
.medical-information-page__actions {
	margin-top: auto;
	align-self: stretch;
	padding-bottom: calc(var(--safe-area-inset-bottom) + var(--spacing-m));
}

.account-settings-page__loading-area {
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	width: 100%;
	flex: 1;
	min-height: 12rem;
}

/* Page Title - centered with bottom border */
.account-settings-page__title {
	display: flex;
	padding-bottom: var(--spacing-m);
	justify-content: center;
	align-items: center;
	align-self: stretch;
	border-bottom: 1px solid var(--border-default);
	color: var(--text-regular-default);
	text-align: center;
	font-size: 1.4375rem;
	font-style: normal;
	font-weight: 700;
	line-height: 2rem;
}

/* Desktop Styles - 80rem breakpoint */
@media (min-width: 80rem) {
	.account-settings-page__body {
		max-width: var(--content-max-width, 80rem);
		margin: 0 auto;
		align-self: stretch;
	}

	.account-settings-page__container {
		padding-top: var(--spacing-xxl-2);
		padding-inline: var(--spacing-xxl-2);
		gap: var(--spacing-xl);
		border-radius: var(--border-radius-2xl) 0 0 0;
	}

	.account-settings-page__container.contact-details-page,
	.account-settings-page__container.medical-information-page {
		padding-bottom: var(--spacing-xxl-2);
	}

	.account-settings-page__container.account-settings-memberships-page,
	.account-settings-page__container.account-settings-enrolments,
	.account-settings-page__container.account-settings-payments,
	.account-settings-page__container.manage-bookings-page__container {
		padding-bottom: var(--spacing-xxl-2);
	}

	.contact-details-page__actions,
	.medical-information-page__actions {
		padding-bottom: 0;
	}
}
