/* All overrides are opt-in. The existing layout never loads this stylesheet. */
html:has(.auth-page--custom), body:has(.auth-page--custom) { height:auto; min-height:100%; overflow-x:hidden; overflow-y:auto; }
.content:has(.auth-page--custom) { height:auto!important; max-height:none!important; min-height:100dvh!important; overflow:visible!important; }
.auth-page--custom:is(.login-container,.register-container,.forgot-container,.reset-container) { display:flex; height:auto; min-height:100dvh; padding:0; background:#fff; overflow:visible; color:#0f172a; }
.auth-page--custom::before,.auth-page--custom::after { display:none; }
.auth-page--custom :is(.login-shell,.register-shell,.forgot-shell,.reset-shell) { display:grid; width:100%; height:auto; min-height:100dvh; grid-template-columns:minmax(0,1fr) minmax(0,1fr); overflow:visible; }
.auth-page--custom :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { height:auto; min-height:100dvh; width:100%; padding:40px clamp(24px,4vw,64px); overflow:visible; justify-content:center; box-sizing:border-box; background:#fff; }
.auth-page--custom .auth-brand-corner { align-self:center; justify-content:center; margin:0 auto 32px; width:100%; }
.auth-page--custom .auth-brand-corner img { max-width:min(220px,100%); max-height:56px; object-position:center; filter:none; }
.auth-page--custom :is(.login-content,.register-content,.forgot-content,.reset-content) { flex-shrink:0; margin:0 auto; padding:0; width:100%; }
.auth-page--custom :is(.login-content,.forgot-content,.reset-content) { max-width:390px; }
.auth-page--custom .register-content { max-width:560px; }
.auth-page--custom .login-version { position:static; margin:24px 0 0; text-align:center; }
.auth-page--custom :is(.login-title,.register-title,.forgot-title,.reset-title) { color:#0f172a!important; overflow-wrap:anywhere; }
.auth-page--custom :is(.login-showcase,.register-showcase,.forgot-showcase,.reset-showcase) { display:flex; position:relative; min-width:0; height:auto; min-height:100dvh; background:var(--auth-brand)!important; color:var(--auth-on-brand); overflow:hidden; align-items:stretch; justify-content:stretch; }
.auth-page--custom .auth-brand-story { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:space-between; gap:48px; width:100%; padding:clamp(32px,5vw,80px); }
.auth-page--custom .auth-brand-name { font-size:24px; font-weight:700; letter-spacing:-.04em; overflow-wrap:anywhere; }
.auth-page--custom .auth-brand-copy h2 { margin:24px 0; font-size:clamp(32px,4vw,64px); line-height:1.08; font-weight:600; letter-spacing:-.045em; color:inherit; overflow-wrap:anywhere; }
.auth-page--custom .auth-brand-copy p { max-width:360px; font-size:16px; line-height:1.65; color:inherit; }
.auth-page--custom .auth-brand-rule { display:block; width:48px; height:4px; border-radius:4px; background:currentColor; }
.auth-page--custom .auth-brand-signature { font-size:13px; overflow-wrap:anywhere; }
.auth-page--custom .auth-brand-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.12; }
.auth-page--custom :is(.login-submit,.register-submit,.forgot-submit,.reset-submit,.signup-progress-item[aria-current="step"] .signup-step-number) { background:var(--auth-brand); color:var(--auth-on-brand); }
.auth-page--custom :is(.login-submit,.register-submit,.forgot-submit,.reset-submit):hover { background:var(--auth-brand); filter:brightness(.96); }
/* Classic: centered white card, brand above it and a subtle grid backdrop. */
.auth-page--classic:is(.login-container,.register-container,.forgot-container,.reset-container) { background:#f8fafb; isolation:isolate; }
.auth-page--classic:is(.login-container,.register-container,.forgot-container,.reset-container)::before { content:""; display:block; position:absolute; inset:0; width:100%; height:100%; border-radius:0; background-image:linear-gradient(#cbd5e12e 1px,transparent 1px),linear-gradient(90deg,#cbd5e12e 1px,transparent 1px); background-size:36px 36px; mask-image:radial-gradient(ellipse 48% 65% at center,#000,transparent); pointer-events:none; z-index:-1; }
.auth-page--classic :is(.login-shell,.register-shell,.forgot-shell,.reset-shell) { grid-template-columns:minmax(0,1fr); }
.auth-page--classic :is(.login-showcase,.register-showcase,.forgot-showcase,.reset-showcase) { display:none; }
.auth-page--classic :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { max-width:704px; margin:auto; background:transparent; padding:56px 24px; }
.auth-page--classic .auth-brand-corner { margin-bottom:18px; }
.auth-page--classic .auth-brand-corner img { max-width:220px; max-height:48px; }
.auth-page--classic :is(.login-content,.forgot-content,.reset-content) { max-width:420px; }
.auth-page--classic .register-form-side { max-width:760px; }
.auth-page--classic .register-content { max-width:640px; }
.auth-page--classic .phone-row { align-items:flex-start; }
.auth-page--classic :is(.login-header,.register-header,.forgot-header,.reset-header) { text-align:center; margin:0 0 24px; }
.auth-page--classic .login-title { font-size:15px; font-weight:400; line-height:1.6; letter-spacing:0; color:#64748b!important; }
.auth-page--classic .register-title { font-size:24px; font-weight:600; line-height:1.3; letter-spacing:-.025em; }
.auth-page--classic .register-subtitle { margin-top:8px; font-size:14px; color:#64748b; }
.auth-page--classic :is(.login-form,.register-form,.forgot-form,.reset-form) { padding:32px; background:#fff; border:1px solid #e5e7eb; border-radius:18px; box-shadow:0 16px 40px -24px #0f172a40,0 2px 5px #0f172a04; box-sizing:border-box; }
.auth-page--classic .form-label { color:#374151; font-size:13px; font-weight:500; }
.auth-page--classic .form-input { background:#fff; border-color:#d8dde3; border-radius:10px; min-height:46px; box-shadow:0 1px 2px #0f172a03; }
.auth-page--classic .form-input:focus { border-color:var(--auth-brand); box-shadow:0 0 0 3px color-mix(in srgb,var(--auth-brand) 16%,transparent); }
.auth-page--classic :is(.login-submit,.register-submit,.forgot-submit,.reset-submit) { min-height:48px; border-radius:10px; box-shadow:0 5px 14px color-mix(in srgb,var(--auth-brand) 20%,transparent); }
.auth-page--classic :is(.login-footer,.forgot-footer,.reset-footer) { margin-top:22px; padding-top:0; border:0; }
.auth-page--classic :is(.login-footer,.register-footer,.forgot-footer,.reset-footer) { font-size:13px; color:#64748b; text-align:center; }
.auth-page--classic .login-version { margin-top:24px; font-size:11px; color:#94a3b8; }
/* Split: a solid brand panel and message, beside the logo and form. */
.auth-page--split :is(.login-shell,.register-shell,.forgot-shell,.reset-shell) { grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); padding:20px; gap:20px; box-sizing:border-box; }
.auth-page--split :is(.login-showcase,.register-showcase,.forgot-showcase,.reset-showcase) { grid-column:1; grid-row:1; min-height:calc(100dvh - 40px); border-radius:24px; isolation:isolate; }
.auth-page--split :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { grid-column:2; grid-row:1; min-height:calc(100dvh - 40px); padding:48px clamp(28px,4.5vw,72px); justify-content:flex-start; }
.auth-page--split .auth-brand-corner { justify-content:flex-start; max-width:560px; margin:0 auto 40px; }
.auth-page--split:is(.login-container,.forgot-container,.reset-container) .auth-brand-corner { max-width:400px; }
.auth-page--split .auth-brand-corner img { object-position:left; max-width:190px; max-height:48px; }
.auth-page--split :is(.login-content,.forgot-content,.reset-content) { max-width:400px; }
.auth-page--split :is(.login-content,.register-content,.forgot-content,.reset-content) { margin:auto; }
.auth-page--split .login-version { margin:32px 0 0; }
.auth-page--split :is(.login-header,.register-header,.forgot-header,.reset-header) { text-align:left; }
.auth-page--split .login-title { font-size:28px; line-height:1.25; letter-spacing:-.035em; font-weight:600; }
.auth-page--split .auth-brand-story { padding:clamp(32px,4vw,64px); justify-content:flex-start; }
.auth-page--split .auth-split-logo { display:block; width:auto; height:auto; max-width:min(220px,100%); max-height:56px; object-fit:contain; object-position:left; align-self:flex-start; flex-shrink:0; filter:brightness(0) invert(1); }
@media(min-width:961px) {
  .auth-page--split .auth-brand-corner { display:none; }
}
.auth-page--split .auth-brand-copy { margin:auto 0; padding:48px 0; }
.auth-page--split .auth-brand-copy h2 { font-size:clamp(36px,3.5vw,52px); max-width:460px; line-height:1.12; }
.auth-page--split .auth-brand-copy p,.auth-page--split .auth-brand-signature { display:none; }
@media(max-width:1100px) and (min-width:961px) {
  .auth-page--split :is(.login-shell,.register-shell,.forgot-shell,.reset-shell) { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
  .auth-page--split :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { padding:40px 28px; }
}
/* Immersive: brand-colored page and white floating form, with natural page scrolling. */
.auth-page--immersive:is(.login-container,.register-container,.forgot-container,.reset-container) { padding:40px 24px; background:var(--auth-brand); align-items:center; justify-content:center; box-sizing:border-box; }
.auth-page--immersive :is(.login-shell,.register-shell,.forgot-shell,.reset-shell) { display:block; min-height:0; width:100%; max-width:496px; }
.auth-page--immersive .register-shell { max-width:688px; }
.auth-page--immersive :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { min-height:0; border-radius:24px; padding:40px; box-shadow:0 24px 72px #0000001c; }
.auth-page--immersive :is(.login-showcase,.register-showcase,.forgot-showcase,.reset-showcase) { display:none; }
.auth-page--immersive :is(.login-header,.register-header,.forgot-header,.reset-header) { text-align:center; }
/* Editorial: spacious form and inset brand panel. */
.auth-page--editorial :is(.login-shell,.register-shell,.forgot-shell,.reset-shell) { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
.auth-page--editorial :is(.login-showcase,.register-showcase,.forgot-showcase,.reset-showcase) { margin:24px 24px 24px 0; min-height:calc(100dvh - 48px); border-radius:24px; }
.auth-page--editorial .auth-brand-story { padding:clamp(28px,4vw,64px); }
.auth-page--editorial .auth-brand-copy h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.035em; }
.auth-page--editorial .auth-brand-corner { justify-content:flex-start; max-width:560px; }
.auth-page--editorial:is(.login-container,.forgot-container,.reset-container) .auth-brand-corner { max-width:390px; }
.auth-page--editorial .auth-brand-corner img { object-position:left; }
.auth-page--editorial :is(.login-header,.forgot-header,.reset-header) { text-align:left; }
@media(max-width:960px) {
  .auth-page--split :is(.login-shell,.register-shell,.forgot-shell,.reset-shell) { padding:0; gap:0; }
  .auth-page--custom :is(.login-shell,.register-shell,.forgot-shell,.reset-shell) { grid-template-columns:minmax(0,1fr); }
  .auth-page--custom :is(.login-showcase,.register-showcase,.forgot-showcase,.reset-showcase) { display:none; }
  .auth-page--custom :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { grid-column:auto; grid-row:auto; padding:32px 24px; }
  .auth-page--split:is(.login-container,.register-container,.forgot-container,.reset-container), .auth-page--editorial:is(.login-container,.register-container,.forgot-container,.reset-container) { border-top:8px solid var(--auth-brand); box-sizing:border-box; }
  .auth-page--split :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side), .auth-page--editorial :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { min-height:calc(100dvh - 8px); }
  .auth-page--immersive :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { min-height:0; }
}
@media(max-width:600px) {
  .auth-page--custom :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { padding:28px 20px; }
  .auth-page--custom .auth-brand-corner { margin-bottom:28px; }
  .auth-page--immersive:is(.login-container,.register-container,.forgot-container,.reset-container) { padding:20px 12px; }
  .auth-page--immersive :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { border-radius:18px; }
  .auth-page--custom :is(input,select,textarea) { font-size:16px; }
}

@media(max-width:600px) {
  .auth-page--classic :is(.login-form-side,.register-form-side,.forgot-form-side,.reset-form-side) { padding:32px 16px; }
  .auth-page--classic :is(.login-form,.register-form,.forgot-form,.reset-form) { padding:24px 20px; border-radius:16px; }
  .auth-page--classic .auth-brand-corner { margin-bottom:18px; }
}

/* Recovery shares the chosen layout, including sent/expired-link states. */
.auth-page--custom .reset-form-side { display:flex; flex-direction:column; min-width:0; }
.auth-page--custom .reset-decoration { display:none; }
.auth-page--custom .reset-card { max-width:390px; background:transparent; border-radius:0; box-shadow:none; backdrop-filter:none; padding:0; }
.auth-page--custom .reset-logo img { width:auto; height:auto; object-fit:contain; }
.auth-page--custom :is(.forgot-title,.reset-title) { font-size:28px!important; line-height:1.25!important; letter-spacing:-.03em; font-weight:600; }
.auth-page--custom .reset-title.error { color:#b91c1c!important; }
.auth-page--custom :is(.forgot-subtitle,.reset-subtitle,.reset-hint,.form-hint) { color:#64748b; }
.auth-page--custom .reset-content .form-label { color:#334155; }
.auth-page--custom .reset-content .form-input { color:#0f172a; background:#f8fafc; border:1px solid #dbe3ef; border-radius:10px; }
.auth-page--custom .reset-content .form-input:focus { background:#fff; border-color:var(--auth-brand); box-shadow:0 0 0 3px color-mix(in srgb,var(--auth-brand) 16%,transparent); }
.auth-page--custom .reset-footer { border-color:#e2e8f0; }
.auth-page--custom .reset-icon.form-icon { background:color-mix(in srgb,var(--auth-brand) 12%,transparent); }
.auth-page--custom .reset-icon.form-icon :is(i,svg) { color:var(--auth-brand); }
.auth-page--classic .reset-content { max-width:420px; padding:32px; background:#fff; border:1px solid #e5e7eb; border-radius:18px; box-shadow:0 16px 40px -24px #0f172a40,0 2px 5px #0f172a04; box-sizing:border-box; }
.auth-page--classic .reset-form { padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.auth-page--classic .reset-content .form-input { background:#fff; }
.auth-page--split :is(.forgot-title,.reset-title) { text-align:left; }
.auth-page--editorial .reset-icon-wrapper,.auth-page--split .reset-icon-wrapper { justify-content:flex-start; }
@media(max-width:600px) {
  .auth-page--custom :is(.forgot-title,.reset-title) { font-size:24px!important; }
  .auth-page--classic .reset-content { padding:24px 20px; border-radius:16px; }
}
