@font-face {font-family: 'Zentra Geist'; src: url('/assets/fonts/geist/regular.ttf') format('truetype'); font-style: normal; font-weight: 400; font-display: swap;}
@font-face {font-family: 'Zentra Geist'; src: url('/assets/fonts/geist/medium.ttf') format('truetype'); font-style: normal; font-weight: 500; font-display: swap;}
@font-face {font-family: 'Zentra Geist'; src: url('/assets/fonts/geist/semibold.ttf') format('truetype'); font-style: normal; font-weight: 600; font-display: swap;}
@font-face {font-family: 'Zentra Geist'; src: url('/assets/fonts/geist/bold.ttf') format('truetype'); font-style: normal; font-weight: 700; font-display: swap;}
/* Shared account entry screens. Scoped to keep the signed-in workspace independent. */
#auth-screen {
  --auth-ink: #172d42;
  --auth-muted: #62778b;
  background: #ffffff !important;
  color: var(--auth-ink);
  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  overflow-y: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(480px, 1fr);
  align-items: stretch !important;
  color-scheme: light;
}
#auth-screen .auth-home {
  position: absolute; top: 28px; left: 56px; display: flex; gap: 9px;
  align-items: center; color: #173c57; font-size: 19px; letter-spacing: -.6px; font-weight: 650;
}
.auth-brand-image {display: block; width: 230px; height: auto; object-fit: contain;}
.auth-story {position: relative; min-height: 100dvh; background: #edf7ff; overflow: hidden; padding: 164px 56px 36px; display: flex; flex-direction: column; justify-content: center;}
.auth-story-copy {position: relative; z-index: 1; width: 100%; max-width: 500px; margin: 0 auto;}
.auth-eyebrow {font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #477995; margin-bottom: 22px;}
.auth-story h2 {font-size: clamp(36px, 3.6vw, 56px); line-height: 1.1; letter-spacing: -.055em; font-weight: 500; color: #173c57; margin: 0 0 22px;}
.auth-story-copy > p:last-child {color: #5d7a91; font-size: 15px; line-height: 1.8;}
.auth-art {position: relative; width: 280px; height: 280px; margin: 40px auto; display: grid; place-items: center;}
.auth-orbit {position: absolute; inset: 14px; border: 1px solid #b9def7; border-radius: 50%; background: transparent;}
.orbit-one {inset: 0;}.orbit-two {inset: 22px; border-style: dashed;}
.auth-art-core {position: relative; display: grid; place-items: center;}
.auth-art-core img {display: block; width: 180px; height: 150px; object-fit: contain;}
.auth-story-bottom {display: flex; justify-content: space-between; align-items: center; color: #607f96; font-size: 12px; margin-top: auto; padding-top: 20px; border-top: 1px solid #d5e8f6;}
.auth-story-bottom span:last-child {font-size: 23px;}
#auth-screen .auth-page {min-height: 100dvh; padding: 64px 44px 40px; align-items: center; overflow: visible;}
#auth-screen .auth-card {width: min(400px, 100%); padding: 0;}
#auth-screen .auth-mark {width: 76px; height: 64px; margin: 0 auto 22px; background: transparent; border: 0; border-radius: 0; box-shadow: none; color: #1684c5; font-size: 34px; font-weight: 400;}
#auth-screen .auth-mark img {width: 58px; height: 48px; object-fit: contain;}
#auth-screen .auth-card h1 {font-size: 30px; font-weight: 550; letter-spacing: -1.1px; line-height: 1.2; color: var(--auth-ink); margin-bottom: 10px;}
#auth-screen .auth-subtitle {font-size: 13px; color: var(--auth-muted) !important; line-height: 1.7; margin-bottom: 28px;}
#auth-screen .auth-link {color: #086fa8 !important; font-weight: 600; text-underline-offset: 3px;}
#auth-screen .auth-link:hover {text-decoration: underline;}
#auth-screen .google-button-shell {background: #fff; border: 1px solid #d7e4ee; border-radius: 12px; min-height: 48px; box-shadow: none;}
#auth-screen .google-button-shell:hover {background: #f3f9ff; transform: none;}
#auth-screen .google-custom-button, #auth-screen .google-button-fallback {color: #29475d; font-size: 14px; font-weight: 500;}
#auth-screen .google-custom-icon {background: transparent;}
#auth-screen .divider {margin: 22px 0 !important; font-size: 11px; color: #72869a !important; gap: 16px;}
#auth-screen .divider::before, #auth-screen .divider::after {background: #e2ebf3 !important;}
#auth-screen .auth-input-group {margin-bottom: 16px !important;}
#auth-screen .auth-input-group label {color: #355167; font-size: 12px; font-weight: 550; margin-bottom: 7px;}
#auth-screen .auth-input, #auth-screen .code-input {height: 50px; background: #fff !important; border: 1px solid #d7e4ee !important; color: #203c51 !important; border-radius: 11px; font-size: 14px; box-shadow: none;}
#auth-screen .auth-input::placeholder {color: #8298aa;}
#auth-screen .auth-input:focus, #auth-screen .code-input:focus {border-color: #2a98d9 !important; background: #fff !important; box-shadow: 0 0 0 3px #2a98d920 !important;}
#auth-screen .password-strength {height: 3px; margin-top: 9px; background: #e4f0f9;}
#auth-screen .password-strength-bar {background: #2499dd;}
#auth-screen .password-requirements, #auth-screen .terms-text {color: #62778b !important; font-size: 11px; line-height: 1.6;}
#auth-screen .terms-checkbox {margin: 0 0 18px !important; gap: 9px;}
#auth-screen .terms-checkbox input {accent-color: #117dbb; flex-shrink: 0;}
#auth-screen .terms-link, #auth-screen .auth-terms a {color: #3d6885 !important; text-decoration: underline; text-underline-offset: 2px;}
#auth-screen .auth-btn {height: 50px; border-radius: 12px; background: #087dbb !important; color: #fff !important; font-size: 14px; font-weight: 550; letter-spacing: 0; margin-top: 0; display: flex; align-items: center; justify-content: center; gap: 12px;}
#auth-screen .auth-btn:hover {background: #096a9e !important; box-shadow: none !important; transform: none;}
#auth-screen .auth-btn:disabled {opacity: .55; cursor: wait;}
#auth-screen :is(a, button, input):focus-visible {outline: 2px solid #2a98d9; outline-offset: 4px;}
#auth-screen .auth-form-message, #auth-screen .verify-message {color: #577489; font-size: 12px; margin-top: 10px; min-height: 0;}
#auth-screen .auth-form-message:empty {display: none;}
#auth-screen [data-state='error'] {color: #b23c32;}
#auth-screen [data-state='success'] {color: #347344;}
#auth-screen .auth-footer {padding-top: 22px; font-size: 12px;}
#auth-screen .auth-terms {font-size: 10px; color: #6c8295; line-height: 1.8; margin: 30px auto 0; max-width: 310px;}
#auth-screen .verify-badge {display: inline-block; padding: 7px 12px; border-radius: 999px; text-transform: uppercase; background: #e8f5ff; border: 0; color: #2477a7; font-size: 9px; font-weight: 550; letter-spacing: .08em; margin-bottom: 16px;}
#auth-screen .verify-help {font-size: 12px; color: #627b8f; line-height: 1.8;}
#auth-screen #verify-email-display {color: #117dbb;}
#auth-screen .code-input {width: min(48px, 13%); padding: 0; font-size: 22px;}
@media (min-width: 1600px) {.auth-story {padding-left: 100px; padding-right: 100px;}}
@media (max-width: 1000px) and (min-width: 761px) {.auth-story {padding-left: 32px; padding-right: 32px;}.auth-art {width: 230px; height: 230px;}.auth-desktop-break {display: none;}#auth-screen .auth-home {left: 32px;}}
@media (max-width: 760px) {
  #auth-screen {grid-template-columns: 1fr; position: fixed; min-height: 0;}
  .auth-story {display: none;}
  #auth-screen .auth-home {top: 20px; left: 24px;}
  #auth-screen .auth-brand-image {width: 200px; height: auto;}
  #auth-screen .auth-page {padding: 112px 24px 36px; min-height: 100dvh;}
  #auth-screen .auth-card h1 {font-size: 28px;}
  #auth-screen .auth-mark {display: none;}
  #auth-screen .auth-input {font-size: 16px;}
}
@media (prefers-reduced-motion: reduce) {#auth-screen *, #auth-screen *::before, #auth-screen *::after {animation: none !important; transition: none !important;}}

/* Connected-site authentication uses the same form and account visual language. */
#auth-screen .auth-connection {display: flex; align-items: center; justify-content: center; gap: 12px; width: fit-content; max-width: 100%; margin: 0 auto 24px; padding: 9px 14px; border: 1px solid #d5e8f6; border-radius: 999px; background: #f2f9ff; color: #52748d; font-size: 11px; line-height: 1.5;}
#auth-screen .auth-connection strong {color: #086fa8; font-weight: 600;}
body.scholar-handoff-auth #auth-screen .auth-story h2 {max-width: 460px;}
body.scholar-handoff-auth #auth-screen .auth-story-copy > p:last-child {max-width: 400px;}
body.scholar-handoff-choice #auth-screen .auth-connection {display: none;}
#auth-screen .scholar-continue-prompt {gap: 22px; padding-top: 0;}
#auth-screen .scholar-continue-kicker {display: none;}
#auth-screen .scholar-continue-bridge {display: flex; justify-content: center; gap: 16px; border: 1px solid #d5e8f6; border-radius: 999px; background: #f2f9ff; color: #377797; padding: 10px 14px; font-size: 11px; font-weight: 550; letter-spacing: 0; text-transform: none;}
#auth-screen .scholar-continue-bridge-line {width: 24px; min-width: 24px; flex: 0 0 24px; background: #a0cde8;}
#auth-screen .scholar-continue-heading {gap: 0;}
#auth-screen .scholar-continue-heading p {color: #62778b; font-size: 13px; line-height: 1.7;}
#auth-screen .scholar-continue-account {gap: 12px; padding: 16px; border: 1px solid #d7e4ee; border-radius: 14px; box-shadow: none; background: #fbfdff; align-items: center;}
#auth-screen .scholar-continue-avatar-wrap {width: 46px; height: 46px; flex-shrink: 0; background: transparent; border: 0;}
#auth-screen .scholar-continue-avatar {width: 46px; height: 46px; border-radius: 50%; background: #e3f3ff; color: #087dbb; font-weight: 600;}
#auth-screen .scholar-continue-account-label {color: #6c8295; font-size: 10px; font-weight: 550; letter-spacing: .06em;}
#auth-screen .scholar-continue-name {color: #203c51; font-size: 14px; font-weight: 600;}
#auth-screen .scholar-continue-email {color: #62778b; font-size: 12px; line-height: 1.6;}
#auth-screen .scholar-continue-note {padding: 0 4px; background: transparent; border: 0; border-radius: 0; color: #62778b; font-size: 12px; font-weight: 400; line-height: 1.7; text-align: center;}
#auth-screen .scholar-continue-secondary {height: 50px; border-radius: 12px; border-color: #d7e4ee; color: #355167; font-size: 13px; font-weight: 500;}
#auth-screen .scholar-continue-secondary:hover {background: #f3f9ff; border-color: #9dcfeb; transform: none;}
body.scholar-handoff-pending #auth-screen .auth-card::after {color: #52748d; font-size: 12px; font-weight: 500;}
@media (max-width: 760px) {#auth-screen .scholar-continue-bridge {gap: 10px;}}

/* Refined account panels and motion. */
#auth-screen {font-family: 'Zentra Geist', Geist, -apple-system, BlinkMacSystemFont, sans-serif; grid-template-columns: minmax(0, .95fr) minmax(500px, 1.05fr);}
#auth-screen * {font-family: inherit;}
#auth-screen .auth-home {top: 30px; left: 40px; opacity: .9; transition: opacity .2s ease;}
#auth-screen .auth-home:hover {opacity: 1;}
#auth-screen .auth-brand-image {width: 174px; height: auto;}
#auth-screen .auth-story {background: radial-gradient(ellipse at 30% 48%, #e2f3ff 0%, #edf7ff 65%); padding-top: 152px;}
#auth-screen .auth-story h2 {font-weight: 500; letter-spacing: -.045em;}
#auth-screen .auth-story-copy {animation: auth-rise .7s ease both;}
#auth-screen .auth-art-core {animation: auth-float 7s ease-in-out infinite;}
#auth-screen .orbit-two {animation: auth-orbit-turn 50s linear infinite;}
#auth-screen .auth-art {animation: auth-rise 1s .15s both;}
#auth-screen .auth-page {padding: 64px 36px 40px; background: radial-gradient(ellipse at top right, #eaf6ff80, transparent 65%), #f8fbfe;}
#auth-screen .auth-card {position: relative; width: min(464px, 100%); padding: 32px 36px 28px; border: 1px solid #e0ebf4; border-radius: 24px; background: #fff; box-shadow: 0 20px 60px -24px #1a5b8829, 0 2px 6px #224b6805; text-align: left; animation: auth-rise .6s ease both;}
#auth-screen .auth-mark {width: 46px; height: 40px; margin: 0 0 18px; justify-content: flex-start;}
#auth-screen .auth-mark img {width: 44px; height: 37px;}
#auth-screen .auth-form-eyebrow {margin: 0 0 9px; color: #2787b6; font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;}
#auth-screen .auth-card h1 {font-size: 28px; font-weight: 600; letter-spacing: -1.1px; line-height: 1.2;}
#auth-screen .auth-subtitle {font-size: 12px; margin-bottom: 24px; text-align: left;}
#auth-screen .auth-form-container.active {animation: auth-rise .35s ease both;}
#auth-screen .auth-form-container.active .auth-input-group {animation: auth-rise .4s .04s both;}
#auth-screen .auth-form-container.active .auth-input-group:nth-child(2) {animation-delay: .08s;}
#auth-screen .auth-form-container.active .auth-input-group:nth-child(3) {animation-delay: .12s;}
#auth-screen .auth-input-group label {font-size: 11px; font-weight: 500; margin-bottom: 8px;}
#auth-screen .auth-input {background: #f8fbfe !important; border-color: #e0eaf2 !important; border-radius: 10px; height: 48px; transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;}
#auth-screen .auth-input:hover {border-color: #b6d4e9 !important;}
#auth-screen .auth-input:focus {background: #fff !important; border-color: #55ace0 !important; box-shadow: 0 0 0 4px #56b7ef14 !important;}
#auth-screen .google-button-shell {border-radius: 10px; min-height: 46px;}
#auth-screen .divider {margin: 20px 0 !important; font-size: 10px;}
#auth-screen .auth-btn {border-radius: 10px; height: 48px; font-weight: 600; background: linear-gradient(115deg, #128cca, #087ab6) !important; box-shadow: 0 4px 10px #0b83bf1a !important; transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;}
#auth-screen .auth-btn:hover:not(:disabled) {transform: translateY(-2px); filter: brightness(1.04) !important; box-shadow: 0 7px 18px #0b83bf33 !important;}
#auth-screen .auth-btn:active:not(:disabled) {transform: translateY(0);}
#auth-screen .auth-btn span {transition: transform .2s ease;}
#auth-screen .auth-btn:hover span {transform: translate(2px, -2px);}
#auth-screen .auth-terms {max-width: none; margin: 24px 0 0; padding-top: 18px; border-top: 1px solid #edf2f7; text-align: center; font-size: 10px;}
#auth-screen .verify-help {text-align: center;}
/* All connected-site screens intentionally omit the marketing panel. */
body.scholar-handoff-auth #auth-screen {grid-template-columns: minmax(0, 1fr); background: #f6faff !important;}
body.scholar-handoff-auth #auth-screen .auth-story {display: none;}
body.scholar-handoff-auth #auth-screen .auth-page {padding-top: 110px; padding-bottom: 48px; background: radial-gradient(ellipse at 50% 0%, #e3f2ff, transparent 65%);}
body.scholar-handoff-auth #auth-screen .auth-mark {margin: 0 auto 18px; justify-content: center;}
body.scholar-handoff-auth #auth-screen .auth-card, body.scholar-handoff-auth #auth-screen .auth-subtitle {text-align: center;}
body.scholar-handoff-auth #auth-screen .auth-form-eyebrow {display: none;}
body.scholar-handoff-auth #auth-screen .auth-connection {font-size: 10px; margin-bottom: 20px;}
@keyframes auth-rise {from {opacity: 0; transform: translateY(12px);} to {opacity: 1; transform: translateY(0);}}
@keyframes auth-float {0%,100% {transform: translateY(0);} 50% {transform: translateY(-9px);}}
@keyframes auth-orbit-turn {to {transform: rotate(360deg);}}
@media(max-width:1000px) and (min-width:761px) {#auth-screen {grid-template-columns: minmax(0, .85fr) minmax(440px, 1fr);} #auth-screen .auth-page {padding-inline: 24px;} #auth-screen .auth-card {padding-inline: 28px;}}
@media(max-width:760px) {
  #auth-screen {grid-template-columns: minmax(0, 1fr);}
  #auth-screen .auth-home {top: 24px; left: 24px;}
  #auth-screen .auth-brand-image {width: 156px;}
  #auth-screen .auth-page {padding: 90px 16px 24px; align-items: flex-start;}
  #auth-screen .auth-card {padding: 26px 24px 22px; border-radius: 20px; margin: auto;}
  #auth-screen .auth-card h1 {font-size: 26px;}
  #auth-screen .auth-mark {display: none;}
  #auth-screen .auth-input {font-size: 16px;}
  body.scholar-handoff-auth #auth-screen .auth-page {padding: 96px 16px 24px;}
}
@media(max-width:360px) {#auth-screen .auth-card {padding-inline: 18px;} #auth-screen .auth-card h1 {font-size: 24px;}}
@media(prefers-reduced-motion:reduce) {#auth-screen *, #auth-screen *::before, #auth-screen *::after {animation: none !important; transition: none !important;} #auth-screen .auth-btn:hover:not(:disabled) {transform: none;}}
