@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");

body {
  --bg-neutral: #ffffff;
  --bg-accent: #28d979;
  --card-bg: #f0f0f0;
  --text-on-accent: #ffffff;
  --text-on-neutral: #000000;
  --text-role: #5c5c5c;
  --education-tag-on-neutral: #149063;
  --education-tag-on-accent: #ebf9f2;
  --bg-contact: #000000;
  --text-contact: #dddddd;
  --bg-title-tool-type: #000000;
  --job-tag-bg: #7e731266;
  --job-tag-text: #ddf163;
  --about-job-on-neutral: #3f3d3d;
  --about-job-on-accent: #ebf9f2;
}

html {
  height: 100%;
}

body {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}

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

[contenteditable="true"] {
  cursor: pointer;
  border: none;
  outline: none;
  box-shadow: none;
  background: transparent;
  resize: none;
  overflow: hidden;
  field-sizing: content;
  &:focus {
    background-color: #f6ed1e !important;
    color: #000000 !important;
    border-radius: 5px;
    li {
      color: #000000 !important;
    }
  }
  @media screen {
    transition: background-color 0.2s linear, color 0.2s linear;
  }
}

.main {
  justify-content: center;
  display: flex;
  flex-flow: row wrap;
  gap: 20px 20px;
  align-self: center;
  padding: 20px 15px;

  max-width: 595px;
}

.card {
  background-color: var(--card-bg);
  border-radius: 12px;
  padding: 12px;
  display: flex;
  flex-direction: column;

  .title {
    font-size: 14px;
    font-weight: 500;
    line-height: 150%;
    height: 21px;
    margin-bottom: 16px;
  }
}

.avatar {
  img {
    width: 124px;
    height: 124px;
    border-radius: 12px;
    object-fit: cover;
  }

  height: 124px;
}

.card.name-box {
  max-width: 124px;
  .greeting {
    font-size: 10px;
    font-weight: 500;
    line-height: 150%;
    height: 15px;
    margin-bottom: 28px;
    color: var(--text-on-neutral);
  }

  .name {
    font-size: 14px;
    font-weight: 600;
    line-height: 104%;
    height: 15px;
    margin-bottom: 6px;
    color: var(--text-on-neutral);
  }

  .role {
    font-size: 12px;
    font-weight: 500;
    line-height: 150%;
    height: 36px;
    color: var(--text-role);
  }
}

.card.languages-box {
  .languages-list {
    display: flex;
    flex-direction: row;
    column-gap: 17px;

    .languages-names {
      display: flex;
      flex-direction: column;
      row-gap: 10px;
      width: 41px;

      .language-name {
        font-size: 10px;
        font-weight: 500;
        line-height: 104%;
        height: 10px;
        color: var(--text-on-neutral);
      }
    }

    .languages-levels {
      display: flex;
      flex-direction: column;
      row-gap: 10px;
      width: 185px;

      .high-level {
        width: 184px;
        height: 11px;
        background-color: var(--bg-accent);
        border-radius: 3px;
      }

      .medium-level {
        width: 144px;
        height: 11px;
        background-color: var(--bg-accent);
        border-radius: 3px;
      }

      .low-level {
        width: 123px;
        height: 11px;
        background-color: var(--bg-accent);
        border-radius: 3px;
      }
    }
  }
}

.card.education-box {
  padding-right: 8px;
  max-width: 268px;

  .education-card-container {
    display: flex;
    flex-flow: row wrap;
    gap: 12px 16px;
    align-items: flex-start;

    .education-card {
      max-width: 116px;
      --education-card-bg: var(--bg-neutral);
      --education-card-text-color: var(--text-on-neutral);
      --education-card-tag-color: var(--education-tag-on-neutral);
      padding: 8px;
      display: flex;
      flex-direction: column;
      row-gap: 8px;
      background-color: var(--education-card-bg);
      border-radius: 10px;

      &.accent {
        --education-card-bg: var(--bg-accent);
        --education-card-text-color: var(--text-on-accent);
        --education-card-tag-color: var(--education-tag-on-accent);
      }

      .education-card-header {
        display: flex;
        justify-content: space-between;
        align-items: center;

        .year {
          font-size: 10px;
          font-weight: 500;
          line-height: 150%;
          height: 15px;
          color: var(--education-card-text-color);
        }
      }

      .education-card-content {
        display: flex;
        flex-direction: column;

        .education-title {
          font-size: 10px;
          font-weight: 500;
          line-height: 150%;
          height: 15px;
          color: var(--education-card-text-color);
          margin-bottom: -2px;
        }

        .tag-container {
          display: flex;
          flex-flow: row wrap;
          gap: 0 2px;

          .tag {
            font-size: 8px;
            font-weight: 400;
            line-height: 150%;
            height: 12px;
            color: var(--education-card-tag-color);
          }
        }
      }

      .school {
        font-size: 8px;
        font-weight: 400;
        line-height: 150%;
        height: 12px;
        color: var(--education-card-text-color);
      }
    }
  }
}

.extra-box {
  display: flex;
  flex-direction: column;
  row-gap: 20px;
}

.card.interests-box {
  max-width: 267px;

  .interest-container {
    display: flex;
    flex-flow: row wrap;
    gap: 8px 8px;

    .interes {
      font-size: 10px;
      font-weight: 400;
      line-height: 150%;
      color: var(--text-on-neutral);
      background-color: var(--bg-neutral);
      border-radius: 40px;
      height: 23px;
      padding: 4px 10px;
    }
  }
}

.card.contact-box {
  background-color: var(--bg-contact);
  max-width: 267px;

  .title {
    color: var(--text-on-accent);
    margin-bottom: 11px;
    height: 42px;
  }

  .contact-container {
    display: flex;
    padding-right: 28px;
    flex-direction: row;
    column-gap: 8px;

    .contact {
      font-size: 10px;
      font-weight: 400;
      line-height: 150%;
      color: var(--text-contact);
    }
  }
}

.card.tools-box {
  .title {
    margin-bottom: 15px;
  }
  padding-bottom: 3px;
  max-width: 124px;

  .tool-container {
    display: flex;
    flex-direction: column;
    row-gap: 12px;
    margin: 0 12px;

    .tool-type {
      padding: 16px 10px;
      max-width: 76px;
      border-radius: 6px;
      background-color: var(--bg-neutral);
      display: flex;
      flex-flow: row wrap;
      gap: 16px;
      justify-content: center;

      .tool-type-title {
        font-size: 5px;
        font-weight: 500;
        line-height: 142%;
        color: var(--text-on-accent);
        background-color: var(--bg-title-tool-type);
        border-radius: 59px;
        height: 11px;
        padding: 2px 6px;
        margin-top: -21px;
        margin-right: auto;
        margin-left: auto;
        position: absolute;
      }
    }
  }
}

.card.experience-box {
  width: 411px;
  min-height: 359px;
  .job-card-container {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
    .job-card {
      --job-card-bg: var(--bg-neutral);
      --job-card-text: var(--text-on-neutral);
      --about-job: var(--about-job-on-neutral);
      &.last {
        --job-card-bg: var(--bg-accent);
        --job-card-text: var(--text-on-accent);
        --about-job: var(--about-job-on-accent);
      }
      background-color: var(--job-card-bg);
      border-radius: 10px;
      padding: 8px;
      display: flex;
      flex-direction: column;
      row-gap: 8px;
      .job-card-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        .date {
          font-size: 8px;
          font-weight: 500;
          line-height: 150%;
          height: 12px;
          color: var(--job-card-text);
        }
        .tag {
          border-radius: 50px;
          background-color: var(--job-tag-bg);
          padding: 2px 6px;
          height: 16px;
          font-size: 8px;
          font-weight: 500;
          line-height: 155%;
          color: var(--job-tag-text);
        }
      }
      .job-card-content {
        display: flex;
        flex-direction: row;
        column-gap: 8px;
        flex-wrap: nowrap;
        .job-info {
          min-width: 124px;
          display: flex;
          flex-direction: column;
          .role {
            height: 15px;
            font-size: 10px;
            font-weight: 500;
            line-height: 150%;
            color: var(--job-card-text);
          }
          .about-job-container {
            margin-top: -2px;
            display: flex;
            flex-direction: row;
            column-gap: 6px;
            .about-job {
              height: 12px;
              font-size: 8px;
              font-weight: 400;
              line-height: 150%;
              color: var(--about-job);
            }
          }
        }
        .job-featured-point-container {
          .job-featured-point {
            &::marker {
              margin-right: 5px;
            }
            list-style-position: outside;
            margin-left: 12px;
            font-size: 8px;
            font-weight: 400;
            line-height: 150%;
            color: var(--job-card-text);
          }
        }
      }
    }
  }
}

footer {
  position: sticky;
  bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 15px;
}

#load-pdf {
  padding: 4px 10px;
  border-radius: 10px;
  background-color: var(--bg-accent);
  color: var(--text-on-accent);
  border: none;
  font-size: 20px;
  cursor: pointer;
}
