/* One-question account onboarding. Kept separate from the established login UI. */

:where(.auth-onboarding-form, .auth-onboarding-shell) {
  --onboarding-ink: #171d1a;
  --onboarding-muted: #6f7974;
  --onboarding-line: #dce4e0;
  --onboarding-brand: #087454;
  --onboarding-brand-soft: #edf7f3;
  --onboarding-danger: #c83f37;
}

.auth-wrap.auth-mode-signup {
  min-height: 100dvh;
  align-items: start;
  padding: 0 max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));
  background: #fff;
}

.auth-wrap.auth-mode-signup .auth-experience {
  width: min(560px, 100%);
}

.auth-wrap.auth-mode-signup .auth-card {
  width: 100%;
  min-height: 100dvh;
  margin: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: #fff;
  padding: 0;
  box-shadow: none;
}

.auth-wrap.auth-mode-signup .auth-card > :where(.auth-brand, .auth-heading, .tabs, .auth-hidden-button, .auth-invite-notice) {
  display: none !important;
}

.auth-onboarding-form,
.auth-card .auth-onboarding-form,
.student-card-activation-form.auth-onboarding-form {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 100dvh;
  margin: 0;
  padding: 0;
  color: var(--onboarding-ink);
}

.auth-onboarding-form[hidden] {
  display: none !important;
}

.auth-onboarding-topbar {
  display: grid;
  min-height: calc(58px + env(safe-area-inset-top));
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  align-items: end;
  gap: 8px;
  padding: env(safe-area-inset-top) 0 6px;
}

.auth-onboarding-topbar .icon-button {
  display: grid;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  place-items: center;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #303936;
  padding: 0;
  box-shadow: none;
}

.auth-onboarding-topbar .icon-button:hover {
  background: #f2f5f3;
}

.auth-onboarding-topbar .icon-button svg {
  width: 22px;
  height: 22px;
}

.auth-onboarding-topbar > strong {
  align-self: center;
  overflow: hidden;
  font-size: 15px;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.2;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.auth-onboarding-topbar output {
  align-self: center;
  color: #87908c;
  font-size: 12px;
  font-weight: 550;
  line-height: 1;
  text-align: right;
}

.auth-onboarding-progress {
  position: relative;
  width: 100%;
  height: 3px;
  overflow: hidden;
  background: #eef1ef;
}

.auth-onboarding-progress > i {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--auth-onboarding-progress, 0%);
  background: var(--onboarding-brand);
  transition: width 180ms cubic-bezier(.2, .8, .2, 1);
}

.auth-onboarding-step {
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: calc(100dvh - 61px - env(safe-area-inset-top));
  flex-direction: column;
  padding: 58px 4px max(24px, env(safe-area-inset-bottom));
}

.auth-onboarding-step[hidden] {
  display: none !important;
}

.auth-onboarding-question {
  display: grid;
  min-width: 0;
  gap: 9px;
  margin: 0 0 54px;
}

.auth-onboarding-question > span {
  color: var(--onboarding-brand);
  font-size: 14px;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.4;
}

.auth-onboarding-question h2 {
  max-width: 100%;
  margin: 0;
  color: var(--onboarding-ink);
  font-size: 34px;
  font-weight: 720;
  letter-spacing: 0;
  line-height: 1.28;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.auth-onboarding-question h2 strong {
  color: var(--onboarding-brand);
  font: inherit;
}

.auth-onboarding-question p {
  max-width: 470px;
  margin: 0;
  color: var(--onboarding-muted);
  font-size: 15px;
  font-weight: 430;
  letter-spacing: 0;
  line-height: 1.62;
  word-break: keep-all;
}

.auth-line-field,
.auth-card .auth-line-field,
.student-card-activation-form .auth-line-field {
  display: grid;
  width: 100%;
  min-width: 0;
  gap: 5px;
  color: var(--onboarding-brand);
  font-size: 14px;
  font-weight: 600;
}

.auth-line-field .input,
.auth-card .auth-line-field .input,
.student-card-activation-form .auth-line-field .input {
  width: 100%;
  min-width: 0;
  min-height: 58px;
  border: 0 !important;
  border-bottom: 2px solid var(--onboarding-line) !important;
  border-radius: 0 !important;
  outline: 0;
  background: transparent !important;
  color: var(--onboarding-ink);
  padding: 4px 0 10px !important;
  box-shadow: none !important;
  font-size: 26px;
  font-weight: 580;
  letter-spacing: 0;
  line-height: 1.2;
}

.auth-line-field .input::placeholder {
  color: #a6aeaa;
  opacity: 1;
}

.auth-line-field .input:focus,
.auth-line-field .input:focus-visible {
  border-bottom-color: var(--onboarding-brand) !important;
  box-shadow: none !important;
}

.auth-field-hint,
.auth-login-cooldown {
  margin: 9px 0 0;
  color: #858e89;
  font-size: 13px;
  font-weight: 450;
  line-height: 1.5;
}

.auth-field-hint[data-valid="true"] {
  color: var(--onboarding-brand);
}

.auth-login-cooldown {
  color: var(--onboarding-danger);
  text-align: center;
}

.auth-login-error {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  border: 1px solid color-mix(in srgb, var(--onboarding-danger) 28%, transparent);
  border-radius: 10px;
  background: color-mix(in srgb, var(--onboarding-danger) 7%, #fff);
  color: var(--onboarding-danger);
  padding: 11px 12px;
}

.auth-login-error[hidden] {
  display: none;
}

.auth-login-error > span:first-child,
.auth-login-error svg {
  width: 20px;
  height: 20px;
}

.auth-login-error > span:last-child {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.auth-login-error strong,
.auth-login-error small {
  display: block;
  line-height: 1.45;
}

.auth-login-error strong {
  font-size: 14px;
  font-weight: 720;
}

.auth-login-error small {
  color: color-mix(in srgb, var(--onboarding-danger) 78%, #34413b);
  font-size: 12px;
}

#loginForm .auth-login-first-hint {
  margin: -5px 0 0;
  color: var(--onboarding-muted);
  font-size: 12px;
  line-height: 1.5;
}

#loginForm .auth-login-password-stage {
  display: grid;
  max-height: 0;
  overflow: hidden;
  gap: 8px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-12px);
  transition: max-height 340ms cubic-bezier(.22, 1, .36, 1), opacity 220ms ease, transform 340ms cubic-bezier(.22, 1, .36, 1);
}

#loginForm.is-password-step .auth-login-password-stage {
  max-height: 150px;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.auth-login-password-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #34413b;
  font-size: 13px;
  font-weight: 750;
}

.auth-login-password-head button,
.auth-login-change-id {
  min-height: 32px;
  border: 0;
  background: transparent;
  color: var(--onboarding-brand);
  padding: 0 2px;
  font-size: 12px;
  font-weight: 700;
}

.password-login-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.password-login-submit > svg {
  width: 18px;
  height: 18px;
}

.auth-login-first-use {
  display: none;
  gap: 13px;
  border: 1px solid #cfe1da;
  border-radius: 16px;
  background: #f7fbf9;
  padding: 18px;
  text-align: center;
}

#loginForm.is-first-use-step > :where(.auth-login-identity-field, .auth-login-first-hint, .auth-login-password-stage, .password-login-submit, .auth-method-divider, .student-card-login-entry) {
  display: none;
}

#loginForm.is-first-use-step .auth-login-first-use {
  display: grid;
  animation: auth-first-use-in 360ms cubic-bezier(.22, 1, .36, 1) both;
}

.auth-login-first-use-mark {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  justify-self: center;
  border-radius: 50%;
  background: #e1f3eb;
  color: var(--onboarding-brand);
}

.auth-login-first-use-mark svg {
  width: 24px;
  height: 24px;
}

.auth-login-first-use > div {
  display: grid;
  gap: 5px;
}

.auth-login-first-use strong {
  color: var(--onboarding-ink);
  font-size: 18px;
}

.auth-login-first-use p {
  margin: 0;
  color: var(--onboarding-muted);
  font-size: 13px;
  line-height: 1.6;
}

.auth-login-first-use > :where(.primary, .ghost) {
  width: 100%;
  min-height: 48px;
}

@keyframes auth-first-use-in {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

.authenticated-shell-loading .container {
  display: grid;
  min-height: min(54vh, 460px);
  place-items: center;
}

.authenticated-loading-status {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  color: var(--onboarding-ink);
  padding: 24px;
}

.authenticated-loading-status strong {
  display: block;
  font-size: 17px;
}

.authenticated-loading-status p {
  margin: 4px 0 0;
  color: #66736d;
  font-size: 13px;
}

.auth-onboarding-next,
.auth-confirm-actions,
.auth-onboarding-finish > .auth-onboarding-next {
  margin-top: auto;
}

.auth-onboarding-form button.primary,
.auth-onboarding-form .button-secondary {
  min-height: 54px;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 650;
  letter-spacing: 0;
}

.auth-onboarding-form button.primary {
  border: 0;
  background: var(--onboarding-brand);
  color: #fff;
  box-shadow: none;
}

.auth-onboarding-form button.primary:disabled {
  background: #dce2df;
  color: #929b96;
  opacity: 1;
}

.auth-onboarding-form .button-secondary {
  border: 1px solid var(--onboarding-line);
  background: #fff;
  color: #3d4742;
}

.auth-confirm-step .auth-onboarding-question {
  margin-bottom: 24px;
}

.auth-confirm-actions {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: 10px;
}

.student-card-login-choice .auth-onboarding-question {
  margin-bottom: 28px;
}

.student-card-login-choice-note {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  border: 1px solid var(--onboarding-line);
  border-radius: 10px;
  background: var(--onboarding-brand-soft);
  color: var(--onboarding-brand);
  padding: 14px;
}

.student-card-login-choice-note > svg {
  width: 24px;
  height: 24px;
  justify-self: center;
}

.student-card-login-choice-note > span {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.student-card-login-choice-note strong {
  color: var(--onboarding-ink);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
}

.student-card-login-choice-note small {
  color: var(--onboarding-muted);
  font-size: 13px;
  font-weight: 440;
  line-height: 1.5;
}

.student-card-login-choice .auth-confirm-actions {
  margin-top: auto;
}

.auth-choice-list {
  display: grid;
  gap: 10px;
}

.auth-choice-list label {
  position: relative;
  display: block;
  min-width: 0;
}

.auth-choice-list input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.auth-choice-list span {
  display: flex;
  min-height: 52px;
  align-items: center;
  border: 1px solid var(--onboarding-line);
  border-radius: 10px;
  background: #fff;
  color: #303936;
  padding: 12px 14px;
  font-size: 15px;
  font-weight: 560;
}

.auth-choice-list input:checked + span {
  border-color: var(--onboarding-brand);
  background: var(--onboarding-brand-soft);
  color: var(--onboarding-brand);
}

.auth-onboarding-legal-flow {
  display: contents;
}

.auth-onboarding-legal-step {
  padding-top: 34px;
}

.auth-onboarding-legal-step .auth-onboarding-question {
  gap: 6px;
  margin-bottom: 18px;
}

.auth-onboarding-legal-step .auth-onboarding-question h2 {
  font-size: 27px;
}

.auth-onboarding-policy,
.auth-onboarding-legal-step .legal-consent-scroll {
  width: 100%;
  height: min(48dvh, 450px);
  max-height: none;
  margin: 0 0 18px;
  border: 1px solid var(--onboarding-line);
  border-radius: 8px;
  background: #fbfcfb;
}

.auth-onboarding-legal-step.is-read .legal-consent-scroll {
  border-color: #bdd8ce;
}

.auth-onboarding-finish {
  padding-top: 42px;
}

.auth-finish-mark {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  margin-bottom: 26px;
  border-radius: 50%;
  background: var(--onboarding-brand-soft);
  color: var(--onboarding-brand);
}

.auth-finish-mark svg {
  width: 27px;
  height: 27px;
}

.auth-onboarding-finish .auth-onboarding-question {
  margin-bottom: 26px;
}

.signup-fast-account {
  padding-top: 30px;
}

.signup-fast-account .auth-onboarding-question,
.signup-fast-legal-step .auth-onboarding-question {
  margin-bottom: 24px;
}

.signup-fast-account .auth-onboarding-question h2,
.signup-fast-legal-step .auth-onboarding-question h2 {
  font-size: 30px;
}

.signup-fast-fields {
  display: grid;
  min-width: 0;
  gap: 16px;
}

.signup-fast-row {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.signup-fast-field .input,
.auth-card .signup-fast-field .input {
  min-height: 48px;
  padding-bottom: 8px !important;
  font-size: 18px;
}

.signup-fast-id-hint {
  margin: -10px 0 0;
}

.signup-fast-next,
.signup-fast-submit {
  min-height: 56px;
  margin-top: 28px;
}

.signup-fast-legal-step {
  padding-top: 26px;
}

.signup-fast-legal-step .legal-consent-gate {
  margin: 0;
}

.signup-fast-legal-step .legal-consent-scroll {
  max-height: min(34dvh, 300px);
}

.signup-inquiry-step {
  padding-top: 30px;
}

.signup-inquiry-step .auth-onboarding-question {
  margin-bottom: 25px;
}

.signup-inquiry-inner-form {
  display: grid;
  min-width: 0;
  gap: 18px;
}

.signup-inquiry-fixed-identity {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.signup-inquiry-fixed-identity > div {
  display: grid;
  gap: 4px;
  border: 1px solid #d8e9dd;
  border-radius: 14px;
  background: #f5faf6;
  padding: 14px;
}

.signup-inquiry-fixed-identity > div:last-child {
  grid-column: 1 / -1;
}

.signup-inquiry-fixed-identity span {
  color: #64786b;
  font-size: 12px;
}

.signup-inquiry-fixed-identity strong {
  color: #12583d;
  font-size: 18px;
}

.signup-inquiry-edit-identity {
  justify-self: start;
  border: 0;
  background: transparent;
  color: #0e7150;
  padding: 0;
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.signup-inquiry-step .signup-inquiry-message,
.auth-card .signup-inquiry-step .signup-inquiry-message {
  min-height: 128px;
  border: 1px solid var(--onboarding-line) !important;
  border-radius: 14px !important;
  padding: 13px 15px !important;
  font-size: 16px;
  font-weight: 450;
  line-height: 1.55;
  resize: vertical;
}

.signup-inquiry-privacy {
  margin: 0;
  color: var(--onboarding-muted, #617069);
  font-size: 13px;
  line-height: 1.55;
  word-break: keep-all;
}

.signup-inquiry-inner-form .auth-onboarding-next {
  margin-top: 10px;
  white-space: normal;
  line-height: 1.35;
}

.signup-inquiry-receipt-dialog {
  width: min(430px, calc(100vw - 28px));
  max-height: calc(100dvh - 32px);
  overflow: auto;
  border: 1px solid #d6e6dc;
  border-radius: 22px;
  background: #fff;
  color: #1c2c25;
  padding: 24px;
  box-shadow: 0 26px 90px rgba(12, 39, 26, .25);
}

.signup-inquiry-receipt-dialog::backdrop {
  background: rgba(8, 34, 24, .48);
}

.signup-inquiry-receipt-dialog h2 {
  margin: 0 0 10px;
  font-size: 22px;
  line-height: 1.35;
}

.signup-inquiry-receipt-dialog > p:not(.signup-inquiry-privacy) {
  margin: 0 0 20px;
  color: #52645a;
  font-size: 14px;
  line-height: 1.55;
}

.signup-inquiry-receipt-dialog label {
  display: block;
  margin-bottom: 6px;
  color: #315744;
  font-size: 13px;
  font-weight: 700;
}

.signup-inquiry-receipt-code {
  width: 100%;
  min-width: 0;
  font-size: 15px;
  font-weight: 650;
  letter-spacing: .02em;
}

.signup-inquiry-receipt-dialog .signup-inquiry-copy {
  width: 100%;
  margin: 12px 0;
}

.signup-inquiry-receipt-dialog > .primary {
  width: 100%;
  margin-top: 20px;
}

.signup-inquiry-account-panel {
  display: grid;
  gap: 12px;
  margin-top: 15px;
  border: 1px solid #cce2d5;
  border-radius: 16px;
  background: #f4faf6;
  padding: 16px;
}

.home-signup-inquiry-notice {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 14px;
  border: 1px solid #cce2d5;
  border-radius: 15px;
  background: #f4faf6;
  color: #15583f;
  padding: 12px 14px;
  text-align: left;
}

.home-signup-inquiry-notice > span {
  display: grid;
  min-width: 0;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 3px 8px;
  align-items: center;
}

.home-signup-inquiry-notice svg {
  width: 18px;
  height: 18px;
}

.home-signup-inquiry-notice strong {
  font-size: 14px;
}

.home-signup-inquiry-notice small {
  grid-column: 2;
  color: #4d6759;
  font-size: 12px;
  line-height: 1.45;
}

.signup-inquiry-account-head {
  display: flex;
  align-items: start;
  gap: 12px;
}

.signup-inquiry-account-head > svg {
  flex: none;
  width: 22px;
  height: 22px;
  color: #087454;
}

.signup-inquiry-account-head strong {
  color: #0e6146;
  font-size: 16px;
}

.signup-inquiry-account-head p {
  margin: 4px 0 0;
  color: #4d6759;
  font-size: 13px;
  line-height: 1.55;
}

.signup-inquiry-status-form {
  display: grid;
  gap: 11px;
}

.signup-inquiry-lookup-result {
  margin-top: 12px;
  border: 1px solid #d5e6db;
  border-radius: 12px;
  background: #fff;
  padding: 13px 15px;
  font-size: 14px;
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.signup-inquiry-lookup-result[hidden] {
  display: none;
}

.signup-inquiry-lookup-result p {
  margin: 5px 0 0;
}

.signup-inquiry-correction-link {
  margin-top: 12px;
}

.admin-signup-inquiry-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.admin-signup-inquiry-head p {
  margin: 0;
  color: #596e61;
  font-size: 13px;
  line-height: 1.5;
}

.admin-signup-inquiry-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-signup-inquiry-error {
  color: #b33731;
}

.admin-signup-inquiry-list {
  display: grid;
  gap: 12px;
  margin-top: 15px;
}

.admin-signup-inquiry-item {
  min-width: 0;
  border: 1px solid #dae7de;
  border-radius: 16px;
  background: #fbfdfb;
  padding: 16px;
}

.admin-signup-inquiry-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  color: #647469;
  font-size: 12px;
}

.admin-signup-inquiry-meta strong {
  color: #1d4732;
  font-size: 14px;
}

.admin-signup-inquiry-meta span {
  border-radius: 999px;
  background: #e4f4e9;
  color: #176344;
  padding: 3px 8px;
  font-weight: 700;
}

.admin-signup-inquiry-item > p,
.admin-signup-inquiry-item > blockquote {
  margin: 12px 0;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.admin-signup-inquiry-item > blockquote {
  border-left: 3px solid #79b893;
  padding: 5px 0 5px 12px;
}

.admin-signup-inquiry-correction {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 12px 0;
  border: 1px solid #dce8df;
  border-radius: 12px;
  background: #f3f8f4;
  padding: 12px;
}

.admin-signup-inquiry-correction.is-pending {
  border-color: #abd4b5;
  background: #eaf6ed;
}

.admin-signup-inquiry-correction > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.admin-signup-inquiry-correction strong {
  color: #20563a;
  font-size: 13px;
}

.admin-signup-inquiry-correction small {
  color: #587064;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.admin-signup-inquiry-correction button {
  flex: 0 0 auto;
}

.admin-signup-inquiry-item form {
  display: grid;
  gap: 10px;
}

.admin-signup-inquiry-item form textarea {
  min-height: 86px;
}

.admin-student-number-change {
  display: grid;
  gap: 12px;
  margin-top: 12px;
  border: 1px solid #dce8df;
  border-radius: 12px;
  background: #f7faf8;
  padding: 12px;
}

.admin-student-number-change[hidden] {
  display: none;
}

.admin-student-number-change > label:first-child {
  display: grid;
  gap: 6px;
}

.admin-student-number-change textarea {
  min-height: 76px;
}

.student-card-auth-wrap.auth-onboarding-active {
  min-height: 100dvh;
  align-items: start;
  padding: 0 max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));
  background: #fff;
}

.student-card-auth-wrap.auth-onboarding-active .student-card-activation-shell.details-step {
  width: min(560px, 100%);
  max-width: 560px;
  min-height: 100dvh;
  margin: 0 auto;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: #fff;
  padding: 0;
  box-shadow: none;
}

.student-activation-finish {
  gap: 12px;
}

.student-activation-finish .student-card-verified-summary,
.student-activation-finish .student-card-retention-result,
.student-activation-finish :where(.preactivation-account-notice, .student-card-legacy-claim) {
  width: 100%;
  min-width: 0;
  margin: 0;
  border: 1px solid var(--onboarding-line);
  border-radius: 8px;
  background: #fff;
  padding: 14px;
  box-shadow: none;
}

.student-activation-finish :where(.preactivation-account-notice, .student-card-legacy-claim) > summary {
  cursor: pointer;
  color: #3d4742;
  font-size: 14px;
  font-weight: 620;
}

.student-activation-finish .preactivation-account-notice p {
  margin: 10px 0 0;
  color: var(--onboarding-muted);
  font-size: 13px;
  line-height: 1.6;
}

.student-activation-finish .student-card-legacy-fields {
  margin-top: 12px;
}

.student-activation-finish .student-activation-submit {
  margin-top: auto;
}

@media (min-width: 700px) {
  .auth-onboarding-step {
    padding: 72px 8px 36px;
  }

  .auth-onboarding-question h2 {
    font-size: 38px;
  }
}

@media (max-width: 420px) {
  .auth-onboarding-step {
    padding-top: 44px;
  }

  .auth-onboarding-question {
    margin-bottom: 44px;
  }

  .auth-onboarding-question h2 {
    font-size: 30px;
  }

  .auth-line-field .input,
  .auth-card .auth-line-field .input,
  .student-card-activation-form .auth-line-field .input {
    font-size: 23px;
  }

  .auth-onboarding-legal-step {
    padding-top: 26px;
  }

  .auth-onboarding-legal-step .auth-onboarding-question h2 {
    font-size: 24px;
  }

  .signup-fast-account,
  .signup-fast-legal-step {
    padding-top: 22px;
  }

  .signup-fast-account .auth-onboarding-question,
  .signup-fast-legal-step .auth-onboarding-question {
    margin-bottom: 20px;
  }

  .signup-fast-account .auth-onboarding-question h2,
  .signup-fast-legal-step .auth-onboarding-question h2 {
    font-size: 27px;
  }

  .signup-fast-row {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .signup-inquiry-step {
    padding-top: 22px;
  }

  .admin-signup-inquiry-head {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-signup-inquiry-correction {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-height: 690px) {
  .auth-onboarding-step {
    padding-top: 30px;
  }

  .auth-onboarding-question {
    margin-bottom: 28px;
  }

  .auth-onboarding-policy,
  .auth-onboarding-legal-step .legal-consent-scroll {
    height: 38dvh;
  }
}

@media (prefers-reduced-motion: reduce) {
  .auth-onboarding-progress > i {
    transition: none;
  }

  #loginForm .auth-login-password-stage {
    transition: none;
  }

  #loginForm.is-first-use-step .auth-login-first-use {
    animation: none;
  }
}

.password-caps-lock-warning {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  gap: 7px;
  grid-column: 1 / -1;
  margin-top: 7px;
  padding: 6px 10px;
  border: 1px solid #e8c26e;
  border-radius: 999px;
  background: #fff8e6;
  color: #754800;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.25;
  letter-spacing: -0.01em;
  box-shadow: 0 4px 14px rgb(91 64 13 / 8%);
}

.password-caps-lock-warning::before {
  content: "⇧";
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border-radius: 50%;
  background: #f0c75b;
  color: #503100;
  font-size: 12px;
  line-height: 1;
}

.password-caps-lock-warning[hidden] {
  display: none !important;
}

input.password-caps-lock-active {
  border-color: #c99528 !important;
  box-shadow: 0 0 0 3px rgb(240 199 91 / 22%) !important;
}
