.avatar {
  --avatar-border-radius: 50%;

  aspect-ratio: 1;
  border-radius: var(--avatar-border-radius);
  display: grid;
  inline-size: var(--avatar-size, 5ch);
  margin: 0;
  place-items: center;

  img {
    aspect-ratio: 1;
    block-size: auto;
    border-radius: var(--avatar-border-radius);
    grid-area: 1/1;
    inline-size: var(--avatar-size, 5ch);
    max-inline-size: 100%;
    object-fit: cover;
  }
}

.avatar--icon {
  border: 1px solid var(--color-subtle-dark);
  background-color: var(--color-ink-reversed);

  img {
    background-color: transparent;
    border-radius: 0;
    inline-size: auto;
    margin: var(--inline-space);
  }

  @media (any-hover: hover) {
    &:where(:not(:active):hover) {
      box-shadow: 0 0 0 var(--hover-size) var(--hover-color);
    }
  }
}

.avatar--new-lesson {

  cursor: pointer;
  position: relative;

  img {
    transition: filter 500ms ease-in-out, opacity 500ms ease-in-out;
    filter: saturate(0);
    opacity: 0.5;
  }

  &:where(:hover, &.is-selected) {
    img {
      filter: none;
      opacity: 1;
    }
  }

  &.is-selected::after {
    content: "";
    position: absolute;
    bottom: -0.2em;
    right: -0.2em;
    width: 1.3em;
    height: 1.3em;
    background: var(--color-positive) url("/assets/check-white-51f17c80.svg") center/70% no-repeat;
    border-radius: 50%;
    border: 2px solid var(--color-subtle-light);
  }
}

.avatar__group {
  --avatar-size: 2.5ch;

  block-size: 5ch;
  display: grid;
  gap: 1px;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: min-content;
  inline-size: 5ch;
  place-content: center;

  .avatar {
    margin: auto;
  }

  &:where(:has(> :last-child:nth-child(2))) {
    --avatar-size: 3.5ch;

    > :first-child {
      margin-block-end: 1.5ch;
      margin-inline-end: -0.75ch;
    }

    > :last-child {
      margin-block-start: 1.5ch;
      margin-inline-start: -0.75ch;
    }
  }

  &:where(:has(> :last-child:nth-child(3))) {
    > :last-child {
      margin-inline: 1.25ch -1.25ch;
    }
  }
}

.avatar__form {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
}