* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.flex-container {
  display: flex;
  flex-direction: column;
}

:root {
  --green400: hsl(172, 67%, 45%);
  --green900: hsl(183, 100%, 15%);
  --grey500: hsl(186, 14%, 43%);
  --grey400: hsl(184, 14%, 56%);
  --grey200: hsl(185, 41%, 84%);
  --grey50: hsl(189, 47%, 97%);
  --white: hsl(0, 100%, 100%);
  --red: hsl(6.38, 72.73%, 56.86%);
}

body {
  height: 100vh;
  width: 23.438rem;
  background-color: hsl(185, 41%, 84%);
  font-family: "Space Mono", monospace;
  font-size: 1.5rem;
  font-weight: normal;
  margin: auto;
  width: 23.438rem;
}

main {
  background-color: var(--white);
  border-radius: 1rem 1rem 0 0;
  flex-direction: row;
  padding: 1.5rem;
}

#calculator {
  gap: 1.5rem;
}

#input-container {
  gap: 2rem;
  padding: 0.5rem;
}

h1 {
  justify-self: center;
  margin: 3rem;
}

.label-row {
  align-items: center;
  flex-direction: row;
  justify-content: space-between;
}

.label-heading {
  color: var(--grey500);
  font-size: 1rem;
}

.error-message {
  color: var(--red);
  font-size: 0.875rem;
}

.section {
  gap: 0.5rem;
}

.btn, input {
  border: none;
  border-radius: 0.25rem;
  font-family: inherit;
  font-size: inherit;
  height: 3rem;
  width: 100%;
}

input {
  border: none;
  background-color: var(--grey50);
  caret-color: var(--green400);
  color: var(--green900);
  padding: 0 1rem;
  text-align: right;
}

.input-field {
  display: inline-block;
  position: relative;
  width: 100%;
}

.input-field svg {
  left: 1.5rem;
  pointer-events: none;
  position: absolute;
  top: 30%;
  transform: translate(-50%);
}

input:focus, input.focus {
  outline: 0.15rem solid var(--green400);
}

input:out-of-range {
  outline: 0.15rem solid var(--red);
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

#grid-selection {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  padding: 0.25rem 0;
}

.btn {
  background-color: var(--green900);
  color: var(--white);
}

.reset, .btn.active, .reset:active {
  background-color: var(--green400);
  color: var(--green900);
}

.reset {
  font-size: 1.125rem;
  padding: 0.5rem;
  text-transform: uppercase;
  width: 100%;
}

#output-container {
  background-color: var(--green900);
  border-radius: 1rem;
  font-size: 2rem;
  gap: 2rem;
  padding: 2rem 1.5rem 1.5rem;
}

#output-text {
  color: var(--green400);
  gap: 1rem;
}

#output-container label {
  color: var(--white);
  font-size: 0.938rem;
}

#output-text div {
  align-items: center;
  flex-direction: row;
  justify-content: space-between;
}

#output-text span {
  color: var(--grey400);
  font-size: 0.75rem;
}

#output-text output::before {
  content: "$";
}

@media screen and (min-width: 48rem) {
  body {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: auto;
  }
  main {
    border-radius: 1rem;
    padding: 2rem 1.8rem 2rem 3rem;
    width: 57.5rem;
  }
  #calculator {
    display: flex;
    flex-direction: row;
    gap: 3rem;
  }
  h1 {
    margin: 1rem 2rem 3rem;
  }
  #input-container {
    gap: 2.5rem;
    padding: 0.75rem 0;
    width: 48%;
  }
  #custom::placeholder {
    font-size: 1.125rem;
    text-align: center;
  }
  #output-container {
    font-size: 2.5rem;
    justify-content: space-between;
    padding: 3rem 2.5rem 2.5rem;
    width: 52%;
  }
  #output-text {
    padding: 0;
  }
  input:hover {
    outline: 0.15rem solid var(--green400);
  }
  #grid-selection {
    grid-template-columns: repeat(3, 1fr);
  }
  .btn, input {
    cursor: pointer;
  }
  .btn:hover {
    background-color: var(--grey200);
    color: var(--green900);
  }
}

/*# sourceMappingURL=styles.css.map */
