.as-vertical-tree-diagram {
    --node-name-max-width: 200px;
}


.as-vertical-tree-diagram-node {

}

.template-ctn {
    display: none;
}

.as-vertical-tree-diagram-node, .as-vertical-tree-diagram-node * {
    box-sizing: border-box;
}

.as-vertical-tree-diagram-node {
    display: inline-block;
    vertical-align: top;
    position: relative;
    background: white;
}

.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node:not(:first-child) {
    margin-left: 10px;
}

.as-vertical-tree-diagram-node-name-ctn {
    text-align: center;
    padding-bottom: 9px;
}

.as-vertical-tree-diagram-node-name {
    display: inline-block;
    padding: 5px;
    border: 1px solid #333;
    position: relative;
    white-space: normal;
    max-width: var(--node-name-max-width);
}

.as-vertical-tree-diagram-node.as-has-child > .as-vertical-tree-diagram-node-name-ctn .as-vertical-tree-diagram-node-name::before {
    content: "";
    position: absolute;
    height: 10px;
    left: 50%;
    top: 100%;
    border-left: 1px solid #333;
}

.as-vertical-tree-diagram-node.as-has-child.as-has-1-child > .as-vertical-tree-diagram-node-name-ctn .as-vertical-tree-diagram-node-name::before {
    height: 20px;
}

.as-vertical-tree-diagram-child-ctn {
    padding-top: 10px;

}

.as-vertical-tree-diagram-node:not(.as-has-1-child) > .as-vertical-tree-diagram-child-ctn {
    border-top: 1px solid #333;
}

.as-vertical-tree-diagram-node:not(.as-has-child) > .as-vertical-tree-diagram-child-ctn {
    display: none;
}

.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node::before {
    content: "";
    position: absolute;
    z-index: 1;
    left: 50%;
    bottom: 100%;
    height: 10px;
    border-left: 1px solid black;
}

.as-vertical-tree-diagram-node.as-has-1-child > .as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node::before,
.as-vertical-tree-diagram-node.as-has-1-child > .as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node::after {
    display: none;
}


.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node:last-child::before {
    left: unset;
    right: 50%;
}


.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node:first-child::after {
    content: "";
    position: absolute;
    z-index: 2;
    right: 50%;
    left: 0;
    bottom: 100%;
    height: 11px;
    background-color: white;
}

.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node:last-child::after {
    content: "";
    position: absolute;
    z-index: 2;
    left: 50%;
    right: 0;
    bottom: 100%;
    height: 11px;
    background-color: white;
}

.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node:first-child:last-child::after {
    display: none;
}