/* Sign-up / account forms in the Kavi design system (tokens from /assets/kavi.css via
   common.css). WCAG 2.2 AA: fields have real <label>s (see the page markup), 48 px inputs,
   3:1 field borders, visible focus, and error/hint text at >= 4.5:1. */

.signup-panel { --form-edge: 0px; }

.signup-panel > .step { margin-bottom: 14px; }
.signup-panel .description--compact { font-size: 0.98rem; margin-bottom: 8px; }
.signup-panel .demo-banner {
	margin: 0 0 16px; padding: 12px 16px; border-radius: var(--radius);
	background: rgba(213, 185, 241, 0.10); color: var(--text-muted); font-size: 0.95rem;
}

/* Links inside the panel */
.signup-panel .form-link,
.signup-panel .forgot-password-link {
	color: var(--accent); text-decoration: underline; text-underline-offset: 3px; font-weight: 600;
	display: inline-flex; align-items: center; min-height: 24px;
}
.signup-panel .form-link:hover,
.signup-panel .forgot-password-link:hover { color: var(--text); }

.signup-panel .selected-plan {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	margin: 8px 0 16px; padding: 14px 16px; border-radius: var(--radius);
	background: var(--surface); border: 1px solid var(--border-strong); color: var(--text);
}

/* ---------- form ---------- */

.signup-form { display: flex; flex-direction: column; margin: 8px 0 0; }

.signup-form .input-label {
	display: block; margin: 18px 0 8px; color: var(--text); font-weight: 600; font-size: 1rem; line-height: 1.4;
}
.signup-form .input-label--first { margin-top: 4px; }
.signup-form .input-label--forgot { display: flex; justify-content: flex-end; margin: 10px 0 0; font-weight: 500; }
.signup-form .small-desc { color: var(--text-subtle); font-weight: 500; font-size: 0.9rem; }
.signup-form .form-hint { margin: 8px 0 0; color: var(--text-subtle); font-size: 0.92rem; }

.signup-form .input-field,
.signup-form input[type="text"],
.signup-form input[type="email"],
.signup-form input[type="password"],
.signup-form input[type="date"],
.signup-form input[type="tel"],
.signup-form select {
	display: block; width: 100%; min-height: 50px; padding: 11px 16px;
	border-radius: var(--radius); border: 1.5px solid var(--border-strong);
	background: rgba(255, 255, 255, 0.04); color: var(--text);
	font: inherit; font-size: 1.0625rem; line-height: 1.3;
	-webkit-appearance: none; appearance: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}
.signup-form input::placeholder { color: var(--text-subtle); opacity: 1; }
.signup-form .input-field:hover,
.signup-form select:hover { border-color: var(--text-muted); }
.signup-form .input-field:focus-visible,
.signup-form input:focus-visible,
.signup-form select:focus-visible {
	outline: 3px solid var(--focus); outline-offset: 2px; border-color: var(--accent); background: rgba(255, 255, 255, 0.06);
}
.signup-form input[aria-invalid="true"], .signup-form select[aria-invalid="true"] { border-color: #ff9b9b; }

.signup-form select {
	padding-right: 44px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23c4c0cb' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; background-size: 20px;
}
.signup-form select option { background: #16121c; color: var(--text); }
.signup-form #dob { color-scheme: dark; }
.signup-form input::-webkit-date-and-time-value { text-align: left; }

/* Checkbox rows (terms, consent): the whole row is the <label>, so clicking the text toggles it. */
.signup-form .input-label--terms {
	display: flex; align-items: flex-start; gap: 12px; margin: 18px 0 0;
	font-weight: 500; color: var(--text-muted); cursor: pointer;
}
.signup-form .input-label--terms input[type="checkbox"] {
	flex-shrink: 0; width: 22px; height: 22px; margin: 1px 0 0;
	accent-color: var(--accent); cursor: pointer;
}
.signup-form .input-label--terms .t-p { line-height: 1.5; }
.signup-form .input-label--consent { margin-top: 12px; }
.signup-form .input-label--consent + .input-label--consent { margin-top: 10px; }
.signup-form .consent-title { color: var(--text); font-weight: 700; margin: 22px 0 4px; }
.signup-form .consent-subtext { color: var(--text-subtle); font-size: 0.92rem; margin: 0 0 4px; }

/* One-time code */
.signup-form .otp-input { display: flex; gap: 10px; width: 100%; margin-top: 8px; }
.signup-form .otp-input input {
	flex: 1; min-width: 0; min-height: 58px; padding: 0; text-align: center;
	font-size: 1.5rem; font-weight: 700; letter-spacing: 0;
}

.signup-panel .resend {
	display: block; width: 100%; margin-top: 16px; text-align: center; color: var(--text-muted); font-size: 0.95rem;
}
.signup-panel .resend button, .signup-panel .resend a {
	min-height: 44px; padding: 0 12px; background: transparent; border: 0; color: var(--accent);
	font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.signup-panel .resend button:disabled { color: var(--text-subtle); cursor: not-allowed; text-decoration: none; }

/* Legacy plan rows (pre-picker) */
.signup-panel .plan {
	width: 100%; margin: 10px 0; border-radius: var(--radius-lg); overflow: hidden;
	background: var(--surface); border: 1.5px solid var(--border-strong); cursor: pointer;
}
.signup-panel .plan-interior { padding: 18px 20px; }
.signup-panel .plan-heading { color: var(--text); font-weight: 800; font-size: 1.25rem; }
.signup-panel .plan-price { color: var(--text); font-weight: 700; }
.signup-panel .lr-container { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.signup-panel .plan-desc, .signup-panel .plans-desc { color: var(--text-muted); font-size: 0.95rem; margin-top: 6px; }
.signup-panel .invisible-radio input[type="radio"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.signup-panel .invisible-radio input[type="radio"]:checked + .plan,
.signup-panel .invisible-radio input[type="radio"]:focus-visible + .plan { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent); }

.signup-panel > .panel-legal { margin-top: 32px; }
