/* Shared hierarchy for account access, recovery and approval status. */
.rcb-access-layout { color: #172b43; }
.rcb-access-layout .portal-auth__panel { padding: 3rem 2rem; align-items: center; }
.rcb-access-layout .portal-auth__card { max-width: 22.5rem; }
.rcb-access-layout .rcb-auth-visual { position: sticky; top: 0; height: 100dvh; min-height: 36rem; }
.rcb-access-layout .rcb-auth-visual-bottom { padding-top: 12rem; }
.rcb-access-brand { display: inline-flex; margin-bottom: 2.25rem; min-height: 44px; align-items: center; }
.rcb-access-brand .elyvo-brand-symbol { width: 72px; height: auto; }
.rcb-access-brand .elyvo-brand-symbol img { width: 72px; height: auto; max-height: none; }
.rcb-access-layout .portal-auth__card h1 { margin: 0 0 1rem; color: #12263d; font-size: 1.875rem; font-weight: 500; line-height: 1.25; letter-spacing: -.04em; }
.rcb-access-layout .portal-auth__description { margin: 0 0 2rem; font-size: .8125rem; line-height: 1.7; color: #58687a; }
.rcb-access-form { display: grid; gap: 1.25rem; }
.rcb-access-layout [hidden] { display: none !important; }
.rcb-access-field { min-width: 0; }
.rcb-access-field > label { display: block; margin-bottom: .5rem; font-size: .8125rem; line-height: 1.5; font-weight: 500; }
.rcb-access-input { position: relative; }
.rcb-access-layout .rcb-access-input input { width: 100%; min-width: 0; min-height: 3rem; padding: .75rem 1rem; border: 1px solid #ccd5df; border-radius: 2rem; background: #fff; color: #172b43; box-shadow: none; font-size: .875rem; line-height: 1.5; }
.rcb-access-layout .rcb-access-input input::placeholder { color: #697789; opacity: 1; }
.rcb-access-layout .rcb-access-input input:focus { border-color: #054fa4; box-shadow: 0 0 0 3px #054fa41a; outline: 0; }
.rcb-access-layout .rcb-access-input--password input { padding-right: 3.25rem; }
.rcb-password-toggle { position: absolute; top: 50%; right: .25rem; transform: translateY(-50%); display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; color: #697789; background: transparent; }
.rcb-password-toggle[hidden] { display: none; }
.rcb-password-toggle:hover { color: #054fa4; background: #f1f6fc; }
.rcb-password-toggle svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.rcb-password-slash { display: none; }
.rcb-password-toggle[aria-pressed="true"] .rcb-password-slash { display: block; }
.rcb-access-help, .rcb-access-error { margin: .5rem 0 0; font-size: .6875rem; line-height: 1.65; color: #58687a; }
.rcb-access-error { color: #b42318; }
.rcb-access-error p { margin: 0; }
.rcb-access-layout .has-error input { border-color: #b42318; }
.rcb-access-layout .rcb-access-forgot { justify-self: end; margin-top: -.75rem; font-size: .6875rem; line-height: 1.6; color: #054fa4; text-decoration: none; padding-block: .25rem; }
.rcb-access-layout .rcb-access-submit { margin-top: .25rem; width: 100%; min-height: 3rem; border: 1px solid #054fa4; border-radius: 2rem; background: #054fa4; color: #fff; font-size: .875rem; font-weight: 500; line-height: 1.5; padding: .75rem 1.25rem; box-shadow: none; }
.rcb-access-layout .rcb-access-submit:hover { background: #043f84; border-color: #043f84; }
.rcb-access-switch { margin: 1.25rem 0 0; text-align: center; color: #58687a; font-size: .75rem; line-height: 1.65; }
.rcb-access-resend { margin-top: .5rem; text-align: center; }
.rcb-access-layout .rcb-access-text-button { min-height: 44px; padding: .5rem .75rem; border: 0; border-radius: .5rem; background: transparent; color: #054fa4; font-size: .75rem; font-weight: 500; line-height: 1.65; }
.rcb-access-text-button:hover { text-decoration: underline; text-underline-offset: 3px; }
.rcb-access-resend .rcb-access-help { margin-top: 0; }
.rcb-access-live-status:empty { display: none; }
.rcb-access-summary { margin: 0 0 1.5rem; padding: 1rem; border: 1px solid #e0e7ef; border-radius: 1rem; background: #f7f9fc; }
.rcb-access-summary > div + div { margin-top: 1rem; }
.rcb-access-summary dt { margin: 0 0 .25rem; color: #58687a; font-size: .6875rem; font-weight: 400; line-height: 1.6; }
.rcb-access-summary dd { margin: 0; font-size: .8125rem; line-height: 1.65; overflow-wrap: anywhere; }
.rcb-access-note { margin: 0 0 1.5rem; padding: 1rem; border-left: 3px solid #054fa4; border-radius: 0 .75rem .75rem 0; background: #f1f6fc; font-size: .8125rem; line-height: 1.7; overflow-wrap: anywhere; }
.rcb-access-note h2 { margin: 0 0 .5rem; font-size: .8125rem; font-weight: 500; }
.rcb-access-note p { margin: 0; white-space: pre-line; }
.rcb-access-exit { margin-top: 1rem; text-align: center; }
.rcb-access-layout :is(.rcb-access-switch, .rcb-access-consent) a { color: #054fa4; text-underline-offset: 3px; }
.rcb-access-footer { display: flex; justify-content: center; flex-wrap: wrap; gap: .25rem 1.125rem; margin-top: 1rem; }
.rcb-access-layout .rcb-access-footer a { display: inline-flex; align-items: center; min-height: 44px; color: #58687a; font-size: .6875rem; text-decoration: none; }
.rcb-access-layout :is(.rcb-access-footer a, .rcb-access-forgot, .rcb-access-back):hover { color: #054fa4; text-decoration: underline; text-underline-offset: 3px; }
.rcb-access-layout .rcb-access-back { display: flex; align-items: center; gap: .5rem; width: fit-content; min-height: 44px; margin: -1.5rem 0 1.25rem; color: #58687a; font-size: .75rem; text-decoration: none; }
.rcb-access-back svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.rcb-access-consent { display: grid; grid-template-columns: 1rem minmax(0, 1fr); align-items: start; gap: .625rem; color: #58687a; }
.rcb-access-consent input { margin: .2rem 0 0; accent-color: #054fa4; }
.rcb-access-consent label { font-size: .6875rem; line-height: 1.7; }
.rcb-access-consent .rcb-access-error { grid-column: 1 / -1; }
.rcb-access-layout .portal-form-error-summary { margin: 0; padding: .875rem; font-size: .8125rem; }
@media (max-width: 991.98px) {
  .rcb-access-layout .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)); }
  /* 16px inputs avoid involuntary zoom on iOS without disabling user zoom. */
  .rcb-access-layout .rcb-access-input input { font-size: 1rem; }
}
@media (max-width: 479.98px) {
  .rcb-access-layout .portal-auth__panel { align-items: flex-start; }
}
