/* Public sign-in styling only; authentication behaviour remains in login.html. */
.upa-login {
  margin: 0;
  padding: 24px 16px;
  min-height: 100vh;
  min-height: 100dvh;
  background: radial-gradient(circle at top right, rgba(31,82,162,.06), transparent 34rem), #f5f8fc;
  color: #10233f;
  font: 15px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}
.upa-login .login-container { width: 100%; max-width: 456px; padding: 0; }
.upa-login .login-card { padding: 34px 36px 28px; border: 1px solid #dce5ef; border-radius: 14px; background: #fff; box-shadow: 0 12px 30px rgba(15,42,78,.07); }
.upa-login .login-header { margin-bottom: 28px; }
.upa-login .login-logo { display: block; width: 184px; height: auto; max-width: 100%; margin: 0 auto 22px; object-fit: contain; }
.upa-login .login-header .subtitle { font-size: 11px; line-height: 1.5; font-weight: 750; letter-spacing: .09em; color: #1f52a2; text-transform: uppercase; margin-bottom: 7px; }
.upa-login .login-header h1 { color: #0b1830; font-size: 28px; line-height: 1.2; letter-spacing: -.035em; margin: 0 0 10px; }
.upa-login .login-description { color: #64748b; font-size: 14px; }
.upa-login .login-header .badge { margin-top: 16px; padding: 5px 10px; border: 1px solid #e1e7ee; border-radius: 20px; background: #f1f4f8; color: #52657d; font-size: 10px; font-weight: 650; letter-spacing: .02em; }
.upa-login .form-group { margin-bottom: 18px; }
.upa-login .form-group label { color: #354b65; font-size: 13px; font-weight: 600; text-transform: none; letter-spacing: 0; margin-bottom: 7px; }
.upa-login .form-group input { min-height: 48px; padding: 12px 14px; background: #f8fafd; border: 1px solid #dce5ef; border-radius: 9px; color: #10233f; font: inherit; font-size: 16px; }
.upa-login .form-group input::placeholder { color: #73839a; }
.upa-login .form-group input:focus { border-color: #1f52a2; box-shadow: 0 0 0 3px rgba(31,82,162,.12); }
.upa-login .login-btn { min-height: 48px; padding: 12px 16px; background: #1f52a2; color: #fff; border: 1px solid #1f52a2; border-radius: 9px; font: inherit; font-weight: 650; box-shadow: 0 3px 8px rgba(31,82,162,.12); }
.upa-login .login-btn:hover { background: #19488f; }
.upa-login .login-btn:active { background: #153d7a; }
.upa-login .login-btn:focus-visible { outline: 3px solid #a5c7ef; outline-offset: 3px; }
.upa-login .login-btn:disabled { background: #64748b; border-color: #64748b; box-shadow: none; }
.upa-login .error-msg { color: #b42318; background: #fff0ee; border-color: #f2c4bf; border-radius: 9px; }
.upa-login .footer-note { margin-top: 24px; color: #64748b; font-size: 11px; line-height: 1.6; }
@media (max-width: 480px) {
  .upa-login { padding: 18px 14px; }
  .upa-login .login-card { padding: 30px 24px 26px; }
  .upa-login .login-logo { width: 166px; margin-bottom: 20px; }
  .upa-login .login-header h1 { font-size: 26px; }
}
@media (max-height: 720px) {
  .upa-login { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .upa-login * { transition: none !important; }
}
