$card_width: 580px;
$avatar_width: 120px;
$avatar_margin: -50px; // negative margin makes avatars extend above cards

.animated-placeholder {
  height: 20px;
  position: relative;
}

.card-avatar-placeholder {
  width: $avatar_width;
  height: $avatar_width;
  border-radius: 100%;
  position: relative;
  overflow: hidden;
  &:before {
    animation: placeHolderShimmer 4s linear infinite forwards;
    position: absolute;
    left: 0;
    content: "";
    background: linear-gradient(
      to right,
      var(--primary-very-low) 10%,
      var(--primary-low) 18%,
      var(--primary-very-low) 33%
    );
    height: $avatar_width;
    width: $card_width;
  }
}

// shared styles for user and group cards
.user-card,
.group-card {
  width: $card_width;
  box-shadow: shadow("card");
  color: var(--primary);
  background: var(--secondary) center center;
  background-size: cover;
  transition: opacity 0.2s, transform 0.2s;
  opacity: 0;
  @include transform(scale(0.9));
  &.show {
    opacity: 1;
    @include transform(scale(1));
  }
  .card-content {
    padding: 10px;
    background: rgba(var(--secondary-rgb), 0.85);
    &:after {
      content: "";
      display: block;
      clear: both;
    }
    a.card-huge-avatar {
      display: block;
    }
    .bio {
      @include line-clamp(2);
    }
  }
  .card-row:not(.first-row) {
    margin-top: 0.5em;
  }
  // avatar - names - controls
  .first-row {
    .names {
      padding-left: 1.25em;

      .user-profile-link {
        display: flex;
        align-items: center;

        &:focus {
          border: 1px solid;
          @include default-focus;
        }
      }

      .d-icon {
        margin: 0 0.25em;
      }

      .name-username-wrapper {
        margin-right: 0;
        flex: 0 1 auto;
      }
      span {
        display: block;
      }
    }
    .usercard-controls {
      list-style-type: none;
      margin: 0;
      button {
        width: 100%;
      }
    }
  }
  .btn {
    margin-bottom: 5px;
  }
  h1 {
    line-height: var(--line-height-medium);
    .d-icon {
      color: var(--primary);
    }
  }
  h3 {
    display: inline;
    margin-right: 0.5em;
    color: var(--primary);
    &.email,
    .desc,
    a {
      color: var(--primary-high);
    }
  }
  h1,
  h2,
  h3 {
    margin: 0;
    @include ellipsis;
  }
  h1,
  h2 {
    a {
      color: var(--primary);
    }
  }
  h2,
  h3 {
    font-weight: normal;
  }
  p {
    margin: 0 0 5px 0;
  }
}

// styles for user cards only
.user-card {
  // avatar - names - controls
  .first-row {
    display: flex;
    .avatar-placeholder {
      width: $avatar_width;
      height: $avatar_width;
    }
    .user-card-avatar {
      margin-top: $avatar_margin;
      max-height: $avatar_width;
    }
    .new-user a {
      color: var(--primary-low-mid);
    }
  }
  // user bio - suspension reason
  .second-row {
    max-height: 150px;
    overflow: auto;
    .bio {
      a {
        color: var(--primary);
        text-decoration: underline;
      }
      a.mention {
        text-decoration: none;
      }
      .overflow {
        max-height: 60px;
        overflow: hidden;
      }
    }
    .suspended {
      color: var(--danger);
      .suspension-reason-title,
      .suspension-date {
        font-weight: bold;
      }
    }
    .profile-hidden {
      font-size: var(--font-up-1);
      margin-top: 0.5em;
    }
  }
  // featured topic
  .featured-topic {
    .desc {
      color: var(--primary-high);
    }
    a {
      color: var(--primary);
      text-decoration: underline;
    }
  }

  // location and website
  .location-and-website {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    align-items: center;
    .location,
    .website-name {
      display: flex;
      overflow: hidden;
      align-items: center;
      .d-icon {
        margin-right: 0.25em;
      }
    }
    .website-name a,
    .location span {
      @include ellipsis;
      color: var(--primary);
    }
    .location,
    .local-time,
    .website-name {
      margin-right: 0.5em;
    }
    .website-name a {
      text-decoration: underline;
    }
  }
  // custom user fields
  .public-user-fields {
    margin: 0;
    .user-field-value-list-item:not(:last-of-type) {
      &:after {
        // create comma separated list
        content: ",";
      }
    }
  }

  // badges
  .badge-section {
    line-height: 0;
    .user-badge {
      @include ellipsis;
      background: var(--primary-very-low);
      border: 1px solid var(--primary-low);
      color: var(--primary);
    }
    .user-card-badge-link {
      overflow: hidden;
    }
    .user-card-badge-link,
    .more-user-badges {
      vertical-align: top;
      display: inline-block;
    }
    .more-user-badges a {
      @extend .user-badge;
    }
  }
}

// styles for group cards only
.group-card {
  // avatar - names and controls
  .first-row {
    display: flex;
    .group-card-avatar {
      margin-top: $avatar_margin;
    }
    .avatar-flair {
      display: flex;
      background-size: contain;
      background-repeat: no-repeat;
      width: $avatar_width;
      height: $avatar_width;
      color: var(--primary);
      .d-icon {
        margin: auto;
        font-size: $avatar_width / 1.5;
      }
      &.rounded {
        border-radius: 50%;
      }
    }
  }
  // group bio
  .second-row {
    max-height: 150px;
    overflow: auto;
    .bio {
      a {
        color: var(--primary);
        text-decoration: underline;
      }
      img {
        max-width: 100%;
        height: auto;
      }
      a.mention {
        text-decoration: none;
      }
      .overflow {
        max-height: 60px;
        overflow: hidden;
      }
    }
  }
}

h3.user-status {
  display: flex;

  img.emoji {
    margin-bottom: 1px;
    margin-right: 0.3em;
  }

  .relative-date {
    text-align: left;
    font-size: var(--font-down-3);
    padding-top: 0.5em;
    margin-left: 0.6em;
    color: var(--primary-medium);
  }
}