table.year {
  margin: 0.5em;
  max-width: 960px;
  table-layout: fixed;
}

table.year > th, td {
  min-width: 36px;
}

table.month {
  margin: 0.25em;
  border-collapse: collapse;
}

td.date {
  border: solid thin;
  text-align: center;
}

td.date:hover {
  background-color: rgba(173, 216, 230, 0.75);
}

td.date > a {
  color: black;
  text-decoration: none;
  display: block;
  width: 100%;
}

.today {
  border: solid 2px;
}

.date.today {
  border: solid 2px;
}

.weekend-off {
  background-color: rgba(205, 205, 205, 0.55);
}

.vacation {
  background-color: rgba(135, 206, 250, 0.75);
}

.holiday {
  background-color: rgba(255, 204, 203);
}

.vacation.holiday {
  background: linear-gradient(
    135deg,
    rgba(255, 204, 203) 20%,
    rgba(135, 206, 250, 0.75) 20% 40%,
    rgba(255, 204, 203) 40% 60%,
    rgba(135, 206, 250, 0.75) 60% 80%,
    rgba(255, 204, 203) 80%
  );
}

.vacation.weekend-off {
  background: linear-gradient(
    135deg,
    rgba(205, 205, 205, 0.55) 20%,
    rgba(135, 206, 250, 0.75) 20% 40%,
    rgba(205, 205, 205, 0.55) 40% 60%,
    rgba(135, 206, 250, 0.75) 60% 80%,
    rgba(205, 205, 205, 0.55) 80%
  );
}

.holiday.weekend-off {
  background: linear-gradient(
    135deg,
    rgba(205, 205, 205, 0.55) 20%,
    rgba(255, 204, 203) 20% 40%,
    rgba(205, 205, 205, 0.55) 40% 60%,
    rgba(255, 204, 203) 60% 80%,
    rgba(205, 205, 205, 0.55) 80%
  );
}

.holiday.vacation.weekend-off {
  background: linear-gradient(
    135deg,
    rgba(205, 205, 205, 0.55) 20%,
    rgba(255, 204, 203) 20% 40%,
    rgba(205, 205, 205, 0.55) 40% 60%,
    rgba(135, 206, 250, 0.75) 60% 80%,
    rgba(205, 205, 205, 0.55) 80%
  );
}

#keeping-track, #summary {
  border: solid thin;
}

#keeping-track > p, #summary > p, #summary > form {
  margin: 1em;
}
