.plugin-categories-native-hidden {
    display: none !important;
}

.plugin-categories-cascade-wrapper {
    margin-top: 0.5rem;
}

.plugin-categories-cascade-row + .plugin-categories-cascade-row {
    margin-top: 0.5rem;
}

.plugin-categories-cascade-wrapper .select2 {
    width: 100% !important;
}

.plugin-categories-tree-wrapper {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

.plugin-categories-tree-trigger {
    position: relative;
    width: 100%;
    min-height: 2.4rem;
    text-align: left;
    padding-right: 2rem;
    border: 1px solid #dce1e7;
    background: #ffffff;
    color: inherit;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.plugin-categories-tree-trigger::after {
    content: "";
    position: absolute;
    right: 0.85rem;
    top: 50%;
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid #6c7a89;
    border-bottom: 2px solid #6c7a89;
    transform: translateY(-65%) rotate(45deg);
    pointer-events: none;
}

.plugin-categories-tree-trigger[aria-expanded="true"]::after {
    transform: translateY(-35%) rotate(-135deg);
}

.plugin-categories-tree-panel {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    width: 100%;
    max-width: 100%;
    z-index: 1065;
    background: #ffffff;
    border: 1px solid #dce1e7;
    border-radius: 0.375rem;
    box-shadow: 0 0.4rem 0.9rem rgba(15, 23, 42, 0.12);
}

.plugin-categories-tree-panel.plugin-categories-tree-panel-floating {
    position: fixed;
    right: auto;
    /* width and max-width are set dynamically by JS (fitPanelToViewport) */
    max-width: calc(100vw - 16px);
    z-index: 3000;
    box-shadow: 0 0.8rem 1.6rem rgba(15, 23, 42, 0.22);
}

.plugin-categories-tree-toolbar {
    padding: 0.45rem;
    border-bottom: 1px solid #e6ebf1;
}

.plugin-categories-tree-search {
    min-height: 2.15rem;
    font-size: 0.95rem;
}

.plugin-categories-tree-none {
    margin: 0.2rem 0.45rem;
    color: #4e5d6c;
}

.plugin-categories-tree-root {
    max-height: 340px;
    overflow: auto;
    padding: 0.2rem 0.4rem 0.45rem;
}

.plugin-categories-tree-root .fancytree-container {
    border: 0;
    background: transparent;
    font-size: 0.95rem;
    line-height: 1.35;
}

.plugin-categories-tree-root .fancytree-node {
    margin: 0.08rem 0;
}

.plugin-categories-tree-root .fancytree-title {
    border-radius: 0.25rem;
    padding: 0.12rem 0.25rem;
}

.plugin-categories-tree-root .fancytree-active .fancytree-title,
.plugin-categories-tree-root .fancytree-focused .fancytree-title {
    background: #e9f2ff;
    color: #1f3c5b;
}

.plugin-categories-tree-root .plugin-categories-node-disabled .fancytree-title {
    color: #8b949e;
    opacity: 0.85;
}

@media (max-width: 768px) {
    .plugin-categories-tree-panel {
        width: 100%;
        max-width: 100%;
        left: 0;
        right: 0;
    }

    .plugin-categories-tree-root {
        max-height: 320px;
    }
}
