.message-actions, .message-reactions, .message-inline-controls { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem; margin-block-start:.45rem; }
.message-bubble-footer { display:flex; align-items:center; flex-wrap:wrap; gap:0 .4rem; margin-block-start:.1rem; }
.message-bubble-footer > .message-actions { flex:1; min-inline-size:0; }
.message-bubble-footer > :is(.message-actions, .message-reactions) { margin-block-start:0; }
.message-action-button, .message-actions summary { border:1px solid transparent; border-radius:.5rem; background:transparent; color:inherit; font:inherit; font-size:.72rem; padding:.25rem .45rem; cursor:pointer; }
.message-action-button:hover, .message-actions summary:hover, .message-action-button[aria-pressed="true"] { background:var(--card-soft, #edf2f7); color:var(--text, #182234); }
.message-action-button:focus-visible, .message-actions summary:focus-visible { outline:2px solid var(--accent, #456cff); outline-offset:2px; }
.message-actions summary { list-style:none; }
.message-actions summary::-webkit-details-marker { display:none; }
.message-action-menu { position:relative; }
.message-action-choices { position:absolute; inset-block-end:calc(100% + .25rem); inset-inline-end:0; z-index:4; padding:.5rem; min-inline-size:8rem; border:1px solid var(--border, #ccd5e0); border-radius:.6rem; background:var(--card, #fff); color:var(--text, #182234); box-shadow:0 .3rem 1rem #15233b20; }
.message-action-choices { display:grid; gap:.25rem; max-inline-size:12rem; }
.message-action-choices p { font-size:.75rem; margin:0 0 .3rem; }
/* The portal clears feed clipping; native popovers also clear modal dialogs. */
.message-reaction-picker { display:flex; flex:none; order:1; margin-inline-start:auto; }
.message-action-button.is-danger, .message-action-status { color:var(--danger, #b42335); }
.message-reactions .message-action-button { border-color:var(--border, #cdd6e2); border-radius:2rem; }
.message-action-status { font-size:.75rem; margin-block:.4rem 0; }
.message-edit-form { min-inline-size:min(14rem, 100%); margin-block:.5rem; }
.message-edit-form label { display:grid; gap:.4rem; font-size:.75rem; inline-size:100%; }
.message-edit-form textarea { inline-size:100%; min-block-size:5rem; font-size:.85rem; }
.message-deleted-text { font-style:italic; opacity:.75; }
.message-edited-label { margin-inline-end:.5rem; opacity:.7; font-size:.65rem; }
.message-quoted-reply, .message-reply-context { border-inline-start:3px solid var(--accent, #456cff); border-radius:.25rem; background:#64748b0d; padding:.45rem .65rem; margin:.4rem 0; font-size:.75rem; overflow-wrap:anywhere; }
.message-quoted-reply strong, .message-quoted-reply span { display:block; }
.message-quoted-reply span { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.message-reply-context { display:flex; gap:.5rem; align-items:center; }
.message-reply-context > span { flex:1; min-inline-size:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.message-reply-context[hidden] { display:none; }
@media (max-width:767.98px) {
    .message-action-button, .message-actions summary { min-block-size:44px; min-inline-size:44px; display:inline-flex; align-items:center; justify-content:center; }
}
@media (max-width:480px) { .message-action-choices { inset-inline-end:auto; inset-inline-start:0; } }
