/* keyword_tree.js styling — collapsible extracted-keyword filter tree */

#keyword-tree-container {
    max-height: 55vh;
    overflow-y: auto;
}

.kw-tree,
.kw-children {
    list-style: none;
    margin: 0;
    padding-left: 0;
}

.kw-children {
    padding-left: 1.25rem;
}

.kw-row {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.1rem 0;
}

.kw-toggle {
    border: 0;
    background: none;
    width: 1.25rem;
    flex: 0 0 1.25rem;
    padding: 0;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
    line-height: 1;
}

.kw-toggle-empty {
    cursor: default;
    visibility: hidden;
}

.kw-toggle .fa-caret-right {
    transition: transform 0.12s ease-in-out;
}

.kw-toggle.kw-open .fa-caret-right {
    transform: rotate(90deg);
}

.kw-label {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    cursor: pointer;
    flex: 1 1 auto;
}

.kw-name {
    user-select: none;
}

/* Subtle "filter active" indicator on the trigger button. */
.kw-active-dot {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background-color: var(--bs-primary, #0d6efd);
    vertical-align: middle;
}
