/* Final chat/voice presentation fixes.
   This layer intentionally loads last so legacy compact/voice rules cannot
   distort the canonical chat geometry. */

/* Normal channel/DM messages: consecutive messages keep the same content
   column but collapse the duplicated author chrome and excess vertical gap. */
.message-list > .message {
  align-items:start;
}
.message-list > .message.rift-message-continuation {
  grid-template-columns:40px minmax(0,1fr) !important;
  column-gap:12px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  min-height:19px !important;
}
.message-list > .message.rift-message-continuation > .avatar {
  visibility:hidden !important;
  pointer-events:none !important;
}
.message-list > .message.rift-message-continuation > .message-content {
  grid-column:2 !important;
  margin:0 !important;
  padding:0 !important;
}
.message-list > .message.rift-message-continuation .message-meta {
  display:none !important;
}
.message-list > .message.rift-message-continuation .message-text {
  margin:0 !important;
  padding:0 !important;
  line-height:1.35 !important;
}
.message-list > .message.rift-message-continuation::before {
  content:attr(data-rift-continuation-time);
  grid-column:1;
  grid-row:1;
  align-self:center;
  justify-self:end;
  padding-right:2px;
  color:var(--muted-2,#616875);
  font-size:9px;
  line-height:1;
  opacity:0;
  pointer-events:none;
  white-space:nowrap;
}
.message-list > .message.rift-message-continuation:hover::before,
.message-list > .message.rift-message-continuation:focus-within::before {
  opacity:1;
}
.message-list .message-text {
  user-select:text !important;
  -webkit-user-select:text !important;
}

/* Voice chat is a narrow normal text channel. The content column is forced to
   a simple block flow so the body sits directly under the author, never beside
   it or in a legacy grid cell. */
.rvc-parity-message-list {
  padding:10px 0 8px !important;
}
.rvc-parity-message-list > .message {
  grid-template-columns:40px minmax(0,1fr) !important;
  column-gap:10px !important;
  row-gap:0 !important;
  padding:3px 12px 2px !important;
  min-height:0 !important;
  align-items:start !important;
  font-family:inherit !important;
}
.rvc-parity-message-list > .message:has(+ .message.rift-message-continuation) {
  padding-bottom:0 !important;
}
.rvc-parity-message-list > .message > .avatar {
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  font-size:12px !important;
}
.rvc-parity-message-list .message-content {
  display:block !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  font-family:inherit !important;
}
.rvc-parity-message-list .message-meta {
  display:flex !important;
  align-items:baseline !important;
  gap:6px !important;
  min-height:18px !important;
  margin:0 !important;
  padding:0 !important;
  line-height:18px !important;
}
.rvc-parity-message-list .message-author {
  font-family:inherit !important;
  font-size:14px !important;
  line-height:18px !important;
  font-weight:600 !important;
}
.rvc-parity-message-list .message-time,
.rvc-parity-message-list .rvc-edited {
  font-family:inherit !important;
  font-size:11px !important;
  line-height:18px !important;
  font-weight:400 !important;
}
.rvc-parity-message-list .message-text {
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  color:var(--text-soft,#c8ccd2) !important;
  font-family:inherit !important;
  font-size:15px !important;
  font-weight:400 !important;
  font-style:normal !important;
  letter-spacing:normal !important;
  line-height:20px !important;
  overflow-wrap:anywhere !important;
  user-select:text !important;
  -webkit-user-select:text !important;
}
.rvc-parity-message-list > .message.rift-message-continuation {
  grid-template-columns:40px minmax(0,1fr) !important;
  column-gap:10px !important;
  row-gap:0 !important;
  padding:0 12px !important;
  min-height:20px !important;
  margin:0 !important;
}
.rvc-parity-message-list > .message.rift-message-continuation > .avatar {
  visibility:hidden !important;
  pointer-events:none !important;
}
.rvc-parity-message-list > .message.rift-message-continuation > .message-content {
  display:block !important;
  grid-column:2 !important;
  margin:0 !important;
  padding:0 !important;
}
.rvc-parity-message-list > .message.rift-message-continuation .message-meta {
  display:none !important;
}
.rvc-parity-message-list > .message.rift-message-continuation .message-text {
  margin:0 !important;
  padding:0 !important;
  line-height:20px !important;
}
.rvc-parity-message-list > .message.rift-message-continuation::before {
  content:attr(data-rift-continuation-time);
  grid-column:1;
  grid-row:1;
  align-self:center;
  justify-self:end;
  padding-right:2px;
  color:#6f7680;
  font-size:9px;
  line-height:1;
  opacity:0;
  pointer-events:none;
  white-space:nowrap;
}
.rvc-parity-message-list > .message.rift-message-continuation:hover::before,
.rvc-parity-message-list > .message.rift-message-continuation:focus-within::before {
  opacity:1;
}

/* Keep the normal hover toolbar usable while moving the pointer from a
   message into the floating controls. */
.rvc-parity-message-list .ui0213-message-toolbar {
  pointer-events:auto !important;
  z-index:80 !important;
}
.rvc-parity-message-list > .message:hover .ui0213-message-toolbar,
.rvc-parity-message-list > .message:focus-within .ui0213-message-toolbar,
.rvc-parity-message-list .ui0213-message-toolbar:hover {
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}

/* Discord-style VC composer only: Enter sends, Shift+Enter inserts a line
   break. Normal server/DM composers are intentionally untouched. */
.rvc-parity-composer {
  grid-template-columns:32px minmax(0,1fr) auto !important;
  min-height:44px !important;
  padding:5px 7px !important;
}
.rvc-parity-composer textarea {
  min-height:32px !important;
  padding:6px 6px !important;
  font-family:inherit !important;
  font-size:15px !important;
  line-height:20px !important;
}
.rvc-parity-composer .send-button {
  display:none !important;
}
.rvc-parity-tools {
  align-self:center;
}

/* The old interaction owner still knows how to build this placeholder shelf.
   It is retired globally now; the real VC stage owns call content. */
.ui0212-activity-strip,
.ui0212-activity-cards,
.ui0212-activity-card {
  display:none !important;
}

/* Screen/camera media must fill the participant surface rather than existing
   behind the avatar layer. */
.rvc-participant .rvm-tile-media {
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  display:block !important;
  overflow:hidden !important;
  z-index:3 !important;
}
.rvc-participant .rvm-tile-media video {
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  background:#08090c !important;
}
.rvc-participant .rvm-tile-media.screen video {
  object-fit:contain !important;
}
.rvc-participant:has(.rvm-tile-media) > .rvc-participant-bg,
.rvc-participant:has(.rvm-tile-media) > .rvc-avatar {
  opacity:0 !important;
}
.rvc-participant:has(.rvm-tile-media) .rvc-participant-footer {
  z-index:8 !important;
}

html[data-rift-effective-theme='light'] .message-list > .message.rift-message-continuation::before,
html[data-rift-effective-theme='light'] .rvc-parity-message-list > .message.rift-message-continuation::before {
  color:#737c87 !important;
}
html[data-rift-effective-theme='light'] .rvc-parity-message-list .message-text {
  color:#343b44 !important;
}
