#cb-wrapper {
	--cb-size: 44px;
	--cb-radius: 50%;
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 99999;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

#cb-toggle {
	width: var(--cb-size);
	height: var(--cb-size);
	border-radius: var(--cb-radius);
	border: none;
	cursor: pointer;
	background: #2d3436;
	color: #fff;
	font-size: calc(var(--cb-size) * 0.45);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
	transition: transform 0.2s ease;
	padding: 0;
}

#cb-toggle:hover {
	transform: scale(1.05);
}

#cb-toggle .fa-times {
	display: none;
}

#cb-wrapper.cb-open #cb-toggle .fa-bars {
	display: none;
}

#cb-wrapper.cb-open #cb-toggle .fa-times {
	display: inline;
}

#cb-menu {
	position: absolute;
	right: 0;
	bottom: calc(var(--cb-size) + 22px);
	display: none;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
}

#cb-wrapper.cb-open #cb-menu {
	display: flex;
}

.cb-item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--cb-size);
	height: var(--cb-size);
	border-radius: var(--cb-radius);
	color: #fff;
	text-decoration: none;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
	transition: transform 0.15s ease;
	animation: cb-pop 0.25s ease both;
}

.cb-item:hover {
	transform: translateY(-2px);
	color: #fff;
}

.cb-item .cb-label {
	display: none;
	position: absolute;
	right: calc(var(--cb-size) + 10px);
	top: 50%;
	transform: translateY(-50%);
	padding: 6px 12px;
	border-radius: 20px;
	background: rgba(0, 0, 0, 0.75);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}

#cb-menu:hover .cb-item:hover .cb-label {
	display: inline-block;
}

.cb-item i {
	font-size: calc(var(--cb-size) * 0.42);
}

@keyframes cb-pop {
	from {
		opacity: 0;
		transform: translateY(8px) scale(0.9);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

#cb-single {
	width: var(--cb-size);
	height: var(--cb-size);
	border-radius: var(--cb-radius);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: calc(var(--cb-size) * 0.46);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
	text-decoration: none;
	transition: transform 0.2s ease;
	padding: 0;
}

#cb-single:hover {
	transform: scale(1.08);
	color: #fff;
}

@media (max-width: 480px) {
	#cb-wrapper {
		right: 14px;
		bottom: 14px;
	}
}