/* Compact authentication and a progressive business registration flow. */
.login-redesign .login-back-link { position:static; display:inline-flex; align-items:center; gap:8px; margin:28px auto 0; width:min(960px,calc(100% - 40px)); color:#527564; font-size:13px; }
.login-redesign .login-bg { min-height:0; padding:28px 20px 40px; background:transparent; display:block; }
.login-redesign .login-split-card { display:grid; grid-template-columns:.9fr 1.1fr; width:100%; max-width:960px; margin:auto; border:1px solid #e0e9e3; border-radius:22px; overflow:hidden; box-shadow:0 12px 40px #254a3508; }
.login-redesign .login-welcome { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; position:relative; padding:42px; background:#edf4ee; overflow:hidden; }
.onboard-eyebrow { display:block; font-size:10px; font-weight:700; letter-spacing:1.6px; color:#638774; }
.login-welcome h2 { font-size:42px; line-height:1.15; letter-spacing:-1.5px; color:#244e3b; margin:22px 0; }
.login-welcome p { color:#738b7b; font-size:14px; line-height:1.8; max-width:230px; }
.welcome-orbit { font-size:100px; color:#bad3c1; margin-top:28px; }
.login-redesign .login-form-side { padding:42px; width:auto; max-width:none; }
.login-redesign .login-title { font-size:28px; margin:0 0 10px; letter-spacing:-.7px; }
.login-redesign .login-subtitle { font-size:13px; margin-bottom:25px; line-height:1.7; }
.login-redesign .form-group { margin-bottom:18px; }
.login-redesign .form-input { padding:12px 14px; min-height:46px; border-radius:9px; }
.login-redesign .login-options-row { margin:18px 0 24px; font-size:12px; gap:12px; }
.login-redesign .auth-button { margin-top:0; min-height:46px; border-radius:10px; }
.login-redesign .auth-footer { font-size:12px; line-height:1.7; margin-top:20px; }
.business-onboarding .auth-container { max-width:780px; margin:auto; padding:20px; }
.business-onboarding .auth-card { width:100%; padding:32px; border:1px solid #e0e9e3; border-radius:20px; box-shadow:0 10px 35px #254a3506; }
.business-onboarding .auth-title { margin:12px 0 8px; font-size:30px; letter-spacing:-.8px; }
.business-onboarding .auth-subtitle { margin-bottom:24px; font-size:13px; }
.business-onboarding .auth-form { display:block; }
.onboarding-progress { margin:24px 0; scroll-margin-top:85px; }
.onboarding-progress ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; padding:0; gap:12px; margin:0 0 14px; }
.onboarding-progress li { display:flex; align-items:center; gap:7px; color:#8b9c90; font-size:12px; font-weight:600; }
.onboarding-progress li[aria-current] { color:#24543d; }
.onboarding-progress li.complete { color:#639773; }
.onboarding-progress progress { display:block; width:100%; height:5px; border:0; border-radius:5px; overflow:hidden; accent-color:#458464; }
.onboarding-progress progress::-webkit-progress-bar { background:#eaf0eb; }
.onboarding-progress progress::-webkit-progress-value { background:#458464; }
.onboarding-step { border:0; padding:0; margin:0; min-width:0; }
.onboarding-step[hidden],.business-onboarding [hidden] { display:none!important; }
.onboarding-step legend { font-size:21px; font-weight:650; color:#2b513d; padding:0; margin:0 0 10px; }
.step-intro { font-size:13px; line-height:1.7; color:#7d8d82; margin-bottom:24px; }
.business-onboarding .form-group { margin-bottom:20px; }
.business-onboarding .form-label { font-size:12px; margin-bottom:7px; }
.business-onboarding .form-input { min-height:44px; border-radius:9px; padding:12px; font-size:13px; }
.business-onboarding small { display:block; font-size:11px; color:#839187; line-height:1.6; margin-top:7px; }
.business-onboarding .real-time-success { display:none!important; }
.business-onboarding .character-counter { padding:4px 0; background:none; font-size:10px; }
.optional-business-details { border:1px solid #dfe9e2; border-radius:12px; padding:16px; margin-bottom:24px; }
.optional-business-details summary { color:#56745f; font-size:12px; cursor:pointer; }
.optional-business-details summary span { color:#8b9c90; }
.optional-business-details[open] summary { margin-bottom:20px; }
.identity-choices { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:24px; }
.identity-choices label { display:flex; gap:9px; align-items:center; border:1px solid #d7e6db; background:#f3f8f4; border-radius:12px; padding:16px; font-size:12px; cursor:pointer; color:#3f674c; }
.identity-choices input { accent-color:#38724f; }
.onboarding-navigation { display:flex; justify-content:space-between; gap:12px; margin:24px 0 12px; }
.onboarding-navigation button { padding:12px 19px; min-height:44px; border:1px solid #d6e4da; border-radius:9px; background:white; color:#42694f; font-size:13px; }
.onboarding-navigation [data-step-next] { margin-left:auto; color:#fff; background:#24543d; border-color:#24543d; }
.onboarding-navigation button:focus-visible { outline:3px solid #8fb89a; outline-offset:3px; }
.onboarding-toast { position:fixed; z-index:12000; left:50%; top:90px; transform:translateX(-50%); width:max-content; max-width:calc(100% - 32px); border:1px solid #cce2d2; border-radius:14px; padding:16px 22px; background:#f2fbf5; color:#356348; box-shadow:0 12px 40px #204b3620; font-size:13px; animation:step-toast .3s ease-out; }
@keyframes step-toast { from { opacity:0; margin-top:10px; } to { opacity:1; margin-top:0; } }
.business-onboarding [data-plan-step] { margin:0!important; padding:18px!important; }
.checkout-recovery { padding:18px; background:#edf5ef; border:1px solid #cfdfd2; border-radius:12px; margin-bottom:18px; font-size:13px; }
.checkout-recovery h3 { font-size:18px; color:#31583e; }
.checkout-recovery a { display:inline-block; margin:10px 14px 0 0; color:#24543d; text-decoration:underline; }
[data-theme="dark"] :is(.login-split-card,.login-form-side,.business-onboarding .auth-card,.business-onboarding [data-plan-step]) { background:#1a2b24!important; border-color:#30463a!important; }
[data-theme="dark"] .login-welcome { background:#203c2e; }
[data-theme="dark"] :is(.login-title,.login-welcome h2,.onboarding-step legend,.business-onboarding .auth-title) { color:#d7eee1; }
[data-theme="dark"] :is(.login-subtitle,.step-intro,.business-onboarding .form-label) { color:#a7bdb0; }
[data-theme="dark"] :is(.identity-choices label,.checkout-recovery,.onboarding-toast) { background:#254131; border-color:#3a5845; color:#c1dfca; }
[data-theme="dark"] .business-onboarding .auth-card { background:#f7fbfb!important; border-color:#d7e4e6!important; color:#000!important; }
[data-theme="dark"] .business-onboarding .auth-card :is(.onboard-eyebrow,.auth-title,.auth-subtitle,.onboarding-step legend,.step-intro,.form-label,small,.optional-business-details summary,.optional-business-details summary span,.identity-choices label,.character-counter,.checkout-recovery,.checkout-recovery h3,.checkout-recovery a,[data-plan-step] h3,[data-plan-step] p) { color:#000!important; }
[data-theme="dark"] .business-onboarding .auth-card :is(.form-input,.identity-choices label,[data-plan-step]) { background:#fff!important; color:#000!important; border-color:#cbd5d1!important; }
[data-theme="dark"] .business-onboarding .auth-card .onboarding-navigation button:not([data-step-next]) { background:#fff!important; color:#000!important; border-color:#cbd5d1!important; }
@media(max-width:700px) {
 .login-redesign .login-split-card { display:block; border:0; box-shadow:none; }
 .login-redesign .login-welcome { display:none; }
 .login-redesign .login-form-side { padding:20px 4px; }
 .login-redesign .login-bg { padding-top:15px; }
 .business-onboarding .auth-container { padding:12px; }
 .business-onboarding .auth-card { padding:22px 16px; }
 .identity-choices { grid-template-columns:1fr; }
 .onboarding-progress li { font-size:10px; gap:4px; }
 .onboarding-step legend { font-size:19px; }
}
@media(prefers-reduced-motion:reduce) { .onboarding-toast { animation:none; } }

/* Optional channel invitation, outside the registration form and its validation. */
.business-onboarding .vendor-channel-invite { margin-top:28px; padding:20px; border:1px solid #cfe2d7; border-radius:14px; background:#eff7f1; color:#254c3d; }
.vendor-channel-heading { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.business-onboarding .vendor-channel-heading h3 { margin:0; font-size:16px; line-height:1.4; color:#254c3d; }
.vendor-channel-optional { padding:3px 8px; border-radius:999px; background:#dcecdf; color:#42634f; font-size:11px; }
.business-onboarding .vendor-channel-invite p { margin:10px 0 14px; font-size:13px; line-height:1.65; color:#4c6759; }
.business-onboarding .vendor-channel-link { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:10px 16px; border-radius:9px; background:#236447; color:#fff; font-size:13px; font-weight:600; text-decoration:none; }
.business-onboarding .vendor-channel-link:hover { background:#194e36; }
.business-onboarding .vendor-channel-link:focus-visible { outline:3px solid #236447; outline-offset:4px; }
.business-onboarding .vendor-channel-invite .vendor-channel-note { margin:12px 0 0; font-size:12px; }
.vendor-channel-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* A clear action button for business geolocation. */
.business-onboarding .business-location-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:48px; margin-top:12px; padding:12px 18px; border:1px solid #21574d; border-radius:10px; background:#21574d; color:#fff; font:inherit; font-size:14px; font-weight:600; line-height:1.4; cursor:pointer; box-shadow:0 2px 5px #173e231a; transition:background 150ms ease, box-shadow 150ms ease; }
.business-onboarding .business-location-button:hover:not(:disabled) { background:#173f37; border-color:#173f37; box-shadow:0 4px 10px #173e2326; }
.business-onboarding .business-location-button:focus-visible { outline:3px solid #70ac92; outline-offset:3px; }
.business-onboarding .business-location-button:disabled { opacity:.7; cursor:wait; }
.business-location-icon { width:20px; height:20px; flex-shrink:0; }
.business-location-button .location-busy-label { display:none; }
.business-location-button.locating .location-idle-label { display:none; }
.business-location-button.locating .location-busy-label { display:inline; }
.business-location-button.locating .business-location-icon { animation:business-location-spin 1.5s linear infinite; }
@keyframes business-location-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .business-onboarding .business-location-button { transition:none; } .business-location-button.locating .business-location-icon { animation:none; } }
