:root{
  --table_col_num: 5;
  --table_cell_size: 3cm;
  --table_cell_gap: 10px;
  --footer_height: 9em;
}

@font-face{
  font-family: "SourceSans Pro";
  src: url(SourceSansPro-Regular.otf) format("opentype");
}

body{
  margin: 0;
  padding: 0;
  height: 100%;
  font-family: "SourceSans Pro", sans-serif;
}

#container{
  min-height:100%;
  position: relative;
}

#body{
  padding: 10px;
  padding-bottom: var(--footer_height);
}

#footer{
  position: absolute;
  bottom: 0;
  width: 100%;
  height: var(--footer_height);
  text-align: center;
}

.table{
  display: grid;
  padding-top: var(--table_cell_gap);
  margin: auto;
  max-width: calc(var(--table_col_num) * (var(--table_cell_size) + var(--table_cell_gap)));
  grid-template-columns: repeat(auto-fill, minmax(var(--table_cell_size), auto));
  grid-auto-rows: minmax(var(--table_cell_size), auto);
  grid-gap: var(--table_cell_gap);  
}

.legend{
  display: grid;
  padding-top: var(--table_cell_gap);
  margin: auto;
  max-width: calc(3 * (var(--table_cell_size) + var(--table_cell_gap)));
  grid-template-columns: repeat(auto-fill, minmax(var(--table_cell_size), auto));
  grid-auto-rows: minmax(var(--table_cell_size), auto);
  grid-gap: var(--table_cell_gap);  
}

.tableCell{
  padding: 40% 0;
  text-align: center;
  border-radius: 10px;
}

.isFree{
  background-color: #8ef761;
}

.inUse{
  background-color: #f76262;
}

.noData{
  background-color: #DCDCDC;
}
