html {
  font-size: 20px;
  background-color: white;
}
body {
  font-family: "Courier New", Courier, monospace;
  max-width: 600px;
  margin: auto;
  margin-top: 8px;
  position: relative;
  overflow: hidden;
}
input {
  font-size: 20px;
  font-family: "Courier New", Courier, monospace;
  font-weight: bold;
  text-align: center;
}
table {
  font-size: 1em;
}
.fixed {
  height: 88%;
  display: flex;
  flex-direction: column;
}
.fixed-mid {
  min-height: 60%;
  max-height: 95%;
  display: flex;
  flex-direction: column;
}
.dialog {
  position: absolute;
  margin: auto;
  border: 2px solid black;
  border-radius: 10px;
  background-color: white;
  width: 90%;
  max-height: 95%;
  padding: 10px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 8;
  overflow: auto;
}
.dialog-img {
  max-width: 80%;
}
.button-row {
  width: fit-content;
  margin: auto;
}
.fullscreen {
  left: 0px;
  top: 0px;
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: white;
  overflow: auto;
  z-index: 7;
}
#daily {
  z-index: 9;
}
#scores-dialog {
  z-index: 9;
}
#scores-div {
  flex: 1;
  margin-bottom: 10px;
  overflow: auto;
}
#scores-list {
  width: calc(100% - 15px);
  margin: 5px 0px 5px 5px;
  white-space: nowrap;
  text-align: center;
}
#scroll-div {
  margin-left: 8px;
  margin-right: 8px;
}
#content-div {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
}
.fixed-height {
  flex: 0 0 auto;
}
.flex-height {
  flex: 1 1 auto;
}
#main {
  margin: 5px;
}
#table {
  font-size: 2em;
  font-weight: bold;
  border-spacing: 0px;
  border: 1px solid;
  margin: 0px auto;
  position: relative;
  overflow: hidden;
}
#restart {
  margin-top: 15px;
}
#app-toast {
  position: absolute;
  bottom: -90px;
  background-color: white;
  border: 2px solid;
  border-radius: 10px;
  z-index: 10;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  padding: 5px 40px 10px 15px;
  transition: 1s;
}
#app-toast > * {
  vertical-align: middle;
  margin-right: -10px;
}
:root {
  --cell-corner: calc(min(15vw, 2em) * 0.2);
  --slider-width: 45px;
  --slider-height: 25.5px;
}
.octagon {
  border: none;
  clip-path: polygon(
    var(--cell-corner) 0%,
    calc(100% - var(--cell-corner)) 0%,
    100% var(--cell-corner),
    100% calc(100% - var(--cell-corner)),
    calc(100% - var(--cell-corner)) 100%,
    var(--cell-corner) 100%,
    0% calc(100% - var(--cell-corner)),
    0% var(--cell-corner)
  );
}
.octagon-inner {
  top: 1px;
  left: 1px;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
}
.full {
  top: 1px;
  left: 1px;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
}
.cell-txt {
  position: relative;
  text-align: center;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
}
.cell {
  position: relative;
  background-color: lightgray;
  z-index: 2;
}
.cell-bg {
  user-select: none;
  position: relative;
  background-color: black;
  margin: 0px;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.cell-root {
  position: relative;
  width: min(15vw, 2em);
  height: 8vh;
}
.connector {
  position: absolute;
  transform: rotate(45deg);
  border: 1px solid black;
  width: calc(var(--cell-corner) / sin(45deg));
  height: calc(var(--cell-corner) / sin(45deg));
  top: calc(calc(var(--cell-corner) / sin(45deg)) / -2);
  right: calc(calc(var(--cell-corner) / sin(45deg)) / -2 - 0.5px);
  z-index: 0;
}
.button {
  border: 2px solid black;
  border-radius: 10px;
  width: fit-content;
  margin: 5px;
  padding: 5px 10px;
  cursor: pointer;
  color: black;
}
.button:disabled {
  color: lightgray;
  border-color: lightgray;
}
.tab {
  display: flex;
  overflow: auto;
  background-color: #f0f0f0;
  width: 100%;
  margin-bottom: 10px;
}
.tab button {
  flex: 1 0 28%;
  background-color: inherit;
  font-size: inherit;
  font-weight: inherit;
  border: none;
  outline: none;
  padding: 5px;
  cursor: pointer;
  color: black;
}
.tab button.active {
  background-color: lightgray;
}
.empty {
  background-color: white;
}
.maybe {
  background-color: yellow;
}
.success {
  background-color: green;
}
.wrong {
  background-color: red;
}
.center {
  text-align: center;
}
.point {
  font-size: 0.5em;
}
.title {
  font-size: 1.5em;
  font-weight: bold;
  margin-right: min(40px, max(0px, calc(40 * (33px - 10%))));
}
.home-title {
  margin: 8px auto;
  font-size: 1.5em;
  font-weight: bold;
}
.home-text {
  max-width: 380px;
  width: 80%;
  margin: 20px auto 10px auto;
  font-size: 1em;
}
.home-button {
  border: 2px solid black;
  border-radius: 10px;
  max-width: 300px;
  width: 80%;
  display: block;
  margin: 10px auto;
  padding: 5px;
  cursor: pointer;
  color: black;
}
.home-table {
  width: 90%;
  max-width: 380px;
  margin: 20px auto 30px auto;
}
.home-footer {
  width: fit-content;
  margin: 20px auto 0px auto;
}
.fixed-button {
  border: 2px solid black;
  border-radius: 10px;
  width: 150px;
  margin: 5px;
  padding: 5px;
  cursor: pointer;
  color: black;
}
#confirm-text {
  margin: 20px;
}
.block {
  display: block;
}
.scroll {
  overflow: auto;
}
.scroll-80 {
  overflow: auto;
  max-height: 78vh;
}
.big-text {
  font-size: 1.4em;
  font-weight: bold;
}
.text {
  font-size: 1.1em;
  font-weight: bold;
}
.small-text {
  font-size: 1em;
}
.tiny-text {
  font-size: 0.8em;
}
.bold-text {
  font-weight: bold;
}
.invalid {
  color: red;
}
.right {
  text-align: right;
}
.full-width {
  width: 100%;
}
.icon {
  width: 1.5em;
  height: 1.5em;
}
.home-icon {
  width: 2em;
  height: 2em;
  padding: 10px;
}
.disabled {
  color: lightgray;
}
.hidden {
  display: none;
}
.invisible {
  visibility: hidden;
}

#ham-menu {
  position: absolute;
  float: right;
  right: 0px;
  top: -8px;
  width: 210px;
  border: 2px solid black;
  background-color: white;
  z-index: 4;
}
#ham-menu {
  font-size: 1.2em;
  font-weight: bold;
}
#ham-list {
  list-style-type: none;
  padding-top: 15px;
  margin-top: 20px;
  padding-left: 15px;
}
#ham-list > li {
  margin-top: 15px;
  cursor: pointer;
}
#history-list {
  list-style-type: disc;
  margin: 0px;
}
#daily-list {
  width: 100%;
  border-collapse: collapse;
  white-space: nowrap;
}
#daily-list th {
  border-bottom: 1px solid #555;
}

.help-list {
  padding-left: 15px;
}

/* Slider Toggle Switch */
.switch {
  position: relative;
  width: var(--slider-width);
  height: var(--slider-height);
  vertical-align: middle;
  float: right;
  margin-right: 15px;
}
/* Hide default HTML checkbox */
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}
/* The slider */
.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: lightgray;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}
.slider:before {
  position: absolute;
  content: "";
  height: calc(var(--slider-height) * 0.75);
  width: calc(var(--slider-height) * 0.75);
  left: calc(var(--slider-height) * 0.125);
  bottom: calc(var(--slider-height) * 0.125);
  background-color: white;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}
input:checked + .slider {
  background-color: green;
}
input:checked + .slider:before {
  -webkit-transform: translateX(calc(var(--slider-height) * 0.75));
  -ms-transform: translateX(calc(var(--slider-height) * 0.75));
  transform: translateX(calc(var(--slider-height) * 0.75));
}
/* Rounded sliders */
.slider.round {
  border-radius: var(--slider-height);
}
.slider.round:before {
  border-radius: 50%;
}

.hamburger .line,
.close .line {
  width: 25px;
  height: 3px;
  background-color: darkgray;
  display: block;
  margin: 4px auto;
  -webkit-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
.hamburger:hover {
  cursor: pointer;
}
#hamburger-1 {
  position: absolute;
  right: 20px;
  float: right;
  user-select: none;
  z-index: 5;
}
#hamburger-1.is-active .line:nth-child(2) {
  opacity: 0;
}
#hamburger-1.is-active .line:nth-child(1) {
  -webkit-transform: translateY(7px) rotate(45deg);
  -ms-transform: translateY(7px) rotate(45deg);
  -o-transform: translateY(7px) rotate(45deg);
  transform: translateY(7px) rotate(45deg);
}
#hamburger-1.is-active .line:nth-child(3) {
  -webkit-transform: translateY(-7px) rotate(-45deg);
  -ms-transform: translateY(-7px) rotate(-45deg);
  -o-transform: translateY(-7px) rotate(-45deg);
  transform: translateY(-7px) rotate(-45deg);
}

.close:hover {
  cursor: pointer;
}
.close {
  position: absolute;
  right: 20px;
  user-select: none;
  z-index: 6;
}
.close .line:nth-child(2) {
  opacity: 0;
}
.close .line:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.close .line:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.shake {
  /* Start the shake animation and make the animation last for 0.5 seconds */
  animation: shake 0.75s;

  /* When the animation is finished, start again */
  animation-iteration-count: infinite;
}

@keyframes shake {
  0% {
    transform: translate(1px, 1px) rotate(0deg);
  }
  10% {
    transform: translate(-1px, -2px) rotate(-1deg);
  }
  20% {
    transform: translate(-2px, 0px) rotate(1deg);
  }
  30% {
    transform: translate(2px, 2px) rotate(0deg);
  }
  40% {
    transform: translate(1px, -1px) rotate(1deg);
  }
  50% {
    transform: translate(-1px, 2px) rotate(-1deg);
  }
  60% {
    transform: translate(-2px, 1px) rotate(0deg);
  }
  70% {
    transform: translate(2px, 1px) rotate(-1deg);
  }
  80% {
    transform: translate(-1px, -1px) rotate(1deg);
  }
  90% {
    transform: translate(1px, 2px) rotate(0deg);
  }
  100% {
    transform: translate(1px, -2px) rotate(-1deg);
  }
}
