.room-invitations,
.room-invitations-grid,
.room-invitation-list,
.room-invitation-card,
.room-invitation-identity,
.room-invite-form {
  display: grid;
  gap: 0.75rem;
}

.room-invitations-grid {
  grid-template-columns: 1fr;
}

.home-invitation-group {
  box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 16%);
}

.home-invitation-group[open] {
  border-color: color-mix(in srgb, var(--color-accent) 32%, var(--color-border));
}

.home-outgoing-invitations > summary,
.room-invite-control > summary {
  min-height: 2.75rem;
  align-content: center;
  cursor: pointer;
  font-weight: 800;
}

.home-outgoing-invitations > summary::marker,
.room-invite-control > summary::marker {
  color: var(--color-accent-soft);
}

.room-invitation-list {
  gap: 0.55rem;
}

.room-invitation-card {
  position: relative;
  gap: 0.6rem;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 0.95rem;
  padding: 0.8rem;
  background: rgb(255 255 255 / 2.5%);
}

.room-invitation-card[data-direction="incoming"] {
  border-color: color-mix(in srgb, var(--color-accent) 42%, var(--color-border));
  background:
    linear-gradient(115deg, color-mix(in srgb, var(--color-accent) 10%, transparent), transparent 48%),
    rgb(255 255 255 / 2.5%);
}

.room-invitation-card[data-direction="incoming"]::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0.18rem;
  background: linear-gradient(var(--color-accent), var(--color-accent-secondary));
  content: "";
}

.room-invitation-card .room-heading h3 {
  margin: 0;
  font-size: 0.95rem;
}

.room-invitation-identity {
  gap: 0.15rem;
  min-width: 0;
}

.room-invitation-identity strong {
  overflow: hidden;
  font-size: 0.82rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.room-invitation-card .room-metadata {
  gap: 0.35rem;
}

.room-invitation-card .badge {
  min-height: 1.7rem;
  padding: 0.2rem 0.5rem;
  font-size: 0.68rem;
}

.room-invitation-card .room-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  border-top: 1px solid var(--color-border);
  padding-top: 0.65rem;
}

.room-invitation-card .room-actions button {
  min-height: 2.75rem;
  padding: 0.6rem 0.7rem;
  font-size: 0.74rem;
}

.room-invite-control {
  border-top: 1px solid var(--color-border);
  padding-top: 0.65rem;
}

.room-invite-form {
  margin-top: 0.55rem;
}

.room-invite-form p {
  margin-bottom: 0;
  color: var(--color-text-muted);
  font-size: 0.76rem;
}

.room-invite-form label {
  gap: 0.25rem;
  font-size: 0.75rem;
}

.room-invite-form select,
.room-invite-form button {
  min-height: 2.75rem;
}

.room-invite-form button {
  width: 100%;
}

@media (max-width: 22rem) {
  .room-invitation-card {
    padding: 0.7rem;
  }

  .room-invitation-card .room-actions {
    grid-template-columns: 1fr;
  }
}
