.customer-account-shell,
.customer-shell {
	inline-size: min(100%, 72rem);
	margin-inline: auto;
	color: var(--theme-text);
}

.customer-header,
.customer-page-header,
.customer-card,
.customer-panel,
.customer-stat,
.customer-summary-strip,
.customer-token-notice,
.customer-empty {
	margin-block-end: 1rem;
	border: 1px solid var(--theme-line);
	background: var(--theme-surface);
	padding: 1rem;
	box-shadow: var(--theme-shadow);
}

.customer-header,
.customer-page-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	border-block-start: 0.3rem solid var(--theme-accent);
}

.customer-logo {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.customer-logo-mark {
	display: grid;
	place-items: center;
	inline-size: 2.7rem;
	block-size: 2.7rem;
	border-radius: 50%;
	background: var(--theme-dark);
	color: var(--theme-highlight);
	font-weight: 800;
}

.customer-nav,
.customer-actions,
.customer-page-header-actions,
.customer-footer,
.customer-inline-form {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	flex-wrap: wrap;
}

.customer-nav a {
	color: var(--theme-accent-dark);
	font-weight: 750;
	text-decoration: none;
}

.customer-main {
	padding-block: 1.5rem 3rem;
}

.customer-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.customer-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.customer-card-spaced,
.customer-section-gap {
	margin-block-start: 1.25rem;
}

.customer-card-heading,
.customer-list-item-row,
.customer-order-item,
.customer-summary-strip {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.customer-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.customer-list-item {
	margin: 0;
	border-block-end: 1px solid var(--theme-line);
	padding: 0.8rem 0;
}

.customer-list-item:last-child {
	border-block-end: 0;
}

.customer-form,
.customer-form-row,
.customer-field {
	display: grid;
	gap: 0.4rem;
}

.customer-field {
	align-content: start;
}

.customer-form-row {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.customer-form-spaced {
	margin-block-start: 1rem;
}

.customer-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-block-size: 2.7rem;
	border: 1px solid var(--theme-accent-dark);
	background: var(--theme-accent-dark);
	color: var(--cms-color-on-accent);
	padding: 0.55rem 0.9rem;
	font-weight: 750;
	text-decoration: none;
}

.customer-button-secondary {
	border-color: var(--theme-line-dark);
	background: var(--theme-surface);
	color: var(--theme-accent-dark);
}

.customer-alert {
	margin-block: 1rem;
	border: 1px solid currentColor;
	border-inline-start-width: 0.35rem;
	background: var(--theme-surface);
	padding: 0.8rem 1rem;
}

.customer-alert-success {
	color: var(--theme-success);
}

.customer-alert-error,
.customer-danger {
	color: var(--theme-danger);
}

.customer-status {
	display: inline-flex;
	border: 1px solid currentColor;
	background: var(--theme-surface);
	color: var(--theme-muted);
	padding: 0.25rem 0.5rem;
	font-size: .875rem;
	font-weight: 750;
}

.customer-status-paid,
.customer-status-entitled,
.customer-status-active,
.customer-status-completed {
	color: var(--theme-success);
}

.customer-status-pending,
.customer-status-payment_pending,
.customer-status-unpaid {
	color: var(--theme-warning);
}

.customer-status-refunded,
.customer-status-revoked,
.customer-status-chargeback,
.customer-status-disputed {
	color: var(--theme-danger);
}

.customer-muted,
.customer-help,
.customer-table-subtext {
	color: var(--theme-muted);
	font-size: .875rem;
}

/* Public account entry: calm, compact and consistent across registration and recovery. */
.customer-main:has(.customer-form) {
	inline-size: min(100%, 62rem);
	margin-inline: auto;
	padding: clamp(1rem, 3vw, 2rem) clamp(.75rem, 2vw, 1.25rem) 4rem;
}

.customer-main:has(.customer-form) .customer-page-header {
	margin-block-end: 1rem;
	border-block-start-color: var(--theme-highlight);
	background: var(--theme-dark);
	color: var(--cms-color-text-inverse);
	padding: clamp(1rem, 3vw, 1.6rem);
}

.customer-main:has(.customer-form) .customer-page-header :is(h1, h2, p) {
	color: inherit;
}

.customer-main:has(.customer-form) .customer-page-header h1 {
	margin: 0;
	font-size: clamp(1.8rem, 4vw, 2.75rem);
}

.customer-main:has(.customer-form) .customer-card {
	inline-size: min(100%, 52rem);
	margin-inline: auto;
	border-block-start: .3rem solid var(--theme-accent);
	background: var(--cms-color-surface-raised);
	padding: clamp(1rem, 3vw, 1.6rem);
	box-shadow: var(--theme-shadow);
	transform: none;
}

.customer-main:has(.customer-form) .customer-card:hover {
	border-color: var(--theme-line);
	border-block-start-color: var(--theme-accent);
	box-shadow: var(--theme-shadow);
	transform: none;
}

.customer-main:has(.customer-form) .customer-card > :is(h2, h3):first-child {
	margin-block-end: 1rem;
	font-size: clamp(1.35rem, 2.5vw, 1.7rem);
}

.customer-main:has(.customer-form) .customer-form {
	gap: .9rem;
}

.customer-main:has(.customer-form) .customer-form-row {
	gap: .85rem 1rem;
}

.customer-main:has(.customer-form) .customer-field label {
	color: var(--theme-text);
	font-size: .875rem;
	font-weight: 800;
}

.customer-main:has(.customer-form) .customer-field :is(input, select, textarea) {
	inline-size: 100%;
	min-block-size: 46px;
	border: 1px solid var(--cms-color-control-border);
	background: var(--cms-color-input);
	color: var(--theme-text);
	padding: .65rem .75rem;
	font: inherit;
}

.customer-main:has(.customer-form) .customer-field textarea {
	min-block-size: 7rem;
	resize: vertical;
}

.customer-main:has(.customer-form) .customer-field :is(input, select, textarea):focus-visible {
	outline: 3px solid color-mix(in srgb, var(--cms-color-focus) 28%, transparent);
	outline-offset: 1px;
	border-color: var(--cms-color-focus);
}

.customer-main:has(.customer-form) .customer-help {
	max-inline-size: 55ch;
	margin: .1rem 0 0;
	line-height: 1.45;
}

.customer-main:has(.customer-form) .recaptcha-field {
	inline-size: fit-content;
	max-inline-size: 100%;
	padding: .65rem;
	border: 1px solid var(--theme-line);
	background: var(--theme-surface-muted);
}

.customer-main:has(.customer-form) .customer-actions {
	margin-block-start: .25rem;
	padding-block-start: 1rem;
	border-block-start: 1px solid var(--theme-line);
}

.customer-main:has(.customer-form) .customer-button {
	min-block-size: 46px;
	padding-inline: 1.15rem;
}

.customer-table-wrap {
	max-inline-size: 100%;
	overflow-x: auto;
}

.customer-pagination {
	display: flex;
	gap: 0.6rem;
	flex-wrap: wrap;
	margin-block-start: 1rem;
}

.customer-align-right {
	text-align: end;
}

@media (max-width: 46rem) {
	.customer-header,
	.customer-page-header,
	.customer-card-heading,
	.customer-list-item-row,
	.customer-order-item,
	.customer-summary-strip {
		align-items: stretch;
		flex-direction: column;
	}

	.customer-grid,
	.customer-grid-3,
	.customer-form-row {
		grid-template-columns: 1fr;
	}

	.customer-align-right {
		text-align: start;
	}
}

/* Compact registration and password feedback for the v3 account workspace. */
.customer-main:has(.customer-form) .customer-field-status,
.customer-main:has(.customer-form) .customer-password-state,
.customer-main:has(.customer-form) .customer-password-match {
	font-size: .875rem;
	line-height: 1.4;
}

.customer-main:has(.customer-form) .customer-password-feedback {
	grid-template-columns: minmax(7rem, 10rem) minmax(0, 1fr);
	gap: .65rem;
	margin-block-start: .15rem;
}

.customer-main:has(.customer-form) .customer-password-meter {
	height: .45rem;
	border-color: var(--theme-line-dark);
	background: var(--theme-surface-muted);
}

.customer-main:has(.customer-form) .customer-field-status[data-state="available"],
.customer-main:has(.customer-form) .customer-password-match[data-state="match"] {
	color: var(--theme-success) !important;
}

.customer-main:has(.customer-form) .customer-field-status[data-state="in-use"],
.customer-main:has(.customer-form) .customer-password-match[data-state="mismatch"] {
	color: var(--theme-danger) !important;
}

.customer-main:has(.customer-form) .customer-field-status[data-state="unavailable"] {
	color: var(--theme-warning) !important;
}

@media (max-width: 32.5rem) {
	.customer-main:has(.customer-form) .customer-password-feedback {
		grid-template-columns: 1fr;
		gap: .35rem;
	}
}


/* September 11, 2026 surgical customer-workspace polish.
 * Presentation only: login, dashboard, account, security and purchase areas. */
.customer-account-toolbar,
.customer-main,
.customer-alert {
	width: min(calc(100% - 3rem), 1080px);
	margin-inline: auto;
}
.customer-account-toolbar {
	margin-top: 1rem;
	padding: .45rem .6rem;
	border: 1px solid var(--theme-line);
	border-top: 3px solid var(--theme-accent);
	background: var(--theme-surface-muted);
}
.customer-account-toolbar .customer-nav { gap: .25rem; }
.customer-account-toolbar .customer-nav :is(a,button) {
	min-height: 36px;
	padding: .42rem .65rem;
	border: 1px solid transparent;
	background: transparent;
	color: var(--theme-text);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .02em;
	text-transform: none;
}
.customer-account-toolbar .customer-nav :is(a.active,a:hover,a:focus-visible,button:hover,button:focus-visible) {
	border-color: var(--theme-accent-dark);
	background: var(--theme-accent-dark);
	color: var(--cms-color-on-accent);
}
.customer-main { padding: 1.15rem 0 3rem; }
.customer-page-header {
	display: block;
	margin: 0 0 1rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--theme-line);
	border-inline-start: 4px solid var(--theme-accent);
	border-block-start-width: 1px;
	background: var(--theme-surface-muted);
	box-shadow: none;
}
.customer-page-header h1 { margin: 0 0 .4rem; font-size: 24px !important; line-height: 1.16 !important; }
.customer-page-header p { margin: 0; font-size: 14px !important; line-height: 1.55; }
.customer-main h2,
.customer-card > h2,
.customer-panel > h2 { font-size: 20px !important; line-height: 1.22 !important; }
.customer-main h3 { font-size: 17px !important; line-height: 1.3 !important; }
.customer-grid { gap: 1rem; }
.customer-card,
.customer-panel {
	padding: 1rem;
	border-color: var(--theme-line);
	background: var(--theme-surface);
	box-shadow: none;
}
.customer-card:hover { transform: none; }
.customer-form { max-width: none; gap: .8rem; }
.customer-form-row { gap: .8rem 1rem; }
.customer-field { gap: .32rem; }
.customer-field label { font-size: 14px; font-weight: 800; }
.customer-main :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	min-height: 40px;
	padding: .5rem .65rem;
	border: 1px solid var(--cms-color-control-border);
	background: var(--cms-color-input);
	color: var(--theme-text);
	font-size: 14px;
}
.customer-main textarea { min-height: 7rem; }
.customer-help,
.customer-muted,
.customer-table-subtext { font-size: 14px; line-height: 1.45; }
.customer-actions { gap: .55rem; margin-top: .25rem; padding-top: .7rem; border-top: 1px solid var(--theme-line); }
.customer-button,
.customer-main button {
	min-height: 38px;
	padding: .45rem .75rem;
	font-size: 14px;
}
.customer-account-facts { background: var(--theme-surface-muted); }
.customer-account-facts > div { padding: .65rem .75rem; }
.customer-account-facts dt { font-size: 14px; }
.customer-account-facts dd { font-size: 14px; }
.customer-dashboard-tools { margin-top: 1rem; }
.customer-dashboard-tools h3 { margin-bottom: .5rem; }
.customer-dashboard-tools ul { gap: .55rem; }
.customer-dashboard-tools a {
	padding: .7rem .75rem;
	border: 1px solid var(--theme-line);
	background: var(--theme-surface);
}
.customer-dashboard-tools strong { font-size: 14px; }
.customer-dashboard-tools span { font-size: 14px; line-height: 1.4; }
.customer-list { gap: .55rem; }
.customer-list-item { margin: 0; padding: .7rem .75rem; background: var(--theme-surface-muted); }
.customer-status { font-size: 14px; }
.customer-table :is(th,td) { padding: .6rem .7rem; font-size: 14px; }
.customer-table th { font-size: 14px; }
.customer-empty { padding: 1rem; }
@media (max-width: 760px) {
	.customer-account-toolbar,
	.customer-main,
	.customer-alert { width: calc(100% - 1.5rem); }
	.customer-main { padding-top: .8rem; }
	.customer-page-header { padding: .85rem .9rem; }
	.customer-page-header h1 { font-size: 22px !important; }
}
