@charset "UTF-8";
/* ==========================================================================
   sidebar-tree.css — the "Tree" tab page tree (Windows Explorer style).
   ========================================================================== */
/* ==========================================================================
   Page tree (Tree tab)
   ========================================================================== */
.page-tree {
    padding-left: 5px;
}
.page-tree ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.page-tree > ul { padding: .3rem .5rem .3rem 1rem; }
.page-tree li { margin: 0; }
.page-tree .tree-item {
    display: flex;
    align-items: center;
    gap: .15rem;
    padding: .12rem .3rem .12rem 0;
    border-radius: 3px;
    transition: background .15s;
}
.page-tree .tree-item:hover {
    background: transparent;
}
.page-tree .tree-item a {
    color: rgba(255,255,255,.85);
    text-decoration: none;
    font-size: .82rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.page-tree .tree-item a:hover { color: #fff; }
/* Active item: no background, just bold text (Windows Explorer style) */
.page-tree li.active > .tree-item {
    background: transparent;
}
.page-tree li.active > .tree-item a {
    font-weight: 700;
    color: #fff;
}

/* Expand/collapse box with +/- signs (Windows Explorer style) */
.page-tree .tree-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    box-sizing: border-box;
    font-size: 11px;
    line-height: 1;
    font-family: "Courier New", monospace;
    color: rgba(255,255,255,.9);
    background: var(--ttg-sidebar);
    border: 1px solid rgba(255,255,255,.55);
    cursor: pointer;
    flex-shrink: 0;
    user-select: none;
    position: relative;
    z-index: 1;
}
.page-tree .tree-toggle:hover {
    color: #fff;
    border-color: #fff;
}
.page-tree .tree-toggle .mdi { display: none; }
.page-tree .tree-toggle::before { content: "\2212"; } /* minus = expanded */
.page-tree li.collapsed > .tree-item .tree-toggle::before { content: "+"; }

/* Leaf spacer, same width as the toggle box so labels line up */
.page-tree .tree-leaf {
    width: 14px;
    flex-shrink: 0;
}

/* ---- Connector lines (Windows Explorer style) ----
   The indentation is created by each nested li's own left padding, and the
   dotted lines live inside that padding. This guarantees the horizontal
   branch always reaches the toggle/leaf, whatever the box widths are. */
.page-tree li > ul { padding-left: 0; }
.page-tree li.collapsed > ul { display: none; }

/* Nested items: 16px indent gap that holds the trunk + branch */
.page-tree ul ul li {
    position: relative;
    padding-left: 16px;
}
/* vertical trunk, centred in the indent gap (under the parent's toggle box) */
.page-tree ul ul li::before {
    content: "";
    position: absolute;
    left: 7px;
    top: 0;
    bottom: 0;
    border-left: 1px dotted rgba(255,255,255,.5);
}
/* last child: stop the trunk at its own branch */
.page-tree ul ul li:last-child::before {
    bottom: auto;
    height: 11px;
}
/* horizontal branch from the trunk to the toggle box (which starts at 16px) */
.page-tree ul ul li::after {
    content: "";
    position: absolute;
    left: 7px;
    top: 11px;
    width: 9px;
    border-top: 1px dotted rgba(255,255,255,.5);
}
/* leaf items have no box, so run the branch through to the label */
.page-tree ul ul li:not(.has-children)::after {
    width: 23px;
}

