/* high-level */
.container {
  font-family: "Open Sans", Helvetica, Arial, sans-serif;

  max-width: 960px;
  margin-right: auto;
  margin-left: auto;
  padding: 20px 0px;

  background-color: rgba(32, 146, 25, 0.02);
}

.hwcontainer {
  background-color: rgba(32, 146, 35, 0.1);
}

h1 {
  font-size: 2em;
}

h2 {
  font-size: 1.5em;
  padding-bottom: 4px;
  border-bottom: 3px solid rgb(32, 146, 25);
}

p {
  line-height: 1.8em;

  margin-top: 1em;
  margin-bottom: 1em;
}

strong {
  font-weight: bold;
}

em {
  font-style: italic;
}

li {
  line-height: 1.8em;
}

ul li {
  list-style: square;
  margin: 1em 0 1em 1em;
}

ol li {
  list-style: decimal;
  margin: 1em 0 1em 1em;
}

blockquote {
  border-left: 4px solid rgb(32, 146, 25);
  padding: 1px 0px 1px 10px;
  background-color: rgba(32, 146, 25, 0.1);
}

pre {
  font-family: "Courier New", Courier, monospace;
  padding: 10px;
  background-color: rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}

pre code {
  background-color: transparent;
}

code {
  font-family: "Courier New", Courier, monospace;
  padding: 2px 4px;
  background-color: rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}

/* high-level boxes */
.container > * {
  margin: 20px 18px;
}

/* header */
header {
  text-align: center;
}

header h1 {
  margin-bottom: 10px;
}

/* sections */
section h2,
footer h2 {
  margin-bottom: 20px;
  padding-bottom: 4px;

  border-bottom: 3px solid rgb(32, 146, 25);
}

/* flexbox */
.announce-container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;

  padding: 15px;

  background-color: rgba(32, 146, 25, 0.1);

  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
}

.announce-container > div {
  margin: 5px 0px;
}

.announce-topic {
  font-size: 1.2em;

  text-align: left;

  -webkit-box-flex: 2;
  -webkit-flex: 2 1 auto;
      -ms-flex: 2 1 auto;
          flex: 2 1 auto;
}

.announce-date {
  text-align: right;

  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
}

.announce-content {
  line-height: 1.5em;
  text-align: left;

  -webkit-box-flex: 1;
  -webkit-flex: 1 0 100%;
      -ms-flex: 1 0 100%;
          flex: 1 0 100%;
}

/* tables */
table {
  margin: 30px auto 0px auto;
}

td,
th {
  padding: 12px 10px;

  text-align: center;
  vertical-align: middle;
}

td .resource,
th .resource {
  display: block;
  margin: 5px 0px;
}

thead {
  font-size: 1.15em;

  background-color: rgba(32, 146, 25, 0.50);
}

.lecture-row {
  background-color: rgba(32, 146, 25, 0.1);
}

.lecture-row > td:first-child {
  border-right: 3px solid rgba(32, 146, 25, 0.50);
}

.part-row {
  background-color: rgba(32, 146, 25, 0.2);
}
