.avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75em;
  height: 2.75em;
  border-radius: 50%;
  background: var(--m-primary-soft);
  color: var(--m-primary);
  font-weight: 700;
  font-size: .9375rem;
  overflow: hidden;
  flex-shrink: 0;
}
.avatar-sm { width: 2.15em; height: 2.15em; font-size: .875rem; }
.avatar-lg { width: 3.6em; height: 3.6em; font-size: 1.125rem; }
.avatars { display: inline-flex; align-items: center; }
.avatars .avatar {
  border: 2px solid var(--m-bg);
  margin-left: -.55em;
}
.avatars .avatar:first-child { margin-left: 0; }

.status { display: inline-flex; align-items: center; gap: .45em; font-size: 1rem; color: var(--m-fg-2); }
.status-dot {
  width: .65em;
  height: .65em;
  border-radius: 50%;
  background: var(--m-fg-3);
  flex-shrink: 0;
}
.status-dot.online, .status.online .status-dot { background: var(--m-success); }
.status-dot.away, .status.away .status-dot { background: var(--m-warning); }
.status-dot.busy, .status.busy .status-dot { background: var(--m-danger); }
.status-dot.offline, .status.offline .status-dot { background: var(--m-fg-3); }

.badge { position: relative; display: inline-flex; }
.badge-dot, .badge-n {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(40%, -40%);
  z-index: 1;
}
.badge-dot {
  width: .65em;
  height: .65em;
  background: var(--m-danger);
  border: 2px solid var(--m-bg);
  border-radius: 50%;
}
.badge-n {
  min-width: 1.3em;
  height: 1.3em;
  padding: 0 .35em;
  background: var(--m-danger);
  color: #fff;
  font-size: .875rem;
  font-weight: 700;
  border-radius: var(--m-r-full);
  display: grid;
  place-items: center;
  border: 2px solid var(--m-bg);
  line-height: 1;
}
.badge-n::after { content: attr(data-n); }
