/* TreeView component styling */
.treeViewContainer {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
.header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--component-spacing-md);
	width: 100%;
}
.searchContainer {
	position: relative;
	flex-grow: 1;
	min-width: 0;
}
.nodesContainer {
	flex: 1;
	overflow: auto;
	padding: 0;
	list-style: none;
	padding-left: var(--component-spacing-xs);
	padding-right: var(--component-spacing-xs);
}
.node {
	width: 100%;
	display: flex;
	align-items: center;
	height: var(--size-control-medium);
	border: var(--component-border-width-md) solid transparent;
	border-radius: var(--component-radii-md);
	padding-right: var(--component-spacing-2xs);
	padding-left: 0;
	cursor: pointer;
	transition: background-color 0.15s ease;
	position: relative;
	font: var(--font-label-sm);
}
/* need to set it because of ex units */
.node:hover {
		background-color: var(--color-neutral-surface-ghost-hover-bg);
	}
.nodeContent {
	display: flex;
	align-items: center;
	width: 100%;
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
}
.iconContainer {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--size-control-small);
	height: var(--size-control-small);
	font: var(--font-label-sm);
	flex-shrink: 0;
	color: var(--fg-subtle);
}
.labelContainer {
	display: flex;
	align-items: center;
	gap: var(--component-spacing-sm);
	min-width: 0;
	flex-grow: 1;
	flex-shrink: 1;
}
.endSlotContainer {
	display: flex;
	margin-left: auto;
	align-items: center;
	opacity: 0.5;
	transition: opacity 150ms ease;
}
.node:hover .endSlotContainer {
	opacity: 1;
}
.label {
	flex: 1;
	font: var(--font-body-sm-default);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-align: left;
}
.childrenContainer {
	transition: height 0.2s ease-in-out;
	list-style-type: none;
	padding-left: 0;
}
.nodeContainer {
	all: unset;
	padding-left: 0;
	width: 100%;
}
.nodeDragged {
	opacity: 0.2;
	box-shadow: var(--elevation-medium);
	cursor: grabbing;
}
.dragBefore {
	position: relative;
}
.dragBefore::before {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		top: 0;
		height: 2px;
		background: var(--color-accent-surface-default-idle-bg);
		border-radius: 6px;
	}
.dragAfter {
	position: relative;
}
.dragAfter::after {
		content: '';
		position: absolute;
		left: 0;
		bottom: 0;
		right: 0;
		height: 2px;
		background: var(--color-accent-surface-default-idle-bg);
		border-radius: 6px;
	}
.dragInside {
	background-color: var(--color-accent-surface-subtle-bg);
	box-shadow: inset 0 0 0 2px var(--color-accent-surface-default-idle-bg);
	border-radius: var(--component-radii-md);
}
.nodeSelected {
	background-color: var(--color-accent-surface-subtle-bg);
}
.nodeActive::before {
		content: '';
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		left: -6px;
		width: 2px;
		height: var(--size-control-small);
		background: var(--color-accent-surface-default-idle-bg);
		border-radius: var(--component-radii-md);
		pointer-events: none;
	}
.nodeLink {
	text-decoration: none;
	color: inherit;
	display: inline-flex;
	align-items: center;
}
.nodeLink:hover {
	text-decoration: none;
}
.collapseIcon {
	width: var(--size-100);
	padding: 0;
	border-radius: var(--component-radii-sm);
	flex-shrink: 0;
	font: var(--font-label-sm);
}
/* need to set font size as otherwise ex units cause it to be smaller than it should */
.collapseIcon:hover {
		background-color: var(--color-neutral-surface-ghost-active-bg);
	}
