/*
  =================
  Table of Contents
  =================

  1. Global Styles
  2. Fonts and Colors
  3. Components
    3.1 Nav-bar
    3.2 Forms
    3.3 Buttons
  4. Pages
    4.1 Home
    4.2 Calculator
    4.3 Progress
    4.4 Practice Settings
    4.5 Practice
  5. Hidden
*/

/* ================
   1. Global Styles
   ================ */

body {
  background-color: #ededed;
  font-family: 'Righteous', cursive;
  color: rgb(22, 20, 20);
}

header {
  background-color: #0067c6;
  display: flex;
  height: 50px;
  width: 100%;
}

h1 {
  margin: 0;
  padding: 0.625rem;
}

/* ===================
   2. Fonts and Colors
   =================== */

.font-size {
  font-size: 1rem;
}

.white-text {
  color: #ededed;
}

.grey-text {
  color: #2f2f2f;
}

.red-text {
  color: #d10000;
}

.green-text {
  color: #007120;
}

.blue-text {
  color: #0067c6;
}

.green-border {
  border-color: #007120;
}

.red-border {
  border-color: #d10000;
}

/* =============
   3. Components
   ============= */

button {
  transition: box-shadow 0.3s;
}

a {
  text-decoration: none;
}

button,
input,
select,
textarea {
  font-family: inherit;
}

button,
a,
select,
label,
i.view-changer {
  cursor: pointer;
}

header a:hover,
header i:hover {
  color: #b2cce4;
  transition: color 0.3s;
}

button:hover {
  box-shadow:
    1px 2px rgba(0, 0, 0, 0.07),
    0 2px 4px rgba(0, 0, 0, 0.07),
    0 4px 8px rgba(0, 0, 0, 0.07),
    0 8px 16px rgba(0, 0, 0, 0.07),
    0 16px 32px rgba(0, 0, 0, 0.07),
    0 32px 64px rgba(0, 0, 0, 0.07);
}

/* ===========
   3.1 Nav-bar
   =========== */

div.menu-icon i,
div.nav-bar-menu-icon i {
  font-size: 1.875rem;
}

.hamburger-menu {
  display: flex;
  flex-wrap: wrap;
  position: absolute;
  right: 0;
  top: 0;
  width: 9.375rem;
  aspect-ratio: 1 / 1;
  background-color: white;
  border-radius: 0.3rem;
  border: #0067c6 0.125rem solid;
}

.hamburger-icon {
  width: 100%;
  display: flex;
  align-items: center;
}

div.menu {
  width: 100%;
}

div.menu-icon {
  display: flex;
  align-items: center;
  text-align: right;
  width: 100%;
  height: 45px;
  padding: 0 1.375rem;
}

button.menu {
  width: 100%;
  height: 100%;
  text-align: center;
  border-top: #0067c6 0.125rem solid;
  border-bottom: none;
  border-left: none;
  border-right: none;
  background-color: white;
  color: #2f2f2f;
  transition: color 0.3s, background-color 0.3s;
  outline: none;
}

div.logo {
  width: fit-content;
}

div.logo > a {
  position: relative;
}

.wizard-logo {
  position: absolute;
  line-height: 1rem;
}

/* =========
   3.2 Forms
   ========= */

label {
  margin-left: 0.313rem;
}

select,
input,
.result-window {
  border: #0067c6 0.125rem solid;
  border-radius: 0.313rem;
  margin-top: 0.125rem;
}

input:focus,
select:focus {
  outline: #0067c6;
}

input::placeholder {
  color: #2f2f2f;
}

div.form-option {
  margin: 0.625rem 0;
}

textarea {
  width: 100%;
  height: 100%;
  background-color: white;
  resize: none;
}

textarea:focus {
  outline: none;
}

/* ===========
   3.3 Buttons
   =========== */

.button {
  background-color: #0067c6;
  border: #0067c6 0.125rem solid;
  border-radius: 0.625rem;
  padding: 0.313rem 1.563rem;
  margin: 0.938rem 0;
}

div.button-container {
  text-align: right;
}

#try-again-button {
  background-color: #d10000;
  border-color: #d10000;
}

/* ========
   4. Pages
   ======== */

/* ========
   4.1 Home
   ======== */

.home-page-title {
  text-align: center;
  border-radius: 0.313rem;
  width: 100%;
}

.home-page-text {
  text-align: center;
  max-width: 19rem;
}

div.home-page button {
  width: 14rem;
  background-color: white;
  aspect-ratio: 1 / 1;
  border: #0067c6 medium solid;
  border-radius: 0.625rem;
  margin: 1.25rem;
  outline: none;
  cursor: pointer;
  color: #0067c6;
  transition: color 0.3s, background-color 0.3s;
}

button > h1 {
  padding-top: 0;
}

div.home-page i.view-changer {
  color: inherit;
  font-size: 125px;
}

div.home-page-divider {
  max-width: 300px;
  height: 0.625rem;
  background-color: #404040;
  border-radius: 0.625rem;
}

div.home-page button:hover,
button.menu:hover {
  background-color: #0067c6;
  color: white;
}

/* ==============
   4.2 Calculator
   ============== */

div.result-window {
  width: 100%;
  height: 100px;
  background-color: white;
}

div.result > div {
  max-width: 700px;
}

p.result-text {
  margin: 0.125rem;
  padding: 0 0.125rem;
}

/* ============
   4.3 Progress
   ============ */

.progress-view {
  text-align: center;
}

.progress-grid {
  display: flex;
  flex-wrap: wrap;
}

.progress-tile {
  padding: 0.625rem;
  width: 140px;
  border-radius: 0.625rem;
  border: 0.125rem black solid;
  box-shadow:
    0 0.063rem 0.063rem rgba(0, 0, 0, 0.25),
    0 0.125rem 0.125rem rgba(0, 0, 0, 0.2),
    0 0.25rem 0.25rem rgba(0, 0, 0, 0.15),
    0 0.25rem 0.25rem rgba(0, 0, 0, 0.1),
    0 1rem 1rem rgba(0, 0, 0, 0.05);
}

div.progress-grid > div {
  display: flex;
  justify-content: center;
  margin: 1.25rem 0;
}

.A {
  background-color: #43aa8b;
}

.B {
  background-color: #90be6d;
}

.C {
  background-color: #f9c74f;
}

.D {
  background-color: #f3722c;
}

.F {
  background-color: #f94144;
}

.no-attempt {
  background-color: lightgrey;
}

/* =====================
   4.4 Practice Settings
   ===================== */

div.practice-settings-title {
  text-align: center;
}

#practice-settings {
  margin-top: 2.5rem;
}

#practice-settings input {
  width: 1.25rem;
}

div.practice-settings-options {
  display: flex;
  flex-wrap: wrap;
}

div.practice-setting-option {
  margin-bottom: 1.25rem;
  justify-content: center;
}

div.derivative-settings-example {
  text-align: center;
  margin-right: 0.625rem;
}

div.derivative-settings-example h3 {
  margin: 0;
}

div.derivative-settings-example h3:last-child {
  border-top: black 0.188rem solid;
}

i.fa-arrow-right {
  margin: 0 0.625rem;
}

div.practice-setting-button {
  text-align: center;
}

div.practice-settings-error {
  text-align: center;
  padding-bottom: 1.25rem;
}

/* ============
   4.5 Practice
   ============ */

div.practice-title,
div.practice-problem-statement {
  text-align: center;
  margin-bottom: 2.5rem;
}

div.practice p {
  margin: 0;
}

.problem {
  display: flex;
  flex-wrap: wrap;
  margin: 1.25rem auto;
  width: fit-content;
  justify-content: center;
  min-height: 83px;
}

div.problem h2 {
  padding: 0;
  margin: 0 auto;
}

div.integral-sign {
  left: -3.75rem;
  align-self: center;
}

h2.integral {
  font-size: 3.75rem;
}

div.plus,
div.parenthesis {
  margin: 0 0.625rem;
}

div.plus {
  display: flex;
  align-items: center;
  height: 4rem;
}

div.parenthesis h2 {
  font-size: 3rem;
}

.no-fraction {
  display: flex;
  align-self: center;
}

.d-dx-integral {
  margin-left: 1.25rem;
}

.d-dx-derivative {
  margin-right: 1.25rem;
}

.denominator {
  border-top: #2f2f2f 0.25rem solid;
}

div.equation-block {
  display: flex;
  align-items: center;
  justify-content: center;
}

#practice-response {
  text-align: center;
}

.next-question-div {
  display: flex;
  justify-content: center;
}

#correct-answer {
  text-align: center;
}

#practice-network-error {
  text-align: center;
}

/* =========
   5. Hidden
   ========= */

.hidden {
  display: none;
}
