/*
 * Independent presentation contract for the owner's existing message rows.
 * DOM order and message data remain unchanged; only grid placement is mirrored.
 */
.message[data-sender="user"] {
  grid-template-columns: minmax(0, 1fr) 38px;
}

.message[data-sender="user"] > .avatar {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
}

.message[data-sender="user"] > :not(.avatar) {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  text-align: right;
}

.message[data-sender="user"] .meta {
  justify-content: flex-end;
  text-align: right;
}

.message[data-sender="user"] .bubble {
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  text-align: left;
  border-radius: 15px 4px 15px 15px;
  overflow-wrap: anywhere;
}

.message[data-sender="user"] .shots {
  min-width: 0;
  max-width: 100%;
  text-align: left;
}

.message[data-sender="user"] .shot {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 828px) {
  .message[data-sender="user"] {
    grid-template-columns: minmax(0, 1fr) 38px;
    max-width: 100%;
  }

  .message[data-sender="user"] > :not(.avatar),
  .message[data-sender="user"] .bubble {
    min-width: 0;
    max-width: 100%;
  }
}

@media (max-width: 375px) {
  .message[data-sender="user"] {
    column-gap: 10px;
  }
}
