.ff{--ff-primary:var(--primary,#1b39cc);--ff-ink:var(--foreground,#0a0f1c);--ff-body:var(--text-secondary,#4a5468);--ff-muted:var(--text-muted,#667085);--ff-line:#e3e7ef;--ff-tint:color-mix(in srgb, var(--ff-primary) 8%, #fff);border:1px solid var(--ff-line);font-family:var(--font-inter), Inter, sans-serif;color:var(--ff-ink);background:#fff;border-radius:28px;padding:28px;box-shadow:0 1px 2px #0a0f1c0a,0 40px 90px -50px #0a0f1c59}.ff *,.ff :before,.ff :after{box-sizing:border-box}.ff h2{margin:0 0 4px;font-size:1.375rem;font-weight:700}.ff-sub{color:var(--ff-muted);margin:0 0 18px;font-size:.875rem}.ff-progress-row{margin-bottom:20px}.ff-autofill{justify-content:flex-end;margin:-4px 0 14px;display:flex}.ff-progress-track{background:#f1f2f6;border-radius:999px;height:6px;overflow:hidden}.ff-progress-fill{background:var(--ff-primary);border-radius:999px;height:100%;transition:width .25s}.ff-progress-labels{color:var(--ff-muted);justify-content:space-between;align-items:center;margin-top:8px;font-size:.75rem;font-weight:600;display:flex}.ff-progress-labels span:last-child{align-items:center;gap:4px;display:inline-flex}.ff-steps{border-bottom:1px solid var(--ff-line);flex-wrap:wrap;gap:6px;margin-bottom:18px;padding-bottom:18px;display:flex}.ff-step-tab{color:var(--ff-muted);cursor:not-allowed;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:.75rem;font-weight:700;display:inline-flex}.ff-step-tab:disabled{opacity:.55}.ff-step-tab.is-done{color:var(--ff-body);cursor:pointer}.ff-step-tab.is-active{background:var(--ff-tint);border-color:color-mix(in srgb, var(--ff-primary) 25%, transparent);color:var(--ff-primary)}.ff-step-n{color:#4a5468;background:#eef0f5;border-radius:999px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.75rem;font-weight:700;display:inline-flex}.ff-step-tab.is-active .ff-step-n{background:var(--ff-primary);color:#fff}.ff-step-tab.is-done .ff-step-n{color:#059669;background:#d1fae5}.ff-section-meta{letter-spacing:.08em;text-transform:uppercase;color:var(--ff-muted);margin:0 0 6px;font-size:.75rem;font-weight:700}.ff-callout{background:var(--ff-tint);color:var(--ff-primary);border-radius:12px;align-items:flex-start;gap:8px;margin-bottom:18px;padding:12px 14px;font-size:.8125rem;line-height:1.5;display:flex}.ff-callout svg{flex:none;margin-top:2px}.ff-before{border:1px solid var(--ff-line);background:#fafbfd;border-radius:16px;margin-bottom:20px;padding:16px}.ff-before-title{margin:0 0 10px;font-size:.8125rem;font-weight:700}.ff-before ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ff-before li{color:var(--ff-body);align-items:center;gap:8px;font-size:.8125rem;display:flex}.ff-before li svg{color:var(--ff-primary);flex:none}.ff-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.ff-field{margin-bottom:16px;display:block}.ff-label{color:var(--ff-ink);margin-bottom:6px;font-size:.8125rem;font-weight:700;display:block}.ff-req{color:#dc2626}.ff-note{color:var(--ff-muted);margin-top:6px;font-size:.75rem;display:block}.ff-input{border:1px solid var(--ff-line);width:100%;font:inherit;color:var(--ff-ink);resize:vertical;background:#fff;border-radius:10px;outline:none;padding:11px 14px;font-size:.875rem}.ff-input:focus{border-color:var(--ff-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--ff-primary) 14%, transparent)}.ff-input:disabled{color:var(--ff-muted);background:#fafbfd}.ff-field-error{color:#dc2626;margin-top:6px;font-size:.75rem;font-weight:600}.ff-step-error{margin:4px 0 16px}.ff-otp-row{gap:8px;display:flex}.ff-otp-row .ff-input{flex:1}.ff-otp-input{border:1px solid var(--ff-line);width:110px;font:inherit;letter-spacing:.1em;border-radius:10px;flex:none;padding:11px 12px;font-size:.875rem}.ff-otp-verified{color:#059669;white-space:nowrap;background:#ecfdf5;border-radius:10px;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:.8125rem;font-weight:700;display:inline-flex}.ff-otp-resend-row{color:var(--ff-muted);margin-top:6px;font-size:.78rem}.ff-otp-resend-btn{font:inherit;color:var(--ff-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.78rem;font-weight:700;text-decoration:underline}.ff-otp-resend-btn:disabled{color:var(--ff-muted);cursor:not-allowed;text-decoration:none}.ff-toggle-row{gap:10px;display:flex}.ff-toggle{border:1px solid var(--ff-line);font:inherit;color:var(--ff-body);background:#fff;border-radius:10px;padding:10px 20px;font-size:.8125rem;font-weight:700}.ff-toggle.is-on{border-color:var(--ff-primary);background:var(--ff-tint);color:var(--ff-primary)}.ff-foot{border-top:1px solid var(--ff-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:8px;padding-top:18px;display:flex}.ff-saved{color:var(--ff-muted);align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.ff-foot-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.ff-btn-primary{background:var(--ff-primary);color:#fff;border:0;border-radius:12px;align-items:center;gap:8px;padding:12px 22px;font-size:.875rem;font-weight:600;display:inline-flex}.ff-btn-primary:hover{filter:brightness(1.08)}.ff-btn-primary:disabled{opacity:.6;cursor:not-allowed}.ff-btn-ghost{border:1px solid var(--ff-line);color:var(--ff-ink);white-space:nowrap;background:#fff;border-radius:12px;align-items:center;gap:8px;padding:11px 18px;font-size:.8125rem;font-weight:600;display:inline-flex}.ff-btn-ghost:hover{border-color:color-mix(in srgb, var(--ff-primary) 35%, transparent)}.ff-btn-ghost:disabled{opacity:.55;cursor:not-allowed}.ff-done{text-align:center;padding:20px 8px}.ff-done-icon{color:#059669;background:#ecfdf5;border-radius:999px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:16px;display:inline-flex}.ff-done h2{margin-bottom:10px}.ff-done p{color:var(--ff-body);max-width:46ch;margin:0 auto 12px;font-size:.9375rem;line-height:1.6}.ff-done-code{font-size:.875rem}.ff-done-note{color:var(--ff-muted);font-size:.75rem;font-style:italic}@media (max-width:640px){.ff-grid-2{grid-template-columns:1fr}.ff-otp-row{flex-wrap:wrap}}
