.login-page {
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 28px 16px;
}
.login {
  width: min(100%, 320px);
  margin: 0;
}
.login img {
  display: block;
  width: clamp(145px, 36vw, 205px);
  height: auto;
  margin-inline: auto;
}
.login h1 {
  margin: 16px 0 25px;
  color: var(--green);
  text-align: center;
  font: 600 clamp(2.15rem, 9vw, 3rem)/1.05 var(--serif);
}
.login input {
  min-height: 44px;
  padding: 10px 12px;
  background: var(--card);
  font-size: 1rem;
}
.login form .primary {
  min-height: 44px;
  width: 100%;
  margin-top: 7px;
}
.login-error {
  margin: 0 0 10px;
  color: #943c2b;
  font-size: .875rem;
}
.login-alternative {
  display: grid;
  justify-items: center;
  gap: 8px;
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.login-alternative p {
  margin: 0;
  color: var(--muted);
  font-size: .9rem;
}
.login-secondary {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--green);
  border-radius: 8px;
  background: var(--card);
  color: var(--green);
  font-weight: 650;
  text-decoration: none;
}
.login-secondary:hover {
  background: #edf0e6;
}
.login-reset {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--green);
  font-size: .82rem;
  text-underline-offset: 3px;
}
.login-forgot {
  display: flex;
  width: fit-content;
  margin: -6px 0 0 auto;
}

.terms-consent { margin-block: 1rem; }
.terms-consent .terms-checkbox { display: flex; align-items: baseline; gap: .5rem; }
.terms-checkbox input[type="checkbox"] { width: 1rem; height: 1rem; min-height: 0; padding: 0; margin: 0; flex: none; accent-color: #173d30; }
