.fs-auth {
	display: flex;
	justify-content: center;
	padding: 40px 16px;
}
.fs-card {
	width: 100%;
	max-width: 420px;
	background: #fff;
	border: 1px solid #e6e6e6;
	border-radius: 14px;
	padding: 28px 24px;
	box-shadow: 0 6px 24px rgba( 0, 0, 0, 0.06 );
}
.fs-title {
	margin: 0 0 4px;
	font-size: 1.5rem;
	line-height: 1.2;
}
.fs-sub {
	margin: 0 0 20px;
	color: #666;
	font-size: 0.95rem;
}
.fs-field { margin-bottom: 16px; }
.fs-field label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.85rem;
	font-weight: 600;
	color: #333;
}
.fs-field input[type="text"],
.fs-field input[type="tel"] {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #d0d0d0;
	border-radius: 10px;
	font-size: 1rem;
	box-sizing: border-box;
}
.fs-field input:focus {
	outline: none;
	border-color: #0b7;
	box-shadow: 0 0 0 3px rgba( 0, 187, 119, 0.15 );
}
.fs-inline { display: flex; align-items: stretch; gap: 8px; }
.fs-inline > .iti,
.fs-inline > input { flex: 1 1 auto; min-width: 0; }
.fs-inline .iti { display: block; width: 100%; }
.fs-inline .iti input,
.fs-inline > input { width: 100%; box-sizing: border-box; }
.fs-inline-btn {
	flex: 0 0 auto;
	border: none;
	background: #0b7;
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	padding: 0 18px;
	border-radius: 10px;
	cursor: pointer;
	white-space: nowrap;
}
.fs-inline-btn:disabled { background: #bdbdbd; cursor: not-allowed; }
/* keep the country dropdown above theme content and un-clipped */
.iti__country-list { z-index: 1000; }
.fs-btn {
	display: inline-block;
	width: 100%;
	text-align: center;
	background: #0b7;
	color: #fff;
	font-weight: 600;
	border: none;
	padding: 13px 18px;
	border-radius: 10px;
	font-size: 1rem;
	cursor: pointer;
	text-decoration: none;
}
.fs-btn-secondary { background: #444; }
.fs-link {
	background: none;
	border: none;
	color: #0b7;
	cursor: pointer;
	font-size: 0.85rem;
	margin-top: 8px;
	padding: 0;
}
.fs-msg {
	margin: 14px 0 0;
	padding: 10px 12px;
	border-radius: 8px;
	font-size: 0.9rem;
}
.fs-msg-error { background: #fdecea; color: #b3261e; }
.fs-msg-info { background: #e8f5ee; color: #0a6b45; }
.fs-fine {
	margin: 18px 0 0;
	font-size: 0.8rem;
	color: #888;
	text-align: center;
}
.fs-hidden { display: none !important; }

/* Primary action: full width, below the fine print. */
#fs-phone-verify { margin-top: 14px; }
#fs-phone-verify:disabled { background: #bdbdbd; cursor: not-allowed; }

#fs-price-block { margin-bottom: 16px; }
.fs-total-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-weight: 600;
	padding: 10px 0;
	border-top: 1px solid #eee;
	border-bottom: 1px solid #eee;
	margin-bottom: 8px;
}
.fs-total-row #fs-total { font-size: 1.15rem; }
.fs-coupon-note {
	margin: 8px 0 0;
	padding: 8px 10px;
	border-radius: 8px;
	font-size: 0.85rem;
}
#fs-coupon-field { margin-top: 8px; }
#fs-coupon { text-transform: uppercase; }

@media ( prefers-color-scheme: dark ) {
	.fs-total-row { border-color: #333; }
	.fs-card { background: #1c1c1e; border-color: #333; }
	.fs-title { color: #f2f2f2; }
	.fs-field label { color: #ddd; }
	.fs-field input { background: #2a2a2c; border-color: #444; color: #f2f2f2; }
}
