/* Uploads occupy a normal outgoing bubble from the moment Send is pressed. */
.chat-pending-message .chat-bubble{min-width:0}
.chat-pending-files{display:flex;flex-wrap:wrap;gap:6px;width:300px;max-width:100%;min-width:0}
.chat-pending-files+.chat-text{margin-top:10px}
.chat-pending-file{display:flex;flex:1 1 100%;min-width:0;max-width:100%;box-sizing:border-box;flex-direction:column;gap:6px;border:1px solid #cbdcf0;border-radius:8px;padding:9px;background:#f7faff;overflow:hidden}
.chat-pending-file.is-image{flex-basis:calc((100% - 12px)/3);padding:0 0 6px;gap:5px}
.chat-pending-files:not(:has(>.chat-pending-file:not(.is-image))):has(>.is-image:nth-child(3n+1):last-child)>.is-image:nth-last-child(-n+4){flex-basis:calc((100% - 6px)/2)}
.chat-pending-preview{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#e7eef8}
.chat-pending-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#425c7e;line-height:1.4}
.chat-pending-file.is-image .chat-pending-name{padding:0 6px;font-size:10px}
.chat-upload-progress{display:block;width:100%;height:5px;min-height:5px;flex:none;border:0;border-radius:4px;overflow:hidden;appearance:none;-webkit-appearance:none;background:#d8e4f3;accent-color:#347bd8}
.chat-upload-progress::-webkit-progress-bar{background:#d8e4f3;border-radius:4px}
.chat-upload-progress::-webkit-progress-value{background:#347bd8;border-radius:4px}
.chat-upload-progress::-moz-progress-bar{background:#347bd8;border-radius:4px}
.chat-pending-file.is-image .chat-upload-progress{width:calc(100% - 12px);margin:0 6px}
.chat-upload-percent{display:block;color:#57769a;font-size:10px;font-variant-numeric:tabular-nums;line-height:1;text-align:right;min-height:10px}
.chat-pending-file.is-image .chat-upload-percent{padding:0 6px}
.chat-pending-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;min-height:28px;flex-wrap:wrap}
.chat-pending-actions button{padding:5px 9px;border:1px solid #c5d6ee;border-radius:6px;background:#fff;color:#3c638d;font-size:11px;line-height:1.4;cursor:pointer}
.chat-pending-actions button:hover{background:#f1f6fe}
.chat-pending-actions button:focus-visible{outline:2px solid #3974bd;outline-offset:2px}
.chat-pending-actions button[hidden]{display:none}
.chat-pending-message.is-failed .chat-bubble{border-color:#e4b4b4}
.chat-pending-message.is-failed .chat-upload-progress{accent-color:#b85757}
.chat-pending-message.is-failed .chat-upload-progress::-webkit-progress-value{background:#b85757}
.chat-pending-message.is-failed .chat-upload-progress::-moz-progress-bar{background:#b85757}
.chat-pending-message .chat-error{font-size:11px;line-height:1.5;margin-top:8px;max-width:300px;overflow-wrap:anywhere}
/* Keep a cancellation control available without inserting a live status strip. */
.chat-reply-navigation{position:absolute;right:18px;bottom:160px;padding:0;background:transparent;border:0;z-index:2}
.chat-send-status{display:none}
@media(max-width:620px){.chat-pending-actions button{font-size:10px}.chat-reply-navigation{right:12px;bottom:160px}}
