.input-shell {
  display: flex;
  align-items: center;
  margin-top: 9px;
  border: 1px solid #d5dae4;
  border-radius: 13px;
  background: #fff;
  overflow: hidden;
  transition: .2s border-color, .2s box-shadow;
}
.input-shell:focus-within {
  border-color: var(--blue);
  box-shadow: 0 0 0 4px #3157d518;
}
.input-shell input {
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 14px 14px 14px 0;
  font-size: 16px;
  background: transparent;
  box-shadow: none;
}
.input-shell input:focus { border: 0; box-shadow: none; }
.input-icon {
  width: 48px;
  flex: 0 0 48px;
  display: grid;
  place-items: center;
  color: var(--blue);
  font-size: 18px;
  font-weight: 800;
}
.login-form button {
  min-height: 52px;
  margin-top: 8px;
  border-radius: 13px;
  align-items: center;
  font-size: 15px;
  box-shadow: 0 9px 20px #3157d531;
  transition: .2s transform, .2s box-shadow;
}
.login-form button:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px #3157d53d;
}
.login-form button:active { transform: translateY(1px); }
.help { line-height: 1.5; }

@media (max-width: 800px) {
  .login-shell {
    display: block;
    min-height: 100dvh;
    padding: 0;
    background: #fff;
  }
  .login-card {
    width: 100%;
    min-height: calc(100dvh - 42px);
    border-radius: 0;
    box-shadow: none;
  }
  .login-form-wrap {
    justify-content: flex-start;
    padding: clamp(32px, 9vh, 80px) 24px 34px;
  }
  .mobile-brand { margin-bottom: clamp(42px, 10vh, 85px); }
  .mobile-brand .brand-mark {
    width: 46px;
    height: 46px;
    border-radius: 14px;
  }
  .login-form-wrap h2 {
    font-size: 30px;
    letter-spacing: -.5px;
  }
  .login-form-wrap > .muted {
    margin: 4px 0;
    font-size: 14px;
  }
  .login-form { margin-top: 32px; }
  .login-form label { font-size: 14px; }
  .input-shell { border-radius: 14px; }
  .input-shell input { min-height: 54px; }
  .login-form button {
    min-height: 56px;
    margin-top: 14px;
    font-size: 16px;
  }
  .help {
    max-width: 300px;
    margin: 22px auto 0;
  }
  body:has(.login-shell) footer { background: #fff; }
}

@media (max-width: 380px) {
  .login-form-wrap { padding-right: 19px; padding-left: 19px; }
  .mobile-brand { margin-bottom: 42px; }
  .login-form-wrap h2 { font-size: 27px; }
}
