.button-count.has-pending {
  span {
    background-color: $danger;
    color: $secondary;
    border-radius: 10px;
    padding: 0.25em 0.5em;
    display: inline-block;
    font-size: 0.8em;
  }
}

.placeholder-avatar {
  display: inline-block;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  position: relative;
  overflow: hidden;
  &:before {
    animation: placeHolderShimmer 4s linear infinite forwards;
    position: absolute;
    left: 0;
    content: "";
    background: linear-gradient(
      to right,
      $primary-very-low 10%,
      $primary-low 28%,
      $primary-very-low 43%
    );
    height: 45px;
    width: 700px;
  }
}

.placeholder-text {
  margin-left: 11px;
  display: inline-block;
  width: calc(100% - 11px);
  height: 1.5em;
  margin-bottom: 0.6em;
}

.names {
  flex: 1 1 auto;
  overflow: hidden;
  span.first {
    display: flex;
    align-items: baseline;
    font-weight: bold;
  }

  span {
    font-size: $font-0;
    margin-right: 8px;
    display: inline-block;
    @include ellipsis;
    vertical-align: middle;
    a {
      color: dark-light-choose($primary-high, $secondary-low);
    }
  }
  .fa {
    font-size: $font-down-1;
    color: dark-light-choose($primary-medium, $secondary-medium);
  }
  .svg-icon-title {
    margin-left: 3px;
    margin-right: 0px;
  }
  .new_user a,
  .user-title,
  .user-title a {
    color: dark-light-choose($primary-medium, $secondary-medium);
  }
}

// global styles for the cooked HTML content in posts (and preview)
.cooked,
.d-editor-preview {
  word-wrap: break-word;
  line-height: $line-height-large;
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin: 30px 0 10px;
    line-height: $line-height-medium;
  }

  h1 {
    font-size: $font-up-3;
  }

  h2 {
    font-size: $font-up-2;
  }

  h3 {
    font-size: $font-up-1;
  }

  h4 {
    font-size: $font-0;
  }

  h5 {
    font-size: $font-down-1;
  }

  h6 {
    font-size: $font-down-2;
  }

  a {
    word-wrap: break-word;
  }

  del,
  ins {
    text-decoration: none;
  }

  ins {
    background-color: dark-light-choose(
      $success-low,
      scale-color($success, $lightness: -60%)
    );
  }
  del {
    background-color: dark-light-choose(
      $danger-low,
      scale-color($danger, $lightness: -60%)
    );
  }
  // Prevents users from breaking posts with tag nesting
  big {
    font-size: 1.5rem;
  }
  small {
    font-size: 0.75rem;
  }
  small small {
    font-size: 0.75em;
  }
  big big {
    font-size: 1em;
  }
  sub sub sub {
    bottom: 0;
  }
  sup sup sup {
    top: 0;
  }
}

.cooked,
.d-editor-preview {
  video {
    max-width: 100%;
  }
  sup sup {
    top: 0;
  }
}

// add staff color
.moderator {
  .regular > .cooked {
    background-color: dark-light-choose($highlight-low, $highlight-medium);
    padding: 10px;
    img:not(.thumbnail) {
      max-width: 100%;
      height: auto;
    }
  }
  .clearfix > .topic-meta-data > .names {
    span.user-title {
      color: dark-light-choose($primary-high, $secondary-low);
      a {
        background-color: dark-light-choose($highlight-low, $highlight-medium);
        padding-left: 4px;
        padding-right: 4px;
      }
    }
  }
}

.topic-meta-data {
  display: flex;
  align-items: flex-start;

  .names {
    margin-right: auto;
  }

  .post-infos {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
  }
}

// we use aside to hold expandable quotes (versus, say, static blockquotes)
aside.quote {
  margin-top: 1em;
  margin-bottom: 1em;

  .badge-wrapper {
    margin-left: 5px;
  }

  .title {
    @include post-aside;

    color: dark-light-choose($primary-high, $secondary-low);
    padding: 12px 12px 0px 12px;
    // blockquote is underneath this and has top margin
    .avatar {
      margin-right: 7px;
    }
    img {
      margin-top: -4px;
    }
    @include unselectable;
  }

  // blockquote is docked within aside for content
  blockquote {
    margin-top: 0;
  }
}

blockquote {
  // due to #image-sizing-hack large images and lightboxes extend past the
  // limits blockquotes. Since #image-sizing-hack is inline, we need to use
  // !important here otherwise it won't work.
  img {
    max-width: 100% !important;
  }
}

.quote-controls,
.quote-controls .d-icon {
  color: dark-light-choose($primary-low-mid, $secondary-high);
}

.cooked .highlight {
  background-color: $tertiary-low;
  padding: 2px;
  margin: -2px;
}

.post-ignored {
  font-style: italic;
}

.post-action {
  color: $primary-medium;
  .undo-action,
  .act-action {
    margin-left: 5px;
  }
}

.small-user-list .unknown {
  display: inline-block;
  background-color: $primary-low;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  vertical-align: middle;
  margin-right: 0.25em;
}

.post-hidden {
  .topic-avatar,
  .cooked,
  .topic-meta-data,
  .post-actions {
    opacity: 0.5;
  }
}

.topic-post.staged {
  opacity: 0.4;
}

.quote-controls {
  float: right;
  display: flex;
  align-items: center;
  a {
    margin-left: 0.3em;
  }
}

.quote-button {
  display: none;
  position: absolute;
  background-color: blend-primary-secondary(50%);
  color: dark-light-choose($secondary, $primary);
  padding: 10px;
  z-index: z("dropdown");
  opacity: 0.9;

  .d-icon {
    display: inline-block;
  }

  &:hover {
    background-color: $primary-medium;
    cursor: pointer;
  }
}

.topic-avatar,
.user-card-avatar {
  position: relative;
}

.topic-map {
  background: $primary-very-low;
  border: 1px solid $primary-low;
  border-top: none; // would cause double top border

  .avatars {
    > div {
      float: left;
      position: relative;
      margin: 3px 0;
    }
    .post-count {
      position: absolute;
      right: 0;
      border-radius: 100px;
      padding: 3px 5px;
      text-align: center;
      font-weight: normal;
      font-size: $font-down-2;
      line-height: $line-height-small;
    }
  }

  .avatar {
    float: left;
    margin-right: 4px;
  }

  section {
    border-top: 1px solid $primary-low;
  }

  ul {
    margin: 0;
    list-style: none;
  }

  h3 {
    margin-bottom: 4px;
    color: $primary;
    line-height: $line-height-large;
    font-weight: normal;
    font-size: $font-0;
  }

  h4 {
    margin: 1px 0 2px 0;
    color: dark-light-choose($primary-medium, $secondary-medium);
    font-weight: normal;
    font-size: $font-down-1;
    line-height: $line-height-small;
  }

  span.domain {
    font-size: $font-down-2;
    color: dark-light-choose($primary-medium, $secondary-medium);
  }

  td {
    vertical-align: top;
    padding: 1px;
    word-wrap: anywhere;
  }

  .topic-links {
    tr {
      border: none;
    }
    .badge-notification {
      margin: 1px 5px 2px 0;
    }
  }

  .controls {
    display: flex;
    align-items: center;

    .btn {
      margin-right: 0.5em;

      &:last-child {
        margin: 0;
      }
    }
  }

  .participants {
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    & + .controls {
      margin-top: 0.5em;
    }

    &.hide-names .user {
      .username,
      .group-name {
        display: none;
      }
    }

    .user {
      border: 1px solid $primary-low;
      border-radius: 0.25em;
      padding: 0;
      margin: 0.125em 0.25em 0.125em 0;
      display: flex;
      align-items: center;
      height: 26px;

      .user-link,
      .group-link {
        color: $primary-high;

        &:hover {
          color: $primary;
        }
      }

      .avatar,
      .d-icon-users {
        margin-left: 0.25em;
        margin-right: 0.25em;
      }

      .username,
      .group-name {
        margin-right: 0.25em;
      }

      &:last-child {
        margin-right: 0;
      }

      .remove-invited {
        display: flex;
        flex: 1 0 0px;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        border-radius: 0 0.25em 0.25em 0;
        padding-top: 0;
        padding-bottom: 0;
        height: 100%;
      }
    }
  }

  .add-remove-participant-btn {
    .d-icon {
      margin-left: 0.25em;
    }
  }
}

.topic-avatar,
.avatar-flair-preview,
.user-card-avatar,
.topic-map .poster,
.user-profile-avatar,
.user-image,
.latest-topic-list-item {
  .avatar-flair {
    display: flex;
    align-items: center;
    justify-content: center;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    bottom: 0;
    right: -6px;
  }
}
.topic-avatar .avatar-flair,
.avatar-flair-preview .avatar-flair,
.collapsed-info .user-profile-avatar .avatar-flair,
.user-image .avatar-flair,
.latest-topic-list-item .avatar-flair {
  background-size: 20px 20px;
  width: 20px;
  height: 20px;
  &.rounded {
    background-size: 18px 18px;
    border-radius: 12px;
    width: 24px;
    height: 24px;
    bottom: -2px;
    right: -8px;
  }
}
.user-card-avatar .avatar-flair,
.user-profile-avatar .avatar-flair {
  background-size: 40px 40px;
  width: 40px;
  height: 40px;
  &.rounded {
    background-size: 30px 30px;
    border-radius: 24px;
    width: 40px;
    height: 40px;
    bottom: -2px;
    right: -4px;
  }
  .fa {
    font-size: $font-up-4;
  }
}
.topic-map .poster .avatar-flair {
  right: 0;
  background-size: 12px 12px;
  width: 16px;
  height: 16px;
  bottom: -3px;
  color: $primary;
  &.rounded {
    background-size: 12px 12px;
    border-radius: 8px;
    width: 16px;
    height: 16px;
    bottom: -2px;
    right: 0;
  }
  .d-icon {
    font-size: $font-down-2;
  }
}
.topic-avatar .poster-avatar-extra {
  display: none;
}

.map {
  &:first-of-type {
    display: flex;
    .buttons {
      margin-left: auto;
      order: 15;
      .btn {
        height: 100%;
      }
    }
  }
}

.topic-body {
  // this is necessary for ANYTHING that extends past the right edge of
  // the post body, such as an image in a deeply nested list, image in
  // a deeply nested blockquote, and so on.. you get the idea.
  .cooked {
    overflow: hidden;
  }
  .group-request {
    border-top: 1px solid $primary-low;
    padding-top: 0.5em;
  }
  &.highlighted {
    animation: background-fade-highlight 2.5s ease-out;
  }
  .deleted & {
    // Disable so the deleted background is visible immediately
    &.highlighted {
      animation: none;
    }
  }
}

.post-info {
  flex: 0 0 auto;
  margin-right: 0.5em;

  &.post-date {
    margin-right: 0;
  }
  &.via-email,
  &.whisper,
  &.post-locked {
    .d-icon {
      font-size: $font-0;
    }
  }

  .wiki,
  .last-wiki-edit {
    color: $wiki;
  }

  &.via-email {
    color: dark-light-choose($primary-low-mid, $secondary-high);
  }
  &.raw-email {
    cursor: pointer;
  }
}

pre {
  code {
    word-wrap: normal;
    display: block;
    padding: 0.5em;
    color: $primary;
    background: blend-primary-secondary(5%);
    max-height: 500px;
  }
}

.copy-codeblocks {
  display: block;
  position: relative;
  overflow: visible;

  .copy-cmd {
    position: absolute;
    top: 0;
    right: 0;
    min-height: 0;
    font-size: $font-down-2;
    min-height: 0;
    font-size: $font-down-2;
    user-select: none;

    &.copied {
      .d-icon {
        color: $tertiary;
      }
    }

    .d-icon {
      pointer-events: none;
      margin-right: 0;
    }
  }
}

kbd {
  align-items: center;
  background: dark-light-choose(#fafafa, #303030);
  border: 1px solid dark-light-choose(#d0d0d0, #505050);
  border-bottom-width: 2px;
  border-radius: 3px;
  box-sizing: border-box;
  color: $primary;
  display: inline-flex;
  font-size: $font-down-1;
  justify-content: center;
  line-height: $line-height-large;
  margin: 0 0.15em;
  min-width: 24px;
  padding: 0.15em 0.6em;

  // don't allow more than 3 nested elements to prevent FF from crashing
  // cf. http://what.thedailywtf.com/t/nested-elements/7927
  // 3 levels are needed to prevent highlighted words being hidden
  // cf. https://meta.discourse.org/t/word-disappears-when-searched-and-in-details-summary-kbd-b/25741
  * * * {
    display: none;
  }
}

// we assume blockquotes have their own margins, so all blockquotes
// will remove margins from first (top) and last (bottom) child elements
blockquote > *:first-child {
  margin-top: 0 !important;
}
blockquote > *:last-child {
  margin-bottom: 0 !important;
}

.gap {
  padding: 0.25em 0 0.5em 56px; // 45px (topic avatar) + 11px (margin) = 56px
  color: dark-light-choose($primary-medium, $secondary-high);
  cursor: pointer;
  text-transform: uppercase;
  font-weight: bold;
  font-size: $font-down-1;
}

.who-liked,
.who-read {
  transition: height 0.5s;
  a {
    margin: 0 0.25em 0.5em 0;
    display: inline-block;
  }
}

.cooked table,
.d-editor-preview table {
  thead {
    th {
      text-align: left;
      padding-bottom: 2px;
      font-weight: bold;
      color: $primary;
    }
  }

  td {
    padding: 3px 3px 3px 0.5em;
  }
}

.small-action {
  display: flex;
  align-items: center;
  max-width: 758px;
  border-top: 1px solid $primary-low;
  .topic-avatar {
    align-self: flex-start;
    padding: 0.7em 0;
    border-top: none;
    margin-right: 11px;
    flex: 0 0 auto;
    .d-icon {
      font-size: 2em;
      width: 45px;
      text-align: center;
      color: $primary-low-mid;
    }
  }

  .small-action.deleted {
    background-color: dark-light-diff(
      rgba($danger, 0.7),
      $secondary,
      50%,
      -60%
    );
  }

  .small-action-desc.timegap {
    color: $primary-medium;
  }

  .small-action-desc {
    display: flex;
    flex-wrap: wrap;
    flex: 1 1 100%;
    align-items: center;
    padding: 1em 0;
    text-transform: uppercase;
    font-weight: bold;
    font-size: $font-down-1;
    color: $primary-medium;
    min-width: 0; // Allows flex container to shrink

    .custom-message {
      flex: 1 1 100%;
      text-transform: none;
      font-weight: normal;
      font-size: $font-up-1;
      order: 12;
      word-break: break-word;
      min-width: 0; // Allows content like oneboxes to shrink
      p {
        margin-bottom: 0;
      }
    }
    a.trigger-user-card {
      align-self: stretch;
    }
    .avatar {
      margin-right: 0.8em;
      float: left;
    }

    > p {
      margin: 0;
      line-height: $line-height-medium;
      flex: 1 1;
    }
  }

  button {
    background: transparent;
    border: 0;
    order: 9;
    &:last-of-type {
      margin-left: auto;
      order: 8;
    }
  }
}

.whisper {
  .post-info.whisper {
    margin-left: 0.5em;
  }
  .topic-body {
    .cooked {
      font-style: italic;
      color: $primary-medium;
    }
  }
}

a.mention {
  align-items: baseline;
  display: inline-flex;
  font-weight: bold;
  font-size: 0.93em;
  color: dark-light-choose($primary-high, $secondary-low);
  padding: 1px 4px;
  background: $primary-low;
  border-radius: 8px;
}

span.mention {
  font-weight: bold;
  font-size: 0.93em;
  color: $primary;
}

a.mention-group {
  font-weight: bold;
  font-size: 0.93em;
  color: $primary;

  &.notify,
  .small-action-desc & {
    color: dark-light-choose($primary-high, $secondary-low);
    padding: 2px 4px;
    background: $primary-low;
    border-radius: 8px;
  }
}

.suggested-topics {
  .topics {
    padding-bottom: 15px;
  }
  .suggested-topics-message {
    .badge-wrapper {
      margin-right: 0;
    }
  }
}

.large-image-placeholder {
  > a {
    &.link {
      margin-right: 10px;
    }

    > * {
      overflow: hidden;
      vertical-align: middle;
    }

    > .d-icon {
      color: dark-light-choose($primary-medium, $secondary-medium);
      margin-right: 6px;
      font-size: $font-0;
      line-height: $line-height-large;
    }

    > span.url {
      display: inline-block;
      max-width: 300px;
      margin-right: 6px;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    > span.help {
      display: inline-block;
      color: dark-light-choose($primary-medium, $secondary-medium);
      font-size: $font-down-1;
      font-style: italic;
      line-height: $line-height-large;
      margin-bottom: 1px;
    }

    > span.badge-notification {
      vertical-align: unset;
    }
  }
}

.broken-image {
  display: inline-flex;
  color: dark-light-choose($primary-low-mid, $secondary-high);
  border: 1px solid $primary-low;
  font-size: $font-up-5;

  .d-icon {
    margin: 16px;
  }
}

/* below standard tablet portrait ----------- */

.reply-to-tab {
  display: flex;
  align-items: center;
  margin-right: 2em;

  img {
    margin: 0 0.25em;
  }
}

// Select posts

.topic-post {
  &.selected {
    article.boxed {
      .select-posts {
        button.select-post {
          background-color: $tertiary;
          color: $secondary;
          border-color: $tertiary;
        }
      }
      .topic-body {
        .contents:after {
          display: none;
        }
      }
    }
  }
  article.boxed {
    position: relative;
    .select-posts {
      position: absolute;
      right: 5em;
      z-index: z("dropdown");
      top: 0.5em;
      height: 100px;
      button {
        margin-left: 8px;
        background-color: $primary-low;
        color: $primary;
        box-shadow: shadow("dropdown");
      }
    }
  }
}

@media all and (max-width: 767px) {
  .reply-to-tab {
    span {
      display: none;
    }
  }
  .user-title {
    float: left;
    clear: left;
  }
}

.signup-cta {
  a {
    float: right;
    text-decoration: underline;
  }
  .buttons {
    margin-bottom: 1em;
  }
}

.post-notice {
  align-items: center;
  background-color: $tertiary-low;
  border-top: 1px solid $primary-low;
  display: flex;
  max-width: calc(
    #{$topic-body-width} + (#{$topic-body-width-padding} * 2) + #{$topic-avatar-width} -
      (0.8em * 2)
  );
  padding: 0.8em;

  &.old {
    background-color: unset;
    color: $primary-medium;

    .d-icon {
      color: $primary-medium;
    }
  }

  p {
    margin: 0;
  }

  .d-icon {
    font-size: 2em;
    color: $primary-high;
    margin-right: 0.65em;
  }
}

#topic-footer-buttons {
  padding: 0.5em 0;

  .topic-footer-main-buttons {
    margin: 0 0 -0.5em 0;
    display: flex;
    flex-wrap: wrap;

    > .btn {
      margin: 0 0.5em 0.5em 0;
      display: inline-flex;
      align-items: center;

      .d-button-label {
        display: flex;
        flex: 1 0 auto;
        align-items: center;
      }
    }

    .topic-admin-menu-button-container {
      display: inline-flex;
    }

    .topic-admin-menu-button-container > span:not(:empty) {
      margin: 0 0.5em 0.5em 0;
    }
  }

  .pinned-button:not(.is-hidden) + .topic-notifications-button {
    margin-top: 0;
  }

  .pinned-button,
  .topic-notifications-button {
    margin: 1em 0;

    .reason {
      color: $primary-high;
      display: inline-flex;
      margin: 0;
      align-items: center;

      .text {
        margin-left: 0.5em;
      }
    }
  }
}

.post-admin-menu {
  display: inline-flex;
  flex-direction: column;
  box-sizing: border-box;
  width: auto;
  max-width: 320px;
  position: absolute;
  text-align: left;
  bottom: -2px;
  right: 15px;
}
