/* Multi-step registration wizard */
.ah-step-progress {
	font-weight: 600;
	margin: 0 0 1em;
	opacity: 0.8;
}

.ah-step {
	animation: ah-step-fade 0.2s ease-in;
}

@keyframes ah-step-fade {
	from { opacity: 0; transform: translateY(4px); }
	to   { opacity: 1; transform: none; }
}

/* Wizard nav: full-width buttons, stacked with spacing (primary on top, Back
   below). Uses flex `gap` (a parent property) so UM's !important button margins
   can't collapse the space between the buttons. */
.ah-step-nav {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 1em 0 0;
}
.ah-step-nav .ah-step-next,
.ah-step-nav .ah-step-back {
	display: block;
	width: 100% !important;
	margin: 0 !important;
}

/* --- Registration submit area (last step) --- */
/* UM lays the submit area out as a 2-column grid (Register | Login). Collapse it
   to a single full-width column and hide the "Login" button. */
.um-register .um-col-alt {
	display: block !important;
	grid-template-columns: 1fr !important;
	width: 100% !important;
}
.um-register .um-col-alt .um-left,
.um-register .um-col-alt .um-right,
.um-register .um-col-alt .um-half {
	display: block !important;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
.um-register .um-col-alt .um-button {
	width: 100% !important;
	display: block;
}
.um-register .um-col-alt .um-alt {
	display: none !important;
}

/* --- Consent checkboxes: remove the duplicated statement, keep the bold label --- */
.um-field-ah_cb1 .um-field-checkbox-option,
.um-field-ah_cb2 .um-field-checkbox-option {
	display: none !important;
}

/* Highlight a required field that failed validation.
   UM's um-old-default stylesheet sets `.um .um-form input { border:1px solid #ddd
   !important }` — specificity (0,3,1) with !important — which out-ranks a plain
   `.um-field.ah-invalid input`, so the red border never showed. We match its
   `.um .um-form` prefix (raising specificity to 0,4,1) and set the full `border`
   shorthand so the whole border, not just its colour, turns red. */
.um .um-form .um-field.ah-invalid input,
.um .um-form .um-field.ah-invalid select,
.um .um-form .um-field.ah-invalid textarea,
.um-field.ah-invalid .select2-selection,
.um-field.ah-invalid .select2-choice,
.um-field.ah-invalid .select2-choices {
	border: 1px solid #b32d2e !important;
	box-shadow: 0 0 0 1px #b32d2e !important;
}

.um-field.ah-invalid .um-field-label label {
	color: #b32d2e;
}

/* --- Register <-> login cross-link ("Already have an account? Log in here") --- */
.ah-auth-prompt {
	margin: 0 0 1.25em;
	font-size: 0.95em;
	color: #5a6b7b;
}
.ah-auth-prompt a {
	font-weight: 600;
	text-decoration: underline;
}

/* --- Inline field guidance: username / password requirement lists --- */
.ah-field-help {
	margin: 8px 0 4px;
	font-size: 0.9em;
}
.ah-field-help-title {
	font-weight: 600;
	margin-bottom: 4px;
	color: #3a4a5a;
}
.ah-req-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ah-req {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	line-height: 1.5;
	color: #6a7a8a;
}
.ah-req-mark {
	flex: 0 0 auto;
	width: 1em;
	text-align: center;
	line-height: inherit;
}
/* Live-checked list (password): empty circle turns into a green check. */
.ah-req-list:not(.ah-req-static) .ah-req-mark::before {
	content: "\25CB"; /* ○ */
	color: #b0bac4;
}
.ah-req-list:not(.ah-req-static) .ah-req.ah-req-ok .ah-req-mark::before {
	content: "\2713"; /* ✓ */
	color: #2e7d32;
}
.ah-req.ah-req-ok {
	color: #2e7d32;
}
/* Static list (username): plain bullets. */
.ah-req-static .ah-req-mark::before {
	content: "\2022"; /* • */
	color: #b0bac4;
}

/* --- Confirm-password "must match" note --- */
.ah-match-note {
	margin: 8px 0 4px;
	font-size: 0.9em;
	color: #6a7a8a;
}
.ah-match-note.ah-match-ok {
	color: #2e7d32;
}
.ah-match-note.ah-match-ok::before {
	content: "\2713 ";
}
.ah-match-note.ah-match-bad {
	color: #b32d2e;
}

/* Inline validation message shown at the bottom of the current step */
.ah-step-msg {
	color: #b32d2e;
	font-size: 0.92em;
	margin-top: 10px;
	padding: 8px 12px;
	border-left: 3px solid #b32d2e;
	background: rgba(179, 45, 46, 0.06);
}
