tree {
	user-select: none;
	content-visibility: auto;
	-webkit-user-select: none;
	padding: 28px;
	display: block;
	position: absolute;
	top: 0px;
	left: 0;
	right: 0;
	bottom: 0;
	overflow: hidden;
	overflow-y: auto;
}

body.mobile tree {
	transition: all .2s ease;
	top: 40px;
	bottom: 40px;
	left: 20%;
	transform: translateX(100%);
}

body[sidebar="true"] tree {
	transform: translateX(0%);
}

tree * {
	user-select: none;
	-webkit-user-select: none;
}

tree:hover {
	overflow-y: overlay;
}

tree .children {
	display: block;
}

tree .node-data {
	display: flex;
	padding: 2 4px 0;
	width: 100%;
}

tree .region {
	text-overflow: ellipsis;
	overflow: hidden;
	padding-right: 20px;
}

tree .item .node-data .label {
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
	margin-left: 8px;
	text-indent: 28px;
	text-decoration: none;
	text-underline-offset: 2px;
	line-height: 22px;
	letter-spacing: 0.8px;
}

tree .item .handle:hover {
	background: var(--color-shadow);
	cursor: pointer;
}

tree .item .handle[data-selected="1"] .node-data .label {
	color: var(--color-accent);
	text-decoration: underline;
}

tree .item .node-data .label[disabled] {
	color: var(--color-disabled);
}

tree .item .node-data .label[disabled]:hover {
	border-bottom: 1px solid transparent;
}

tree .node[data-id="root"] {
	margin: 30px 40px;
}

tree .node[data-state="0"] .children {
	/* display: none; */
}

tree .node {
	position: relative;
	list-style: none;
	padding: 0;
	padding-left: 20px;
}

tree > .node,
tree main > .node {
	padding-left: 0px;
}

tree .item .handle {
	user-select: none;
	text-decoration: none;
	font-size: 14px;
	color: var(--color-primary);
	background: var(--color-window);
	border-radius: 4px;
	margin-left: 24px;
	position: relative;
	display: flex;
	padding: 4px 0px;
	min-height: 28px;
}

tree[draggable="false"] .item .handle a {
	-webkit-user-drag: none;
}

tree .item .handle[data-state="0"] + .node {
	display: none;
}

tree .item .handle[data-state="1"] + .node {
	display: block;
}

tree .toggle {
	position: absolute;
	top: 8px;
	left: -14px;
	width: 14px;
	height: 14px;
}

tree .item .handle[data-state="0"][data-toggle="false"] .toggle {
	display: none;
}

tree .item .handle[data-dir="true"] .toggle:before,
tree .item .handle[data-state="0"][data-toggle="true"] .toggle:before,
tree .item .handle[data-state="1"][data-toggle="true"] .toggle:before {
	content: ' ';
	position: absolute;
	top: 4px;
	left: -4px;
	border-top: 1px solid var(--color-primary);
	border-right: 1px solid var(--color-primary);
	transform: rotate(45deg);
	width: 6px;
	height: 6px;
	cursor: pointer;
}

tree .item .handle[data-state="1"][data-toggle="true"] .toggle:before {
	left: -2px;
	top: 2px;
	transform: rotate(135deg);
}

/* the vertical bars on each item */
tree .item {
	/* background:
		repeating-linear-gradient(
			90deg,
			var(--color-border),
			var(--color-border) 1px,
			transparent 1px,
			transparent 32px
		); */
	background-size: 32px;
	position: relative;
}

tree .item::before {
	/* position: absolute;
	width: 12px;
	height: 1px;
	content: ' ';
	top: 15px;
	border-top: 1px solid var(--color-border); */
}

tree .item:last-child {
	background: var(--color-window);
}

/* the L shape at the end of each node */
tree .item:last-child::before {
	/* width: 12px;
	height: 15px;
	border: 1px solid var(--color-border);
	content: ' ';
	position: absolute;
	top: 0px;
	left: 0px;
	border-right: none;
	border-top: none; */
}

tree .icon {
	position: absolute;
	cursor: pointer;
	top: 6px;
	left: 8px;
	height: 20px !important;
	width: 20px !important;
}

tree .icon[cached="true"]:after {
	content: ' ';
	border-radius: 128px;
	border: 1px solid var(--color-window);
	background: var(--color-warning);
	position: absolute;
	bottom: -2px;
	right: -2px;
	height: 6px;
	width: 6px;
}

@media (max-width: 699px) {
	tree .item .handle {
		font-size: 16px;
		padding: 8px 0;
	}

	tree .toggle,
	tree .icon {
		top: 10px;
	}
}

