.aassb-wrap,
.aassb-wrap * {
	box-sizing: border-box;
}

.aassb-wrap {
	--aassb-bg: #475569;
	--aassb-color: #ffffff;
	display: flex;
	gap: var(--aassb-gap, 10px);
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.aassb-floating {
	position: fixed;
	z-index: var(--aassb-z-index, 99999);
	opacity: 0;
	visibility: hidden;
	transition: opacity 180ms ease, visibility 180ms ease;
}

.aassb-floating.aassb-ready {
	opacity: 1;
	visibility: visible;
}

.aassb-inline {
	position: static;
	flex-wrap: wrap;
}

.aassb-layout-vertical {
	flex-direction: column;
}

.aassb-layout-horizontal {
	flex-direction: row;
	flex-wrap: wrap;
	max-width: calc(100vw - 24px);
}

.aassb-pos-left-middle {
	left: var(--aassb-desktop-left, 24px);
	top: calc(50% - var(--aassb-desktop-bottom, 32px));
	bottom: auto;
	transform: translateY(-50%);
}

.aassb-pos-right-middle {
	right: var(--aassb-desktop-right, 24px);
	top: calc(50% - var(--aassb-desktop-bottom, 32px));
	bottom: auto;
	transform: translateY(-50%);
}

.aassb-pos-left-bottom {
	left: var(--aassb-desktop-left, 24px);
	bottom: var(--aassb-desktop-bottom, 32px);
}

.aassb-pos-right-bottom {
	right: var(--aassb-desktop-right, 24px);
	bottom: var(--aassb-desktop-bottom, 32px);
}

.aassb-pos-bottom-center {
	left: 50%;	
	bottom: var(--aassb-desktop-bottom, 32px);
	transform: translateX(-50%);
}

.aassb-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--aassb-size, 52px);
	height: var(--aassb-size, 52px);
	min-width: var(--aassb-size, 52px);
	min-height: var(--aassb-size, 52px);
	border-radius: var(--aassb-radius, 999px);
	background: var(--aassb-bg, #475569);
	color: var(--aassb-color, #ffffff) !important;
	box-shadow: 0 12px 26px rgba(15, 23, 42, 0.20);
	text-decoration: none !important;
	outline: none;
	transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
	-webkit-tap-highlight-color: transparent;
}

.aassb-button:hover,
.aassb-button:focus-visible {
	transform: translateY(-2px) scale(1.06);
	box-shadow: 0 16px 34px rgba(15, 23, 42, 0.28);
	filter: brightness(1.03);
}

.aassb-button:focus-visible {
	outline: 3px solid rgba(14, 165, 233, 0.35);
	outline-offset: 3px;
}

.aassb-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--aassb-icon-size, 24px);
	height: var(--aassb-icon-size, 24px);
	color: currentColor;
}

.aassb-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
}

.aassb-tooltip {
	position: absolute;
	z-index: 2;
	pointer-events: none;
	white-space: nowrap;
	max-width: 220px;
	overflow: hidden;
	text-overflow: ellipsis;
	padding: 7px 10px;
	border-radius: 10px;
	background: #0f172a;
	color: #ffffff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.01em;
	box-shadow: 0 10px 24px rgba(15, 23, 42, 0.22);
	opacity: 0;
	visibility: hidden;
	transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.aassb-has-tooltip .aassb-button:hover .aassb-tooltip,
.aassb-has-tooltip .aassb-button:focus-visible .aassb-tooltip {
	opacity: 1;
	visibility: visible;
}

.aassb-pos-left-middle .aassb-tooltip,
.aassb-pos-left-bottom .aassb-tooltip {
	left: calc(100% + 10px);
	top: 50%;
	transform: translate(-6px, -50%);
}

.aassb-pos-left-middle .aassb-button:hover .aassb-tooltip,
.aassb-pos-left-bottom .aassb-button:hover .aassb-tooltip,
.aassb-pos-left-middle .aassb-button:focus-visible .aassb-tooltip,
.aassb-pos-left-bottom .aassb-button:focus-visible .aassb-tooltip {
	transform: translate(0, -50%);
}

.aassb-pos-right-middle .aassb-tooltip,
.aassb-pos-right-bottom .aassb-tooltip {
	right: calc(100% + 10px);
	top: 50%;
	transform: translate(6px, -50%);
}

.aassb-pos-right-middle .aassb-button:hover .aassb-tooltip,
.aassb-pos-right-bottom .aassb-button:hover .aassb-tooltip,
.aassb-pos-right-middle .aassb-button:focus-visible .aassb-tooltip,
.aassb-pos-right-bottom .aassb-button:focus-visible .aassb-tooltip {
	transform: translate(0, -50%);
}

.aassb-pos-bottom-center .aassb-tooltip {
	left: 50%;
	bottom: calc(100% + 10px);
	transform: translate(-50%, 6px);
}

.aassb-pos-bottom-center .aassb-button:hover .aassb-tooltip,
.aassb-pos-bottom-center .aassb-button:focus-visible .aassb-tooltip {
	transform: translate(-50%, 0);
}

.aassb-animation-float .aassb-button {
	animation: aassbFloat 2.8s ease-in-out infinite;
}

.aassb-animation-pulse .aassb-button {
	animation: aassbPulse 2.2s ease-in-out infinite;
}

.aassb-animation-shake .aassb-button {
	animation: aassbShake 4s ease-in-out infinite;
}

.aassb-animation-float .aassb-button:nth-child(2n),
.aassb-animation-pulse .aassb-button:nth-child(2n),
.aassb-animation-shake .aassb-button:nth-child(2n) {
	animation-delay: 0.25s;
}

@keyframes aassbFloat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-5px); }
}

@keyframes aassbPulse {
	0%, 100% { box-shadow: 0 12px 26px rgba(15, 23, 42, 0.20), 0 0 0 0 rgba(15, 23, 42, 0.18); }
	50% { box-shadow: 0 12px 26px rgba(15, 23, 42, 0.20), 0 0 0 8px rgba(15, 23, 42, 0); }
}

@keyframes aassbShake {
	0%, 88%, 100% { transform: rotate(0deg); }
	90% { transform: rotate(-5deg); }
	92% { transform: rotate(5deg); }
	94% { transform: rotate(-4deg); }
	96% { transform: rotate(4deg); }
	98% { transform: rotate(0deg); }
}

.aassb-visibility-mobile {
	display: none;
}

@media (min-width: 1025px) {
	.aassb-hide-desktop {
		display: none !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.aassb-hide-tablet {
		display: none !important;
	}
}

@media (max-width: 767px) {
	.aassb-hide-mobile {
		display: none !important;
	}

	.aassb-visibility-desktop {
		display: none !important;
	}

	.aassb-visibility-mobile {
		display: inline-flex;
	}

	.aassb-tooltip {
		display: none !important;
	}

	.aassb-wrap {
		--aassb-size: var(--aassb-mobile-size, 48px);
		--aassb-icon-size: var(--aassb-mobile-icon-size, 22px);
	}

	.aassb-floating {
		gap: min(var(--aassb-gap, 10px), 10px);
	}

	.aassb-mobile-pos-left-middle {
		left: var(--aassb-mobile-left, 14px) !important;
		right: auto !important;
		top: calc(50% - var(--aassb-mobile-bottom, 18px)) !important;
		bottom: auto !important;
		transform: translateY(-50%) !important;
	}

	.aassb-mobile-pos-right-middle {
		right: var(--aassb-mobile-right, 14px) !important;
		left: auto !important;
		top: calc(50% - var(--aassb-mobile-bottom, 18px)) !important;
		bottom: auto !important;
		transform: translateY(-50%) !important;
	}

	.aassb-mobile-pos-left-bottom {
		left: var(--aassb-mobile-left, 14px) !important;
		right: auto !important;
		bottom: var(--aassb-mobile-bottom, 18px) !important;
		top: auto !important;
		transform: none !important;
	}

	.aassb-mobile-pos-right-bottom {
		right: var(--aassb-mobile-right, 14px) !important;
		left: auto !important;
		bottom: var(--aassb-mobile-bottom, 18px) !important;
		top: auto !important;
		transform: none !important;
	}

	.aassb-mobile-pos-bottom-center {
		left: 50% !important;
		right: auto !important;
		bottom: var(--aassb-mobile-bottom, 18px) !important;
		top: auto !important;
		transform: translateX(-50%) !important;
		max-width: calc(100vw - 24px);
		flex-wrap: wrap;
	}

	.aassb-mobile-pos-bottom-center.aassb-layout-vertical {
		flex-direction: row;
	}
}

@media (min-width: 768px) {
	.aassb-visibility-desktop {
		display: inline-flex;
	}
}

@media (prefers-reduced-motion: reduce) {
	.aassb-button,
	.aassb-tooltip {
		transition: none;
	}

	.aassb-animation-float .aassb-button,
	.aassb-animation-pulse .aassb-button,
	.aassb-animation-shake .aassb-button {
		animation: none;
	}
}
