/* Shared by the user centre and the homepage login. No account data is read. */
.qbf-login,
.exam-flow--login {
  --login-ink: #182b3f;
  --login-muted: #526579;
  --login-blue: #0071e3;
  --login-link: #005bc4;
  --login-line: rgba(45, 72, 104, .17);
  --login-field: rgba(255, 255, 255, .86);
  --login-panel: rgba(247, 251, 255, .77);
  color: var(--login-ink);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  -webkit-font-smoothing: antialiased;
  color-scheme: light;
}
.qbf-login *, .qbf-login *::before, .qbf-login *::after { box-sizing: border-box; }
.qbf-login button, .qbf-login input { font: inherit; }
.qbf-login a { color: var(--login-link); text-decoration: none; }
.qbf-login a:hover { text-decoration: underline; }
.qbf-login .qbf-login__astronomy-credit { display:block; margin:12px auto 0; width:fit-content; max-width:100%; color:var(--login-muted); font-size:10px; line-height:1.6; text-align:center; }
.qbf-login .qbf-login__astronomy-credit[hidden] { display:none; }
.qbf-login button { cursor: pointer; touch-action: manipulation; }
.qbf-login button:disabled { cursor: default; opacity: .56; }
.qbf-login :is(button, a, input):focus-visible { outline: 3px solid rgba(0, 122, 255, .75); outline-offset: 3px; }
.qbf-login__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 430px); align-items: start; gap: clamp(32px, 6vw, 100px); width: min(100%, 1080px); margin-inline: auto; }
.qbf-login__intro { min-width: 0; padding: clamp(32px, 7vh, 64px) 0 24px; }
.qbf-login__brand { display: flex; align-items: center; gap: 12px; font-size: 17px; font-weight: 650; letter-spacing: .02em; }
.qbf-login__brand-icon { display: inline-grid; place-items: center; width: 42px; height: 42px; color: var(--login-link); background: rgba(255,255,255,.68); border: 1px solid rgba(255,255,255,.7); border-radius: 14px; }
.qbf-login__brand-icon svg { width: 26px; height: 26px; }
.qbf-login__welcome { margin: clamp(28px, 6vh, 64px) 0 32px; }
.qbf-login__eyebrow { margin: 0 0 18px; color: var(--login-muted); font-size: 14px; letter-spacing: .07em; }
.qbf-login__welcome h1 { margin: 0; color: var(--login-ink); font-size: clamp(36px, 4vw, 54px); font-weight: 650; line-height: 1.25; letter-spacing: -.035em; }
.qbf-login__lead { margin: 22px 0 0; color: var(--login-muted); font-size: 16px; line-height: 1.9; }
.qbf-login__features { display: flex; flex-wrap: wrap; gap: 14px 22px; font-size: 13px; color: var(--login-muted); }
.qbf-login__features span { display: inline-flex; align-items: center; gap: 7px; }
.qbf-login__features svg { width: 17px; height: 17px; stroke-width: 1.65; }
.qbf-login__glass { position: relative; border: 1px solid rgba(255,255,255,.75); border-radius: 36px; background: var(--login-panel); -webkit-backdrop-filter: blur(26px) saturate(135%); backdrop-filter: blur(26px) saturate(135%); box-shadow: 0 20px 64px rgba(29, 57, 85, .13), inset 0 1px 0 rgba(255,255,255,.64); }
.qbf-login__glass::after { content: ''; position: absolute; inset: 0; padding: 2px; border-radius: inherit; background: radial-gradient(170px circle at var(--login-edge-x, 50%) var(--login-edge-y, 0), rgba(255,255,255,.98), rgba(140,209,255,.6) 38%, transparent 75%); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: var(--login-edge-active, 0); pointer-events: none; transition: opacity 140ms ease; }
.qbf-login .qbf-login__panel { width: 100%; max-width: 430px; padding: 32px; margin: 0; text-align: left; color: var(--login-ink); }
.qbf-login__panel-icon { display: inline-grid; place-items: center; width: 48px; height: 48px; margin: 0 0 18px; border-radius: 17px; color: var(--login-link); background: rgba(0,122,255,.075); }
.qbf-login__panel-icon svg { width: 26px; height: 26px; stroke-width: 1.6; }
.qbf-login .qbf-login__heading { margin: 0 0 9px; background: none; -webkit-text-fill-color: currentColor; color: var(--login-ink); font-size: 28px; line-height: 1.3; font-weight: 650; letter-spacing: -.025em; }
.qbf-login__subtitle { margin: 0 0 27px; color: var(--login-muted); font-size: 14px; line-height: 1.65; }
.qbf-login__form { margin: 0; }
.qbf-login .qbf-login__field { margin: 0 0 18px; }
.qbf-login__field > label { display: block; margin: 0 0 8px; color: var(--login-ink); font-size: 14px; font-weight: 550; }
.qbf-login .qbf-login__field input { display: block; width: 100%; min-width: 0; height: 52px; padding: 0 16px; border: 1px solid var(--login-line); border-radius: 16px; color: var(--login-ink); background: var(--login-field); box-shadow: none; font-size: 16px; transition: border-color 150ms ease, background-color 150ms ease; }
.qbf-login .qbf-login__field input::placeholder { color: #687b8e; opacity: 1; }
.qbf-login .qbf-login__field input:focus { border-color: var(--login-blue); background: #fff; }
.qbf-login__code-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.qbf-login :is(.qbf-login__sms, .btn-sms) { min-height: 52px; min-width: 110px; padding: 0 13px; border: 1px solid rgba(0,122,255,.12); border-radius: 16px; background: rgba(0,122,255,.07); color: var(--login-link); box-shadow: none; font-size: 13px; font-weight: 550; white-space: nowrap; }
.qbf-login .sms-group { display: block; }
.qbf-login :is(.qbf-login__submit, .btn-primary) { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; min-height: 52px; padding: 13px 18px; margin-top: 24px; border: 0; border-radius: 999px; color: #fff; background: var(--login-blue); box-shadow: 0 6px 16px rgba(0,122,255,.16); font-size: 16px; font-weight: 600; transition: background-color 150ms ease, transform 150ms ease; }
.qbf-login :is(.qbf-login__submit, .btn-primary) svg { width: 19px; height: 19px; }
.qbf-login :is(.qbf-login__submit, .btn-primary):hover:not(:disabled) { background: #0069dd; transform: none; }
.qbf-login :is(button, .btn-primary):active:not(:disabled) { transform: scale(.985); transition-duration: 70ms; }
.qbf-login :is(.qbf-login__consent, .terms-checkbox) { display: flex; align-items: flex-start; gap: 10px; margin: 4px 0 0; padding: 0; color: var(--login-muted); font-size: 12px; line-height: 1.75; cursor: pointer; }
.qbf-login :is(.qbf-login__consent, .terms-checkbox) input[type=checkbox] { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; opacity: 1; position: static; appearance: auto; accent-color: var(--login-blue); }
.qbf-login .terms-checkbox .checkmark { display: none; }
.qbf-login .terms-text { color: var(--login-muted); font-size: inherit; }
.qbf-login .terms-group { margin: 2px 0 0; }
.qbf-login .error-msg { margin: 16px 0 0; padding: 11px 13px; border-radius: 12px; color: #a62130; background: #fff0f0; font-size: 13px; line-height: 1.6; }
.qbf-login__fineprint { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 23px 0 0; color: var(--login-muted); font-size: 11px; line-height: 1.6; }
.qbf-login__fineprint svg { flex: 0 0 14px; width: 14px; height: 14px; }
.qbf-login .toggle-link { display: block; width: 100%; min-height: 44px; margin: 16px 0 0; padding: 10px 0; border: 0; background: transparent; color: var(--login-link); font-size: 13px; text-align: center; }
.qbf-login .login-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px; margin: 0 0 25px; padding: 4px; border: 1px solid rgba(45,72,104,.06); border-radius: 17px; background: rgba(68,101,129,.075); }
.qbf-login .login-tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 0; min-height: 44px; padding: 8px 3px; border: 0; border-radius: 13px; color: var(--login-muted); background: transparent; box-shadow: none; font-size: 12px; line-height: 1.35; white-space: normal; }
.qbf-login .login-tab.active { color: var(--login-link); background: rgba(255,255,255,.96); box-shadow: 0 1px 5px rgba(23,52,83,.09); font-weight: 600; }
.qbf-login .login-tab i { display: none; }

/* A viewport-anchored image avoids changing its crop during scrolling. */
.login-wrapper.qbf-login--page { display: flex; flex: 0 0 auto; justify-content: flex-start; min-height: 100vh; min-height: 100dvh; height: 100vh; height: 100dvh; padding: 28px clamp(16px, 5vw, 72px); background: #dce9f0; overflow: auto; isolation: isolate; scrollbar-width: none; }
.login-wrapper.qbf-login--page.hidden { display:none !important; }
.login-wrapper.qbf-login--page:not(.hidden) ~ #dashboard-view.hidden { display:none !important; }
.qbf-login--page::before, .exam-flow--login::before { content: ''; position: fixed; z-index: -1; inset: 0; pointer-events: none; background: linear-gradient(110deg, rgba(235,245,251,.9), rgba(232,244,251,.57) 60%, rgba(248,251,253,.35)), url('/admin-liquid-glass/20261008-settings/wallpapers/alpine.webp') center / cover no-repeat; }
.qbf-login--page .qbf-login__page { width: min(100%, 1080px); margin: 0 auto; }
.qbf-login--page:not(.hidden) ~ #global-navigation { display:none !important; }
.qbf-login--page .qbf-login__page > .qbf-login__back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: 0 0 16px; color: var(--login-ink); font-size: 13px; }
.qbf-login__back svg { width: 16px; height: 16px; }
.qbf-login #login-icp { position: static; width: auto; margin: 28px 0 0; padding: 0; border: 0; background: transparent; color: var(--login-muted); text-align: center; font-size: 11px; line-height: 1.8; }
.qbf-login #login-icp .icp-line { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 12px; }
.qbf-login #login-icp a { margin: 0; color: var(--login-muted); font-size: inherit; }
.qbf-login #login-icp span { margin: 0; opacity: .55; }
.qbf-login--page::-webkit-scrollbar { display: none; }

/* Only the login step changes. Checkout, orders and detection stay as they are. */
.exam-flow.exam-flow--login { position: relative; isolation: isolate; background: #dce9f0; overflow: clip; }
.exam-flow--login > .exam-flow__aurora { display: none; }
.exam-flow--login .exam-flow__topbar { max-width: 1216px; margin: auto; background: transparent; box-shadow: none; border-bottom-color: rgba(255,255,255,.45); }
.exam-flow--login .exam-flow__brand { color: var(--login-ink); }
.exam-flow.exam-flow--login .exam-flow__brand-mark { background:transparent; box-shadow:none; animation:none; }
.exam-flow--login .exam-flow__brand-mark::after { display:none; }
.exam-flow--login .exam-flow__brand-mark img { width:34px; height:34px; }
.exam-flow--login .exam-flow__steps { background: rgba(247,251,255,.55); border-radius: 22px; padding: 14px 20px; border: 1px solid rgba(255,255,255,.66); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.exam-flow--login .exam-flow__content { max-width: 1160px; padding: 38px 32px 28px; }
.exam-flow--login .qbf-login__intro { padding: 16px 0; }
.exam-flow--login .exam-flow__footer { color: var(--login-muted); }
.exam-flow--login .exam-flow__toast { margin: 18px 0 0 auto; max-width: 430px; border-radius: 16px; background: #edf7ee; color: #225438; }
.exam-flow--login .exam-flow__toast.is-error { color: #a62130; background: #fff0f0; }

@media (max-width: 760px) {
  .qbf-login__layout { grid-template-columns: minmax(0, 430px); justify-content: center; gap: 22px; }
  .qbf-login__intro { padding: 0; }
  .qbf-login__brand { font-size: 15px; gap: 10px; }
  .qbf-login__brand-icon { width: 34px; height: 34px; border-radius: 11px; }
  .qbf-login__brand-icon svg { width: 22px; height: 22px; }
  .qbf-login__welcome { margin: 24px 0 0; }
  .qbf-login__welcome h1 { font-size: 30px; }
  .qbf-login__welcome h1 br { display: none; }
  .qbf-login__eyebrow, .qbf-login__lead, .qbf-login__features { display: none; }
  .qbf-login__panel-icon { display: none; }
  .qbf-login .qbf-login__panel { padding: 26px 24px; border-radius: 30px; }
  .qbf-login .qbf-login__heading { font-size: 25px; }
  .qbf-login__subtitle { margin-bottom: 22px; font-size: 13px; }
  .login-wrapper.qbf-login--page { padding: 14px 16px 24px; }
  .qbf-login #login-icp { margin-top: 22px; }
  .exam-flow--login .exam-flow__content { padding: 24px 18px; }
  .exam-flow--login .exam-flow__steps { margin: 0 16px; padding: 12px; }
  .exam-flow--login .exam-flow__topbar { padding: 16px; }
  .exam-flow--login .exam-flow__brand { display: none; }
  .exam-flow--login .exam-flow__toast { max-width: 430px; margin-inline: auto; }
}
@media (max-width: 370px) {
  .qbf-login .qbf-login__panel { padding: 24px 18px; }
  .qbf-login__welcome h1 { font-size: 26px; }
  .qbf-login .login-tab { font-size: 11px; }
  .qbf-login :is(.qbf-login__sms, .btn-sms) { min-width: 98px; padding-inline: 9px; font-size: 12px; }
}
@media (max-height: 650px) and (min-width: 761px) {
  .qbf-login__welcome { margin-top: 30px; }
  .qbf-login .qbf-login__panel { padding: 25px 30px; }
  .qbf-login__panel-icon { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .qbf-login *, .qbf-login *::after { transition: none !important; animation: none !important; }
  .qbf-login__glass::after { display: none; }
  .qbf-login button:active:not(:disabled) { transform: none; }
}
@media (prefers-contrast: more), (prefers-reduced-transparency: reduce) {
  .qbf-login, .exam-flow--login { --login-panel: #f7fbff; --login-field: #fff; --login-muted: #35485b; --login-line: #728193; }
  .qbf-login__glass { backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .qbf-login__glass { background: #f3f8fc; }
}

/* The background is a single fixed scene. Scrolling never changes its crop. */
.qbf-login--flow { position: relative; isolation: isolate; }
.qbf-login[data-login-appearance]::before, .exam-flow--login:has(.qbf-login__scene)::before { display: none; }
.qbf-login__scene { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; background: #dce9f0; }
.qbf-login__scene > div { position: absolute; inset: 0; }
.qbf-login__scene-wallpaper { background-size: cover; background-position: center; opacity: var(--login-wallpaper-opacity, 1); filter: blur(var(--login-wallpaper-blur, 0)); transform: scale(1.018); }
.qbf-login__scene-veil { background: rgb(239 246 251 / var(--login-veil, .5)); }
.qbf-login__scene :is(canvas) { display: block; width: 100%; height: 100%; }
.qbf-login__scene-lighting { background: radial-gradient(ellipse 48% 65% at 20% 25%, rgb(123 219 255 / .8), transparent 72%), radial-gradient(ellipse 38% 50% at 90% 85%, rgb(255 242 210 / .7), transparent 72%); mix-blend-mode: screen; animation: qbf-environment-light 160s ease-in-out infinite alternate; }
.qbf-login__orbital-stage { position:relative; width:min(100%, 440px); aspect-ratio:1; margin:16px 0 0; }
.qbf-login__orbital-canvas { display:block; width:100%; height:100%; border-radius:50%; }
.qbf-login__orbital-canvas:focus-visible { outline:2px solid var(--login-link); outline-offset:6px; }
.qbf-login__orbital-fallback { display:grid; place-content:center; width:100%; height:100%; padding:32px; border:1px solid var(--login-line); border-radius:50%; text-align:center; color:var(--login-ink); letter-spacing:.16em; }
.qbf-login[data-quantum-theme=nebula] .qbf-login__intro { padding-top:16px; }
.qbf-login[data-quantum-theme=nebula] .qbf-login__welcome { margin:12px 0 0; }
.qbf-login[data-quantum-theme=nebula] .qbf-login__welcome h1 { font-size:26px; line-height:1.5; letter-spacing:.015em; }
.qbf-login[data-quantum-theme=nebula] :is(.qbf-login__eyebrow,.qbf-login__lead,.qbf-login__features,.qbf-login__welcome h1 br) { display:none; }
/* Balance the complete nebula composition against the form, not just its top edge. */
@media (min-width:761px) {
  .qbf-login[data-quantum-theme=nebula] .qbf-login__layout { align-items:center; }
  .qbf-login[data-quantum-theme=nebula] .qbf-login__intro { display:flex; flex-direction:column; padding:0; }
  .qbf-login[data-quantum-theme=nebula] .qbf-login__orbital-stage { order:1; width:min(100%,clamp(240px,calc(100svh - 370px),360px)); }
}
.qbf-login:is([data-quantum-theme=orbits],[data-quantum-theme=star-orbits]) .qbf-login__intro { padding-top:16px; }
.qbf-login:is([data-quantum-theme=orbits],[data-quantum-theme=star-orbits]) .qbf-login__welcome { margin-top:28px; }
.qbf-login:is([data-quantum-theme=orbits],[data-quantum-theme=star-orbits]) :is(.qbf-login__eyebrow,.qbf-login__lead,.qbf-login__features) { display:none; }
.qbf-login:is([data-quantum-theme=orbits],[data-quantum-theme=star-orbits]) .qbf-login__welcome h1 { font-size:clamp(32px,3vw,44px); }
@media (max-width:760px) {
  .qbf-login__orbital-stage { width:min(100%,240px); margin:8px auto 0; }
  .qbf-login[data-quantum-theme=nebula] .qbf-login__intro { padding:0; }
  .qbf-login[data-quantum-theme=nebula] .qbf-login__welcome { text-align:center; margin-top:6px; }
  .qbf-login[data-quantum-theme=nebula] .qbf-login__welcome h1 { font-size:21px; }
  .qbf-login:is([data-quantum-theme=orbits],[data-quantum-theme=star-orbits]) .qbf-login__welcome { margin-top:24px; }
  .qbf-login:is([data-quantum-theme=orbits],[data-quantum-theme=star-orbits]) .qbf-login__welcome h1 { font-size:clamp(22px,6.4vw,28px); }
}
@keyframes qbf-environment-light { to { transform: translate(4%, -4%) scale(1.1); } }
.qbf-login[data-login-tone=dark],.exam-flow--login[data-login-tone=dark] { --login-ink: #f5f8fc; --login-muted: #d0dce7; --login-link: #8fc7ff; --login-field: rgb(18 29 46 / .86); --login-line: rgb(217 234 255 / .23); color-scheme: dark; }
.exam-flow.exam-flow--login { --exam-ink:var(--login-ink); --exam-muted:var(--login-muted); }
.exam-flow--login[data-login-tone=dark] .exam-flow__steps { background:rgb(17 27 41 / .65); }
.exam-flow--login[data-login-tone=dark] .exam-flow__privacy-link { color:#d0dce7; background:rgb(17 27 41 / .96); border-color:rgb(217 234 255 / .3); }
.qbf-login--still .qbf-login__glass::after { display:none; transition:none; }
.qbf-login[data-login-tone=dark] :is(.qbf-login__brand, .qbf-login__welcome, #login-icp) { text-shadow: 0 1px 12px rgb(0 0 0 / .25); }
.qbf-login[data-login-tone=dark] .qbf-login__field input::placeholder { color: #b3c3d4; }
.qbf-login[data-login-tone=dark] .qbf-login__field input:focus { background: #172537; }
.qbf-login[data-login-tone=dark] .login-tab.active { background: rgb(235 246 255 / .13); color: var(--login-ink); }
.qbf-login[data-login-tone=dark] :is(.qbf-login__sms,.btn-sms,.qbf-login__panel-icon) { background: rgb(165 208 255 / .12); }
.qbf-login .qbf-login__glass { border-radius: var(--login-radius, 36px); overflow: clip; backdrop-filter: blur(var(--login-frost, 12px)) saturate(125%); -webkit-backdrop-filter: blur(var(--login-frost, 12px)) saturate(125%); box-shadow: 0 20px 64px rgb(11 35 61 / calc(.16 * var(--login-shadow, 1))), inset 0 1px 0 rgb(255 255 255 / .52); }
.qbf-login__glass > .lg-material-backing { position: absolute; inset: 0; z-index: 0; border-radius: inherit; overflow: clip; pointer-events: none; }
.qbf-login .lg-material-pixels { opacity: var(--login-refraction-opacity, 1); }
.qbf-login__glass .lg-material-pixels, .qbf-login__glass .lg-material-tint { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; }
.qbf-login .qbf-login__glass.lg-material { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
.qbf-login .lg-material-tint { background: var(--login-panel); }
.qbf-login__glass > :not(.lg-material-backing) { position: relative; z-index: 1; }
.qbf-login__glass::after { z-index: 2; padding: var(--login-mouse-thickness, 1.75px); background: radial-gradient(var(--login-mouse-spot, 162px) circle at var(--login-edge-x, 50%) var(--login-edge-y, 0), rgb(255 255 255 / .98), rgb(140 209 255 / .6) 38%, transparent 75%); }
.qbf-login--solid .qbf-login__glass { background: #f5f9fd; backdrop-filter: none; }
.qbf-login--solid[data-login-tone=dark] .qbf-login__glass { background: #172537; }
.qbf-login--solid .lg-material-tint { background: #f5f9fd; }
.qbf-login--solid[data-login-tone=dark] .lg-material-tint { background: #172537; }
.qbf-login.qbf-login--solid .qbf-login__glass.lg-material { background: #f5f9fd; }
.qbf-login.qbf-login--solid[data-login-tone=dark] .qbf-login__glass.lg-material { background: #172537; }
.qbf-login--modal-blur :is(.qbf-login__scene,.qbf-login__page), .qbf-login--modal-blur > .qbf-login__layout { filter: blur(var(--login-modal-blur, 0px)); }
.qbf-login--still .qbf-login__scene-lighting { animation-play-state: paused !important; }
.qbf-login .qbf-login__brand { gap: 17px; }
.qbf-login__brand-mark { width: 74px; height: 74px; flex: 0 0 74px; filter: drop-shadow(0 5px 10px rgb(0 96 199 / .12)); }
.qbf-login__brand-copy { display: grid; gap: 7px; }
.qbf-login__brand-copy strong { font-size: clamp(21px, 2.15vw, 27px); font-weight: 650; letter-spacing: -.025em; }
.qbf-login__brand-copy small { color: var(--login-muted); font-size: 11px; letter-spacing: .15em; font-weight: 500; }
.qbf-login #login-icp { background: transparent !important; }
@media (max-width: 760px) {
  .qbf-login__brand-mark { width: 52px; height: 52px; flex-basis: 52px; }
  .qbf-login__brand-copy strong { font-size: 22px; }
  .qbf-login__brand-copy small { font-size: 10px; }
  .qbf-login .qbf-login__glass { border-radius: min(var(--login-radius, 36px), 30px); }
}

/* Logo artwork shares one calibrated frame on both login pages and in previews. */
.qbf-login__brand-art { display:block; position:relative; flex:none; width:92px; aspect-ratio:var(--brand-aspect,1); overflow:hidden; }
.qbf-login__brand-art > img { position:absolute; left:var(--brand-image-left,0); top:var(--brand-image-top,0); width:var(--brand-image-width,100%); height:var(--brand-image-height,100%); max-width:none; margin:0; object-fit:fill; filter:none; }
.qbf-login__brand-copy { min-width:0; }
.qbf-login__brand[data-logo-id=original] .qbf-login__brand-art { width:74px; }
[data-logo-ink=white] .qbf-login__brand-art > img { filter:brightness(0) invert(1); }
[data-logo-ink=dark] .qbf-login__brand-art > img { filter:brightness(0); opacity:.88; }
.qbf-login .qbf-login__brand[data-logo-kind=wordmark] { flex-direction:column; align-items:flex-start; gap:17px; }
.qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-art { width:min(100%,340px); }
.qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-copy strong { font-size:clamp(23px, 2vw, 26px); line-height:1.4; letter-spacing:.04em; font-weight:650; }
.qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-copy small { display:none; }
.exam-flow--login .exam-flow__brand[data-logo-id] { gap:12px; }
.exam-flow--login .exam-flow__brand[data-logo-id] .exam-flow__brand-mark { position:relative; width:36px; height:auto; flex:none; aspect-ratio:var(--brand-aspect,1); overflow:hidden; border-radius:0; }
.exam-flow--login .exam-flow__brand[data-logo-kind=wordmark] .exam-flow__brand-mark { width:140px; }
.exam-flow--login .exam-flow__brand[data-logo-id] img { position:absolute; left:var(--brand-image-left,0); top:var(--brand-image-top,0); width:var(--brand-image-width,100%); height:var(--brand-image-height,100%); max-width:none; object-fit:fill; }
.exam-flow--login .exam-flow__brand[data-logo-ink=white] img { filter:brightness(0) invert(1); }
.exam-flow--login .exam-flow__brand[data-logo-ink=dark] img { filter:brightness(0); opacity:.88; }
@media (max-width:760px) {
  .qbf-login__brand-art { width:64px; }
  .qbf-login__brand[data-logo-id=original] .qbf-login__brand-art { width:52px; }
  .qbf-login .qbf-login__brand { gap:14px; }
  .qbf-login .qbf-login__brand[data-logo-kind=wordmark] { gap:12px; }
  .qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-art { width:min(100%,260px); }
  .qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-copy strong { font-size:21px; }
}

/* Quantum Halo: the existing form floats in negative space, without a card. */
.qbf-login[data-quantum-theme=halo],.exam-flow--login[data-quantum-theme=halo] { background:#05030c; }
.qbf-login[data-quantum-theme=halo] .qbf-login__scene { background:#05030c; }
.qbf-login[data-quantum-theme=halo] .qbf-login__scene > :not(.qbf-login__scene-halo) { display:none; }
.qbf-login[data-quantum-theme=halo] .qbf-login__layout { position:relative; display:flex; flex-direction:column; align-items:center; gap:14px; width:min(100%,360px); margin:26px auto 12px; }
.qbf-login[data-quantum-theme=halo] .qbf-login__intro { width:100%; padding:0; }
.qbf-login[data-quantum-theme=halo] :is(.qbf-login__welcome,.qbf-login__features,.qbf-login__panel-icon) { display:none; }
.qbf-login[data-quantum-theme=halo] .qbf-login__brand,.qbf-login[data-quantum-theme=halo] .qbf-login__brand[data-logo-kind=wordmark] { justify-content:center; align-items:center; flex-direction:column; gap:10px; text-align:center; }
.qbf-login[data-quantum-theme=halo] .qbf-login__brand-art { width:64px; }
.qbf-login[data-quantum-theme=halo] .qbf-login__brand[data-logo-kind=wordmark] { gap:8px; }
.qbf-login[data-quantum-theme=halo] .qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-art { width:min(100%,248px); }
.qbf-login[data-quantum-theme=halo] .qbf-login__brand-copy strong { font-size:21px; letter-spacing:.04em; }
.qbf-login[data-quantum-theme=halo] .qbf-login__brand-copy small { font-size:9px; letter-spacing:.2em; opacity:.7; }
.qbf-login[data-quantum-theme=halo] .qbf-login__glass { overflow:visible; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; backdrop-filter:none!important; -webkit-backdrop-filter:none!important; }
.qbf-login[data-quantum-theme=halo] .qbf-login__glass::before,.qbf-login[data-quantum-theme=halo] .qbf-login__glass::after { display:none!important; }
.qbf-login[data-quantum-theme=halo] .qbf-login__panel { padding:0; max-width:360px; }
.qbf-login[data-quantum-theme=halo] .qbf-login__heading { text-align:center; font-size:26px; font-weight:500; letter-spacing:.035em; }
.qbf-login[data-quantum-theme=halo] .qbf-login__subtitle { text-align:center; font-size:12px; margin-bottom:16px; }
.qbf-login[data-quantum-theme=halo] .qbf-login__field input { height:48px; background:rgb(14 16 21 / .88); border-color:rgb(204 209 221 / .22); border-radius:10px; color:#e8eaf0; }
.qbf-login[data-quantum-theme=halo] .qbf-login__field input:focus { background:#171a20; border-color:#c0c5cf; outline:2px solid rgb(215 220 231 / .65); outline-offset:2px; }
.qbf-login[data-quantum-theme=halo] .login-tabs { margin-bottom:16px; border-color:rgb(204 209 221 / .14); background:rgb(13 15 19 / .88); border-radius:12px; }
.qbf-login[data-quantum-theme=halo] .login-tab.active { background:#2b2f37; color:#f0f1f5; box-shadow:none; border-radius:9px; }
.qbf-login[data-quantum-theme=halo] :is(.qbf-login__submit,.btn-primary) { min-height:48px; margin-top:16px; background:#bfc4ce; color:#191d25; border:1px solid #ccd0d8; border-radius:12px; font-weight:550; letter-spacing:.035em; box-shadow:inset 0 1px 0 rgb(255 255 255 / .22); }
.qbf-login[data-quantum-theme=halo] :is(.qbf-login__submit,.btn-primary):hover:not(:disabled) { background:#d2d6df; border-color:#e2e5eb; }
.qbf-login[data-quantum-theme=halo] .qbf-login__field { margin-bottom:12px; }
.qbf-login[data-quantum-theme=halo] .qbf-login__fineprint { margin-top:12px; }
.qbf-login[data-quantum-theme=halo] .toggle-link { margin-top:8px; }
.qbf-login[data-quantum-theme=halo] :is(.qbf-login__sms,.btn-sms) { min-height:48px; }
.qbf-login[data-quantum-theme=halo] #login-icp { margin-top:10px; }
.qbf-login__scene-halo { overflow:hidden; }
.qbf-login__halo-fallback { position:absolute; inset:0; pointer-events:none; filter:hue-rotate(var(--halo-hue,0deg)); }
.qbf-login__scene-halo[data-halo-status=webgl] .qbf-login__halo-fallback { display:none; }
.qbf-login__halo-cloud,.qbf-login__halo-ring { position:absolute; display:block; left:var(--halo-x,50%); top:var(--halo-y,50%); width:var(--halo-width,640px); height:var(--halo-height,640px); transform:translate(-50%,-50%); border-radius:50%; }
.qbf-login__halo-cloud { opacity:var(--halo-intensity,.85); background:conic-gradient(from 36deg,transparent 3%,#563b99 15%,#9e66e2 29%,#2a5277 44%,#55a8bf 62%,#24264f 78%,#876acc 90%,transparent); -webkit-mask-image:radial-gradient(ellipse at center,transparent 59%,#000 68%,#000 70%,transparent 74%); mask-image:radial-gradient(ellipse at center,transparent 59%,#000 68%,#000 70%,transparent 74%); filter:blur(6px); }
.qbf-login__halo-ring { width:calc(var(--halo-width,640px) * (1.15 + var(--ring-index) * var(--halo-ring-step,.25))); height:calc(var(--halo-height,640px) * (1.15 + var(--ring-index) * var(--halo-ring-step,.25))); border:1px solid rgb(126 137 244 / .38); opacity:var(--halo-rings-opacity,.35); box-shadow:0 0 13px rgb(64 166 230 / .18); -webkit-mask-image:conic-gradient(from var(--halo-ring-angle,30deg),#000,transparent 24%,#000 49%,transparent 76%,#000); mask-image:conic-gradient(from var(--halo-ring-angle,30deg),#000,transparent 24%,#000 49%,transparent 76%,#000); }
.qbf-login__halo-ring[hidden] { display:none; }
@media(max-width:760px) {
  .qbf-login[data-quantum-theme=halo] .qbf-login__layout { width:min(100% - 42px,330px); gap:14px; margin-block:24px 32px; }
  .qbf-login[data-quantum-theme=halo] .qbf-login__heading { font-size:24px; }
  .qbf-login[data-quantum-theme=halo] .qbf-login__brand-art { width:52px; }
  .qbf-login[data-quantum-theme=halo] .qbf-login__brand-copy strong { font-size:17px; }
  .qbf-login[data-quantum-theme=halo] .qbf-login__subtitle { line-height:1.7; }
}

.qbf-login__scene-star-orbits { overflow:hidden; }

.qbf-login[data-quantum-theme=star-orbits] .qbf-login__scene { background:#03060e; }

.qbf-login[data-quantum-theme=halo] :is(.qbf-login__submit,.btn-primary,.login-tab,.toggle-link,.qbf-login__sms):focus-visible { outline:2px solid #e0e4ec; outline-offset:4px; }
.qbf-login[data-quantum-theme=halo] .qbf-login__field label { color:#c7cbd4; font-size:12px; font-weight:500; letter-spacing:.025em; }
.qbf-login[data-quantum-theme=halo] .qbf-login__field input::placeholder { color:#9299a6; opacity:1; }
.qbf-login[data-quantum-theme=halo] .login-tab { color:#aab0bd; }
.qbf-login[data-quantum-theme=halo] .login-tab.active { color:#f0f1f5; }
.qbf-login[data-quantum-theme=halo] :is(.toggle-link,.qbf-login__sms,.btn-sms) { color:#c7ccd6; }
@media(forced-colors:active) { .qbf-login[data-quantum-theme=halo] :is(input,button):focus-visible { outline:2px solid Highlight; } }

/* Phone composition only: the form keeps normal sizing and document scrolling. */
.qbf-login__stellar-stage { display:none; }
@media (max-width:760px) {
  .qbf-login, .exam-flow--login {
    --login-phone-space-top:clamp(24px,calc(14dvh - 70px),64px);
    --login-phone-space-bottom:clamp(28px,5dvh,48px);
    --login-phone-form-gap:clamp(16px,calc(12dvh - 72px),40px);
  }
  /* Only outer shells consume the system insets. Inner content and toolbar share
     this safe region; short windows can scroll instead of shrinking the form. */
  .login-wrapper.qbf-login--page {
    box-sizing:border-box;
    padding:32px 16px;
    padding-top:calc(env(safe-area-inset-top,0px) + var(--login-phone-space-top));
    padding-bottom:calc(env(safe-area-inset-bottom,0px) + var(--login-phone-space-bottom));
    padding-left:calc(env(safe-area-inset-left,0px) + 16px);
    padding-right:calc(env(safe-area-inset-right,0px) + 16px);
  }
  .exam-flow.exam-flow--login {
    padding-top:calc(env(safe-area-inset-top,0px) + var(--login-phone-space-top));
    padding-bottom:calc(env(safe-area-inset-bottom,0px) + var(--login-phone-space-bottom));
    padding-left:env(safe-area-inset-left,0px);
    padding-right:env(safe-area-inset-right,0px);
  }
  .qbf-login .qbf-login__layout { gap:var(--login-phone-form-gap); }
  .qbf-login[data-quantum-theme] .qbf-login__intro { position:relative; padding:0; min-height:72px; }
  .qbf-login .qbf-login__brand { min-height:44px; gap:10px; }
  .qbf-login .qbf-login__brand-art,
  .qbf-login .qbf-login__brand[data-logo-id=original] .qbf-login__brand-art { width:38px; }
  .qbf-login .qbf-login__brand-copy { gap:4px; }
  .qbf-login .qbf-login__brand-copy strong { font-size:18px; letter-spacing:-.025em; line-height:1.3; }
  .qbf-login .qbf-login__brand-copy small { font-size:10px; letter-spacing:.04em; }
  .qbf-login .qbf-login__brand[data-logo-kind=wordmark] { gap:5px; }
  .qbf-login .qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-art { width:min(100%,180px); }
  .qbf-login .qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-copy strong { font-size:15px; }
  .qbf-login[data-quantum-theme] .qbf-login__welcome { margin:10px 0 0; text-align:left; }
  .qbf-login[data-quantum-theme] .qbf-login__welcome h1 { font-size:16px; font-weight:500; line-height:1.6; letter-spacing:0; color:var(--login-muted); }
  .qbf-login .qbf-login__welcome h1 br { display:none; }
  .qbf-login .qbf-login__panel { padding:22px 20px 16px; border-radius:26px; }
  .qbf-login .qbf-login__heading { font-size:24px; margin-bottom:6px; }
  .qbf-login .qbf-login__subtitle { font-size:12px; line-height:1.6; margin-bottom:16px; }
  .qbf-login .login-tabs { margin-bottom:16px; }
  .qbf-login .login-tab { min-height:44px; }
  .qbf-login .qbf-login__field { margin-bottom:14px; }
  .qbf-login .qbf-login__field > label { margin-bottom:6px; font-size:13px; }
  .qbf-login .qbf-login__field input { height:48px; font-size:16px; }
  .qbf-login :is(.qbf-login__sms,.btn-sms) { min-height:48px; }
  .qbf-login :is(.qbf-login__submit,.btn-primary) { min-height:48px; margin-top:16px; }
  .qbf-login .toggle-link { margin-top:8px; min-height:44px; }
  .qbf-login .qbf-login__fineprint { margin-top:12px; }
  .qbf-login #login-icp { margin-top:16px; }
  .qbf-login--page .qbf-login__page > .qbf-login__back { margin-bottom:6px; }
  .exam-flow--login .exam-flow__content { padding:16px; }
  /* Keep the caption with its brand. The full square artwork shares that
     compact header instead of creating a separate, mostly empty second row. */
  .qbf-login:is([data-quantum-theme=nebula],[data-quantum-theme=star-orbits]) { --login-header-effect-size:clamp(156px,48vw,208px); --login-header-effect-offset:24px; --login-header-caption-size:clamp(16px,4.4vw,18px); }
  .qbf-login:is([data-quantum-theme=nebula],[data-quantum-theme=star-orbits]) .qbf-login__layout { gap:16px; }
  .qbf-login:is([data-quantum-theme=nebula],[data-quantum-theme=star-orbits]) .qbf-login__intro { min-height:calc(var(--login-header-effect-size) + var(--login-header-effect-offset)); }
  .qbf-login:is([data-quantum-theme=nebula],[data-quantum-theme=star-orbits]) .qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-art { width:min(100%,clamp(190px,51vw,212px)); }
  .qbf-login:is([data-quantum-theme=nebula],[data-quantum-theme=star-orbits]) .qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-copy strong { font-size:clamp(16px,4.2vw,18px); }
  .qbf-login:is([data-quantum-theme=nebula],[data-quantum-theme=star-orbits]) .qbf-login__welcome { max-width:calc(100% - var(--login-header-effect-size) + 16px); margin:14px 0 0; }
  .qbf-login:is([data-quantum-theme=nebula],[data-quantum-theme=star-orbits]) .qbf-login__welcome h1 { font-size:var(--login-header-caption-size); line-height:1.6; text-wrap:balance; }
  .qbf-login .qbf-login__orbital-stage,
  .qbf-login .qbf-login__stellar-stage { display:block; position:absolute; width:112px; height:104px; aspect-ratio:auto; right:0; top:40px; margin:0; }
  .qbf-login .qbf-login__orbital-stage { height:112px; top:32px; }
  .qbf-login:is([data-quantum-theme=nebula],[data-quantum-theme=star-orbits]) :is(.qbf-login__orbital-stage,.qbf-login__stellar-stage) { width:var(--login-header-effect-size); height:var(--login-header-effect-size); top:var(--login-header-effect-offset); right:-6px; aspect-ratio:1; }
}
@media (max-width:370px) {
  .qbf-login:is([data-quantum-theme=nebula],[data-quantum-theme=star-orbits]) { --login-header-effect-offset:36px; }
  .qbf-login .qbf-login__panel { padding:20px 16px 14px; }
  .qbf-login .qbf-login__brand-copy strong { font-size:16px; }
  .qbf-login .qbf-login__brand-copy small { font-size:10px; }
  .qbf-login .qbf-login__brand { gap:8px; }
  .qbf-login[data-quantum-theme] .qbf-login__welcome h1 { font-size:14px; }
}

@media(max-width:760px) {
  .qbf-login[data-quantum-theme=halo] .qbf-login__layout { width:min(100%,360px); gap:max(12px,calc(var(--login-phone-form-gap) - 4px)); margin:6px auto 12px; }
  .qbf-login[data-quantum-theme=halo] .qbf-login__intro { min-height:54px; }
  /* The halo keeps its own centered lockup, independent of other phone themes. */
  .qbf-login[data-quantum-theme=halo] .qbf-login__brand { flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:10px; }
  .qbf-login[data-quantum-theme=halo] .qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-copy strong { font-size:19px; letter-spacing:.025em; }
  .qbf-login[data-quantum-theme=halo] .qbf-login__brand-copy small { font-size:10px; letter-spacing:.04em; }
  .qbf-login[data-quantum-theme=halo] .qbf-login__brand[data-logo-kind=wordmark] { align-items:center; gap:8px; }
  .qbf-login[data-quantum-theme=halo] .qbf-login__brand[data-logo-kind=wordmark] .qbf-login__brand-art { width:min(100%,232px); }
  .qbf-login[data-quantum-theme=halo] .qbf-login__panel { padding:0; }
}

/* Public login controls share the scene's tone while keeping the accepted
   composition intact. They never participate in the form's layout or submit. */
.qbf-login__themes { position:fixed; z-index:30; top:max(24px,env(safe-area-inset-top,0px)); right:max(24px,env(safe-area-inset-right,0px)); }
.qbf-login__theme-trigger { display:flex; align-items:center; justify-content:center; min-width:64px; min-height:44px; padding:0 16px; border:1px solid var(--login-line); border-radius:24px; background:var(--login-field); color:var(--login-ink); font-family:inherit; font-weight:500; font-size:13px; line-height:1.4; cursor:pointer; -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); }
.qbf-login__theme-options { position:absolute; right:0; top:calc(100% + 10px); width:320px; max-width:calc(100vw - 32px); max-height:calc(100vh - 120px); max-height:calc(100dvh - 120px); overflow-y:auto; padding:16px; border:1px solid var(--login-line); border-radius:24px; background:var(--login-panel,#f1f6fb); color:var(--login-ink); box-shadow:0 16px 48px rgb(0 0 0 / .2); -webkit-backdrop-filter:blur(30px); backdrop-filter:blur(30px); opacity:0; visibility:hidden; pointer-events:none; transform:translateX(14px) scale(.98); transform-origin:top right; transition:opacity 220ms ease,transform 220ms ease,visibility 0s 220ms; }
.qbf-login__themes[data-open=true] .qbf-login__theme-options { opacity:1; visibility:visible; pointer-events:auto; transform:none; transition-delay:0s; }
.qbf-login__theme-heading { margin:0 0 12px; color:var(--login-muted); font-size:12px; line-height:1.5; }
.qbf-login__theme-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.qbf-login__theme-grid button,.qbf-login__theme-default { min-height:44px; padding:10px 12px; border:1px solid transparent; border-radius:14px; background:var(--login-field); color:var(--login-ink); font-family:inherit; font-size:13px; line-height:1.4; cursor:pointer; touch-action:manipulation; }
.qbf-login__theme-grid button[aria-pressed=true] { border-color:var(--login-link); box-shadow:inset 0 0 0 1px var(--login-link); }
.qbf-login__theme-grid button:active,.qbf-login__theme-default:active,.qbf-login__theme-trigger:active { transform:scale(.98); }
.qbf-login__theme-default { width:100%; margin-top:12px; background:transparent; color:var(--login-muted); }
.qbf-login__theme-default[aria-pressed=true]::after { content:' ✓'; }
.qbf-login__themes button:focus-visible { outline:2px solid var(--login-link); outline-offset:3px; }
.qbf-login--flow .qbf-login__themes { position:absolute; top:0; right:0; }
@media(max-width:760px) {
  .qbf-login__themes { top:calc(env(safe-area-inset-top,0px) + var(--login-phone-space-top,24px)); right:calc(env(safe-area-inset-right,0px) + 16px); }
  .qbf-login__theme-options { width:calc(100vw - 32px); }
}
@media(prefers-reduced-motion:reduce) { .qbf-login__theme-options { transition:none; transform:none; } }
