/* Novo sign-in composition repair.
   Loaded last so the cloud-migration notice cannot push the centered form above
   the card edge. All rules are route-scoped; the established manager is untouched. */

html.library-novo body.auth-screen-open {
  overflow-anchor: none;
}

html.library-novo body.auth-screen-open .app-shell,
html.library-novo body.auth-screen-open .auth-page {
  overflow-anchor: none;
}

html.library-novo.library-novo body.auth-screen-open.auth-screen-open .app-shell {
  width: min(1040px, calc(100% - 40px));
  max-width: 1040px;
  padding-top: clamp(26px, 4vh, 44px) !important;
  padding-bottom: clamp(40px, 6vh, 64px) !important;
}

html.library-novo body.auth-screen-open .auth-page {
  min-height: 552px;
  align-items: stretch;
}

@media (min-width: 861px) {
  html.library-novo body.auth-screen-open .auth-page:has(.auth-note:not(:empty)) {
    min-height: 620px;
  }
}

html.library-novo body.auth-screen-open .auth-art {
  padding: 32px 42px 30px;
}

html.library-novo body.auth-screen-open .auth-intro {
  margin-top: 48px;
}

html.library-novo body.auth-screen-open .glass-card h1 {
  margin-top: 18px;
  margin-bottom: 14px;
  font-size: clamp(42px, 3.55vw, 50px);
  line-height: 1;
}

html.library-novo body.auth-screen-open .auth-card {
  justify-content: flex-start;
  padding: 30px 40px 32px;
  overflow: visible;
}

html.library-novo body.auth-screen-open .auth-card-head {
  flex: 0 0 auto;
  min-height: 27px;
  margin-bottom: 16px;
}

html.library-novo body.auth-screen-open .auth-heading {
  flex: 0 0 auto;
  margin-bottom: 17px;
}

html.library-novo body.auth-screen-open .auth-card h2 {
  margin-bottom: 7px;
  font-size: clamp(34px, 2.8vw, 38px);
  line-height: 1.04;
}

html.library-novo body.auth-screen-open .auth-card label {
  gap: 6px;
  margin-bottom: 10px;
}

html.library-novo body.auth-screen-open .auth-card input,
html.library-novo body.auth-screen-open .auth-card .primary-button {
  min-height: 46px;
}

html.library-novo body.auth-screen-open .novo-password-wrap {
  margin-bottom: 10px;
}

html.library-novo body.auth-screen-open .novo-password-toggle {
  bottom: 8px;
}

html.library-novo body.auth-screen-open .auth-note:not(:empty) {
  margin: 5px 0 7px;
  padding: 7px 10px;
  font-size: 10.5px;
  line-height: 1.35;
}

html.library-novo body.auth-screen-open .auth-beta-prompt {
  margin-top: 8px;
  padding-block: 10px;
}

@media (max-width: 860px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open .app-shell {
    width: min(600px, calc(100% - 28px));
    padding-top: 28px !important;
    padding-bottom: 44px !important;
  }

  html.library-novo body.auth-screen-open .auth-page {
    min-height: 0;
    overflow: hidden;
  }

  html.library-novo body.auth-screen-open .auth-card {
    height: auto;
    padding: 32px 34px 34px;
  }

  html.library-novo body.auth-screen-open .auth-art {
    min-height: 350px;
    padding: 32px 34px;
  }

  html.library-novo body.auth-screen-open .auth-intro {
    margin-top: 42px;
  }
}

@media (max-width: 620px) {
  html.library-novo.library-novo body.auth-screen-open.auth-screen-open .app-shell {
    width: min(100% - 18px, 540px);
    padding-top: 18px !important;
    padding-bottom: 34px !important;
  }

  html.library-novo body.auth-screen-open .auth-card,
  html.library-novo body.auth-screen-open .auth-art {
    padding: 26px 20px 28px;
  }

  html.library-novo body.auth-screen-open .auth-card-head {
    margin-bottom: 14px;
  }

  html.library-novo body.auth-screen-open .auth-card h2 {
    font-size: clamp(31px, 10vw, 37px);
  }

  html.library-novo body.auth-screen-open .auth-beta-prompt {
    gap: 10px;
  }

  html.library-novo body.auth-screen-open .auth-art {
    min-height: 330px;
  }

  html.library-novo body.auth-screen-open .glass-card h1 {
    font-size: clamp(37px, 12vw, 46px);
  }
}
