.swwa{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:99980;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#25d366;color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.28);text-decoration:none;transition:transform .2s}
.swwa--right{right:20px}
.swwa--left{left:20px}
.swwa:hover{transform:scale(1.08);color:#fff}
.swwa--img{background:transparent;box-shadow:none}
.swwa img{display:block;width:100%;height:100%;object-fit:contain;border-radius:0}
.swwa::before{content:"";position:absolute;inset:0;border-radius:50%;background:#25d366;opacity:.45;z-index:-1;animation:swwa-pulse 2.2s ease-out infinite}
.swwa--img::before{display:none}
.swwa__tip{position:absolute;top:50%;transform:translateY(-50%);white-space:nowrap;background:#1f2937;color:#fff;font-size:.78rem;font-weight:600;line-height:1;padding:9px 12px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .2s}
.swwa--right .swwa__tip{right:72px}
.swwa--left .swwa__tip{left:72px}
.swwa:hover .swwa__tip{opacity:1}
@keyframes swwa-pulse{0%{transform:scale(1);opacity:.45}100%{transform:scale(1.6);opacity:0}}
@media (prefers-reduced-motion:reduce){.swwa::before{animation:none;display:none}}
@media (max-width:782px){
  .swwa{width:54px;height:54px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  .swwa--right{right:14px}.swwa--left{left:14px}
  .swwa__tip{display:none}
}
