* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family:
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    Oxygen,
    Ubuntu,
    Cantarell,
    "Open Sans",
    "Helvetica Neue",
    sans-serif;
}

button {
  width: 50px;
  height: 50px;
  font-size: 22px;
  border: 0;
  border-radius: 10px;
  font-weight: bold;
}

.calculator {
  display: flex;
  flex-flow: column nowrap;
  gap: 8px;
  width: 400px;
  height: 500px;
  border: 2px solid #3b3b3b;
  padding: 12px;
  background-color: #181818;
  border-radius: 10px;
}

.display {
  border: 2px solid #3b3b3b;
  padding: 6px;
  font-size: 24px;
  background-color: #00d100;
  border-radius: 10px;
  height: 49px;
}

.main {
  height: 90%;
  border: 2px solid #3b3b3b;
  border-radius: 10px;
}

.content {
  height: 85%;
  display: flex;
  border-bottom: 2px solid #3b3b3b;
}

.left-container {
  display: flex;
  flex-flow: column wrap;
  width: 50%;
  border-right: 2px solid #3b3b3b;
  padding: 8px;
}

.numbers {
  width: 100%;
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-end;
  height: 80%;
  gap: 8px;
}

.numbers * {
  flex: auto;
  height: calc(100% / 4);
  background-color: gray;
  color: white;
}

.misc {
  display: flex;
  width: 100%;
  height: 20%;
  gap: 8px;
}

.misc * {
  flex: auto;
  height: 100%;
  background-color: gray;
  color: white;
}

.right-container {
  width: 50%;
  display: flex;
  flex-flow: row wrap;
  gap: 8px;
  padding: 8px;
  align-items: center;
}

.operators {
  display: flex;
  flex-flow: column nowrap;
  width: 100%;
  height: 80%;
  gap: 8px;
}

.operators * {
  flex: auto;
  width: 100%;
  background-color: #2e2eff;
  color: white;
}

.equal {
  display: flex;
  width: 100%;
  flex: 2;
}

.equal * {
  height: 100%;
  flex: auto;
  border: 0;
  background-color: #00d100;
  color: white;
}

.equal *,
.operators * {
  font-size: 32px;
}

.footer {
  display: flex;
  height: 15%;
  padding: 8px;
  gap: 8px;
}

.footer * {
  flex: auto;
  height: 100%;
  background-color: #ff5d00;
  color: white;
}

.disabled {
  background-color: #2b2525;
  border: 1px solid white;
}

.invert-operator {
  background-color: white;
  color: #2e2eff;
}

.invert-equal {
  background-color: white;
  color: #00d100;
}

.invert-clear {
  background-color: white;
  color: #ff5d00;
}

.invert-number {
  background-color: white;
  color: gray;
}
