#osnap-tools-row {
	position: relative;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	overflow: visible;
}

#osnap-toggle,
#osnap-options-toggle,
#osnap-clear-modes,
#osnap-reference-params {
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 6px;
	padding: 5px 10px;
	font-weight: 600;
	font-size: 11px;
	background: rgba(255, 255, 255, 0.07);
	color: #d4d9dc;
	cursor: pointer;
}

#osnap-toggle.osnap-on {
	background: #1a7d41;
	border-color: #0f5d2e;
}

#osnap-options-toggle.osnap-open {
	background: #465873;
	border-color: #6f86a6;
}

#osnap-clear-modes {
	background: rgba(190, 70, 70, 0.18);
	border-color: rgba(230, 115, 115, 0.42);
}

#osnap-options-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 236px;
	max-width: 270px;
	padding: 6px 0;
	display: flex;
	flex-direction: column;
	gap: 1px;
	border: 1px solid #6a7f9d;
	border-radius: 6px;
	background: #3a475b;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.45);
	z-index: 1500;
}

#osnap-options-menu[hidden] {
	display: none !important;
}

#osnap-options-menu .osnap-mode-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 10px;
	font-size: 12px;
	color: #f0f4f8;
	cursor: pointer;
	user-select: none;
	white-space: nowrap;
}

#osnap-options-menu .osnap-mode-item:hover {
	background: rgba(255, 255, 255, 0.08);
}

#osnap-options-menu .osnap-mode-item input[type="checkbox"] {
	margin: 0;
	width: 13px;
	height: 13px;
	accent-color: #7bc0ff;
	cursor: pointer;
}

#osnap-options-menu .osnap-mode-item .osnap-mode-icon {
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #dfeaf6;
}

#osnap-options-menu .osnap-mode-item .osnap-mode-icon svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}

#osnap-options-menu .osnap-mode-item .osnap-mode-icon img {
	width: 16px;
	height: 16px;
	display: block;
	object-fit: contain;
	image-rendering: crisp-edges;
	image-rendering: pixelated;
}

#osnap-options-menu .osnap-mode-item.is-unsupported {
	opacity: 0.58;
}

#osnap-options-menu .osnap-mode-item.is-unsupported input[type="checkbox"] {
	cursor: pointer;
}

#osnap-reference-params {
	margin: 6px 8px 2px;
	border-color: rgba(125, 151, 186, 0.62);
	background: rgba(68, 86, 112, 0.6);
	text-align: left;
}

#osnap-status {
	opacity: 0.9;
	font-size: 11px;
	flex-basis: 100%;
	padding-left: 2px;
	color: #c9d7e7;
}

#osnap_floating_toolbar {
	position: fixed;
	left: 50%;
	top: calc(var(--civil-topbar-offset, 38px) + 8px);
	transform: translateX(-50%);
	z-index: 1180;
	display: inline-flex;
	align-items: center;
	gap: var(--osnap-toolbar-gap, 2px);
	padding: var(--osnap-toolbar-padding, 2px);
	border: 1px solid rgba(86, 118, 140, 0.65);
	border-radius: 3px;
	background: linear-gradient(180deg, #2a3946 0%, #1e2a35 100%);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.06);
	user-select: none;
}

#osnap_floating_toolbar.is-docked {
	position: static;
	left: auto;
	top: auto;
	right: auto;
	bottom: auto;
	transform: none;
	z-index: auto;
	box-shadow: none;
}

#civil_top_menu_bar .civil-top-tools-dock #osnap_floating_toolbar {
	margin: 0;
}

#osnap_floating_toolbar .osnap-floating-drag-handle {
	width: 12px;
	height: 22px;
	margin-right: 2px;
	border-radius: 2px;
	cursor: grab;
	background:
		radial-gradient(circle, rgba(200, 220, 235, 0.9) 1.2px, transparent 1.3px) 0 0 / 5px 5px,
		radial-gradient(circle, rgba(140, 165, 185, 0.75) 1.2px, transparent 1.3px) 2px 2px / 5px 5px;
	box-shadow: inset 0 0 0 1px rgba(40, 58, 72, 0.55);
}

body.osnap-toolbar-dragging #osnap_floating_toolbar .osnap-floating-drag-handle {
	cursor: grabbing;
}

#osnap_floating_toolbar .osnap-floating-toggle,
#osnap_floating_toolbar .osnap-floating-clear {
	height: 22px;
	box-sizing: border-box;
	padding: 0 8px;
	border: 1px solid rgba(84, 121, 146, 0.85);
	border-radius: 3px;
	background: linear-gradient(180deg, #1b2f40 0%, #132231 100%);
	color: #def3ff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	white-space: nowrap;
	transition: border-color 120ms ease, background-color 120ms ease, filter 120ms ease;
}

#osnap_floating_toolbar .osnap-floating-toggle.osnap-on {
	background: linear-gradient(180deg, #25844b 0%, #1a6539 100%);
	border-color: #1f7a45;
}

#osnap_floating_toolbar .osnap-floating-toggle:hover,
#osnap_floating_toolbar .osnap-floating-clear:hover {
	filter: none;
	border-color: #8fd8ff;
	background: linear-gradient(180deg, #26435a 0%, #1a3245 100%);
	box-shadow: 0 0 0 1px rgba(139, 220, 255, 0.28);
}

#osnap_floating_toolbar .osnap-floating-toggle.osnap-on:hover {
	border-color: #2f9f63;
	background: linear-gradient(180deg, #2d9255 0%, #207443 100%);
	box-shadow: 0 0 0 1px rgba(111, 229, 157, 0.24);
}

#osnap_floating_toolbar .osnap-floating-clear {
	padding: 0 7px;
	background: linear-gradient(180deg, #5b3e46 0%, #42272d 100%);
	border-color: rgba(194, 120, 132, 0.65);
}

#osnap_floating_toolbar .osnap-floating-clear:hover {
	border-color: rgba(219, 146, 158, 0.85);
	background: linear-gradient(180deg, #674951 0%, #4a2e35 100%);
	box-shadow: 0 0 0 1px rgba(219, 146, 158, 0.18);
}

#osnap_floating_toolbar .osnap-floating-clear:disabled {
	opacity: 0.45;
	cursor: default;
}

#osnap_floating_toolbar .osnap-floating-mode-strip {
	display: inline-flex;
	align-items: center;
	gap: 1px;
}

#osnap_floating_toolbar .osnap-floating-mode-btn {
	position: relative;
	width: 22px;
	height: 22px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(84, 121, 146, 0.85);
	border-radius: 3px;
	background: linear-gradient(180deg, #1b2f40 0%, #132231 100%);
	color: #f4f8fc;
	cursor: pointer;
	box-sizing: border-box;
	transition: border-color 120ms ease, background-color 120ms ease, filter 120ms ease;
}

#osnap_floating_toolbar .osnap-floating-mode-btn:hover {
	border-color: #8ec6f2;
	background: linear-gradient(180deg, #26435a 0%, #1a3245 100%);
	box-shadow: 0 0 0 1px rgba(139, 220, 255, 0.28);
}

#osnap_floating_toolbar .osnap-floating-mode-btn.is-active {
	border-color: #9ae086;
	background: linear-gradient(180deg, #2f5d40 0%, #254733 100%);
}

#osnap_floating_toolbar .osnap-floating-mode-btn.is-active::after {
	content: "";
	position: absolute;
	left: 2px;
	top: 2px;
	width: 6px;
	height: 6px;
	background: #e6fff0;
	clip-path: polygon(14% 52%, 0 66%, 40% 100%, 100% 18%, 84% 6%, 39% 70%);
}

#osnap_floating_toolbar .osnap-floating-mode-btn.is-unsupported {
	opacity: 0.65;
	border-style: dashed;
}

#osnap_floating_toolbar .osnap-floating-mode-btn .osnap-floating-mode-icon {
	width: 18px;
	height: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

#osnap_floating_toolbar .osnap-floating-mode-btn .osnap-floating-mode-icon svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}

#osnap_floating_toolbar .osnap-floating-mode-btn .osnap-floating-mode-icon img {
	width: 18px;
	height: 18px;
	display: block;
	object-fit: contain;
	image-rendering: crisp-edges;
	image-rendering: pixelated;
}
