/* El envío se indica en la burbuja y deja libre el cuadro de escritura. */
.crm-local-message { align-self: flex-end; margin: 5px 0; max-width: min(85%, 480px); background: #dcf4e9; border-radius: 12px 12px 3px 12px; padding: 10px 13px; color: #173c36; }
.crm-local-message > p { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0 0 6px; }
.crm-local-message .crm-local-meta { display: flex; gap: 7px; align-items: center; justify-content: flex-end; font-size: 11px; }
.crm-local-spinner, .ib-tick[data-delivery-busy="true"]::before { content: ''; display: inline-block; flex: 0 0 auto; width: 12px; height: 12px; border: 1.5px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: crm-message-send .8s linear infinite; vertical-align: -2px; }
.ib-tick[data-delivery-busy="true"]::before { margin-right: 5px; }
.crm-local-message[data-send-phase="failed"], .crm-local-message[data-send-phase="uncertain"] { background: #fff0e5; color: #6c381b; }
.crm-local-error { display: block; font-size: 12px; margin: 5px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.crm-local-recover { border: 0; padding: 7px 0; color: inherit; font: inherit; font-size: 12px; background: transparent; text-decoration: underline; cursor: pointer; }
.crm-local-preview { display: block; max-height: 160px; max-width: 100%; border-radius: 7px; margin-bottom: 7px; }
.crm-local-note { background: #fff0bc; color: #594711; }
@keyframes crm-message-send { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .crm-local-spinner, .ib-tick[data-delivery-busy="true"]::before { animation: none; } }
