.tw-wa { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 90; display: flex; flex-direction: column; align-items: flex-end; gap: .75rem; font-family: Poppins, system-ui, sans-serif; }
.tw-wa-button { width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; background: #25d366; color: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.35); position: relative; transition: transform .25s; }
.tw-wa-button::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid #25d366; animation: tw-wa-pulse 2.4s ease-out infinite; }
.tw-wa-button:hover { transform: scale(1.06); }
.tw-wa-button:focus-visible { outline: 3px solid #f39c2c; outline-offset: 3px; }
.tw-wa-bubble { position: relative; max-width: 240px; background: #f7f7f4; color: #1b1b1f; padding: .9rem 2.2rem .9rem 1rem; box-shadow: 0 10px 30px rgba(0,0,0,.3); border-left: 3px solid #f39c2c; animation: tw-wa-in .5s ease-out both; }
.tw-wa-bubble[hidden] { display: none; }
.tw-wa-status { margin: 0 0 .2rem; font-size: .72rem; color: #5a5a60; display: flex; align-items: center; gap: .35rem; }
.tw-wa-dot { width: 8px; height: 8px; border-radius: 50%; background: #25d366; display: inline-block; }
.tw-wa-text { margin: 0; font-weight: 600; font-size: .95rem; }
.tw-wa-close { position: absolute; top: .25rem; right: .35rem; background: none; border: 0; font-size: 1.2rem; line-height: 1; cursor: pointer; color: #5a5a60; padding: .25rem; }
.tw-wa-close:focus-visible { outline: 2px solid #f39c2c; }
@keyframes tw-wa-pulse { from { transform: scale(1); opacity: .7; } to { transform: scale(1.5); opacity: 0; } }
@keyframes tw-wa-in { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) { .tw-wa-button::before, .tw-wa-bubble { animation: none; } }
@media print { .tw-wa { display: none; } }
