/*
 * Signup + verification pages (signup Chunk 5, plan 260731_220000 §6; re-themed 260810).
 * Extends public_site.css (loaded first) with the form/receipt/verify styles the shared
 * stylesheet deliberately does not carry. Sits on the 260801 light blue/pewter/ivory
 * scheme: content on ivory --body-bg, panels on the pale-blue --band-bg, pewter text
 * ramp, purple button accents from the shared :root vars. Light-scheme-only additions
 * here: input border #b9c6d2, panel border #c2d6e0, error ink #a94436 on #fbeae7.
 * The 260801-era dark-scheme pin block is gone — the previous all-dark styling is in
 * git history.
 */

/* ------------------------------------------------------------------ journey indicator */

.signup-steps {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
	font-size: 0.85rem;
	color: var(--pewter-muted);
}

.signup-steps li {
	display: flex;
	align-items: center;
	gap: 6px;
}

.signup-steps li + li::before {
	content: "\2192";
	color: #b9c6d2;
	margin-right: 6px;
}

.signup-steps .step-current {
	color: var(--pewter-head);
	font-weight: 600;
}

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

.signup-form fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

.signup-field {
	margin-bottom: 20px;
}

.signup-field label {
	display: block;
	font-weight: 600;
	color: var(--pewter-head);
	margin-bottom: 4px;
}

.signup-field .field-help {
	font-size: 0.85rem;
	color: var(--pewter-muted);
	margin: 0 0 6px;
}

.signup-field input[type="text"],
.signup-field input[type="email"],
.signup-field input[type="tel"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #b9c6d2;
	border-radius: 6px;
	background: #ffffff;
	color: var(--pewter-head);
	font-size: 1rem;
	line-height: 1.4;
}

.signup-field input:focus {
	outline: 2px solid var(--btn-hover);
	outline-offset: 1px;
}

.signup-field input[disabled],
.signup-field input[readonly] {
	background: #eef2f5;
	color: var(--pewter-muted);
}

.field-counter {
	font-size: 0.8rem;
	color: var(--pewter-muted);
	text-align: right;
	margin-top: 4px;
}

.field-hint-long {
	font-size: 0.8rem;
	color: var(--pewter-muted);
	margin-top: 4px;
}

.field-error {
	color: #a94436;
	font-size: 0.9rem;
	margin-top: 6px;
	min-height: 1em;
}

.signup-field.has-error input {
	border-color: #c0564a;
}

.signup-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-weight: 400;
}

.signup-checkbox input {
	margin-top: 4px;
}

.signup-disclosure {
	background: var(--band-bg);
	border: 1px solid #c2d6e0;
	border-radius: 6px;
	padding: 12px 16px;
	color: var(--pewter-text);
	font-size: 0.95rem;
	margin-bottom: 20px;
}

.signup-actions {
	margin-top: 24px;
}

.btn[disabled] {
	opacity: 0.55;
	cursor: not-allowed;
}

/* ------------------------------------------------------------------- name generator */

.name-generator {
	border: 1px solid #c2d6e0;
	border-radius: 6px;
	background: var(--band-bg);
	margin-bottom: 20px;
}

.name-generator summary {
	cursor: pointer;
	padding: 12px 16px;
	font-weight: 600;
	color: var(--pewter-head);
}

.name-generator-body {
	padding: 0 16px 16px;
}

.name-suggestion {
	background: #ffffff;
	border: 1px solid #c2d6e0;
	border-radius: 6px;
	padding: 10px 12px;
	margin: 12px 0;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	color: var(--pewter-head);
	overflow-wrap: anywhere;
}

.name-suggestion .suggestion-screen-name {
	color: var(--pewter-muted);
	display: block;
	margin-top: 4px;
}

.name-generator-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.name-generator-actions .btn {
	border: 1px solid #b9c6d2;
	color: var(--pewter-text);
}

.name-generator-history {
	margin-top: 14px;
}

.name-generator-history ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.name-generator-history li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding: 6px 0;
	border-top: 1px solid #dce7ee;
}

.name-generator-history .history-username {
	flex: 1 1 100%;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	color: var(--pewter-head);
	overflow-wrap: anywhere;
}

.name-generator-history .btn-small {
	border: 1px solid #b9c6d2;
	color: var(--pewter-text);
	font-size: 0.85em;
	padding: 4px 10px;
}

@media (min-width: 560px) {
	.name-generator-history .history-username {
		flex: 1 1 auto;
	}
}

/* ------------------------------------------------------------------- receipt state */

.signup-receipt {
	border: 1px solid #c2d6e0;
	border-radius: 6px;
	background: var(--band-bg);
	padding: 20px;
}

.password-block {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 12px 0;
}

.password-value {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 1.2rem;
	letter-spacing: 0.04em;
	background: #ffffff;
	border: 1px solid var(--btn);
	border-radius: 6px;
	color: var(--pewter-head);
	padding: 10px 14px;
	overflow-wrap: anywhere;
}

.receipt-banner {
	border-radius: 6px;
	padding: 10px 14px;
	margin: 12px 0;
	font-size: 0.95rem;
}

.receipt-banner.banner-ok {
	background: var(--band-bg);
	border: 1px solid #c2d6e0;
	color: var(--pewter-text);
}

.receipt-banner.banner-warn {
	background: #fbeae7;
	border: 1px solid #e0b4ac;
	color: #8f3a2e;
}

/* ------------------------------------------------------------- verification pages */

.verify-form {
	margin: 20px 0;
}

.verify-resend {
	margin: 20px 0;
}

.verify-resend label {
	display: inline-block;
	margin-right: 10px;
	color: var(--pewter-text);
}

.verify-resend input {
	padding: 8px 10px;
	border: 1px solid #b9c6d2;
	border-radius: 6px;
	background: #ffffff;
	color: var(--pewter-head);
}

/* --------------------------------------------------------------------- utilities */

.signup-hidden {
	display: none !important;
}

.signup-name-display {
	overflow-wrap: anywhere;
}
