/* Shared message-extra styles: reply quotes, reaction pills, voice bubbles.
   Used by index.html (editor) and chat.html (viewer). Editor-only styles
   (.reply-bar, .reaction-add, .reaction-picker) stay in index.html. */

.reply-quote {
    font-size: 0.78rem;
    padding: 5px 10px;
    border-left: 3px solid rgba(79, 172, 254, 0.6);
    background: rgba(79, 172, 254, 0.08);
    border-radius: 6px;
    cursor: pointer;
    color: #666;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    margin-bottom: 4px;
    transition: background 0.2s;
}
.reply-quote:hover { background: rgba(79, 172, 254, 0.18); }
.message.right .reply-quote {
    border-left-color: rgba(255,255,255,0.5);
    background: rgba(255,255,255,0.15);
    color: rgba(255,255,255,0.85);
}
.message.right .reply-quote:hover { background: rgba(255,255,255,0.25); }

.reactions {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 4px;
}
.message.right .reactions { justify-content: flex-end; }
.reaction-pill {
    background: rgba(0,0,0,0.07);
    border: 1px solid rgba(0,0,0,0.1);
    border-radius: 12px;
    padding: 1px 7px;
    font-size: 0.82rem;
    cursor: default;
    transition: background 0.2s;
    user-select: none;
}
.reaction-pill.clickable { cursor: pointer; }
.reaction-pill.clickable:hover { background: rgba(0,0,0,0.14); }

.voice-bubble {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.voice-bubble audio {
    width: 100%;
    min-width: 200px;
    height: 32px;
    border-radius: 8px;
    outline: none;
}
.transcript-toggle {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.78rem;
    opacity: 0.7;
    padding: 0;
    text-align: left;
    color: inherit;
}
.transcript-toggle:hover { opacity: 1; }
.voice-transcript {
    font-size: 0.82rem;
    opacity: 0.85;
    border-left: 3px solid rgba(0,0,0,0.15);
    padding: 4px 8px;
    border-radius: 4px;
    background: rgba(0,0,0,0.05);
    white-space: pre-wrap;
}
