/* Unified guest login/signup, Core 0.15.546. Scopes all styling to the overlay. */
.lts-login-modal[hidden] { display: none !important; }
body.lts-login-modal-open { overflow: hidden !important; }
.lts-login-modal { box-sizing: border-box !important; position: fixed; inset: 0; z-index: 2147480000; display: grid; place-items: center; padding: 14px; isolation: isolate; }
.lts-login-modal__shade { position: absolute; inset: 0; background: rgba(14, 23, 42, .64); }
.lts-login-modal__dialog { box-sizing: border-box !important; position: relative; width: min(100%, 510px); max-height: calc(100dvh - 28px); overflow-y: auto; overscroll-behavior: contain; border: 1px solid rgba(203, 185, 159, .75); border-radius: 24px; padding: 34px clamp(20px, 5vw, 40px) 28px; background: #F6F1E8 !important; box-shadow: 0 24px 90px rgba(11, 20, 43, .3); color: var(--lts-ink, #20344d); scrollbar-width: thin; }
.lts-login-modal__dialog:focus { outline: none; }
.lts-login-modal__close { box-sizing: border-box !important; position: absolute !important; z-index: 2; top: 15px; right: 16px; display: flex !important; align-items: center !important; justify-content: center !important; width: 36px !important; height: 36px !important; min-width: 36px !important; min-height: 36px !important; padding: 0 !important; margin: 0 !important; line-height: 1 !important; border: 0 !important; border-radius: 50% !important; background: transparent !important; box-shadow: none !important; color: var(--lts-ink, #20344d) !important; cursor: pointer; transform: none !important; }
.lts-login-modal__close svg { display: block !important; position: static !important; flex: 0 0 20px; width: 20px !important; height: 20px !important; margin: 0 !important; padding: 0 !important; transform: none !important; }
.lts-login-modal__close:hover { background: rgba(32,52,77,.08) !important; }
.lts-login-modal__close:focus-visible { outline: 2px solid var(--lts-blue, #4352A6); outline-offset: 2px; }
.lts-login-modal__content { font: 600 14px/1.4 system-ui, sans-serif; text-align: center; }
.lts-login-modal__content:has(.lts-auth) { text-align: left; }
.lts-login-modal .lts-auth { --lts-auth-ink:#20344d; --lts-auth-muted:#5f6b7a; --lts-ink:#20344d; --lts-ink-soft:#5f6b7a; --lts-paper:#fff; --lts-blue:#4352A6; --lts-line:#E9E1D6; display: block !important; min-height: 0 !important; height: auto !important; width: 100%; padding: 0 !important; margin: 0 !important; border: 0 !important; background: transparent !important; color: #20344d !important; }
.lts-login-modal .lts-auth__panel { display: flex; flex-direction: column; justify-content: flex-start; align-items: stretch; width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; background: transparent !important; box-shadow: none !important; }
.lts-login-modal .lts-auth h1 { margin: 0 !important; padding: 0; font-size: clamp(30px, 5vw, 37px) !important; line-height: 1.14 !important; text-align: center; color: #20344d !important; }
.lts-login-modal .lts-auth__switch { margin: 8px 0 18px !important; font-size: 13px !important; line-height: 1.4 !important; color: #5f6b7a !important; }
.lts-login-modal .lts-auth a { color: #4352A6 !important; }
.lts-login-modal .lts-auth__google { margin: 0 0 8px !important; }
.lts-login-modal .lts-auth__google :is(.nsl-button, a[class*="nsl-button"], .lts-auth__google-placeholder) {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  min-height: 48px !important;
  border: 1.5px solid #4352A6 !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: #20344d !important;
  text-decoration: none !important;
}
.lts-login-modal .lts-auth__divider { margin: 4px 0 10px !important; gap: 12px; font-size: 13px !important; }
.lts-login-modal .lts-auth__form { gap: 5px !important; }
.lts-login-modal .lts-auth__form label { margin: 5px 0 0 !important; font-size: 11px !important; }
.lts-login-modal .lts-auth__form input { min-height: 46px !important; border-radius: 10px !important; padding: 0 14px !important; font-size: 16px !important; color:#20344d !important; background-color:#fff !important; border-color:#E9E1D6 !important; }
.lts-login-modal .lts-auth__form button { min-height: 48px !important; margin-top: 12px !important; border-radius: 12px !important; font-size: 17px !important; background:#4352A6 !important; color:#fff !important; }
.lts-login-modal .lts-auth__forgot { margin: 12px 0 0 !important; font-size: 13px !important; text-align: center !important; }
.lts-login-modal .lts-auth__bottom-switch { margin: 12px 0 0 !important; font-size: 13px !important; }
.lts-login-modal .lts-auth__legal-links { margin: 15px 0 0 !important; font-size: 11px !important; }
.lts-login-modal .lts-auth__legal-links a { color:#5F6B7A !important; text-decoration:none !important; }
.lts-login-modal .lts-auth__context { margin: 12px 0 0 !important; padding-top: 10px !important; }
.lts-login-modal .lts-auth__back { margin: 8px 0 0 !important; }
.lts-login-modal .lts-auth__errors { margin: 0 0 12px !important; }
@media (max-width: 480px) {
  .lts-login-modal { padding: 10px; }
  .lts-login-modal__dialog { max-height: calc(100dvh - 20px); padding: 24px 21px 18px; border-radius: 20px; }
  .lts-login-modal__close { top: 8px; right: 8px; width: 32px !important; height: 32px !important; min-width: 32px !important; min-height: 32px !important; }
  .lts-login-modal .lts-auth h1 { font-size: 29px !important; }
  .lts-login-modal .lts-auth__switch { margin: 6px 0 11px !important; font-size: 12px !important; }
  .lts-login-modal .lts-auth__google { margin-bottom: 5px !important; }
  .lts-login-modal .lts-auth__google :is(.nsl-button, a[class*="nsl-button"], .lts-auth__google-placeholder) { min-height: 42px !important; }
  .lts-login-modal .lts-auth__divider { margin: 4px 0 6px !important; }
  .lts-login-modal .lts-auth__form input { min-height: 41px !important; }
  .lts-login-modal .lts-auth__form button { min-height: 43px !important; margin-top: 8px !important; }
  .lts-login-modal .lts-auth__forgot, .lts-login-modal .lts-auth__bottom-switch { margin-top: 8px !important; }
  .lts-login-modal .lts-auth__legal-links { margin-top: 10px !important; }
}
@media (max-height: 670px) and (max-width: 480px) {
  .lts-login-modal__dialog { padding-block: 17px 13px; }
  .lts-login-modal .lts-auth__switch { margin: 3px 0 7px !important; }
  .lts-login-modal .lts-auth__google :is(.nsl-button, a[class*="nsl-button"], .lts-auth__google-placeholder) { min-height: 39px !important; }
  .lts-login-modal .lts-auth__form input { min-height: 38px !important; }
  .lts-login-modal .lts-auth__form button { min-height: 40px !important; }
  .lts-login-modal .lts-auth__legal-links { margin-top: 6px !important; }
}
@media (prefers-reduced-motion: reduce) { .lts-login-modal *, .lts-login-modal *::before, .lts-login-modal *::after { animation: none !important; transition: none !important; } }

/* New account uses the identical parchment card, with space for the third field
   and the existing registration terms. Hide unfinished layout while fetching. */
.lts-login-modal.is-loading .lts-login-modal__dialog { visibility: hidden !important; }
.lts-login-modal.is-switching .lts-login-modal__content { opacity: .65; pointer-events: none; }
.lts-login-modal .lts-auth__legal { max-width: 100%; margin: 10px auto 0 !important; font-size: 11px !important; line-height: 1.4 !important; }
.lts-login-modal .lts-auth[data-lts-auth-mode="signup"] .lts-auth__switch { margin-bottom: 13px !important; }
.lts-login-modal .lts-auth[data-lts-auth-mode="signup"] .lts-auth__form button { margin-top: 8px !important; }
.lts-login-modal__error { margin: 36px auto 14px; text-align: center; font-size: 14px; font-weight: 600; }
.lts-login-modal__retry { display: block; width: 100%; max-width: 220px; min-height: 42px; margin: 0 auto; padding: 8px; border: 0; border-radius: 12px; background: #4352A6; color: #fff; font-size: 14px; font-weight: 700; cursor: pointer; }
@media (max-width: 480px) {
  .lts-login-modal__dialog { padding-block: 19px 13px; }
  .lts-login-modal .lts-auth[data-lts-auth-mode="signup"] h1 { font-size: 27px !important; }
  .lts-login-modal .lts-auth[data-lts-auth-mode="signup"] .lts-auth__switch { margin: 4px 0 9px !important; }
  .lts-login-modal .lts-auth[data-lts-auth-mode="signup"] .lts-auth__form input { min-height: 38px !important; }
  .lts-login-modal .lts-auth[data-lts-auth-mode="signup"] .lts-auth__form label { margin-top: 2px !important; }
  .lts-login-modal .lts-auth[data-lts-auth-mode="signup"] .lts-auth__form button { min-height: 41px !important; margin-top: 8px !important; }
  .lts-login-modal .lts-auth[data-lts-auth-mode="signup"] .lts-auth__bottom-switch { margin-top: 7px !important; }
  .lts-login-modal .lts-auth[data-lts-auth-mode="signup"] .lts-auth__legal { margin-top: 6px !important; font-size: 10px !important; }
  .lts-login-modal .lts-auth[data-lts-auth-mode="signup"] .lts-auth__legal-links { margin-top: 6px !important; }
}

/* The canonical short-viewport signup CSS hides the redundant bottom login link.
   The modal retains it for consistency: the viewport layout is independently compact. */
@media (max-width: 360px) and (max-height: 600px) {
  .lts-login-modal .lts-auth[data-lts-auth-mode="signup"] .lts-auth__bottom-switch { display: block !important; }
}

@media (max-width: 360px) { .lts-login-modal .lts-auth[data-lts-auth-mode="signup"] h1 { font-size: 23px !important; } }
