.dvet-floating-shell {
	--dvet-floating-x: 24px;
	--dvet-floating-y: 24px;
	position: fixed;
	z-index: 9999;
	width: max-content;
	height: max-content;
	max-width: calc(100vw - 24px);
	box-sizing: border-box;
	transition: opacity .22s ease, visibility .22s ease;
}

.dvet-floating-shell--h-left { left: max(var(--dvet-floating-x), env(safe-area-inset-left)); }
.dvet-floating-shell--h-center { left: 50%; transform: translateX(-50%); }
.dvet-floating-shell--h-right { right: max(var(--dvet-floating-x), env(safe-area-inset-right)); }
.dvet-floating-shell--v-top { top: max(var(--dvet-floating-y), env(safe-area-inset-top)); }
.dvet-floating-shell--v-center { top: 50%; transform: translateY(-50%); }
.dvet-floating-shell--h-center.dvet-floating-shell--v-center { transform: translate(-50%, -50%); }
.dvet-floating-shell--v-bottom { bottom: max(var(--dvet-floating-y), env(safe-area-inset-bottom)); }
.dvet-floating-shell.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.dvet-floating-shell.is-dragging { transition: none; }

.dvet-floating-button {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	gap: 12px;
	max-width: 100%;
	white-space: nowrap;
	padding: 14px 22px;
	background: #7abf43;
	color: #fff;
	border-radius: 50px;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .25);
	text-decoration: none;
	user-select: none;
	-webkit-user-drag: none;
	transition: transform .2s ease, color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.dvet-floating-shell[data-draggable="yes"] .dvet-floating-button { cursor: grab; touch-action: none; }
.dvet-floating-shell.is-dragging .dvet-floating-button { cursor: grabbing; }
.dvet-floating-button:hover,
.dvet-floating-button:focus { color: #fff; background-color: #1f2937; text-decoration: none; }
.dvet-floating-button:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.dvet-floating-button--icon-right .dvet-floating-button__icon { order: 2; }
.dvet-floating-button__icon { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; box-sizing: border-box; aspect-ratio: 1 / 1; line-height: 1; }
.dvet-floating-button__copy { display: flex; flex-direction: column; min-width: 0; line-height: 1.15; }
.dvet-floating-button__primary { font-weight: 700; }
.dvet-floating-button__secondary { font-size: .75em; opacity: .86; }

@media (min-width: 1025px) { .dvet-floating-shell[data-show-desktop="no"] { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .dvet-floating-shell[data-show-tablet="no"] { display: none !important; } }
@media (max-width: 767px) { .dvet-floating-shell[data-show-mobile="no"] { display: none !important; } }
@media (prefers-reduced-motion: reduce) { .dvet-floating-shell, .dvet-floating-button { transition: none; } }
