/* Shared chat presentation additions, scoped to the released floating dock. */
.dm-mini-messages { overflow-anchor:none; }
.dm-mini-row .dm-mini-bubble.is-emoji-only { padding:3px 0; background:transparent!important; box-shadow:none!important; line-height:1.18; }
.dm-mini-message-time { display:block; align-self:stretch; text-align:center; margin:3px 2px; font-size:10px; color:var(--text-muted,#92929e); }
.dm-mini-message-time[hidden] { display:none!important; }
button.dm-mini-seen-row { border:0; background:none; padding:2px; cursor:pointer; font:inherit; }
.dm-mini-bubble-wrap > .chat-send-state { display:flex; align-self:flex-end; margin:2px 0; }
.dm-mini-avatar { position:relative; overflow:visible!important; }
.dm-mini-avatar > img { border-radius:50%; }
[data-dock-status-peer] > .chat-status-dot { position:absolute; right:-2px; bottom:-1px; }
.dm-mini-header-label { display:flex; flex-direction:column; min-width:0; text-align:left; }
.dm-mini-status-text { font-size:10px; font-weight:400; color:var(--text-muted,#92929e); }
.dm-mini-status-text:empty { display:none; }
.dm-mini-row.is-new-incoming { animation:chatDockIncoming .24s ease-out; }
@keyframes chatDockIncoming { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { .dm-mini-row.is-new-incoming { animation:none; } }

/* Compact conversation rhythm, with time available only on request. */
.dm-mini-messages > .dm-mini-row { margin-top:8px; }
.dm-mini-messages > .dm-mini-row:is(.is-run-mid,.is-run-last) { margin-top:2px; }
.dm-mini-messages > .dm-mini-date-divider + .dm-mini-row,
.dm-mini-messages > .dm-mini-unread-divider + .dm-mini-row,
.dm-mini-messages > .dm-mini-row:first-child { margin-top:0; }
.dm-mini-bubble-wrap { gap:2px; }
.dm-mini-message-time { margin:3px 0 5px; font-size:10px; line-height:14px; }
.dm-mini-row .chat-message-line { align-items:flex-end; }
.dm-mini-row .dm-mini-bubble-with-reactions {
  position:relative; z-index:1; display:flex; flex-direction:column;
  width:fit-content; max-width:100%; min-width:0;
}
.dm-mini-row .chat-reply-preview { padding:7px 10px 14px; border-radius:13px; }
.dm-mini-row .chat-reply-label { margin:0 6px 4px; line-height:14px; }
.dm-mini-row .chat-reply-context { padding-top:2px; }
.dm-mini-row .chat-message-anchor .dm-mini-bubble-reactions { flex-shrink:0; }

/* Small visible controls retain a comfortable target without a circular fill. */
.dm-mini-header { gap:2px; padding:5px 6px; min-height:48px; }
.dm-mini-header .dm-mini-peek { flex:1; gap:8px; padding:3px 4px; }
.dm-mini-header .dm-mini-spacer { display:none; }
.dm-mini-header > button:not(.dm-mini-peek):not(.dm-mini-back) {
  flex:0 0 30px; width:30px; height:32px; padding:0;
  border:0; border-radius:6px; background:transparent;
}
.dm-mini-header > button:not(.dm-mini-peek):not(.dm-mini-back):hover {
  background:transparent; color:var(--accent-primary);
}
.dm-mini-header > button svg { width:15px; height:15px; }
.dm-mini-header .dm-mini-name { font-size:14px; line-height:20px; }
.dm-mini-header button:focus-visible { outline:2px solid var(--accent-primary); outline-offset:-2px; }
.dm-mini-composer { padding:8px; gap:4px; border-top:1px solid var(--border-color,#eeeaf3); }
.dm-mini-composer :is(.dm-mini-attach,.dm-mini-gift,.dm-mini-send) {
  width:32px; height:32px; flex-shrink:0; padding:6px;
  background:transparent; color:var(--accent-primary); border:0; box-shadow:none;
}
.dm-mini-composer :is(.dm-mini-attach,.dm-mini-gift,.dm-mini-send) svg { width:20px; height:20px; }
.dm-mini-composer :is(.dm-mini-attach,.dm-mini-gift,.dm-mini-send):hover { background:var(--accent-soft); }
.dm-mini-input-wrap { border-radius:18px; }
.dm-mini-composer :is(.dm-mini-attach-wrap,.dm-mini-gift,.dm-mini-send) { margin-bottom:2px; }
.dm-mini-input-wrap .dm-mini-emoji { flex:0 0 30px; height:36px; margin-right:2px; }
@media (pointer:coarse) {
  .dm-mini-header > button:not(.dm-mini-peek):not(.dm-mini-back) { flex-basis:34px; width:34px; height:36px; }
  .dm-mini-composer :is(.dm-mini-attach,.dm-mini-gift,.dm-mini-send) { width:36px; height:36px; }
}

.dm-mini-avatar-bubble-btn { position:relative; overflow:visible; }
.dm-mini-avatar-unread {
  position:absolute; bottom:-2px; right:-3px; min-width:18px; height:18px;
  padding:0 4px; display:grid; place-items:center; border:2px solid var(--card-bg,#fff);
  border-radius:12px; background:var(--accent-primary); color:#fff; font:600 10px/1 Inter,sans-serif;
}
.dm-mini-new-messages { max-width:calc(100% - 24px); white-space:nowrap; }

/* Fading does not distort the message coordinates used by scroll restoration. */
.dm-mini-chat { animation:chatPopupAppear 140ms ease-out; }
@keyframes chatPopupAppear { from { opacity:0; } to { opacity:1; } }
.dm-mini-chat.is-restored { animation:none; }
@media (prefers-reduced-motion:reduce) { .dm-mini-chat { animation:none; } }
.dm-mini-avatar > .dm-dock-initials { border-radius:50%; }
.dm-mini-messages > .dm-mini-row.is-theirs + .dm-mini-row.is-mine,
.dm-mini-messages > .dm-mini-row.is-mine + .dm-mini-row.is-theirs { margin-top:8px; }
.dm-mini-avatar-bubble-btn > :is(img,.dm-dock-initials) { border-radius:50%; }
body:not(.light) .dm-mini-row.is-theirs .dm-mini-bubble:not(.is-deleted):not(.is-emoji-only) {
  background:color-mix(in srgb,var(--accent-primary) 10%,#343440); color:#f3f1f8;
}
body:not(.light) .dm-mini-header > button:not(.dm-mini-peek):not(.dm-mini-back) { color:#b8b3c7; }
body:not(.light) .dm-mini-header > button:not(.dm-mini-peek):not(.dm-mini-back):hover { background:transparent; color:var(--accent-light); }
body:not(.light) .dm-mini-chat .dm-mini-input { color:#f3f1f8; }
body:not(.light) .dm-mini-chat .dm-mini-input::placeholder { color:#b8b3c7; }

/* Body-level positioning keeps the hover time clear of the scrolling clip. */
.dm-mini-hover-time {
  position:fixed; z-index:11000; pointer-events:none;
  max-width:calc(100vw - 16px); padding:5px 8px; border-radius:6px;
  background:#272333; color:#fff; box-shadow:0 2px 8px #0002;
  font:500 11px/16px Inter,sans-serif; white-space:normal;
}
body:not(.light) .dm-mini-hover-time { background:#efedf5; color:#211c30; }

/* Receipts belong below the message, independently of sender alignment. */
.dm-mini-row { row-gap:2px; }
.dm-mini-row > .dm-mini-seen-row { grid-column:1 / -1; justify-self:end; margin:0; }
.chat-mention { border:0; padding:0; background:none; font:inherit; font-weight:600; color:inherit; cursor:pointer; }
.chat-mention:hover { text-decoration:underline; }
.chat-mention:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
/* Outgoing mentions retain the bubble's contrasting text color in both themes. */
.dm-mini-row.is-mine .chat-mention,
.dm-bubble-row.mine .chat-mention { color:inherit; }
