* {
  box-sizing: border-box;
}

main, header {
  max-width: 80%;
}

img {
  max-width: 250px;
}

a, a:visited {
  text-decoration: none;
}

legend {
  font-weight: bold;
}

header {
  margin: 0 auto;
  padding-top: 10px;

  text-align: center;
}

main {
  display: flex;
  align-items: center;
  flex-direction: column;

  margin: 0 auto;
}

section {
  width: 100%;
  min-height: 250px;
  margin: 15px 0;
  padding: 0 30px;

  border-radius: 15px;
}

form {
  display: flex;
  align-items: stretch;
  flex-direction: column;
}

form > div.row {
  display: flex;
  flex-wrap: wrap;

  margin: 15px 0;
}

fieldset {
  display: flex;
  flex-basis: 40%;
  flex-direction: column;

  margin: 5px;

  border: none;
}

input {
  margin: 0 0 0 8px;
}

.message {
  text-align: center;
}

.error {
  font-family: monospace;

  color: #ffe5e5;
}

h1, h2, h3, p {
  text-align: center;
}

input[type=submit] {
  width: 50%;
  margin: 0 auto;
  margin-top: 10px;
}

label {
  margin-bottom: 5px;

  white-space: nowrap;
}

section {
  width: 100%;
}

table {
  width: 100%;
  margin-bottom: 20px;
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

.username {
  min-width: 20px;
}

.hidden {
  display: none;
}

/* Tooltip */
.tooltip {
  position: relative;

  display: inline-block;

  border-bottom: 1px dotted white;
}

.tooltiptext {
  font-size: 12px;

  position: absolute;
  bottom: 125%;
  left: 50%;

  visibility: hidden;

  width: 120px;
  margin-left: -60px;
  padding: 5px;

  transition: opacity 0.3s;
  text-align: center;
  white-space: normal;

  opacity: 0;
  color: black;
  border: 1px solid black;
  border-radius: 6px;
  background: white;
}

.tooltip:hover .tooltiptext {
  visibility: visible;

  opacity: 1;
}

/* Loader */
.loader {
  font-size: 40px;

  position: relative;

  overflow: hidden;

  width: 1em;
  height: 1em;
  margin: 72px auto;

  -webkit-transform: translateZ(0);
      -ms-transform: translateZ(0);
          transform: translateZ(0);
  -webkit-animation: load6 1.7s infinite ease, round 1.7s infinite ease;
          animation: load6 1.7s infinite ease, round 1.7s infinite ease;
  text-indent: -9999em;

  color: #ffffff;
  border-radius: 50%;
}

@-webkit-keyframes load6 {
  0% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }

  5%,
  95% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }

  10%,
  59% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.087em -0.825em 0 -0.42em, -0.173em -0.812em 0 -0.44em, -0.256em -0.789em 0 -0.46em, -0.297em -0.775em 0 -0.477em;
  }

  20% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.338em -0.758em 0 -0.42em, -0.555em -0.617em 0 -0.44em, -0.671em -0.488em 0 -0.46em, -0.749em -0.34em 0 -0.477em;
  }

  38% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.377em -0.74em 0 -0.42em, -0.645em -0.522em 0 -0.44em, -0.775em -0.297em 0 -0.46em, -0.82em -0.09em 0 -0.477em;
  }

  100% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }
}

@keyframes load6 {
  0% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }

  5%,
  95% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }

  10%,
  59% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.087em -0.825em 0 -0.42em, -0.173em -0.812em 0 -0.44em, -0.256em -0.789em 0 -0.46em, -0.297em -0.775em 0 -0.477em;
  }

  20% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.338em -0.758em 0 -0.42em, -0.555em -0.617em 0 -0.44em, -0.671em -0.488em 0 -0.46em, -0.749em -0.34em 0 -0.477em;
  }

  38% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.377em -0.74em 0 -0.42em, -0.645em -0.522em 0 -0.44em, -0.775em -0.297em 0 -0.46em, -0.82em -0.09em 0 -0.477em;
  }

  100% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }
}

@-webkit-keyframes round {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes round {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@media only screen and (min-width: 700px) {
  header, main {
    width: 550px;
  }
}
