/* ============================================================
   SIDEBAR DE MEMBROS
   ============================================================ */
#member-sidebar {
  position: relative;
  width: var(--member-width);
  background: var(--bg-secondary);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
}

/* Alça para arrastar a sidebar de membros horizontalmente (desktop) */
#member-sidebar-resizer {
  position: absolute;
  top: 0;
  left: -4px;
  bottom: 0;
  width: 8px;
  cursor: ew-resize;
  z-index: 15;
  touch-action: none;
}
#member-sidebar-resizer:hover {
  background: rgba(88, 101, 242, 0.15);
}
body.resizing-members {
  cursor: ew-resize;
  user-select: none;
}
@media (max-width: 700px) {
  #member-sidebar-resizer { display: none; }
}

#member-sidebar.collapsed {
  display: none;
}

/* Cabeçalho da sidebar de membros (botão de fechar nunca fica coberto pela lista) */
.member-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}

.member-sidebar-title {
  font-size: calc(11px * var(--font-scale));
  font-weight: 700;
  letter-spacing: 0.5px;
  color: var(--text-muted);
  text-transform: uppercase;
}
.member-sidebar-title-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.member-online-count {
  font-size: calc(11px * var(--font-scale));
  font-weight: 600;
  color: var(--green-bright);
  white-space: nowrap;
}

.member-sidebar-close {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  padding: 2px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: calc(16px * var(--font-scale));
}

.member-sidebar-close:hover {
  background: var(--bg-hover);
  color: #fff;
}

#member-list {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
  min-height: 0;
}

/* Colapsar a tarja de servidores e a lista de canais (botões no cabeçalho do chat) */
#app.rail-collapsed #server-rail {
  display: none;
}

#app.channels-collapsed #channel-sidebar {
  display: none;
}

/* Botão de mostrar/ocultar membros */
.chat-toggle-btn {
  margin-left: auto;
  background: none;
  border: none;
  font-size: calc(18px * var(--font-scale));
  line-height: 1;
  color: var(--text-muted);
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
}

.chat-toggle-btn:hover {
  background: var(--bg-hover);
  color: #fff;
}

/* Toggles à esquerda (tarja de servidores / lista de canais): sem margin-auto e compactos */
#toggle-rail,
#toggle-channels {
  margin-left: 0;
  font-size: calc(15px * var(--font-scale));
  padding: 4px 6px;
}

#toggle-rail {
  margin-right: 2px;
}

#toggle-channels {
  margin-right: 8px;
}

#toggle-rail.active,
#toggle-channels.active {
  color: #fff;
  background: var(--bg-hover);
}

/* Botão de chamada na DM: fica à direita, junto do botão de membros */
#dm-call-btn {
  margin-left: auto;
}

#dm-call-btn:not(.hidden) ~ #toggle-members {
  margin-left: 0;
}

.member-group-label {
  font-size: calc(11px * var(--font-scale));
  font-weight: 700;
  letter-spacing: 0.5px;
  color: var(--text-muted);
  padding: 8px;
  text-transform: uppercase;
}

.member {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  border-radius: 4px;
  cursor: pointer;
}

.member:hover { background: var(--bg-hover); }

/* Borda verde no avatar quando o usuário está falando */
.member.speaking .avatar-wrap {
  box-shadow: 0 0 0 3px var(--green);
  border-radius: 50%;
}

.member .avatar { width: 32px; height: 32px; font-size: calc(13px * var(--font-scale)); }

.member .member-name {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  line-height: 1.25;
}
.member .member-name-text {
  font-size: calc(13px * var(--font-scale));
  font-weight: 500;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.member .member-name .member-tag {
  color: var(--text-muted);
  font-size: calc(10px * var(--font-scale));
  font-weight: 500;
  margin-left: 0;
  opacity: 0.85;
}

.member-temp {
  font-size: calc(10px * var(--font-scale));
  font-weight: 700;
  text-transform: uppercase;
  color: var(--yellow);
  margin-left: auto;
  flex-shrink: 0;
}

/* Rótulo de grupo de cargo (lista de membros agrupada por cargo) */
.role-group-label {
  display: flex;
  align-items: center;
  gap: 6px;
  /* Divisão entre grupos de cargo quando os cargos mudam */
  border-top: 1px solid var(--bg-input);
  margin-top: 10px;
}
.role-group-label:first-child {
  border-top: none;
  margin-top: 0;
}
.role-group-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 1px solid rgba(255,255,255,0.25);
}
.role-group-name {
  font-weight: 700;
}

/* Membros sem cargo: ficam soltos no final, com divisão do último cargo */
.member-no-role {
  border-top: 1px solid var(--bg-input);
  margin-top: 10px;
  padding-top: 4px;
}
.member-no-role:first-child {
  border-top: none;
  margin-top: 0;
}

/* Tag do convidado — identificador visual/interno, não faz parte do username */
.member-tag,
.dm-tag,
.profile-tag {
  color: var(--text-muted);
  font-size: calc(10px * var(--font-scale));
  font-weight: 500;
  margin-left: 0;
  opacity: 0.85;
  white-space: nowrap;
}

.member-badge {
  font-size: calc(12px * var(--font-scale));
  margin-left: auto;
  flex-shrink: 0;
}

.member-actionable {
  cursor: pointer;
  outline: 1px dashed transparent;
}

.member-actionable:hover {
  outline-color: var(--text-muted);
}

.member-empty {
  font-size: calc(13px * var(--font-scale));
  color: var(--text-muted);
  padding: 10px 8px;
  text-align: center;
}

