/* delivery status and media in the thread (live data the prototype had no styles for) */
.w-ack{margin-left:6px;font-size:.75rem;color:var(--muted);letter-spacing:-.08em}
.w-ack.read{color:var(--act,#5b3fa0)}
.w-media{display:block;margin:4px 0;max-width:min(320px,100%)}
.w-media img{display:block;max-width:100%;border-radius:10px;border:1px solid var(--line)}
audio.w-media{width:min(320px,100%)}
a.w-media.lnk{display:inline-flex;align-items:center;gap:6px}
.w-msg.st .w-media,.w-msg.ai .w-media{margin-left:auto}
/* failed sends: one quiet, expandable row per turn instead of a red label on every bubble */
.w-fail{align-self:center;max-width:min(520px,92%);margin:4px auto;font-size:.8125rem;color:var(--muted)}
.w-fail-h{display:flex;align-items:center;gap:6px;background:none;border:1px dashed var(--line);border-radius:999px;padding:3px 12px;color:inherit;font:inherit;cursor:pointer;max-width:100%}
.w-fail-h>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.w-fail-h[aria-expanded="true"] .w-chev{transform:rotate(180deg)}
.w-fail-b{display:grid;gap:6px;margin-top:6px;padding:8px 12px;border-left:2px solid var(--line)}
.w-fail-m>div{color:var(--ink,inherit);white-space:pre-wrap}
