/* css custom properties for monochrome theme and spacing */
/* Light mode (default) - uses inverted colors for light background */
:root {
	--cs_color_background_primary: #ffffff;
	--cs_color_background_secondary: #f5f5f5;
	--cs_color_background_tertiary: #e0e0e0;
	--cs_color_background_hover: #d0d0d0;
	--cs_color_border_primary: #333333;
	--cs_color_border_secondary: #666666;
	--cs_color_border_muted: #999999;
	--cs_color_text_primary: #000000;
	--cs_color_text_secondary: #333333;
	--cs_color_text_muted: #666666;
	--cs_color_accent_primary: #000000;
	--cs_color_accent_secondary: #333333;
	--cs_spacing_unit_standard: 10px;
	--cs_border_width_standard: 1px;
	--cs_border_radius_none: 0px;
	--cs_border_radius_round: 50%;
	--cs_border_radius_soft: 4px;
	--cs_element_size_touch_target: 48px;
	--cs_panel_width_standard: 336px;
	--cs_font_family_primary: "helvetica neue", -apple-system, blinkmacsystemfont,
		"segoe ui", roboto, sans-serif;
	--cs_font_family_monospace: "sf mono", consolas, "liberation mono", menlo,
		monospace;
	--cs_font_size_small: 12px;
	--cs_font_size_normal: 14px;
	--cs_font_size_large: 16px;
	--cs_font_weight_normal: 400;
	--cs_font_weight_medium: 500;
	--cs_font_weight_bold: 700;
} /* end css custom properties */

/* Dark mode overrides - black background with white text */
[data-theme="dark"],
body.dark-mode {
	--cs_color_background_primary: #000000;
	--cs_color_background_secondary: #1a1a1a;
	--cs_color_background_tertiary: #333333;
	--cs_color_background_hover: #4a4a4a;
	--cs_color_border_primary: #ffffff;
	--cs_color_border_secondary: #cccccc;
	--cs_color_border_muted: #666666;
	--cs_color_text_primary: #ffffff;
	--cs_color_text_secondary: #cccccc;
	--cs_color_text_muted: #888888;
	--cs_color_accent_primary: #ffffff;
	--cs_color_accent_secondary: #cccccc;
} /* end dark mode overrides */

/* ===== MEASUREMENT TOOL STYLES ===== */
/* NOTE: Global resets and body/html styles removed to prevent conflicts with main app */

/* measuring mode overlay */
.cs_measuring_overlay_element {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.6);
	z-index: 500;
	display: none;
	pointer-events: none;
} /* end cs_measuring_overlay_element */
.cs_measuring_overlay_element.state_active {
	display: block;
} /* end measuring overlay active state */
/* measurement crosshair element */
.cs_measurement_crosshair_element {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
	z-index: 999;
	display: none;
} /* end cs_measurement_crosshair_element */
.cs_measurement_crosshair_element.state_active {
	display: block;
} /* end crosshair active state */
.cs_measurement_crosshair_element::before,
.cs_measurement_crosshair_element::after {
	content: "";
	position: absolute;
	background: var(--cs_color_accent_primary);
} /* end crosshair pseudo elements */
.cs_measurement_crosshair_element::before {
	top: 50%;
	left: calc(-50vw + 48px);
	width: calc(100vw - 96px);
	height: 2px;
	transform: translateY(-50%);
} /* end crosshair horizontal line */
.cs_measurement_crosshair_element::after {
	left: 50%;
	top: calc(-50vh + 48px);
	width: 2px;
	height: calc(100vh - 96px);
	transform: translateX(-50%);
} /* end crosshair vertical line */
/* toolbar controls container */
.cs_toolbar_controls_container {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1002;
	display: flex;
	align-items: center;
	background: var(--cs_color_background_primary);
	border-bottom: var(--cs_border_width_standard) solid
		var(--cs_color_border_primary);
	padding: var(--cs_spacing_unit_standard);
	gap: var(--cs_spacing_unit_standard);
	height: calc(
		var(--cs_element_size_touch_target) + 2 * var(--cs_spacing_unit_standard)
	);
	flex-wrap: wrap;
} /* end cs_toolbar_controls_container */
/* control button groups */
.cs_control_button_group {
	display: flex;
	align-items: center;
	gap: var(--cs_spacing_unit_standard);
	flex-shrink: 0;
} /* end cs_control_button_group */
/* measurement controls container */
.cs_measurement_controls_container {
	display: flex;
	align-items: center;
	position: relative;
	gap: var(--cs_spacing_unit_standard);
} /* end cs_measurement_controls_container */
/* unit dropdown sliding element */
.cs_unit_dropdown_sliding {
	position: absolute;
	left: calc(
		var(--cs_element_size_touch_target) + var(--cs_spacing_unit_standard)
	);
	top: 0;
	width: 240px;
	height: var(--cs_element_size_touch_target);
	background: var(--cs_color_background_primary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	z-index: 1003;
	display: none;
} /* end cs_unit_dropdown_sliding */
.cs_unit_dropdown_sliding.state_active {
	display: block;
} /* end dropdown active state */
/* unit select sliding element */
.cs_unit_select_sliding {
	width: 100%;
	height: 100%;
	padding: 0 var(--cs_spacing_unit_standard);
	border: none;
	background: transparent;
	color: var(--cs_color_text_primary);
	font-size: var(--cs_font_size_normal);
	font-family: var(--cs_font_family_primary);
	cursor: pointer;
	outline: none;
	appearance: none;
} /* end cs_unit_select_sliding */
.cs_unit_select_sliding:focus {
	background: var(--cs_color_background_secondary);
} /* end unit select focus state */
/* control button circular element */
.cs_control_button_circular {
	width: var(--cs_element_size_touch_target);
	height: var(--cs_element_size_touch_target);
	min-width: var(--cs_element_size_touch_target);
	max-width: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	background: var(--cs_color_background_secondary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	color: var(--cs_color_text_primary);
	cursor: pointer;
	font-size: var(--cs_font_size_large);
	font-weight: var(--cs_font_weight_medium);
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--cs_border_radius_none);
} /* end cs_control_button_circular */
.cs_control_button_circular:hover {
	background: var(--cs_color_background_tertiary);
} /* end control button hover state */
.cs_control_button_circular.state_active {
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
} /* end control button active state */
.cs_control_button_circular.state_disabled {
	background: var(--cs_color_background_secondary);
	color: var(--cs_color_text_muted);
	cursor: not-allowed;
	opacity: 0.5;
} /* end control button disabled state */
/* panel container expandable element */
.cs_panel_container_expandable {
	position: fixed;
	left: 48px;
	top: 48px;
	height: calc(100vh - 96px);
	width: var(--cs_panel_width_standard);
	background: var(--cs_color_background_primary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	border-radius: var(--cs_border_radius_soft);
	z-index: 1000;
	display: none;
	flex-direction: column;
} /* end cs_panel_container_expandable */
/* options panel positioned next to measurement panel */
#options-panel {
	left: 400px;
} /* end options panel position */
.cs_panel_container_expandable.state_active {
	display: flex;
} /* end panel active state */
.cs_panel_container_expandable.state_collapsed {
	bottom: auto;
	height: var(--cs_element_size_touch_target);
} /* end panel collapsed state */
/* panel header collapsible element */
.cs_panel_header_collapsible {
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	padding: 0 var(--cs_spacing_unit_standard);
	border-bottom: var(--cs_border_width_standard) solid
		var(--cs_color_border_primary);
	font-weight: var(--cs_font_weight_bold);
	font-size: var(--cs_font_size_large);
	display: flex;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;
	background: var(--cs_color_background_secondary);
} /* end cs_panel_header_collapsible */
.cs_panel_header_collapsible:hover {
	background: var(--cs_color_background_tertiary);
} /* end panel header hover state */
.cs_panel_container_expandable.state_collapsed .cs_panel_header_collapsible {
	border-bottom: none;
} /* end collapsed header state */
/* panel content scrollable element */
.cs_panel_content_scrollable {
	flex: 1;
	overflow-y: auto;
	overflow-x: hidden;
	padding: var(--cs_spacing_unit_standard);
} /* end cs_panel_content_scrollable */
.cs_panel_content_scrollable::-webkit-scrollbar {
	width: 6px;
} /* end scrollbar width */
.cs_panel_content_scrollable::-webkit-scrollbar-track {
	background: var(--cs_color_background_secondary);
} /* end scrollbar track */
.cs_panel_content_scrollable::-webkit-scrollbar-thumb {
	background: var(--cs_color_border_primary);
} /* end scrollbar thumb */
.cs_panel_container_expandable.state_collapsed .cs_panel_content_scrollable {
	display: none;
} /* end collapsed content state */
/* close button circular element */
.cs_close_button_circular {
	width: var(--cs_element_size_touch_target);
	height: var(--cs_element_size_touch_target);
	min-width: var(--cs_element_size_touch_target);
	max-width: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	background: transparent;
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	color: var(--cs_color_text_primary);
	cursor: pointer;
	font-size: var(--cs_font_size_normal);
	display: flex;
	align-items: center;
	justify-content: center;
} /* end cs_close_button_circular */
.cs_close_button_circular:hover {
	background: var(--cs_color_background_tertiary);
	color: var(--cs_color_text_primary);
} /* end close button hover state */
/* measurement section container */
.cs_measurement_section_container {
	padding: var(--cs_spacing_unit_standard);
	margin-bottom: var(--cs_spacing_unit_standard);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	background: var(--cs_color_background_secondary);
} /* end cs_measurement_section_container */
.cs_measurement_section_container:hover {
	background: var(--cs_color_background_tertiary);
} /* end section hover state */
/* section label typography */
.cs_section_label_typography {
	font-weight: var(--cs_font_weight_bold);
	font-size: var(--cs_font_size_small);
	color: var(--cs_color_text_secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	display: flex;
	align-items: center;
	height: var(--cs_element_size_touch_target);
	margin-bottom: var(--cs_spacing_unit_standard);
} /* end cs_section_label_typography */
/* form input elements */
.cs_select_dropdown_input,
.cs_inline_input_field {
	width: 100%;
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	padding: 0 var(--cs_spacing_unit_standard);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	background: var(--cs_color_background_primary);
	color: var(--cs_color_text_primary);
	font-size: var(--cs_font_size_normal);
	font-family: var(--cs_font_family_primary);
	margin-bottom: var(--cs_spacing_unit_standard);
} /* end form input elements */
.cs_select_dropdown_input:focus,
.cs_inline_input_field:focus {
	outline: none;
	background: var(--cs_color_background_secondary);
} /* end input focus state */
/* measurement panels container */
.cs_measurement_panels_container {
	display: flex;
	flex-direction: column;
	gap: var(--cs_spacing_unit_standard);
} /* end cs_measurement_panels_container */
/* measurement panel expandable */
.cs_measurement_panel_expandable {
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	background: var(--cs_color_background_secondary);
} /* end cs_measurement_panel_expandable */
.cs_measurement_panel_expandable:hover {
	background: var(--cs_color_background_tertiary);
} /* end panel hover state */
/* measurement panel header */
.cs_measurement_panel_header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	padding: 0 var(--cs_spacing_unit_standard);
	background: var(--cs_color_background_tertiary);
	cursor: pointer;
	border-bottom: var(--cs_border_width_standard) solid
		var(--cs_color_border_primary);
} /* end cs_measurement_panel_header */
.cs_measurement_panel_header:hover {
	background: var(--cs_color_background_hover);
} /* end panel header hover state */
.cs_measurement_panel_expandable.state_collapsed .cs_measurement_panel_header {
	border-bottom: none;
} /* end collapsed panel header */
/* panel header title */
.cs_panel_header_title {
	display: flex;
	align-items: center;
	gap: var(--cs_spacing_unit_standard);
	font-weight: var(--cs_font_weight_medium);
	font-size: var(--cs_font_size_normal);
	color: var(--cs_color_text_primary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
} /* end cs_panel_header_title */
/* panel expand indicator */
.cs_panel_expand_indicator {
	color: var(--cs_color_text_secondary);
	font-size: var(--cs_font_size_normal);
} /* end cs_panel_expand_indicator */
.cs_measurement_panel_expandable.state_collapsed .cs_panel_expand_indicator {
	transform: rotate(-90deg);
} /* end collapsed indicator state */
/* measurement panel content */
.cs_measurement_panel_content {
	max-height: 400px;
	overflow-y: auto;
	overflow-x: hidden;
	background: var(--cs_color_background_primary);
	display: block;
} /* end cs_measurement_panel_content */
.cs_measurement_panel_content.state_collapsed {
	max-height: 0;
	overflow: hidden;
	display: none;
} /* end collapsed content state */
/* measurement item container */
.cs_measurement_item_container {
	background: var(--cs_color_background_secondary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	margin: var(--cs_spacing_unit_standard);
	padding: var(--cs_spacing_unit_standard);
} /* end cs_measurement_item_container */
.cs_measurement_item_container:hover {
	background: var(--cs_color_background_tertiary);
} /* end item hover state */
/* measurement item header */
.cs_measurement_item_header {
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: var(--cs_spacing_unit_standard);
} /* end cs_measurement_item_header */
/* measurement item info */
.cs_measurement_item_info {
	flex: 1;
	min-width: 0;
} /* end cs_measurement_item_info */
/* measurement item name */
.cs_measurement_item_name {
	font-weight: var(--cs_font_weight_bold);
	font-size: var(--cs_font_size_normal);
	color: var(--cs_color_text_primary);
	text-transform: capitalize;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
} /* end cs_measurement_item_name */
/* measurement item value */
.cs_measurement_item_value {
	font-size: var(--cs_font_size_small);
	color: var(--cs_color_text_secondary);
	font-family: var(--cs_font_family_monospace);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
} /* end cs_measurement_item_value */
/* delete button circular */
.cs_delete_button_circular {
	width: var(--cs_element_size_touch_target);
	height: var(--cs_element_size_touch_target);
	min-width: var(--cs_element_size_touch_target);
	max-width: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	background: var(--cs_color_background_tertiary);
	color: var(--cs_color_text_primary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	cursor: pointer;
	font-size: var(--cs_font_size_normal);
	display: flex;
	align-items: center;
	justify-content: center;
} /* end cs_delete_button_circular */
.cs_delete_button_circular:hover {
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
} /* end delete button hover state */
/* clear all button action */
.cs_clear_all_button_action {
	width: 100%;
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	background: var(--cs_color_background_tertiary);
	color: var(--cs_color_text_primary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	cursor: pointer;
	font-weight: var(--cs_font_weight_bold);
	font-size: var(--cs_font_size_normal);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--cs_spacing_unit_standard);
	margin-top: var(--cs_spacing_unit_standard);
	text-transform: uppercase;
	letter-spacing: 0.05em;
} /* end cs_clear_all_button_action */
.cs_clear_all_button_action:hover {
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
} /* end clear all hover state */
/* total distance display */
.cs_total_distance_display {
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
	font-weight: var(--cs_font_weight_bold);
	font-size: var(--cs_font_size_normal);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--cs_spacing_unit_standard);
	margin: var(--cs_spacing_unit_standard);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
} /* end cs_total_distance_display */
.cs_panel_container_expandable.state_collapsed .cs_total_distance_display {
	display: none;
} /* end collapsed total display */
/* feature profile popup */
.cs_feature_profile_popup {
	position: fixed;
	top: 48px;
	right: 48px;
	max-width: calc(100vw - 96px - var(--cs_panel_width_standard) - 16px);
	width: var(--cs_panel_width_standard);
	max-height: calc(100vh - 96px);
	background: var(--cs_color_background_primary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	border-radius: var(--cs_border_radius_soft);
	z-index: 1100;
	display: none;
	flex-direction: column;
	overflow: hidden;
} /* end cs_feature_profile_popup */
.cs_feature_profile_popup.state_active {
	display: flex;
} /* end popup active state */
.cs_feature_profile_popup.state_collapsed {
	height: var(--cs_element_size_touch_target);
} /* end popup collapsed state */
/* measurement marker circular */
.cs_measurement_marker_circular {
	width: var(--cs_element_size_touch_target);
	height: var(--cs_element_size_touch_target);
	min-width: var(--cs_element_size_touch_target);
	max-width: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	background: var(--cs_color_background_primary);
	color: var(--cs_color_text_primary);
	border: 3px solid var(--cs_color_border_primary);
	border-radius: var(--cs_border_radius_round);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: var(--cs_font_weight_bold);
	font-size: var(--cs_font_size_normal);
	cursor: pointer;
} /* end cs_measurement_marker_circular */
.cs_measurement_marker_circular:hover {
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
} /* end marker hover state */
.cs_measurement_marker_circular.state_selected {
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
} /* end marker selected state */
.cs_measurement_marker_circular.state_dragging {
	cursor: grabbing;
	background: var(--cs_color_background_hover);
	color: var(--cs_color_text_primary);
} /* end marker dragging state */
/* distance label display */
.cs_distance_label_display {
	background: var(--cs_color_background_primary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	padding: var(--cs_spacing_unit_standard);
	font-size: var(--cs_font_size_small);
	font-weight: var(--cs_font_weight_bold);
	font-family: var(--cs_font_family_monospace);
	color: var(--cs_color_text_primary);
	border-radius: var(--cs_border_radius_soft);
	white-space: nowrap;
	pointer-events: none;
} /* end cs_distance_label_display */
/* area label display */
.cs_area_label_display {
	background: var(--cs_color_accent_primary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	padding: var(--cs_spacing_unit_standard);
	font-size: var(--cs_font_size_small);
	font-weight: var(--cs_font_weight_bold);
	font-family: var(--cs_font_family_monospace);
	color: var(--cs_color_background_primary);
	border-radius: var(--cs_border_radius_soft);
	pointer-events: none;
} /* end cs_area_label_display */
/* feature actions group */
.cs_feature_actions_group {
	display: flex;
	padding: var(--cs_spacing_unit_standard);
	gap: var(--cs_spacing_unit_standard);
} /* end cs_feature_actions_group */
/* feature action button */
.cs_feature_action_button {
	flex: 1;
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	background: var(--cs_color_background_secondary);
	color: var(--cs_color_text_primary);
	cursor: pointer;
	font-size: var(--cs_font_size_small);
	font-weight: var(--cs_font_weight_medium);
	font-family: var(--cs_font_family_primary);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--cs_spacing_unit_standard);
	text-transform: uppercase;
	letter-spacing: 0.05em;
} /* end cs_feature_action_button */
.cs_feature_action_button:hover {
	background: var(--cs_color_background_tertiary);
} /* end feature action hover state */
.cs_feature_action_button.state_active {
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
} /* end feature action active state */
.cs_feature_action_button.state_delete {
	background: var(--cs_color_background_tertiary);
} /* end feature action delete state */
.cs_feature_action_button.state_delete:hover {
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
} /* end feature action delete hover state */
/* move controls expandable */
.cs_move_controls_expandable {
	display: none;
	border-top: var(--cs_border_width_standard) solid
		var(--cs_color_border_primary);
	padding: var(--cs_spacing_unit_standard);
	background: var(--cs_color_background_secondary);
} /* end cs_move_controls_expandable */
.cs_move_controls_expandable.state_active {
	display: block;
} /* end move controls active state */
/* move control section */
.cs_move_control_section {
	padding: var(--cs_spacing_unit_standard);
} /* end cs_move_control_section */
/* move control label */
.cs_move_control_label {
	font-size: var(--cs_font_size_small);
	font-weight: var(--cs_font_weight_bold);
	font-family: var(--cs_font_family_primary);
	color: var(--cs_color_text_secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	height: var(--cs_element_size_touch_target);
	display: flex;
	align-items: center;
	margin-bottom: var(--cs_spacing_unit_standard);
} /* end cs_move_control_label */
/* distance input group */
.cs_distance_input_group {
	display: flex;
	gap: var(--cs_spacing_unit_standard);
	margin-bottom: var(--cs_spacing_unit_standard);
} /* end cs_distance_input_group */
/* distance input field */
.cs_distance_input_field {
	flex: 2;
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	padding: 0 var(--cs_spacing_unit_standard);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	background: var(--cs_color_background_primary);
	color: var(--cs_color_text_primary);
	font-size: var(--cs_font_size_normal);
	font-family: var(--cs_font_family_primary);
	outline: none;
} /* end cs_distance_input_field */
.cs_distance_input_field:focus {
	background: var(--cs_color_background_secondary);
} /* end distance input focus state */
/* distance unit select */
.cs_distance_unit_select {
	flex: 1;
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	padding: 0 var(--cs_spacing_unit_standard);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	background: var(--cs_color_background_primary);
	color: var(--cs_color_text_primary);
	font-size: var(--cs_font_size_small);
	font-family: var(--cs_font_family_primary);
	cursor: pointer;
	outline: none;
} /* end cs_distance_unit_select */
.cs_distance_unit_select:focus {
	background: var(--cs_color_background_secondary);
} /* end distance unit focus state */
/* direction grid layout */
.cs_direction_grid_layout {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--cs_spacing_unit_standard);
	margin-bottom: var(--cs_spacing_unit_standard);
} /* end cs_direction_grid_layout */
/* direction button movement */
.cs_direction_button_movement {
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	background: var(--cs_color_background_secondary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	color: var(--cs_color_text_primary);
	cursor: pointer;
	font-size: var(--cs_font_size_large);
	font-weight: var(--cs_font_weight_bold);
	font-family: var(--cs_font_family_primary);
	display: flex;
	align-items: center;
	justify-content: center;
} /* end cs_direction_button_movement */
.cs_direction_button_movement:hover {
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
} /* end direction button hover state */
/* move actions group */
.cs_move_actions_group {
	display: flex;
	justify-content: center;
	padding: var(--cs_spacing_unit_standard);
} /* end cs_move_actions_group */
/* done button action */
.cs_done_button_action {
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	padding: 0 calc(2 * var(--cs_spacing_unit_standard));
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	cursor: pointer;
	font-size: var(--cs_font_size_normal);
	font-weight: var(--cs_font_weight_bold);
	font-family: var(--cs_font_family_primary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	display: flex;
	align-items: center;
	justify-content: center;
} /* end cs_done_button_action */
.cs_done_button_action:hover {
	background: var(--cs_color_background_hover);
	color: var(--cs_color_text_primary);
} /* end done button hover state */
/* shoe configuration container */
.cs_shoe_configuration_container {
	display: none;
} /* end cs_shoe_configuration_container */
.cs_shoe_configuration_container.state_active {
	display: block;
} /* end shoe configuration active state */
/* shoe category buttons */
.cs_shoe_category_buttons {
	display: flex;
	gap: var(--cs_spacing_unit_standard);
	margin-bottom: var(--cs_spacing_unit_standard);
} /* end cs_shoe_category_buttons */
/* shoe category button */
.cs_shoe_category_button {
	flex: 1;
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	background: var(--cs_color_background_secondary);
	color: var(--cs_color_text_primary);
	cursor: pointer;
	font-size: var(--cs_font_size_small);
	font-weight: var(--cs_font_weight_medium);
	font-family: var(--cs_font_family_primary);
	display: flex;
	align-items: center;
	justify-content: center;
	text-transform: uppercase;
	letter-spacing: 0.05em;
} /* end cs_shoe_category_button */
.cs_shoe_category_button:hover {
	background: var(--cs_color_background_tertiary);
} /* end shoe category hover state */
.cs_shoe_category_button.state_active {
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
} /* end shoe category active state */
/* inline input group */
.cs_inline_input_group {
	display: flex;
	gap: var(--cs_spacing_unit_standard);
	align-items: stretch;
} /* end cs_inline_input_group */
/* coordinates input editable */
.cs_coordinates_input_editable {
	width: 100%;
	height: var(--cs_element_size_touch_target);
	min-height: var(--cs_element_size_touch_target);
	max-height: var(--cs_element_size_touch_target);
	padding: 0 var(--cs_spacing_unit_standard);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	background: var(--cs_color_background_primary);
	color: var(--cs_color_text_primary);
	font-size: var(--cs_font_size_small);
	font-family: var(--cs_font_family_monospace);
	margin-bottom: var(--cs_spacing_unit_standard);
	outline: none;
} /* end cs_coordinates_input_editable */
.cs_coordinates_input_editable:focus {
	background: var(--cs_color_background_secondary);
} /* end coordinates input focus state */
/* drag info display */
.cs_drag_info_display {
	padding: var(--cs_spacing_unit_standard);
	background: var(--cs_color_accent_primary);
	color: var(--cs_color_background_primary);
	border: var(--cs_border_width_standard) solid var(--cs_color_border_primary);
	font-weight: var(--cs_font_weight_medium);
	margin-bottom: var(--cs_spacing_unit_standard);
	text-align: center;
	display: none;
} /* end cs_drag_info_display */
.cs_drag_info_display.state_active {
	display: block;
} /* end drag info active state */

/* main app measure button active state */
.control_button.measure_toggle.state_active,
.control_button.measure_toggle.active {
	background: var(--text-color, var(--cs_color_accent_primary));
	color: var(--panel-bg, var(--cs_color_background_primary));
	border-color: var(--text-color, var(--cs_color_accent_primary));
} /* end measure button active state */

/* ensure all navbar toggle buttons show active state when their panel is open */
.control_button.layers_toggle.active,
.control_button.overlay_toggle.active,
.control_button.filemanager_toggle.active,
.control_button.view_controls_toggle.active,
.control_button.geolocate_toggle.active,
.control_button.zoom_toggle.active,
.control_button.rotation_toggle.active,
.control_button.movement_toggle.active,
.control_button.tilt_toggle.active,
.control_button.coordinates_toggle.active,
.control_button.fullscreen_toggle.active,
.control_button.altitude_toggle.active,
.control_button.crosshair_toggle.active,
.control_button.mini_map_toggle.active,
.control_button.info_toggle.active,
.control_button.ruler_toggle.active,
.control_button.compass_toggle.active,
.control_button.grid_toggle.active {
	background: var(--text-color, #000);
	color: var(--panel-bg, #fff);
	border-color: var(--text-color, #000);
} /* end all toggle active states */

/* responsive adjustments */
@media (max-width: 768px) {
	.cs_panel_container_expandable {
		width: calc(100vw - 96px);
		left: 48px;
		right: 48px;
		max-width: calc(100vw - 96px);
	} /* end mobile panel */
	.cs_feature_profile_popup {
		width: calc(100vw - 96px);
		right: 48px;
		left: 48px;
		max-width: calc(100vw - 96px);
	} /* end mobile popup */
	.cs_toolbar_controls_container {
		height: auto;
		min-height: calc(
			var(--cs_element_size_touch_target) + 2 *
				var(--cs_spacing_unit_standard)
		);
	} /* end mobile toolbar */
} /* end mobile media query */
