/* NOVA RADIUS Login v3.0 — core.css native, mobile-first, RTL/LTR. */
:root {
  --nova-login-max: 27rem;
  --nova-login-gap: 1rem;
  --nova-login-control: 3.15rem;
  --nova-login-radius: var(--bs-border-radius-xl, 1.15rem);
  --nova-login-soft: color-mix(in srgb, var(--bs-paper-bg, var(--bs-body-bg)) 94%, var(--bs-primary) 6%);
  --nova-login-line: var(--bs-border-color-translucent, rgba(var(--bs-emphasis-color-rgb), .12));
}

html, body { min-block-size: 100%; }
html[dir="rtl"] body { font-family: Cairo, "Public Sans", sans-serif; }
body { overflow-x: hidden; background: var(--bs-body-bg); }

.authentication-wrapper.authentication-cover,
.authentication-wrapper .authentication-inner { min-block-size: 100dvh; }

.auth-cover-brand { inset-inline-start: 2rem !important; inset-inline-end: auto !important; z-index: 5; }
.auth-cover-bg { position: relative; inline-size: 100%; min-block-size: 100dvh; overflow: hidden; background: var(--bs-body-bg); }
.auth-cover-bg .auth-illustration { position: relative; z-index: 1; max-inline-size: min(44rem,72%); max-block-size: 72vh; object-fit: contain; }
.auth-cover-bg .platform-bg { position: absolute; inset-inline: 0; inset-block-end: 0; z-index: 0; inline-size: 100%; }

.nova-login-column { min-block-size: 100dvh; overflow-y: auto; background: var(--bs-paper-bg, var(--bs-body-bg)) !important; }
.nova-login-form-wrap { inline-size: 100%; max-inline-size: var(--nova-login-max); margin: auto; padding-block: 5.25rem 2rem; }

.nova-mobile-header { display: none; }
.nova-login-tools { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-block-end: 1rem; }
.nova-login-languages { display: inline-flex; align-items: center; gap: .25rem; padding: .22rem; min-block-size: 2.5rem; border: 1px solid var(--nova-login-line); border-radius: var(--bs-border-radius-pill); background: var(--nova-login-soft); }
.nova-login-languages > span { inline-size: 1px; block-size: 1rem; background: var(--bs-border-color); opacity: .7; }
.nova-login-language { display: inline-flex; align-items: center; justify-content: center; min-block-size: 2rem; padding-inline: .8rem; border-radius: var(--bs-border-radius-pill); color: var(--bs-secondary-color); font-size: .78rem; font-weight: 800; }
.nova-login-language.is-active { color: var(--bs-primary); background: var(--bs-paper-bg); box-shadow: var(--bs-box-shadow-sm); }
.nova-login-theme-toggle { inline-size: 2.5rem; block-size: 2.5rem; flex: 0 0 auto; border: 1px solid var(--nova-login-line) !important; background: var(--nova-login-soft) !important; color: var(--bs-heading-color) !important; }

.nova-quick-access { margin-block-end: 1.1rem; }
.nova-quick-access-toggle { display: none; }
.nova-quick-access-panel[hidden] { display: block; }
.nova-quick-access-heading { display: flex; align-items: end; justify-content: space-between; gap: .75rem; margin-block-end: .55rem; }
.nova-quick-access-heading h2 { margin: 0; color: var(--bs-heading-color); font-size: .85rem; font-weight: 800; }
.nova-quick-access-heading p { margin: .12rem 0 0; color: var(--bs-secondary-color); font-size: .7rem; }
.nova-quick-access-list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(5.1rem,1fr); gap: .5rem; inline-size: 100%; padding: .55rem; overflow-x: auto; border: 1px solid var(--nova-login-line); border-radius: var(--nova-login-radius); background: var(--nova-login-soft); scrollbar-width: thin; }
.nova-saved-account { position: relative; min-inline-size: 0; border: 1px solid transparent; border-radius: var(--bs-border-radius-lg); background: var(--bs-paper-bg, var(--bs-body-bg)); }
.nova-saved-account.is-recent { border-color: rgba(var(--bs-primary-rgb), .45); box-shadow: 0 0 0 .13rem rgba(var(--bs-primary-rgb), .07); }
.nova-saved-login-form { block-size: 100%; margin: 0; }
.nova-saved-login { inline-size: 100%; min-block-size: 6.1rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .25rem; padding: .58rem .4rem .5rem; border: 0; border-radius: inherit; background: transparent; color: inherit; }
.nova-saved-avatar { --nova-avatar-color: var(--bs-primary); inline-size: 2.5rem; block-size: 2.5rem; position: relative; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 50%; background: color-mix(in srgb,var(--nova-avatar-color) 15%,var(--bs-paper-bg)); color: var(--nova-avatar-color); font-weight: 900; }
.nova-saved-account.is-tone-2 .nova-saved-avatar { --nova-avatar-color: var(--bs-info); }
.nova-saved-account.is-tone-3 .nova-saved-avatar { --nova-avatar-color: var(--bs-success); }
.nova-saved-account.is-tone-4 .nova-saved-avatar { --nova-avatar-color: var(--bs-warning); }
.nova-saved-account.is-tone-5 .nova-saved-avatar { --nova-avatar-color: var(--bs-danger); }
.nova-saved-account.is-tone-6 .nova-saved-avatar { --nova-avatar-color: #8b5cf6; }
.nova-saved-account.is-tone-7 .nova-saved-avatar { --nova-avatar-color: #0ea5e9; }
.nova-saved-account.is-tone-8 .nova-saved-avatar { --nova-avatar-color: #14b8a6; }
.nova-saved-avatar img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; }
.nova-saved-avatar img.is-broken { display: none; }
.nova-saved-username,.nova-saved-meta { inline-size: 100%; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nova-saved-username { color: var(--bs-heading-color); font-size: .74rem; font-weight: 800; }
.nova-saved-meta { color: var(--bs-secondary-color); font-size: .64rem; font-weight: 600; }
.nova-remove-saved { position: absolute; inset-block-start: .25rem; inset-inline-start: .25rem; inline-size: 1.5rem; block-size: 1.5rem; display: inline-grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--bs-danger-bg-subtle); color: var(--bs-danger); z-index: 2; }

.nova-login-intro { margin-block-end: 1.25rem; }
.nova-login-intro h1 { margin: 0 0 .35rem; color: var(--bs-heading-color); font-size: 1.55rem; font-weight: 800; line-height: 1.35; }
.nova-login-intro p { margin: 0; color: var(--bs-secondary-color); font-size: .93rem; line-height: 1.7; }
.nova-login-form { display: grid; gap: .95rem; }
.nova-login-field { margin: 0; }
.nova-login-field .form-label { margin-block-end: .4rem; color: var(--bs-heading-color); font-size: .84rem; font-weight: 800; }
.nova-login-field .form-control,.nova-login-field .input-group-text { min-block-size: var(--nova-login-control); }
.nova-login-field .form-control { border-color: var(--bs-border-color); border-radius: var(--bs-border-radius-lg); background-color: var(--bs-paper-bg, var(--bs-body-bg)); }
.nova-login-field .input-group .form-control { border-start-end-radius: 0; border-end-end-radius: 0; }
.nova-login-field .input-group-text { min-inline-size: 3rem; justify-content: center; border-color: var(--bs-border-color); border-start-end-radius: var(--bs-border-radius-lg); border-end-end-radius: var(--bs-border-radius-lg); }
.nova-login-options { display: flex; justify-content: flex-start; margin-block-start: -.15rem; }
.nova-login-options .form-check-label { color: var(--bs-secondary-color); font-size: .82rem; }
.nova-login-submit { min-block-size: 3.2rem; border-radius: var(--bs-border-radius-lg); font-size: 1rem; font-weight: 800; }
.nova-login-submit.is-loading { pointer-events: none; opacity: .8; }
.nova-login-footnote { display: flex; align-items: center; justify-content: center; gap: .4rem; margin: 1.35rem 0 0; padding-block-start: 1rem; border-block-start: 1px solid var(--nova-login-line); color: var(--bs-secondary-color); font-size: .75rem; text-align: center; }

@media (max-width: 1199.98px) {
  .auth-cover-brand { display: none !important; }
  .nova-login-column { padding: 0 !important; align-items: flex-start !important; }
  .nova-login-form-wrap { max-inline-size: 31rem; margin-inline: auto; padding: max(1rem,env(safe-area-inset-top)) 1rem max(1.25rem,env(safe-area-inset-bottom)); }
  .nova-mobile-header { display: flex; align-items: center; justify-content: center; min-block-size: 3.5rem; margin-block-end: .75rem; }
  .nova-mobile-brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--bs-heading-color); font-size: .95rem; font-weight: 800; }
  .nova-mobile-brand-mark { inline-size: 2.35rem; block-size: 2.35rem; display: inline-grid; place-items: center; border-radius: .8rem; background: rgba(var(--bs-primary-rgb),.12); color: var(--bs-primary); }
  .nova-login-tools { margin-block-end: .9rem; }
  .nova-quick-access-toggle { inline-size: 100%; min-block-size: 3.75rem; display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; align-items: center; gap: .7rem; padding: .65rem .75rem; border: 1px solid var(--nova-login-line); border-radius: var(--nova-login-radius); background: var(--nova-login-soft); color: inherit; text-align: start; }
  .nova-quick-access-toggle__icon { inline-size: 2.35rem; block-size: 2.35rem; display: inline-grid; place-items: center; border-radius: .75rem; background: rgba(var(--bs-primary-rgb),.12); color: var(--bs-primary); }
  .nova-quick-access-toggle__copy { min-inline-size: 0; display: grid; gap: .08rem; }
  .nova-quick-access-toggle__copy strong { overflow: hidden; color: var(--bs-heading-color); font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
  .nova-quick-access-toggle__copy small { color: var(--bs-secondary-color); font-size: .68rem; }
  .nova-quick-access-toggle__action { color: var(--bs-primary); font-size: .72rem; font-weight: 800; }
  .nova-quick-access-toggle__chevron { transition: transform .2s ease; }
  .nova-quick-access.is-open .nova-quick-access-toggle__chevron { transform: rotate(180deg); }
  .nova-quick-access-panel[hidden] { display: none; }
  .nova-quick-access-panel { margin-block-start: .55rem; }
  .nova-quick-access-heading { display: none; }
  .nova-quick-access-list { grid-auto-columns: 5.4rem; padding: .5rem; }
  .nova-saved-login { min-block-size: 5.5rem; }
  .nova-saved-avatar { inline-size: 2.25rem; block-size: 2.25rem; }
  .nova-login-intro { margin-block: 1rem 1rem; text-align: center; }
  .nova-login-intro h1 { font-size: 1.45rem; }
  .nova-login-intro p { font-size: .88rem; }
}

@media (max-width: 575.98px) {
  :root { --nova-login-control: 3rem; }
  .nova-login-form-wrap { padding-inline: .9rem; }
  .nova-mobile-header { min-block-size: 3rem; margin-block-end: .55rem; }
  .nova-mobile-brand { font-size: .9rem; }
  .nova-mobile-brand-mark { inline-size: 2.15rem; block-size: 2.15rem; }
  .nova-login-tools { margin-block-end: .7rem; }
  .nova-login-language { min-block-size: 1.85rem; padding-inline: .65rem; font-size: .72rem; }
  .nova-login-languages { min-block-size: 2.3rem; }
  .nova-login-theme-toggle { inline-size: 2.3rem; block-size: 2.3rem; }
  .nova-quick-access { margin-block-end: .8rem; }
  .nova-quick-access-toggle { min-block-size: 3.45rem; padding: .55rem .65rem; }
  .nova-quick-access-toggle__action { display: none; }
  .nova-login-intro { margin-block: .8rem .85rem; }
  .nova-login-intro h1 { font-size: 1.32rem; }
  .nova-login-intro p { font-size: .82rem; line-height: 1.55; }
  .nova-login-form { gap: .78rem; }
  .nova-login-field .form-label { margin-block-end: .3rem; font-size: .79rem; }
  .nova-login-field .form-control { font-size: .9rem; }
  .nova-login-options .form-check-label { font-size: .78rem; }
  .nova-login-submit { min-block-size: 3rem; font-size: .95rem; }
  .nova-login-footnote { margin-block-start: 1rem; padding-block-start: .8rem; font-size: .7rem; }
}

@media (max-width: 359.98px) {
  .nova-login-form-wrap { padding-inline: .7rem; }
  .nova-login-language { padding-inline: .5rem; }
  .nova-quick-access-toggle__copy small { display: none; }
}

@media (max-height: 700px) and (max-width: 1199.98px) {
  .nova-mobile-header { min-block-size: 2.7rem; margin-block-end: .35rem; }
  .nova-login-tools { margin-block-end: .5rem; }
  .nova-quick-access { margin-block-end: .55rem; }
  .nova-login-intro { margin-block: .55rem .65rem; }
  .nova-login-intro p { display: none; }
  .nova-login-form { gap: .62rem; }
  .nova-login-footnote { margin-block-start: .7rem; padding-block-start: .6rem; }
}
