html, body, div, footer {
  margin: 0;
  padding: 0;
}

#app {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  font-size: 22px;
  line-height: 32px;
  display: flex;
  flex-direction: column;
  height: 100vh;
}


#matrices {
  margin: auto;
  display: grid;

}

.dumbLayout {
  grid-template-rows: auto auto;
  grid-template-columns: auto auto;
  grid-template-areas:
  ". b"
  "a r";
}

.smartLayout {
  grid-template-rows: auto;
  grid-template-columns: auto auto auto auto auto;
  grid-template-areas:
  "a x b eq r"
}

.blue {
  font-weight: bold;
  color: #0f235a;
}

.orange {
  font-weight: bold;
  color: #c46f17;
}

.matrix {
  border-right: 3px solid #2c3e50;
  border-left: 3px solid #2c3e50;
}

.matrix, .sym {
  gap: 8px;
  display: grid;
  justify-items: center;
  align-items: center;
  padding: 0 6px;
  margin: 12px 12px;
}
.sym {
  margin: 0 36px;
}

#a {
  grid-area: a
}


#b {
  grid-area: b
}

#r {
  grid-area: r
}


.cell {
  font-size: 32px;
  margin: 8px;
}

input {
  width: 100px;
  font-size: 32px;
  text-align: center;
  border: 2px solid #e5e5e5;
  border-radius: 10px;
  background: white;
  color: #222;
  padding: 6px;
  outline: none;
}

.success {
  color: #58a700;
  background: #D7FFB8;
  border-color: #58a700;
}

.incorrect {
  animation: shake 0.2s;
  border-color: #ea2b2b;
  background: #FFDFE0;
  color: #ea2b2b;
}

@keyframes shake {
  10%, 90% {
    transform: translate3d(-1px, 0, 0);
  }

  20%, 80% {
    transform: translate3d(2px, 0, 0);
  }

  30%, 50%, 70% {
    transform: translate3d(-4px, 0, 0);
  }

  40%, 60% {
    transform: translate3d(4px, 0, 0);
  }
}

input:disabled {
  background: #4b6d76;
}

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
}

input:focus::placeholder {
  color: transparent;
}

.button-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-width: 350px;
  margin: 0 auto;
}

.button {
  min-width: 300px;
  border-radius: 16px;
  border: 2px solid #e5e5e5;
  border-bottom: 6px solid #e5e5e5;
  margin: 10px;
  transition: all 0.1s;
  padding: 12px 16px;
  text-align: center;
  font-size: 16px;
}

.secondaryWrapper {
  display: flex;
  justify-content: center
}

.secondary {
  font-size: 14px;
  color: gray;
  border: none;
  text-decoration: underline;
  background: none;
  cursor: pointer
}

.button:hover {
  background-color: #ddf4ff;
  border-color: #1cb0f6;
  cursor: pointer;
}

.button:active {
  border-bottom: 2px solid #1cb0f6;
}

.card {
  max-width: min(800px, 90%);
  display: flex;
  flex-direction: column;
  min-width: 150px;
  width: 100%;
  justify-content: center;
  text-align: initial;
  font-size: 19px;
  color: #3c3c3c;
  font: 500 17px/20px sans-serif;
  background-color: #f7f7f7;
  border: 2px solid #e5e5e5;
  border-radius: 10px;
  padding:10px 25px;
  line-height: 24px;
  margin: 12px auto;
}

#progressWrapper {
  margin: 16px auto;
  flex-grow: 0;
}

#progressWrapper, progress {
  /* Reset the default appearance */
  -webkit-appearance: none;
  appearance: none;
  width: min(800px, 90%);
}

.placeholder {
  flex-grow: 1;
}

progress {
  -webkit-appearance: none;
  appearance: none;
  height: 14px;
  border-radius: 6px;
  border: none;
}

progress::-webkit-progress-bar {
  -webkit-appearance: none;
  appearance: none;
  height: 14px;
  border-radius: 6px;
  border: none;
}
progress::-webkit-progress-value {
  -webkit-appearance: none;
  appearance: none;
  height: 14px;
  border-radius: 6px;
  border: none;
  background: #58cc02;
}
progress::-moz-progress-bar {
  -webkit-appearance: none;
  appearance: none;
  height: 14px;
  border-radius: 6px;
  background: #58cc02;
  border: none;
}

#banner {
  color: #58a700;
  background: #D7FFB8;
  padding: 32px;
}

#info {
  display: flex;
  justify-content: space-around;
  background: #F7F7F7;
  padding: 6px;
  border-top: 2px solid #e5e5e5;
}

#info * {
  font-size: 14px;
  color: gray;

}

.slide-fade-enter-active {
  transition: all .3s ease;
}
.slide-fade-leave-active {
  transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-enter, .slide-fade-leave-to
/* .slide-fade-leave-active for <2.1.8 */ {
  transform: translateX(10px);
  opacity: 0;
}
