/* Universal Styling */

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  font-family: "Space Mono", sans-serif, serif;
}

/* Colours */

:root {
  --primaryGreen: #26c0abff;
  --hoverGreen: rgb(86, 254, 232);
  --green900: #00494dff;
  --green500: #5e7a7dff;
  --green400: #7f9c9fff;
  --green200: #c5e4e7ff;
  --green50: #f4fafbff;
  --white: #fff;
  --formInputSize: 24px;
}

body {
  background-color: var(--green200);
}

fieldset {
  border: none;
}

.header {
  width: 100%;
  height: 10vh;
  display: flex;
  justify-content: center;
  margin: 1.5em 0;
}

.app-container {
  width: 100%;
  height: 85vh;
  background-color: var(--white);
  padding: 1.5em;
  border-top-left-radius: 2em;
  border-top-right-radius: 2em;
}

h1 {
  color: var(--green500);
  width: 3em;
  height: auto;
  font-size: 2em;
  word-wrap: break-word;
}

.label {
  color: var(--green500);
  font-weight: bold;
  margin-bottom: 1em;
}

.input-box,
.people-input {
  font-size: var(--formInputSize);
  padding: 0.2em 1em;
  text-align: end;
  border: none;
  background-color: var(--green50);
  font-weight: bold;
  color: var(--green900);
  border-radius: 0.2em;
  width: 100%;
  cursor: pointer;
}

.bill-input-container {
  position: relative;
  display: inline-block;
  margin-top: -0.5em;
  margin-bottom: 1em;
}

.dollar-icon {
  position: absolute;
  top: 1em;
  left: 1em;
}

.bill-form {
  display: grid;
  grid-template-rows: 1fr 1fr;
}

.btns-container {
  width: 100%;
  height: auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 1em;
  margin-bottom: 1em;
  color: var(--green900);
}

.btn {
  padding: 0.5em 1.2em;
  font-size: 1.5em;
  font-weight: bold;
  border-radius: 0.5em;
  border: none;
  cursor: pointer;
  outline: none;
}

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

.percent-active {
  background-color: var(--primaryGreen);
  color: #000;
}

.custom {
  color: var(--green500);
  background-color: var(--green50);
  border: none;
  text-align: center;
  font-weight: bold;
  border-radius: 0.5em;
  font-size: var(--formInputSize);
  width: 100%;
}

.custom::placeholder {
  font-size: 1.2em;
}

.people_validation {
  position: relative;
  margin-bottom: 1em;
}

.people-form {
  display: grid;
}

.people-input-container {
  position: relative;
  display: inline-block;
  margin-bottom: 1em;
}

.error-message {
  position: absolute;
  right: 0;
  top: 0;
  color: #ff8686ff;
  font-weight: bold;
  display: none;
}

.person-icon {
  position: absolute;
  top: 1em;
  left: 1em;
}

.total-container {
  background-color: var(--green900);
  padding: 1.5em;
  border-radius: 1em;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 3;
}

h3 {
  color: var(--white);
  margin: 0.3em;
}

.tip-amount-container {
  grid-column: 1;
  grid-row: 1;
}

.total-amount-container,
.tip-amount-container {
  margin-bottom: 1em;
}

.tip-amount-container p,
.total-amount-container p {
  color: var(--green500);
}

.tip-amount-data,
.total-amount-data {
  color: var(--primaryGreen);
  font-size: 2.5em;
}

.tip-amount-data {
  grid-column: 2;
  grid-row: 1;
  text-align: end;
}

.total-amount-container {
  grid-column: 1;
  grid-row: 2;
}

.total-amount-data {
  grid-template-columns: 2;
  grid-row: 2;
  text-align: end;
}

.reset-btn {
  grid-column: 1/4;
  grid-row: 3;
  background-color: var(--primaryGreen);
  border: none;
  outline: none;
  padding: 0.5em 1.2em;
  font-size: 1.5em;
  font-weight: bold;
  border-radius: 0.5em;
  cursor: pointer;
}

.reset-btn:hover {
  background-color: var(--hoverGreen);
}

/* Tablet View */

@media screen and (min-width: 51.25em) {
  body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .app-container {
    width: 80%;
    height: 80%;
    padding: 3em;
    border-bottom-left-radius: 2em;
    border-bottom-right-radius: 2em;
  }

  .btns-container {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(2, 1fr);
  }
}

/* Dekstop View */

@media screen and (min-width: 90em) {
  .header {
    margin: 5em 0;
  }

  .app-container {
    width: 65%;
    padding: 2em;
  }
  .content-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2em;
  }

  .total-amount-container {
    padding: 2em;
  }

  .reset-btn {
    height: 3em;
    align-self: center;
  }
}
