/* Login, signup and MFA opt in; recovery forms keep the existing shell. */
html.rcb-auth-document { min-width: 0; background: #fff; }
.portal-auth--visual { grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); background: #fff; min-height: 100dvh; }
.portal-auth--visual .rcb-auth-visual { position: relative; display: flex; flex-direction: column; justify-content: space-between; align-items: stretch; min-height: 100dvh; padding: clamp(2rem, 4vw, 4rem); overflow: hidden; background: #082b54; }
.rcb-auth-visual picture { position: absolute; inset: 0; }
.rcb-auth-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.rcb-auth-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #031d4180 0%, transparent 40%, #02182dc9 100%); pointer-events: none; }
.rcb-auth-visual .portal-auth__brand, .rcb-auth-visual-bottom { position: relative; z-index: 1; }
.rcb-auth-visual .portal-auth__brand { align-self: flex-start; }
.rcb-auth-visual .elyvo-brand-symbol img { width: 80px; max-height: none; height: auto; }
.rcb-auth-visual-bottom { display: flex; flex-direction: column; gap: 1.4rem; color: white; padding-top: 28rem; }
.rcb-auth-visual-bottom > span { font-size: clamp(1.4rem, 2.5vw, 2.25rem); font-weight: 500; letter-spacing: -.035em; }
.rcb-auth-visual-bottom a { color: #e3edfb; font-size: .85rem; text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; gap: 1rem; align-self: flex-start; }
.portal-auth--visual .portal-auth__panel { background: #fff; padding: 3rem 1.5rem; min-width: 0; }
.portal-auth--visual .portal-auth__card { background: transparent; padding: 0; border: 0; border-radius: 0; box-shadow: none; backdrop-filter: none; max-width: 27rem; width: 100%; }
.portal-auth--visual .portal-auth__card--setup { max-width: 30rem; }
.portal-auth--visual .portal-auth__card h1 { font-size: clamp(1.85rem, 3vw, 2.35rem); letter-spacing: -.04em; line-height: 1.2; font-weight: 650; margin-bottom: 1rem; }
.portal-auth--visual .portal-auth__eyebrow { color: #054fa4; margin-top: 0; }
.portal-auth--visual .portal-auth__description { color: #607086; font-size: .95rem; line-height: 1.65; }
.portal-auth--visual :is(h1, p, a, button, label, code) { overflow-wrap: anywhere; }
.portal-auth--visual .portal-field { min-width: 0; }
.portal-auth--visual .portal-field__label-row { flex-wrap: wrap; }
.portal-auth--visual .portal-form input { min-width: 0; }
.portal-auth--visual .portal-form input { border-radius: .65rem; min-height: 3.25rem; }
.portal-auth--visual .portal-auth__submit { min-height: 3.25rem; border-radius: .65rem; }
.portal-auth--visual .portal-auth__privacy { line-height: 1.6; }
.portal-auth--visual .portal-mfa-setup__qr { background: #f4f7fb; border-radius: 1rem; padding: 1rem; }
.portal-auth--visual :is(a, button, input, summary):focus-visible { outline: 3px solid #3482de; outline-offset: 3px; }
@media (max-width: 991.98px) {
  .portal-auth--visual { grid-template-columns: minmax(0, 1fr); }
  .portal-auth--visual .rcb-auth-visual { display: none; }
  .portal-auth--visual .portal-auth__panel { padding: max(2rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left)); min-height: 100dvh; }
  .portal-auth--visual .portal-auth__mobile-brand { display: flex; margin-bottom: 2.5rem; }
  .portal-auth--visual .portal-auth__mobile-brand img { width: 115px; height: auto; }
}
