* {
  margin: 0;
  padding: 0;
}

body {
  font-size: 1.3em;
}

.hidden {
  display: none;
}

table.legend {
  margin-left: auto;
  border-collapse: collapse;
  table-layout: fixed;
}

table.legend td {
  border: 1px solid black;
}

table.food {
  margin: 0 auto;
  border-collapse: collapse;
  overflow: hidden;
  table-layout: fixed;
}

table.food tr:hover {
  background-color: hsla(0, 0%, 0%, 0.2);
}

table.food td, table.food th {
  position: relative;
  border: 1px solid white;
}

/* https://css-tricks.com/simple-css-row-column-highlighting/ */
table.food td:hover::after,
table.food th:hover::after {
  content: "";
  position: absolute;
  background-color: hsla(0, 0%, 0%, 0.2);
  left: 0;
  top: -5000px;
  height: 10000px;
  width: 100%;
  z-index: -1;
}

table.food td:focus::after,
table.food th:focus::after {
  content: "";
  position: absolute;
  background-color: hsla(0, 0%, 0%, 0.2);
  left: 0;
  top: -5000px;
  height: 10000px;
  width: 100%;
  z-index: -1;
}

table.food td:focus::before {
  content: "";
  position: absolute;
  background-color: hsla(0, 0%, 0%, 0.2);
  left: -5000px;
  top: 0;
  height: 100%;
  width: 10000px;
  z-index: -1;
}

th.availability,
td.availability {
  width: 1em;
  height: 1em;
}

td.availability.storage {
  background-color: hsla(125, 69%, 42%, 0.3);
}

td.availability.storage.current-month {
  background-color: hsla(30, 100%, 50%, 0.3);
}

td.availability.fresh {
  background-color: hsla(125, 69%, 42%, 0.6);
}

td.availability.fresh.current-month {
  background-color: hsla(30, 100%, 50%, 0.6);
}

th.availability.current-month {
  background-color: hsla(30, 100%, 50%, 0.6);
}

@media (max-width: 600px) {
  body {
    font-size: initial;
  }

  table.food {
    width: 100%;
  }
}
