body {
  width: 100vw;
  height: 100vh;
  display: grid;
  grid-template-rows: max-content max-content max-content 1fr;
}

#header {
  width: 100%;
  height: max-content;
  background-color: lightgray;
  display: grid;
  grid-template-columns: 1fr max-content max-content max-content 1fr;
  position: static;
  margin-bottom: 1em;
}

.cross {
  display: grid;
  grid-template-areas: "a1 . b1" ". c ." "a2 . b2";
  width: min-content;
  height: min-content;
}

.cross span {
  display: table-cell;
  vertical-align: bottom;
}

.cross div {
  grid-area: c;
  width: 1em;
  height: 1em;
  background: linear-gradient(to top left,
             rgba(0,0,0,0) 0%,
             rgba(0,0,0,0) calc(50% - 0.8px),
             rgba(0,0,0,1) 50%,
             rgba(0,0,0,0) calc(50% + 0.8px),
             rgba(0,0,0,0) 100%),
         linear-gradient(to top right,
             rgba(0,0,0,0) 0%,
             rgba(0,0,0,0) calc(50% - 0.8px),
             rgba(0,0,0,1) 50%,
             rgba(0,0,0,0) calc(50% + 0.8px),
             rgba(0,0,0,0) 100%);
}

#numbers {
  margin-bottom: 1em;
}

#facdispaly > * {
  margin-top: 0.5em;
}

.center {
  width: 100%;
  height: min-content;
  align-items: center;
  justify-items: center;
  display: grid;
}

#keypad {
  height: max-content;
  display: grid;
  width: 100%;
  margin: 0 auto;
}

td {
  padding: 0.1em;
}

.hat::after {
  content: '^';
  position: relative;
  right: 0.5em;
  bottom: 0.5em;
  width: 0px;
  display: inline-block;
}

.hat {
  line-height: 1.75em;
}

@media screen and (max-width: 768px) {
  #header {
    grid-template-columns: 0fr 1fr 1fr max-content 0fr;
  }
  
  * {
    font-size: larger;
  }
}
