.tree-folder {
    padding: 6px 0 6px 8px;
    display: inline-block;
    font-weight: bold;
    width: 100%;
    height: 38px;
}

.tree-folder::before {
    position: relative;
    content: "––";
    white-space: nowrap;
    width: 1px;
    height: 38px;
    background-color: #bbb;
    margin-top: -8px;
    left: -27px;
    color: #bbb;
    line-height: 38px;
    display: inline-block;
}

.tree-checkbox {
    display: inline-block;
    padding: 6px 8px 1px 32px !important;
    width: 100%;
    height: 32px;
}

.tree-label {
    display: inline-block;
    padding: 6px 8px 1px 10px !important;
    width: 100%;
    height: 32px;
    position: relative;
}

.tree-checkbox > .custom-control-label {
    width: 100%;
}

.tree-item {
    list-style-type: none;
    padding: 0 0 0 18px;
}

.tree-item.root-tree-item {
    border-left: 1px solid #bbb;
}

.tree-item.root-tree-item:last-child {
    border-color: transparent;
}

.tree-item.root-tree-item:last-child > .tree-folder::before  {
    height: 19px;
}

.tree-checkbox::before, .tree-label::before {
    position: absolute;
    content: "––";
    white-space: nowrap;
    width: 1px;
    height: 32px;
    background-color: #bbb;
    top: 0;
    left: -18px;
    color: #bbb;
    line-height: 28px;
    display: inline-block;
}

.tree-item:last-child > .tree-checkbox::before, .tree-item:last-child > .tree-label::before {
    height: 16px;
}

.tree {
    border: 1px solid rgba(0, 0, 0, 0.1);
    padding: 2rem;
    border-radius: 0.1875rem;
}