.swa-floating { --swa-safe-top: env(safe-area-inset-top, 0px); --swa-safe-bottom: env(safe-area-inset-bottom, 0px); --swa-admin: 0px; position: fixed; z-index: 9990; width: var(--swa-desktop-width); max-width: calc(100vw - min(var(--swa-x), 20vw) - 24px); padding: 0; margin: 0; pointer-events: none; }
.swa-end-marker { display: block; width: auto; height: 1px; min-height: 0; padding: 0; margin: 0; border: 0; overflow: hidden; line-height: 0; pointer-events: none; }
.swa-floating[hidden] { display: none !important; }
.admin-bar .swa-floating { --swa-admin: 32px; }
.swa-top-left, .swa-bottom-left { left: max(env(safe-area-inset-left, 0px), min(var(--swa-x), 20vw)); }
.swa-top-right, .swa-bottom-right { right: max(env(safe-area-inset-right, 0px), min(var(--swa-x), 20vw)); }
.swa-top-left, .swa-top-right { top: calc(min(var(--swa-y), 40vh) + var(--swa-safe-top) + var(--swa-admin)); --swa-available: calc(100vh - min(var(--swa-y), 40vh) - var(--swa-safe-top) - var(--swa-admin) - var(--swa-safe-bottom) - 24px); }
.swa-bottom-left, .swa-bottom-right { bottom: calc(min(var(--swa-y), 40vh) + var(--swa-safe-bottom)); --swa-available: calc(100vh - min(var(--swa-y), 40vh) - var(--swa-safe-bottom) - var(--swa-admin) - var(--swa-safe-top) - 24px); }
.swa-floating .swa-reveal { position: relative; width: 100%; margin: 0; padding: 0; }
.swa-floating .swa-motion { transform-origin: center; }
.swa-floating .swa-link { display: block; line-height: 0; border: 0; background: transparent; pointer-events: auto; }
.swa-floating .swa-image { display: block; width: 100%; height: auto; max-width: 100%; max-height: max(40px, var(--swa-available)); object-fit: contain; margin: 0 auto; border: 0; padding: 0; box-shadow: none; }
.swa-shadow .swa-image { filter: drop-shadow(0 6px 10px rgba(0,0,0,.23)); }
.swa-floating .swa-close { position: absolute; right: -10px; top: -10px; width: 28px; height: 28px; min-width: 28px; min-height: 28px; padding: 0; margin: 0; border: 1px solid #ccc; border-radius: 50%; background: #fff; color: #222; font: 22px/24px Arial,sans-serif; text-align: center; cursor: pointer; pointer-events: auto; box-shadow: 0 2px 4px #0002; }
.swa-floating .swa-link:focus-visible, .swa-floating .swa-close:focus-visible { outline: 3px solid #005fcc; outline-offset: 4px; }
@media (max-width: 1024px) {
 .swa-floating { left: 50%; right: auto; bottom: auto; top: calc(min(var(--swa-tablet-y), 40vh) + var(--swa-safe-top) + var(--swa-admin)); transform: translateX(-50%); width: var(--swa-tablet-width); max-width: calc(100vw - 48px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)); --swa-available: calc(100vh - min(var(--swa-tablet-y), 40vh) - var(--swa-safe-top) - var(--swa-admin) - var(--swa-safe-bottom) - 24px); }
}
@media (max-width: 782px) { .admin-bar .swa-floating { --swa-admin: 46px; } }
@media (max-width: 767px) {
 .swa-floating { width: var(--swa-mobile-width); top: calc(min(var(--swa-mobile-y), 40vh) + var(--swa-safe-top) + var(--swa-admin)); --swa-available: calc(100vh - min(var(--swa-mobile-y), 40vh) - var(--swa-safe-top) - var(--swa-admin) - var(--swa-safe-bottom) - 24px); }
}
.swa-enter-fade { animation: swa-fade .55s ease-out both; }
.swa-enter-slide { animation: swa-slide .65s ease-out both; }
.swa-enter-pop { animation: swa-pop .65s ease-out both; }
.swa-effect-pulse { animation: swa-pulse 1.2s ease-in-out; }
.swa-effect-heat { animation: swa-heat 1.2s ease-in-out; }
.swa-effect-float { animation: swa-float 1.2s ease-in-out; }
.swa-effect-wiggle { animation: swa-wiggle 1.2s ease-in-out; }
@keyframes swa-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes swa-slide { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes swa-pop { from { opacity: 0; transform: scale(.85); } to { opacity: 1; transform: scale(1); } }
@keyframes swa-pulse { 0%,100% { transform: scale(1); } 35% { transform: scale(1.055); } 65% { transform: scale(.985); } }
@keyframes swa-heat { 0%,100% { transform: skewX(0) scale(1); } 25% { transform: skewX(2deg) scale(1.015,.985); } 50% { transform: skewX(-2deg) scale(.99,1.02); } 75% { transform: skewX(1deg) scale(1.01); } }
@keyframes swa-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes swa-wiggle { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 75% { transform: rotate(-1.5deg); } }
@media (prefers-reduced-motion: reduce) { .swa-floating .swa-reveal, .swa-floating .swa-motion { animation: none !important; } }
@media print { .swa-floating { display: none !important; } }
