html,
body {
  box-sizing: border-box;
  height: 100%;
}

body {
  display: flex;
  flex-direction: column;
}

#page {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  #content {
    display: flex;
    flex-direction: column;
    padding: 10px;
    box-shadow: none;
    background-color: white;
    margin: 0;

    .alert {
      word-wrap: break-word;
      white-space: normal;
      text-align: center;
      display: block;
      width: fit-content;
    }

    >.title {
      text-align: center;
      margin: 0;
    }

    >div,
    >form {
      box-sizing: border-box;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
      width: 100%;
      max-width: 500px;
      margin-top: 20px;

      >p,
      >div {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;
        margin: 0;

        >label {
          width: 100%;

          @media (min-width: 500px) {
            width: 300px;
          }
        }
      }

      >input,
      >p>input,
      >div>input {
        box-sizing: border-box;
        width: 100%;
        max-width: 500px;

        @media (min-width: 500px) {
          max-width: 300px;
        }
      }

      >.errorlist {
        color: red;
        text-align: center;
        margin: 10px 0 0 0;
        list-style-type: none;
      }

      >.required>.helptext {
        text-align: center;
        font-style: italic;
      }

      >.required:last-of-type {
        box-sizing: border-box;
        max-width: 300px;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-between;

        >label {
          width: 100%;
        }

        >img {
          width: 70px;
          object-fit: contain;
        }

        >input {
          width: 200px;
        }
      }
    }
  }
}