/* WhatsApp Chat Bubbles v1.1 — + ⋮ menu on own msgs */

.wa-ct-body{background:#efeae2 url("data:image/svg+xml,%3Csvg width='400' height='400' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='p' width='40' height='40' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='20' cy='20' r='1' fill='%23d6cfc4' opacity='.3'/%3E%3Ccircle cx='0' cy='0' r='.8' fill='%23d6cfc4' opacity='.2'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='400' height='400' fill='url(%23p)'/%3E%3C/svg%3E");padding:12px 40px!important}
@media(max-width:768px){.wa-ct-body{padding:8px 12px!important}}

.wa-date-sep{text-align:center;margin:16px 0 8px}
.wa-date-sep span{background:#fff;padding:4px 14px;border-radius:8px;font-size:12px;color:#54656f;box-shadow:0 1px 2px rgba(0,0,0,.08);display:inline-block}

.wa-mr{display:flex;align-items:flex-end;gap:6px;margin-bottom:2px;max-width:85%;position:relative}
.wa-mr-out{margin-left:auto;flex-direction:row-reverse}
.wa-mr-in{margin-right:auto}

.wa-mr-av{width:28px;height:28px;border-radius:50%;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:#dfe5e7;color:#54656f;margin-bottom:4px}
.wa-mr-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.wa-mr-out .wa-mr-av{display:none}

.wa-bub{padding:6px 8px 4px;border-radius:8px;font-size:14.5px;line-height:1.45;word-wrap:break-word;position:relative;min-width:80px;max-width:100%;box-shadow:0 1px 1px rgba(0,0,0,.06)}
.wa-bub-out{background:#d9fdd3;border-radius:8px 0 8px 8px}
.wa-bub-in{background:#fff;border-radius:0 8px 8px 8px}

.wa-bub-sender{font-size:12px;font-weight:600;color:#00a884;margin-bottom:2px;display:block}
.wa-bub-text{white-space:pre-wrap;word-break:break-word}

.wa-bub-meta{display:flex;align-items:center;justify-content:flex-end;gap:3px;margin-top:1px;float:right;margin-left:12px;position:relative;top:4px}
.wa-bub-time{font-size:11px;color:#667781;line-height:1}
.wa-bub-check{color:#53bdeb;font-size:12px;line-height:1}

.wa-bub img.wa-bub-img{max-width:300px;width:100%;border-radius:6px;margin-bottom:4px;display:block}
@media(max-width:768px){.wa-bub img.wa-bub-img{max-width:220px}}

.wa-bub-voice{display:flex;align-items:center;gap:8px;min-width:200px}
.wa-bub-voice-play{width:32px;height:32px;border-radius:50%;background:#00a884;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.wa-bub-voice-wave{flex:1;height:28px;background:repeating-linear-gradient(90deg,#8696a0 0 2px,transparent 2px 4px);border-radius:4px;opacity:.4}

.wa-bub-file{display:flex;align-items:center;gap:10px;padding:8px;background:rgba(0,0,0,.03);border-radius:8px;margin-bottom:4px;cursor:pointer;text-decoration:none;color:inherit}
.wa-bub-file-ico{width:36px;height:36px;border-radius:8px;background:#3b82f6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.wa-bub-file-info{flex:1;min-width:0}
.wa-bub-file-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-bub-file-size{font-size:11px;opacity:.5}

.wa-bub-link{display:block;background:rgba(0,0,0,.03);border-radius:8px;padding:8px;margin-bottom:4px;text-decoration:none;color:inherit;border-left:3px solid #00a884}
.wa-bub-link-title{font-size:13px;font-weight:600;margin-bottom:2px}
.wa-bub-link-url{font-size:12px;color:#00a884;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.wa-sys{text-align:center;margin:8px 0}
.wa-sys span{background:rgba(255,243,205,.9);padding:4px 14px;border-radius:8px;font-size:12px;color:#54656f;box-shadow:0 1px 2px rgba(0,0,0,.06);display:inline-block}

.wa-bub-tail-out{position:relative}
.wa-bub-tail-out::after{content:'';position:absolute;top:0;right:-8px;width:0;height:0;border-left:8px solid #d9fdd3;border-top:8px solid transparent}
.wa-bub-tail-in{position:relative}
.wa-bub-tail-in::after{content:'';position:absolute;top:0;left:-8px;width:0;height:0;border-right:8px solid #fff;border-top:8px solid transparent}

/* ⋮ Menu button on own bubbles */
.wa-bub-menu{position:absolute;top:2px;right:4px;background:none;border:none;cursor:pointer;font-size:16px;color:#667781;opacity:0;transition:opacity .15s;padding:2px 4px;border-radius:4px;line-height:1;z-index:2}
.wa-bub:hover .wa-bub-menu{opacity:.6}
.wa-bub-menu:hover{opacity:1!important;background:rgba(0,0,0,.06)}
/* Mobile: always show on own */
@media(max-width:768px){.wa-bub-out .wa-bub-menu{opacity:.4}}

/* Bubble dropdown menu */
.wa-bub-dd{position:absolute;top:-4px;right:0;background:#fff;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.15);z-index:20;overflow:hidden;min-width:140px}
.wa-mr-out .wa-bub-dd{right:auto;left:0}
.wa-bub-dd button{display:block;width:100%;text-align:left;padding:10px 14px;border:none;background:none;cursor:pointer;font-size:14px;white-space:nowrap}
.wa-bub-dd button:hover{background:#f0f2f5}

.wa-typing-dots{display:flex;gap:3px;padding:8px 12px}
.wa-typing-dots span{width:7px;height:7px;border-radius:50%;background:#8696a0;opacity:.4;animation:wa-dot .6s infinite alternate}
.wa-typing-dots span:nth-child(2){animation-delay:.2s}
.wa-typing-dots span:nth-child(3){animation-delay:.4s}

.wa-scroll-fab{position:absolute;bottom:70px;right:20px;width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15);border:none;cursor:pointer;display:none;align-items:center;justify-content:center;z-index:5;font-size:18px;color:#54656f}
.wa-scroll-fab.visible{display:flex}
