#wa-fab-wrap {
    position: fixed;
    bottom: 90px;
    right: 20px;
    z-index: 99999;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
#wa-fab-btn {
    width: 62px; height: 62px;
    background: linear-gradient(135deg, #25d366 0%, #128c48 100%);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    box-shadow: 0 6px 24px rgba(37,211,102,0.55);
    transition: transform .2s, box-shadow .2s;
    border: none; outline: none;
    position: relative;
}
#wa-fab-btn:hover { transform: scale(1.08); box-shadow: 0 10px 32px rgba(37,211,102,0.60); }
#wa-fab-btn img { width: 34px; height: 34px; object-fit: contain; display: block; }
#wa-fab-tooltip {
    position: absolute;
    right: 72px; bottom: 16px;
    background: #1a2b4b;
    color: #fff;
    font-size: 12px; font-weight: 600;
    padding: 7px 13px;
    border-radius: 8px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
    box-shadow: 0 4px 14px rgba(0,0,0,.25);
}
#wa-fab-tooltip::after {
    content:"";
    position:absolute; right:-7px; top:50%;
    transform:translateY(-50%);
    border:5px solid transparent;
    border-left-color:#1a2b4b;
}
#wa-fab-wrap:hover #wa-fab-tooltip { opacity:1; }

/* ── Panel flotante ── */
#wa-panel {
    position: absolute;
    bottom: 74px; right: 0;
    width: 310px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 16px 56px rgba(0,48,135,.18);
    border: 1px solid #e2e8f0;
    overflow: hidden;
    transform-origin: bottom right;
    transform: scale(0.85) translateY(12px);
    opacity: 0;
    pointer-events: none;
    transition: transform .22s cubic-bezier(.34,1.56,.64,1), opacity .18s;
}
#wa-panel.wa-open {
    transform: scale(1) translateY(0);
    opacity: 1;
    pointer-events: all;
}
#wa-panel-header {
    background: linear-gradient(135deg, #f58220 0%, #d96b12 100%);
    padding: 18px 20px 15px;
    display: flex; align-items: center; gap: 11px;
}
#wa-panel-avatar {
    width: 40px; height: 40px;
    background: rgba(255,255,255,.18);
    border-radius: 50%;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
}
#wa-panel-avatar svg { width:22px; height:22px; }
#wa-panel-title { color:#fff; font-size:14px; font-weight:700; line-height:1.3; }
#wa-panel-sub { color:rgba(255,255,255,.72); font-size:11.5px; }
#wa-panel-close {
    margin-left:auto; background:none; border:none;
    color:rgba(255,255,255,.7); font-size:20px; cursor:pointer;
    line-height:1; padding:0; width:24px; height:24px;
    display:flex; align-items:center; justify-content:center;
    border-radius:4px; transition: background .15s;
}
#wa-panel-close:hover { background:rgba(255,255,255,.15); color:#fff; }
#wa-panel-body { padding: 18px 18px 18px; }
#wa-panel-lead {
    font-size:13px; color:#374151; line-height:1.55; margin-bottom:16px;
}
#wa-panel-qr-wrap {
    display:flex; flex-direction:column; align-items:center; gap:6px;
    background:#f8fafc; border:1px solid #e2e8f0;
    border-radius:12px; padding:14px; margin-bottom:14px;
}
#wa-panel-qr-wrap img { width:128px; height:128px; border-radius:4px; }
#wa-panel-qr-caption { font-size:11px; color:#8a9ab5; text-align:center; }
#wa-panel-cta {
    display:flex; align-items:center; justify-content:center; gap:9px;
    background: linear-gradient(135deg,#25d366 0%,#1da851 100%);
    color:#fff !important; text-decoration:none !important;
    font-size:14px; font-weight:700;
    padding:13px 18px; border-radius:10px;
    box-shadow:0 4px 14px rgba(37,211,102,.35);
    transition:transform .15s, box-shadow .15s;
    width:100%; box-sizing:border-box;
}
#wa-panel-cta:hover {
    transform:translateY(-2px);
    box-shadow:0 8px 22px rgba(37,211,102,.42);
    color:#fff !important;
}
#wa-panel-cta img { width:20px; height:20px; object-fit: contain; display: block; flex-shrink:0; }
#wa-panel-footer {
    padding:10px 18px;
    background:#f8fafc;
    border-top:1px solid #e2e8f0;
    display:flex; align-items:center; gap:7px;
}
#wa-panel-footer span { font-size:11px; color:#8a9ab5; }
.wa-online-dot {
    width:7px; height:7px; border-radius:50%; background:#25d366;
    animation: wa-pulse 2s infinite; flex-shrink:0;
}
@keyframes wa-pulse { 0%,100%{opacity:1} 50%{opacity:.3} }