.join-origin-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.5rem;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.76);
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.join-origin-badge + .join-origin-badge {
  margin-left: 0.25rem;
}

.join-origin-badge.join-origin-discovery {
  background: rgba(250, 153, 67, 0.2);
  border-color: rgba(250, 153, 67, 0.35);
  color: #fba95b;
}

.join-origin-badge.join-origin-invite {
  background: rgba(94, 199, 255, 0.18);
  border-color: rgba(94, 199, 255, 0.32);
  color: #79cfff;
}

.join-origin-badge.join-origin-friend {
  background: rgba(137, 255, 173, 0.18);
  border-color: rgba(137, 255, 173, 0.32);
  color: #9effc1;
}

.join-origin-badge.join-origin-leader {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.28);
  color: #ffffff;
}

.join-origin-badge.join-origin-direct {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.72);
}

.discovery-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.65rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 0.15rem 0.55rem;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.discovery-tag--conflict {
  background: rgba(255, 87, 113, 0.12);
  border-color: rgba(255, 87, 113, 0.4);
  color: #ff8ba0;
}

.discovery-card.has-conflict {
  border-color: rgba(255, 87, 113, 0.35);
}

.lobby-stage-alert--conflict {
  border-left: 4px solid #ff8ba0;
  background: rgba(255, 87, 113, 0.08);
}

.lobby-stage-alert--conflict strong {
  color: #ff8ba0;
}

.party-lobby-stage--confirming {
  position: relative;
}

.party-lobby-stage--confirming .lobby-stage-header,
.party-lobby-stage--confirming .lobby-stage-columns,
.party-lobby-stage--confirming .lobby-stage-alerts > :not(.lobby-stage-alert--confirm) {
  opacity: 0.28;
  pointer-events: none;
}

.lobby-stage-alert--confirm {
  position: relative;
  z-index: 3;
}

.lobby-stage-alert--pending-change {
  border-left: 4px solid #f0c674;
  background: rgba(240, 198, 116, 0.12);
}

.lobby-stage-alert--pending-change strong {
  color: #f0c674;
}

.rule-change-diff-list {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}

.rule-change-diff-list li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.82);
}

.rule-change-diff-list li span:last-child {
  font-weight: 600;
}
