/* CSS */
* {
  font-family: -apple-system, BlinkMacSystemFont, "San Francisco", Helvetica, Arial, sans-serif;
  font-weight: 300;
  margin: 0;
}


html, body {
  height: 100vh;
  width: 100vw;
  margin: auto;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  overflow: auto;
  background: linear-gradient(315deg, rgba(101,0,94,1) 3%, rgba(60,132,206,1) 38%, rgba(48,238,226,1) 68%, rgba(255,25,25,1) 98%);
  animation: gradient 15s ease infinite;
  background-size: 400% 400%;
  background-attachment: fixed;
}

@keyframes gradient {
  0% {
      background-position: 0% 0%;
  }
  50% {
      background-position: 100% 100%;
  }
  100% {
      background-position: 0% 0%;
  }
}

.wave {
  background: rgb(255 255 255 / 25%);
  border-radius: 1000% 1000% 0 0;
  position: fixed;
  width: 200%;
  height: 12em;
  animation: wave 10s -3s linear infinite;
  transform: translate3d(0, 0, 0);
  opacity: 0.8;
  bottom: 0;
  left: 0;
  z-index: -1;
}

.wave:nth-of-type(2) {
  bottom: -1.25em;
  animation: wave 18s linear reverse infinite;
  opacity: 0.8;
}

.wave:nth-of-type(3) {
  bottom: -2.5em;
  animation: wave 20s -1s reverse infinite;
  opacity: 0.9;
}

@keyframes wave {
  2% {
      transform: translateX(1);
  }

  25% {
      transform: translateX(-25%);
  }

  50% {
      transform: translateX(-50%);
  }

  75% {
      transform: translateX(-25%);
  }

  100% {
      transform: translateX(1);
  }
}

h4 {
  font-size: 24px;
  font-weight: 600;
  color: #000;
  opacity: .85;
}

label {
  font-size: 12.5px;
  color: #000;
  opacity: .8;
  font-weight: 400;
}


form {
  padding:  40px 30px; 
  background:  #fefefe; 
  display:  flex; 
  flex-direction:  column;
  align-items:  flex-start; 
  padding-bottom:  20px; 
  h4 {
    margin-bottom:  20px;
    color:  rgba(#000, .5);
    span {
      color:  rgba(#000, 1);
      font-weight:  700; 
    }
  }
  p {
    line-height:  155%; 
    margin-bottom:  5px; 
    font-size:  14px; 
    color:  #000; 
    opacity:  .65;
    font-weight:  400; 
    max-width:  200px; 
    margin-bottom:  40px; 
  }
}

a.discrete {
    color:  rgba(#000, .4); 
    font-size:  14px; 
    border-bottom:  solid 1px rgba(#000, .0);
    padding-bottom:  4px;  
    margin-left:  auto; 
    font-weight:  300; 
    transition:  all .3s ease; 
    margin-top:  40px; 
    &:hover {
      border-bottom:  solid 1px rgba(#000, .2);
    }
  }
button {
  -webkit-appearance:  none; 
  width:  auto;
  min-width:  100px;
  border-radius:  24px; 
  text-align:  center; 
  padding:  15px 40px;
  margin-top:  5px; 
  background-color:  #5314f5;
  color:  #fff; 
  font-size:  14px;
  margin-left:  auto; 
  font-weight:  500; 
  box-shadow:  0px 2px 6px -1px rgba(0,0,0,.13); 
  border:  none;
  transition:  all .3s ease; 
  outline: 0; 
  &:hover {
    transform:  translateY(-3px);
    box-shadow:  0 2px 6px -1px rgba($primary, .65);
    &:active {
      transform:  scale(.99);
    }
  }
}
input {
  font-size:  16px; 
  padding:  20px 0px; 
  height:  56px; 
  border:  none; 
  border-bottom:  solid 1px rgba(0,0,0,.1); 
  background:  #fff; 
  min-width:  280px; 
  box-sizing:  border-box; 
  transition:  all .3s linear; 
  color:  #000; 
  font-weight:  400; 
  -webkit-appearance:  none;   
  &:focus {
    border-bottom:  solid 1px $primary; 
    outline: 0; 
    box-shadow:  0 2px 6px -8px rgba($primary, .45);
  }
}
.floating-label {
  position:  relative; 
  margin-bottom:  10px; 
  label {
    position:  absolute; 
    top: calc(50% - 7px);
    left:  0; 
    opacity:  0; 
    transition:  all .3s ease; 
  }
  input:not(:placeholder-shown) {
    padding:  28px 0px 12px 0px; 
  }
  input:not(:placeholder-shown) + label {
    transform:  translateY(-10px); 
    opacity:  .7; 
  }
}
.session {
  display:  flex; 
  flex-direction:  row; 
  width:  auto; 
  height:  auto; 
  margin:  auto auto; 
  background:  #ffffff; 
  border-radius:  4px; 
  box-shadow:  0px 2px 6px -1px rgba(0,0,0,.12);
}
.left {
  width:  220px; 
  height:  auto; 
  min-height:  100%; 
  position:  relative; 
  background-image: url("../css/plazaoleos.png");
  background-size:  cover;
  border-top-left-radius:  4px; 
  border-bottom-left-radius:  4px; 
  svg {
    height:  40px; 
    width:  auto; 
    margin:  20px; 
  }
}


.error-message {
  font-size: 11px;
  background-color: #f8d7da;
  color: #721c24;
  padding: 10px;
  border-radius: 5px;
  margin-bottom: 10px;
  border: 1px solid #f5c6cb;
}
.caps-message {
  font-size: 11px;
  background-color: #c6cff5;
  color: #1f3b88;
  padding: 10px;
  border-radius: 5px;
  margin-bottom: 10px;
  border: 1px solid #c6cff5;
}

/* Small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {
  body, html {
    padding: 0 20px; 
}

.session {
    flex-direction: column; 
}

.left {
    width: 100%; 
    border-radius: 0; 
}

form {
    padding: 20px;
}

input, button {
    width: 100%; 
}

.password-toggle {
  display: block;
  margin-top: 5px; 
  text-align: right; 
}

}

/* Medium devices (tablets, 600px and up) */
@media only screen and (min-width: 601px) {
 
}

/* Large devices (desktops, 992px and up) */
@media only screen and (min-width: 992px) {
  /* Your CSS here */
}
