.ftn-login-container,
.ftn-lostpw-form {
	display: grid;
	gap: 0.75rem;
	max-width: 44rem;
	margin:2rem auto;
	padding:clamp(1rem,3vw,2rem);
	border:1px solid #e2e8f0;
	border-radius:16px;
	background:#fff;
	box-shadow:0 14px 40px rgba(15,23,42,.08);
}

.ftn-login-form,
.ftn-reg-form,
.ftn-provider-registration {
	display: grid;
	gap: 0.75rem;
}

.ftn-reg-title,.ftn-provider-registration>h2 { margin:0 0 .75rem; text-align:center; font-size:clamp(1.6rem,4vw,2.25rem); }
.ftn-reg-form>label,.ftn-provider-registration>label { display:grid; gap:.35rem; font-weight:700; }
.ftn-reg-form input,.ftn-reg-form select,.ftn-reg-form textarea,.ftn-provider-registration>input { width:100%; min-height:48px; padding:.7rem; border:1px solid #cbd5e1; border-radius:9px; background:#fff; }
.ftn-reg-button,.ftn-provider-registration>.ftn-btn { min-height:48px; margin-top:.5rem; }

.ftn-provider-registration fieldset {
	display: grid;
	gap: 0.5rem;
	margin: 0;
	padding: 1rem;
	border: 1px solid #d6d9de;
	border-radius: 0.5rem;
}

.ftn-login-container input,
.ftn-reg-container input,
.ftn-provider-registration input,
.ftn-lostpw-form input {
	max-width: 100%;
}

.ftn-provider-registration .ftn-registration-tax-group {
	border: 1px solid #e2e8f0;
	border-radius: 0.375rem;
}

.ftn-provider-registration .ftn-registration-tax-group summary {
	cursor: pointer;
	padding: 0.625rem 0.75rem;
}

.ftn-provider-registration .ftn-registration-tax-group summary label {
	cursor: pointer;
	font-weight: 600;
}

.ftn-provider-registration .ftn-registration-tax-group[open] summary { border-bottom:1px solid #e2e8f0; background:#f8fafc; }
.ftn-provider-registration fieldset>label { display:flex; align-items:center; gap:.5rem; }
.ftn-provider-registration fieldset input[type=checkbox],.ftn-provider-registration fieldset input[type=radio] { width:18px; height:18px; flex:0 0 auto; }
@media(max-width:640px){.ftn-login-container,.ftn-reg-container,.ftn-provider-registration,.ftn-lostpw-form{margin:1rem 0;padding:1rem;border-radius:12px}}

.ftn-provider-registration .ftn-registration-tax-children {
	display: grid;
	gap: 0.5rem;
	padding: 0 0.75rem 0.75rem 2rem;
}

.ftn-account-message {
	padding: 0.75rem 1rem;
	border-left: 0.25rem solid #64748b;
	background: #f8fafc;
}

.ftn-reg-container,
.ftn-provider-registration {
	width: min(930px, 100%);
	max-width: none;
	margin: 2rem auto;
	padding: clamp(1rem, 3vw, 2rem);
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	background: #fff;
	box-shadow: none;
}

.ftn-reg-container .ftn-reg-title,
.ftn-provider-registration .ftn-registration-step > h2 {
	margin: 0 0 1rem;
	text-align: left;
	font-size: clamp(1.5rem, 4vw, 2.1rem);
}

.ftn-reg-container .ftn-reg-form input,
.ftn-reg-container .ftn-reg-form select,
.ftn-reg-container .ftn-reg-form textarea,
.ftn-provider-registration .ftn-registration-account-fields input {
	width: 100%;
	min-height: 48px;
	padding: .7rem .8rem;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background: #fff;
	box-sizing: border-box;
}

.ftn-provider-registration .ftn-registration-progress { margin-bottom: 1.25rem; }
.ftn-provider-registration .ftn-registration-progress-copy { display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.45rem; }
.ftn-provider-registration .ftn-registration-progress-copy span,
.ftn-provider-registration .ftn-registration-hint { color:#64748b; }
.ftn-provider-registration .ftn-registration-progress-track { height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0; }
.ftn-provider-registration .ftn-registration-progress-track span { display:block;width:25%;height:100%;border-radius:inherit;background:#2563eb;transition:width .2s ease; }
.ftn-provider-registration .ftn-registration-step[hidden] { display:none!important; }
.ftn-provider-registration .ftn-registration-step.is-active { display:block; }
.ftn-provider-registration .ftn-registration-account-fields { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem; }
.ftn-provider-registration .ftn-registration-account-fields>label { display:grid;gap:.35rem;font-weight:700; }
.ftn-provider-registration .ftn-registration-step fieldset { display:grid;gap:.65rem;margin:1rem 0 0;padding:0;border:0; }
.ftn-provider-registration .ftn-registration-tax-group { overflow:hidden;border:1px solid #e2e8f0;border-radius:10px;background:#fff; }
.ftn-provider-registration .ftn-registration-tax-group summary { padding:.8rem .9rem; }
.ftn-provider-registration .ftn-registration-tax-group summary label { display:inline-flex;align-items:center;gap:.65rem;margin:0; }
.ftn-provider-registration .ftn-registration-tax-children { grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem;padding:.85rem 1rem 1rem 2rem; }
.ftn-provider-registration .ftn-registration-tax-children label { display:flex;align-items:center;gap:.55rem;margin:0;font-weight:400; }
.ftn-provider-registration .ftn-registration-plan-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem; }
.ftn-provider-registration .ftn-registration-plan { display:flex;align-items:flex-start;gap:.7rem;min-height:130px;margin:0;padding:1rem;border:1px solid #dbe3ec;border-radius:12px;background:#fff;cursor:pointer; }
.ftn-provider-registration .ftn-registration-plan:has(input:checked) { border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12); }
.ftn-provider-registration .ftn-registration-plan span,
.ftn-provider-registration .ftn-registration-plan small { display:block; }
.ftn-provider-registration .ftn-registration-plan strong { font-size:1.1rem; }
.ftn-provider-registration .ftn-registration-plan small { margin-top:.4rem;color:#475569;line-height:1.45; }
.ftn-provider-registration .ftn-registration-nav { display:flex;align-items:center;justify-content:flex-start;gap:.65rem;margin-top:1rem; }
.ftn-provider-registration .ftn-registration-nav .ftn-btn,
.ftn-reg-container .ftn-reg-form>.ftn-btn { min-height:46px;margin:0; }

@media(max-width:700px){
	.ftn-reg-container,.ftn-provider-registration{margin:1rem 0;padding:1rem;border-radius:10px}
	.ftn-reg-container .ftn-reg-title,.ftn-provider-registration .ftn-registration-step>h2,.ftn-provider-registration .ftn-registration-step>p{text-align:left}
	.ftn-provider-registration .ftn-registration-account-fields,.ftn-provider-registration .ftn-registration-tax-children,.ftn-provider-registration .ftn-registration-plan-grid{grid-template-columns:1fr}
	.ftn-provider-registration .ftn-registration-progress-copy{align-items:flex-start;flex-direction:column;gap:.2rem}
	.ftn-provider-registration .ftn-registration-nav{align-items:stretch;flex-direction:column-reverse}
	.ftn-provider-registration .ftn-registration-nav .ftn-btn{width:100%}
}
