body {
  margin: 0;
  padding: 0;
  font-family: montserrat;
  background: #dfe9f5;
  height: 100vh;
  overflow: hidden;
}

.center {
  /*Title and form section*/
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 400px;
  background: white;
  border-radius: 10px;
}

.error-message {
  display: inline-block;
  color: #cc0033;
  padding: 10px 0;
  background: #fce4e4;
  border-radius: 10px 10px 0 0;
  text-align: center;
  width: 100%;
}

.error-message i {
  padding-right: 10px;
}

.center h1 {
  /*Title in Login form*/
  text-align: center;
  padding: 0 0 20px 0;
  border-bottom: 1px solid silver;
}

.center form {
  /*Login form*/
  padding: 0 40px;
  box-sizing: border-box;
}

form .txt_field {
  /*Username and password fields*/
  position: relative;
  border-bottom: 0.3vh solid #adadad;
  margin: 30px 0;
}

.txt_field input {
  width: 100%;
  padding: 0 5px;
  height: 40px;
  font-size: 1.2em;
  border: none;
  background: none;
  outline: none;
}

.txt_field label {
  position: absolute;
  top: 50%;
  left: 5px;
  color: #adadad;
  transform: translateY(-50%);
  font-size: 1.2em;
  pointer-events: none;
  transition: 0.5s;
}

.txt_field span::before {
  content: "";
  position: absolute;
  top: 40px;
  left: 0;
  width: 100%;
  height: 3px;
  background: #2691d9;
  transition: 0.5s;
}

.txt_field input:focus ~ label,
.txt_field input:valid ~ label {
  top: -5px;
  color: #2691d9;
}

.txt_field input:focus ~ span::before,
.txt_field input:valid ~ span::before {
  width: 100%;
}

input[type="submit"] {
  width: 100%;
  height: 45px;
  border: 1px solid;
  background: #2691d9;
  border-radius: 25px;
  font-size: 1.2em;
  color: #e9f4fb;
  font-weight: 700;
  cursor: pointer;
  outline: none;
  margin: 30px 0;
}

input[type="submit"]:hover {
  border-color: #2691d9;
  transition: 0.5s;
}
