body {
  font-family: sans-serif;
  line-height: 1.6;
  max-width: 800px;
  margin: 40px auto;
  padding: 0 20px;
  color: #333;
}

table { border-collapse: collapse; width: 100%; margin: 20px 0; }
th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
th { background-color: #f4f4f4; }
th:first-child, td:first-child { width: 8em; text-align: center !important; }
h1 { text-align: center; }

div.alert.alert-danger {
  padding: 0.5em;
  border: 1px red solid;
  border-radius: 8px;
  background-color: #ffcccc;
  color: #ff1111;
  font-weight: bold;
}

textarea { width: 100%; }
table.meta { font-size: small; }

.logo { max-width: 33vw; }

h1 { text-align: left !important; }

dl {
  dt {
    font-weight: bold;
    font-size: 1.2em;
    margin-top: 1em;
  }
  dd {
    margin-left: 1em;
    p {
      margin: 0;
      padding: 0;
    }
  }
}

body > ul > li {
  margin-top: 0.5rem;
}

.notice {
  border: 1px solid red;
  border-radius: 8px;
  padding: 0 1rem;
  ul {
    margin-left: 1rem;
  }
  background-color: #fee;
}

.status {
  text-align: right;
  font-size: small;
  font-style: italic;
}

.status.finished {
  color: gray;
}

.status.on-going {
  color: green;
}

.note {
  font-size: small;
  font-style: italic;
  color: #333;
}

.domain {
  display: inline;
  font-weight: bold;
  font-size: small;
  color: #666;
}

@media screen and (width < 640px) {
  .logo { max-width: 80vw; max-height: 15vh; }
  article { margin: 1rem 1rem; }
}

@media screen and (width >= 640px) {
  .logo { max-width: 50vw; max-height: 15vh; }
  article { margin: 1rem 2rem; }
}

@media screen and (width >= 900px) {
  .logo { max-height: 10vh; }
  article { margin: 1rem 10vw; }
}

@media screen and (width >= 1200px) {
  .logo { max-height: 10vh; }
  article { margin: 1rem 25vw; }
}
