:root {
  --white: #FFF;
  --primary-color: #4463D3;
  --outline-color: #161A17;
  --body-background-color: #F3F3F3;
  --header-color: #161A17;
  --body-color: #A3A5A3;
  --output-color: ##737674;
  --error-color: #D82D2D;
  --button-background-color-active: #D3D3D3;
  --button-background-color-hover: #F4F4F4;
  --button-background-color: #FFF;
  --button-color: var(--primary-color);
  --button-primary-background-color-active: #3349A3;
  --button-primary-background-color-hover: #5478E3;
  --button-primary-background-color: var(--primary-color);
  --button-primary-color: #FFF;
  --button-secondary-background-color-active: #D0D1D1;
  --button-secondary-border-color: #DFE4EA;
  --input-border-color: #E5E7EB;
  --input-box-shadow: rgba(0, 0, 0, 0.05);
  --input-aria-invalid-border-color: #D32F2F;
  --main-box-shadow: rgba(0, 0, 0, 0.1);
}

/* Dark Mode */

/* :not(img) {
  filter: invert(100%) hue-rotate(180deg);
} */
/* @media (prefers-color-scheme: dark) {
  :root {
    --white: #000;
    --body-background-color: #0C0C0C;
    --body-color: #E4E7E4;
    --input-box-shadow: rgba(0, 0, 0, 0.95);
    --main-box-shadow: rgba(0, 0, 0, 0.9);
    --button-background-color-active: #2C2C2C;
    --button-background-color-hover: #0B0B0B;
    --button-background-color: #000;
    --button-primary-color: #000;
  }
} */

* {
  box-sizing: border-box;
}

body {
  color: var(--body-color);
  background: var(--body-background-color);
  margin: 6.5rem 0;
}

body, input, button {
  font-family: Inter, sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.4;
}

ul {
  list-style-position: inside;
  padding: 0;
  font-weight: 400;
  max-height: 8.625rem;
  overflow-y: auto;
}

li::marker {
  color: var(--primary-color);
}

header {
  text-align: center;
  margin-bottom: 2rem;
  color: var(--header-color);

  img {
    height: 3rem;
  }

  h1 {
    font-size: 1.25rem;
  }
}

main, output {
  background: var(--white);
  border-radius: 1rem;
  box-shadow: 0 0.3125rem 0.75rem 0 var(--main-box-shadow);
  box-sizing: border-box;
  margin: 0 auto;
  max-width: 28rem;
  width: 100%;
}

main {
  padding: 3rem 4rem;
}

output {
  color: var(--output-color);
  /* display: block; */
  margin-bottom: 0.5rem;
  padding: 1.125rem 1rem;
  display: flex;
  gap: 0.5rem;

  &.notice::before {
    content: url("/assets/notice-ccd371d8.svg");
    height: 1.5rem;
    width: 1.5rem;
  }
}

p {
  font-weight: 500;
  /* color: var(--light-grey); */
}

a {
  color: var(--primary-color);
  text-decoration: none;
  /* font-size: 0.8rem; */
}

form {
  margin: 1rem 0;

  &:has(+ a) {
    margin-bottom: 0rem;
  }
}

label {
  color: var(--header-color);
  font-size: 0.8125rem;
  font-weight: 600;
}

input:not([type=checkbox]), button, a.button {
  border-radius: 0.375rem;
  color: var(--header-color);
  margin: 0.5rem 0;
  outline-color: var(--outline-color);
  outline-offset: 0;
  width: 100%;
}

input[type=email], input[type=password], input[type=text] {
  border: 0.0625rem solid var(--input-border-color);
  box-shadow: 0 0.0625rem 0.125rem 0 var(--input-box-shadow);
  padding: 0.5rem 0.75rem;

  &::placeholder {
    color: var(--body-color);
  }

  &[aria-invalid="true"] {
    border-color: var(--input-aria-invalid-border-color);

    & + p {
      color: var(--error-color);
      margin: 0;
    }
  }
}

input[type=submit], button[type=submit] {
  border: 0;
  cursor: pointer;
}

input[type=submit], button[type=submit], a.button {
  background: var(--button-background-color);
  color: var(--button-color);
  display: block;
  font-weight: 600;
  padding: 0.5rem 1rem;
  text-align: center;
  text-decoration: none;

  &:hover {
    background: var(--button-background-color-hover);
  }

  &:active {
    background: var(--button-background-color-active);
  }

  &.primary {
    background: var(--button-primary-background-color);
    color: var(--button-primary-color);

    &:hover {
      background: var(--button-primary-background-color-hover);
    }

    &:active {
      background: var(--button-primary-background-color-active);
    }
  }

  &.secondary {
    border: 0.0625rem solid var(--button-secondary-border-color);
    font-weight: 500;
    padding-bottom: 0.4375rem;
    padding-top: 0.4375rem;

    &:active {
      background: var(--button-secondary-background-color-active);
    }
  }

  &.google, &.hootsuite {
    align-items: center;
    color: var(--header-color);
    display: flex !important; /* FIXME */
    gap: 0.5rem;
    justify-content: center;

    &::before {
      height: 1rem;
      width: 1rem;
    }
  }

  &.google::before {
    content: url("/assets/google-logo-8ad2b6fa.svg");
  }

  &.hootsuite::before {
    content: url("/assets/hootsuite-logo-5e58cc3f.svg");
  }
}

input[type=radio] {
  align-items: center;
  appearance: none;
  border: 0.0625rem solid var(--button-secondary-border-color);
  cursor: pointer;
  display: flex;
  gap: 0.5rem;
  margin: 0.25rem 0;
  padding: 0.75rem 1rem;

  &:has(+ input[type=submit]) {
    margin-bottom: 1rem;
  }

  &:checked {
    border-color: var(--primary-color);
  }

  &::before {
    height: 1rem;
  }

  &[value=sms]::before {
    content: url("/assets/sms-1dcc77ae.svg");
  }

  &[value=email]::before {
    content: url("/assets/email-694ea61d.svg");
  }

  &[value=voice]::before {
    content: url("/assets/voice-bb02228f.svg");
  }

  &[value=one_time_password]::before {
    content: url("/assets/one_time_password-9d057784.svg");
  }

  &::after {
    content: attr(aria-label);
    font-weight: 600;
  }
}
