.aaa-wd-wrap{
    position:fixed;
    bottom:var(--aaa-bottom,24px);
    z-index:999999;
    display:flex;
    flex-direction:column;
    gap:var(--aaa-gap,14px);
    align-items:center;
    pointer-events:none;
}
.aaa-wd-right{right:var(--aaa-side-offset,18px)}
.aaa-wd-left{left:var(--aaa-side-offset,18px)}
.aaa-wd-item{
    pointer-events:auto;
    display:flex;
    justify-content:center;
    width:var(--aaa-icon-size,52px);
    flex:0 0 auto;
    position:relative;
    overflow:visible;
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
.aaa-wd-link{
    display:flex;
    flex-direction:column;
    align-items:center;
    width:var(--aaa-icon-size,52px);
    min-height:var(--aaa-icon-size,52px);
    text-decoration:none!important;
    outline:none;
    position:relative;
    overflow:visible;
}
.aaa-wd-icon{
    width:var(--aaa-icon-size,52px);
    height:var(--aaa-icon-size,52px);
    border-radius:999px;
    display:grid;
    place-items:center;
    background:var(--aaa-icon-bg-alpha,var(--aaa-icon-bg,#25D366));
    color:var(--aaa-icon-color,#fff);
    border:1px solid transparent;
    box-shadow:0 5px 16px rgba(0,0,0,.2);
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
    position:relative;
    z-index:2;
    overflow:hidden;
    isolation:isolate;
}
.aaa-wd-svg{
    width:58%;
    height:58%;
    display:block;
    position:relative;
    z-index:3;
    filter:drop-shadow(0 1px 1px rgba(0,0,0,.14));
}
.aaa-wd-label{
    margin-top:-6px;
    padding:8px 9px 6px;
    border-radius:5px;
    background:var(--aaa-label-bg,#0F2D3F);
    color:var(--aaa-label-color,#fff);
    font-size:var(--aaa-font-size,12px);
    line-height:1.1;
    font-weight:600;
    white-space:nowrap;
    max-width:min(240px,78vw);
    text-align:center;
    box-shadow:0 2px 7px rgba(0,0,0,.18);
    position:relative;
    z-index:1;
}

/*
 * IMPORTANTE: el ancho del item queda fijado al diámetro del icono.
 * Así un texto largo ya no mueve el eje horizontal del botón y los
 * iconos se mantienen alineados con cualquier otra columna flotante.
 */
.aaa-wd-label-below .aaa-wd-label{
    align-self:center;
}
.aaa-wd-label-left .aaa-wd-label,
.aaa-wd-label-right .aaa-wd-label{
    position:absolute;
    top:50%;
    margin:0;
    transform:translateY(-50%);
    z-index:3;
}
.aaa-wd-label-left .aaa-wd-label{
    right:calc(100% + 10px);
}
.aaa-wd-label-right .aaa-wd-label{
    left:calc(100% + 10px);
}

/* Glass / cristal */
.aaa-wd-glass .aaa-wd-icon{
    background:
        linear-gradient(145deg,rgba(255,255,255,.34) 0%,rgba(255,255,255,.11) 34%,rgba(255,255,255,.02) 58%,rgba(0,0,0,.12) 100%),
        var(--aaa-icon-bg-alpha,var(--aaa-icon-bg,#25D366));
    border-color:rgba(255,255,255,.42);
    -webkit-backdrop-filter:blur(8px) saturate(150%);
    backdrop-filter:blur(8px) saturate(150%);
}
.aaa-wd-glass .aaa-wd-icon::before{
    content:"";
    position:absolute;
    z-index:1;
    left:14%;
    right:14%;
    top:8%;
    height:36%;
    border-radius:999px 999px 70% 70%;
    background:linear-gradient(to bottom,rgba(255,255,255,.55),rgba(255,255,255,0));
    pointer-events:none;
}

/* 3D / relieve */
.aaa-wd-3d .aaa-wd-icon{
    box-shadow:
        inset 0 2px 2px rgba(255,255,255,.52),
        inset 0 -5px 9px rgba(0,0,0,.24),
        inset 3px 0 7px rgba(255,255,255,.10),
        0 7px 15px rgba(0,0,0,.30),
        0 2px 3px rgba(0,0,0,.22);
}
.aaa-wd-3d .aaa-wd-svg{
    filter:drop-shadow(0 2px 1px rgba(0,0,0,.28));
}

.aaa-wd-link:hover .aaa-wd-icon,
.aaa-wd-link:focus-visible .aaa-wd-icon{
    transform:translateY(-2px) scale(1.05);
    box-shadow:0 8px 22px rgba(0,0,0,.30);
    filter:brightness(1.04);
}
.aaa-wd-3d .aaa-wd-link:hover .aaa-wd-icon,
.aaa-wd-3d .aaa-wd-link:focus-visible .aaa-wd-icon{
    box-shadow:
        inset 0 2px 2px rgba(255,255,255,.56),
        inset 0 -5px 9px rgba(0,0,0,.24),
        0 10px 22px rgba(0,0,0,.34);
}
.aaa-wd-link:focus-visible .aaa-wd-icon{outline:3px solid rgba(0,0,0,.2);outline-offset:2px}

/* Clase temporal disparada por JS cada ~10 s */
.aaa-wd-item.aaa-wd-pulse .aaa-wd-icon{
    animation:aaaWdWiggle .95s ease-in-out;
}
.aaa-wd-item.aaa-wd-pulse .aaa-wd-icon::after{
    content:"";
    position:absolute;
    inset:-2px;
    border-radius:inherit;
    border:2px solid var(--aaa-icon-bg,#25D366);
    opacity:0;
    animation:aaaWdWave 1.25s ease-out;
    z-index:4;
}
@keyframes aaaWdWiggle{
    0%,100%{transform:rotate(0deg) scale(1)}
    20%{transform:rotate(-5deg) scale(1.03)}
    40%{transform:rotate(5deg) scale(1.04)}
    60%{transform:rotate(-3deg) scale(1.03)}
    80%{transform:rotate(2deg) scale(1.01)}
}
@keyframes aaaWdWave{
    0%{transform:scale(1);opacity:.45}
    100%{transform:scale(1.45);opacity:0}
}
@media (prefers-reduced-motion:reduce){
    .aaa-wd-item.aaa-wd-pulse .aaa-wd-icon,
    .aaa-wd-item.aaa-wd-pulse .aaa-wd-icon::after{animation:none!important}
}
@media(max-width:480px){
    .aaa-wd-label{max-width:70vw}
}
