.login-main {
  display: grid;
  min-height: calc(100vh - 80px);
  place-items: center;
  padding: 36px 20px;
}
.login-card {
  width: min(100%, 420px);
  padding: 30px;
  background: #fff;
  border: 1px solid #dfe7eb;
  border-radius: 10px;
}
.login-card h1 {
  margin: 0 0 22px;
  font-size: 25px;
  line-height: 1.3;
}
.login-card form {
  display: grid;
  gap: 8px;
}
.login-card form > label {
  margin: 10px 0 0;
}
.login-card input:not([type="checkbox"]),
.login-card select {
  min-width: 0;
  padding: 11px 12px;
}
.login-card .login-account-field {
  position: relative;
  margin: 0;
}
.login-card .login-account-field input {
  width: 100%;
  padding-right: 52px;
}
.login-card .login-account-field select {
  position: absolute;
  inset: 1px 1px 1px auto;
  width: 45px;
  padding: 0;
  border: 0;
  border-left: 1px solid #d5e0e5;
  border-radius: 0 6px 6px 0;
  background: #fff;
  text-align: center;
  appearance: none;
  cursor: pointer;
}
.login-card .login-account-field select:disabled {
  color: #91a0aa;
  cursor: default;
}
.login-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  margin: 8px 0 4px;
}
.login-options .login-remember-option {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 13px;
  font-weight: 500;
}
.login-remember-option[hidden] {
  display: none;
}
.login-card input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: #23649a;
}
.login-card form button#login-submit {
  margin-top: 4px;
}
.login-agreement-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 8px;
  color: #536873;
  font-size: 13px;
}
.login-agreement-row label {
  display: inline;
  margin: 0;
  font-size: inherit;
  font-weight: 400;
  cursor: pointer;
}
.login-agreement-row a {
  color: #23649a;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.community-invite {
  margin: 6px 0 0;
  color: #6c7f8a;
  text-align: center;
  font-size: 12px;
}
.login-error {
  margin: 0 0 14px;
  color: #a23f2c;
  font-size: 13px;
  overflow-wrap: anywhere;
}
#login-status {
  min-height: 1.4em;
  margin: 10px 0 0;
  color: #6c7f8a;
  font-size: 13px;
}
.agreement-dialog {
  width: min(680px, calc(100% - 32px));
  max-height: calc(100dvh - 32px);
  padding: 24px;
  border: 1px solid #dfe7eb;
  border-radius: 10px;
  color: #152b3c;
}
.agreement-dialog::backdrop {
  background: rgb(21 43 60 / 45%);
}
.agreement-dialog h2 {
  margin: 0;
}
.agreement-content {
  min-height: 120px;
}
.agreement-actions {
  display: flex;
  justify-content: flex-end;
}
.auth-header nav {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px 20px;
}
@media (max-width: 640px) {
  .auth-header nav {
    width: 100%;
    justify-content: flex-start;
    gap: 10px 16px;
  }
  .login-main {
    min-height: calc(100vh - 110px);
    padding: 26px 16px;
  }
  .login-card {
    padding: 24px 20px;
  }
}
