/* (A) WRAPPER */
#numWrap {
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.7);
  position: fixed;
  top: 0; left: 0;
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s;
}
#numWrap.open {
  opacity: 1;
  visibility: visible;
}

/* (B) NUMPAD */
#numPad {
  max-width: 800px;
  background: #eaeaea;
  margin: 50vh auto 0 auto;
  transform: translateY(-50%);
  padding: 30px;
}

/* (C) DISPLAY */
#numDisplay {
  box-sizing: border-box;
  width: 100%;
  padding-right: 50px;
  margin-bottom: 10px;
  background: #fff;
  border: 1px solid #c1c1c1;
  color: #000;
  font-size: 7vh;
  text-align: right;
}

#numDisplay:focus { outline: none; }
#numDisplay::selection { background: none; }

/* (D) BUTTONS WRAPPER */
#numBWrap {
  display: grid;
  grid-template-columns: auto auto auto auto;
  grid-gap: 5px;
}

/* (E) BUTTONS */
#numBWrap div {
  font-size: 6vw;
  color: #000;
  text-align: center;
  padding: 25px 0;
  border: 1px solid #c1c1c1;
}
#numBWrap div:hover { cursor: pointer; }
#numBWrap .num, #numBWrap .zero, #numBWrap .dot { background: #fff; touch-action: manipulation; }
#numBWrap .zero { grid-column: span 2; touch-action: manipulation; }
#numBWrap .del, #numBWrap .clr { background: #f9ffaa; touch-action: manipulation; }
#numBWrap .cx { background: #ff8f8f; touch-action: manipulation; }
#numBWrap .ok { background: #8fff98; touch-action: manipulation; }

/* No decimal points allowed */
#numBWrap.noDec .dot { display: none; }
#numBWrap.noDec .zero { grid-column: span 3; }
