html {
  height: 100vh;
  background: #f7eddf;
}
body > .container,
body > .container-fluid {
  min-height: 100vh;
}
#login-form td {
  padding: 3% 0;
  font-size: 1.8rem;
  position: relative;
}
#login-form td img {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 1.25em;
  opacity: 0.5;
  right: 2%;
  visibility: hidden;
  background-color: rgba(255, 0, 0, 0.5);
}

@keyframes error {
  from {
    border: 1px solid #dddddd;
  }
  to {
    border: 1px solid red;
  }
}

@-webkit-keyframes error {
  from {
    border: 1px solid #dddddd;
  }
  to {
    border: 1px solid red;
  }
}

input:not([type='submit']):not([type='image']).error,
textarea.error,
select.error {
  animation-name: error;
  animation-duration: 1.6s;
  animation-fill-mode: forwards;

  -webkit-animation-name: error;
  -webkit-animation-duration: 1.6s;
  -webkit-animation-fill-mode: forwards;
}

input[type='image'] {
  outline: none;
}

input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.login-error {
  font-size: 1.25em;
  margin: 20px;
}

.login-error span {
  font-size: 1.4em;
  color: red;
}

#trigger-wrapper {
  padding: 2% 0 0 2%;
}

/* BASE FONT SIZE IS 14.4px so 25rem is (14.4 * 25 = 360px) */
@media screen and (max-width: 900px) {
  body {
    font-size: 0.8rem;
  }
  .nav-icon {
    width: 2.55rem;
    height: 2.25rem;
    margin-top: 0.2%;
  }
  #login-form td {
    padding: 2.5%;
    font-size: 1.6rem;
  }
  #mp-menu {
    width: 250px;
  }
}

@media screen and (max-width: 540) {
  html {
    font-size: 0.6rem;
  }
  .nav-icon {
    width: 1.7rem;
    height: 1.5rem;
    margin-top: 0.3%;
  }
  #login-form td {
    padding: 2%;
    font-size: 1.4rem;
  }
  #mp-menu {
    width: 200px;
  }
}

@media screen and (max-width: 360px) {
  html {
    font-size: 0.4rem;
  }

  .nav-icon {
    width: 0.85rem;
    height: 0.75rem;
    margin-top: 0.4%;
  }
  #login-form td {
    padding: 1.5%;
    font-size: 1.2rem;
  }
  #mp-menu {
    width: 150px;
  }
}
.loading,
.loading:hover,
.loading:active,
.loading:focus,
.loading:visited {
  position: relative !important;
  opacity: 0.65;
}
.loading > .loader {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.loading > .loader > div {
  border: 0.2em solid #f3f3f3;
  border-top: 0.2em solid #3498db;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  width: 1.5em;
  height: 1.5em;
  animation: spin 2s linear infinite;
}
.loading.loading-lg > .loader > div {
  border-width: 0.4rem;
  width: 3.2rem;
  height: 3.2rem;
}

.loading > .loader-wrapper {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.loading > .loader-wrapper > .loader {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.loading > .loader-wrapper > .loader > div {
  border: 0.2em solid #f3f3f3;
  border-top: 0.2em solid #3498db;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  width: 1.6em;
  height: 1.6em;
  animation: spin 2s linear infinite;
}
.loading.loading-lg > .loader-wrapper > .loader > div {
  border-width: 0.4rem;
  width: 3.2rem;
  height: 3.2rem;
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes spin2 {
  0% {
    transform: rotate(0deg) translate(-50%, -50%);
  }
  100% {
    transform: rotate(360deg) translate(-50%, -50%);
  }
}
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
  height: 100vh;
  width: 100%;
  z-index: 3;
  display: none;
}
.overlay.fullscreen .content-wrapper {
  width: 100vw;
  height: 100vh;
  max-width: none;
  max-height: none;
  border-radius: unset;
  position: fixed;
  transform: initial;
  top: 0;
  left: 0;
  padding: 0;
}
.overlay .content-wrapper {
  position: absolute;
  top: 20%;
  left: 50%;
  background-color: #f7eddf;
  transform: translate(-50%, -20%);
  box-shadow: 0.04em 0.04em 0.2em black;
  padding: 1em 0.5em;
  text-align: center;
  max-height: 90%;
  max-width: 90%;
  overflow: auto;
  box-sizing: border-box;
  border-radius: 0.5em;
  opacity: 1;
}
.overlay .content-wrapper.loading {
  min-width: 50rem;
  min-height: 10rem;
  opacity: 1;
}
