.acx-registration {
	max-width: 480px;
}

.acx-registration .acx-form-field {
	margin-bottom: 16px;
}

.acx-registration label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
}

.acx-registration .acx-required {
	color: #b32d2e;
}

.acx-registration input[type="text"],
.acx-registration input[type="email"],
.acx-registration input[type="tel"],
.acx-registration input[type="password"],
.acx-registration select {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
	font-size: 14px;
}

.acx-registration .acx-field-error {
	display: block;
	color: #b32d2e;
	font-size: 13px;
	margin-top: 4px;
	min-height: 16px;
}

/* The verification code row - deliberately matches the exact visual
appearance requested (a light grey input, a muted/lighter orange
"Verify Code" button that reads as inactive until a code has actually
been sent and entered, and a solid, saturated orange "Send Verification
Code" button as the primary action), rather than this plugin's own
default blue button styling used elsewhere - this specific section was
requested to match a provided reference image exactly. */
.acx-otp-row {
	display: flex;
	gap: 8px;
	align-items: stretch;
	flex-wrap: wrap;
}

.acx-otp-row input[type="text"] {
	flex: 1 1 140px;
	background: #e0e0e0;
	border: 1px solid #d0d0d0;
}

.acx-otp-row input[type="text"]:disabled {
	background: #ececec;
	color: #999;
}

.acx-btn-send,
.acx-btn-verify {
	border: none;
	border-radius: 4px;
	padding: 9px 18px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.15s ease, opacity 0.15s ease;
}

.acx-btn-send {
	background: #f5a623;
	color: #1d2327;
}

.acx-btn-send:hover:not(:disabled) {
	background: #e0951a;
}

.acx-btn-send:disabled {
	background: #fadb9e;
	color: #a9a9a9;
	cursor: not-allowed;
}

.acx-btn-verify {
	background: #fadb9e;
	color: #a9a9a9;
	cursor: not-allowed;
}

.acx-btn-verify:not(:disabled) {
	background: #f5a623;
	color: #1d2327;
	cursor: pointer;
}

.acx-btn-verify:not(:disabled):hover {
	background: #e0951a;
}

.acx-otp-status {
	display: block;
	font-size: 13px;
	margin-top: 6px;
}

.acx-otp-status.acx-otp-status-success {
	color: #0a5c1f;
}

.acx-otp-status.acx-otp-status-error {
	color: #8a1f1f;
}

.acx-btn-register {
	display: inline-flex;
	align-items: center;
	padding: 10px 24px;
	background: #2271b1;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 15px;
	font-weight: 600;
}

.acx-btn-register:hover:not(:disabled) {
	background: #135e96;
}

.acx-btn-register:disabled {
	background: #a7c4dc;
	cursor: not-allowed;
}

/* Reuses this plugin's own established success/error message styling
exactly (same classes, same visual treatment already used by the
booking form - see frontend/assets/css/frontend.css's own
.acx-form-message rules), so a registration success/error looks
consistent with every other form in this plugin. */
.acx-registration .acx-form-message {
	display: none;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border-radius: 4px;
	font-size: 14px;
	margin: 10px 0;
}

.acx-registration .acx-form-message:not(:empty) {
	display: flex;
}

.acx-registration .acx-form-message::before {
	font-weight: 700;
	flex-shrink: 0;
}

.acx-registration .acx-form-message-success {
	background: #e6f4ea;
	border-left: 4px solid #1e7e34;
	color: #0a5c1f;
}

.acx-registration .acx-form-message-success::before {
	content: "\2713";
}

.acx-registration .acx-form-message-error {
	background: #fbe9e7;
	border-left: 4px solid #b32d2e;
	color: #8a1f1f;
}

.acx-registration .acx-form-message-error::before {
	content: "\26A0";
}
