.pswa-widget {
    align-items: center;
    background: var(--pswa-bg);
    border-radius: 999px;
    bottom: var(--pswa-offset-y);
    box-shadow: 0 3px 12px rgba(0, 0, 0, .2);
    color: var(--pswa-text);
    display: flex;
    height: var(--pswa-size);
    justify-content: center;
    position: fixed;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
    width: var(--pswa-size);
    z-index: var(--pswa-z-index);
}

.pswa-widget:hover,
.pswa-widget:focus {
    box-shadow: 0 5px 18px rgba(0, 0, 0, .3);
    color: var(--pswa-text);
    text-decoration: none;
    transform: scale(1.06);
}

.pswa-position-top-left { left: var(--pswa-offset-x); top: var(--pswa-offset-y); bottom: auto; }
.pswa-position-top-center { left: 50%; top: var(--pswa-offset-y); bottom: auto; transform: translateX(-50%); }
.pswa-position-top-right { right: var(--pswa-offset-x); top: var(--pswa-offset-y); bottom: auto; }
.pswa-position-bottom-left { left: var(--pswa-offset-x); }
.pswa-position-bottom-center { left: 50%; transform: translateX(-50%); }
.pswa-position-bottom-right { right: var(--pswa-offset-x); }

.pswa-position-top-center:hover,
.pswa-position-top-center:focus,
.pswa-position-bottom-center:hover,
.pswa-position-bottom-center:focus {
    transform: translateX(-50%) scale(1.06);
}

.pswa-icon { height: 62%; width: 62%; }
.pswa-with-text { gap: 8px; padding: 0 18px; width: auto; }
.pswa-with-text .pswa-icon { height: 24px; width: 24px; }
.pswa-label { color: var(--pswa-text); font-size: 14px; font-weight: 600; white-space: nowrap; }
.pswa-device-desktop { display: none; }

.pswa-animated { animation: pswa-pulse 2.5s infinite; }

@keyframes pswa-pulse {
    0%, 100% { box-shadow: 0 3px 12px rgba(0, 0, 0, .2); }
    50% { box-shadow: 0 3px 12px rgba(0, 0, 0, .2), 0 0 0 8px rgba(37, 211, 102, .16); }
}

@media (min-width: 768px) {
    .pswa-device-mobile { display: none; }
    .pswa-device-desktop { display: flex; }
}

@media (prefers-reduced-motion: reduce) {
    .pswa-animated { animation: none; }
    .pswa-widget { transition: none; }
}

@media (max-width: 480px) {
    .pswa-with-text { padding: 0 14px; }
    .pswa-label { font-size: 12px; }
}
