.treeview {
    margin: 20px 0;
    overflow: hidden;
    border: solid 1px #555;
    padding: 20px;
    border-radius: 5px;
}

    .treeview div.header {
        margin-bottom: 5px;
        text-align: right;
    }

    .treeview div.node {
        margin: 5px 0;
        overflow: hidden;
        display: table;
    }

    .treeview .node > span.level {
        display: table-cell;
        height: 1em;
    }

    .treeview .node > span.expandable {
        display: table-cell;
        vertical-align: top;
        width: 1em;
        height: 1em;
        background-size: 14px;
        background-position: 0 .3em;
        background-repeat: no-repeat;
    }

        .treeview .node > span.expandable.expand {
            background-image: url(../imgs/treeview/plus.svg);
            cursor: pointer;
        }

        .treeview .node > span.expandable.collapse {
            background-image: url(../imgs/treeview/minus.svg);
            cursor: pointer;
        }

        .treeview .node > span.expandable.loading {
            background-image: url(../imgs/treeview/loading.svg);
        }

    .treeview .node > input.selectable {
        /*display: table-cell;*/
        display: inline-block;
        vertical-align: top;
        width: 1em;
        height: 1em;
        margin: .25em .5em;
    }

    .treeview .node > label {
        display: table-cell;
        vertical-align: middle;
        overflow: hidden;
        line-height: 1.5em;
        padding: 0 .3em;
        word-break: break-word;
    }

    .treeview .node.with-icon > label {
        padding-left: 1.5em;
        background-repeat: no-repeat;
        background-size: 1em;
        background-position: .25em .25em;
    }

    .treeview .node.dot > label {
        background-image: url(../imgs/treeview/dot.svg);
        background-size: .5em;
        background-position: .5em .5em;
    }

    .treeview .node > label.highlightable:not(.highlighted) {
        cursor: pointer;
    }

        .treeview .node > label.highlightable:not(.highlighted):hover {
            background-color: #d1e4f8;
        }

    .treeview .node > label.highlightable.highlighted {
        background-color: #acd1f6;
    }
