@font-face { font-family: "Inter"; src: url("/static/brand/fonts/Inter-Regular.otf") format("opentype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Inter"; src: url("/static/brand/fonts/Inter-SemiBold.otf") format("opentype"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "Noto Serif"; src: url("/static/brand/fonts/NotoSerif-Regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Noto Serif"; src: url("/static/brand/fonts/NotoSerif-SemiBold.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }

:root { --jtp-canvas: #F7F3EB; --jtp-panel: #FBFAF7; --jtp-raised: #FFFFFF; --jtp-ink: #1A1A1A; --jtp-muted: #6B6B6B; --jtp-line: #E6E2DA; --jtp-interaction: #B84638; --jtp-interaction-hover: #A94738; --jtp-selection: #FDEDEA; --jtp-shadow-panel: 0 8px 24px rgb(17 17 17 / 10%); }

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--jtp-canvas); }
body { min-width: 320px; min-height: 100dvh; margin: 0; background: var(--jtp-canvas); color: var(--jtp-ink); font-family: Inter, system-ui, sans-serif; }
button, input { font: inherit; }
.login { min-height: 100dvh; padding: max(32px, env(safe-area-inset-top)) 20px max(32px, env(safe-area-inset-bottom)); display: grid; place-items: center; }
.login__panel { width: 420px; max-width: 100%; padding: 32px 24px; border: 1px solid var(--jtp-line); border-radius: 16px; background: var(--jtp-panel); box-shadow: var(--jtp-shadow-panel); transform: translateY(-5%); }
.login__brand { min-height: 55px; margin-bottom: 32px; display: grid; place-items: center start; }
.login__logo { display: block; object-fit: contain; }
.login__logo--horizontal { width: 245px; height: 55px; }
.login__logo--stacked { display: none; width: 126px; height: 150px; }
.login h1 { margin: 0; font-size: 28px; font-weight: 600; line-height: 34px; letter-spacing: -.02em; }
.login__intro { max-width: 33ch; margin: 8px 0 0; color: var(--jtp-muted); font-size: 15px; line-height: 22px; }
.login__status { margin: 20px 0 -8px; color: var(--jtp-muted); font-size: 14px; line-height: 20px; }
.login__field-group { margin-top: 28px; }
.login label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; line-height: 20px; }
.login__field { position: relative; display: flex; align-items: center; }
.login__field input { width: 100%; min-height: 48px; padding: 0 88px 0 12px; border: 1px solid var(--jtp-line); border-radius: 12px; outline: 0; background: var(--jtp-raised); color: var(--jtp-ink); font-size: 16px; line-height: 22px; }
.login__field input:focus { border-color: var(--jtp-interaction); box-shadow: 0 0 0 2px var(--jtp-interaction); }
.login__field input[aria-invalid="true"] { border-color: var(--jtp-interaction-hover); box-shadow: 0 0 0 1px var(--jtp-interaction-hover); }
.login__password-toggle { min-width: 40px; min-height: 40px; }
#password-toggle { position: absolute; right: 4px; min-width: 40px; min-height: 40px; padding: 0 8px; border: 0; border-radius: 10px; background: transparent; color: var(--jtp-ink); font-size: 13px; font-weight: 600; cursor: pointer; }
#password-toggle:hover { background: var(--jtp-canvas); }
.login__submit { width: 100%; min-height: 48px; margin-top: 20px; padding: 0 12px; border: 1px solid var(--jtp-interaction); border-radius: 12px; background: var(--jtp-interaction); color: #FFFFFF; font-size: 15px; font-weight: 600; line-height: 20px; cursor: pointer; }
.login__submit:hover { border-color: var(--jtp-interaction-hover); background: var(--jtp-interaction-hover); }
.login__submit:disabled, #password-toggle:disabled { cursor: wait; opacity: .72; }
.login__help { margin: 16px 0 0; color: var(--jtp-muted); font-size: 13px; line-height: 18px; }
.login__error { margin: 10px 0 0; padding: 10px 12px; display: grid; gap: 2px; border-radius: 12px; background: var(--jtp-selection); color: var(--jtp-interaction-hover); font-size: 13px; line-height: 18px; }
.login__error strong { font-weight: 600; }
.login__error[hidden], .login__status[hidden], .login__session[hidden], #login-form-content[hidden] { display: none; }
.login__session p { margin: 8px 0 0; color: var(--jtp-muted); font-size: 15px; line-height: 22px; }
.login__secondary { width: 100%; min-height: 44px; margin-top: 8px; padding: 0 12px; border: 0; border-radius: 12px; background: transparent; color: var(--jtp-ink); font-size: 14px; line-height: 20px; text-decoration: underline; cursor: pointer; }
.login__secondary:hover { background: var(--jtp-canvas); }
.login button:focus-visible { outline: 2px solid var(--jtp-ink); outline-offset: 2px; }
.login form[aria-busy="true"] input, .login form[aria-busy="true"] button { pointer-events: none; }

@media (max-width: 899px) {
  .login { place-items: start center; }
  .login__panel { width: min(100%, 420px); padding: 32px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; }
  .login__brand { min-height: 150px; margin-bottom: 28px; place-items: center; }
  .login__logo--horizontal { display: none; }
  .login__logo--stacked { display: block; }
  .login h1 { font-size: 24px; line-height: 30px; }
}

@media (min-width: 600px) and (max-width: 899px) {
  .login__brand { min-height: 49px; place-items: center start; }
  .login__logo--horizontal { display: block; width: 218px; height: 49px; }
  .login__logo--stacked { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 30ms !important; animation-duration: 30ms !important; scroll-behavior: auto !important; }
}
