/* Climate Risk Catalogue tree — loaded AFTER Radzen + platform-theme (see App.razor) so these rules win. */

aside.catalogue-panel .catalogue-tree-panel {
    --ct-border: rgba(13, 33, 55, 0.12);
    --ct-navy: #0d2137;
    --ct-teal: #1a7f6e;
    --ct-teal-soft: rgba(26, 127, 110, 0.1);
    --ct-teal-line: rgba(26, 127, 110, 0.2);
    --ct-text-mid: #2c4a5e;
    --ct-sand: #f5f0e8;
    --ct-muted: #5c7a8a;

    background: #ffffff;
    border: 1px solid var(--ct-border);
    border-radius: 6px;
    padding: 0.85rem 0.9rem 1rem;
    box-shadow: 0 8px 32px rgba(13, 33, 55, 0.08);
}

aside.catalogue-panel .catalogue-panel-title {
    margin: -0.85rem -0.9rem 0.85rem -0.9rem;
    padding: 0.65rem 0.9rem;
    background: var(--ct-navy);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.05em;
    border-radius: 5px 5px 0 0;
}

aside.catalogue-panel .ct-tree-host {
    margin: 0;
    padding-left: 0.2rem;
}

aside.catalogue-panel .ct-placeholder {
    color: var(--ct-muted);
    margin: 0;
}

aside.catalogue-panel .catalogue-tree-panel .rz-treenode-content.ct-rz-item-content {
    gap: 0.25rem;
}

aside.catalogue-panel .catalogue-tree-panel ul.rz-treenode-children .rz-treenode-content.ct-rz-item-content {
    gap: 0.15rem;
}

aside.catalogue-panel .catalogue-tree-panel .rz-tree {
    font-family: inherit;
}

/* Extra: Radzen sometimes draws borders on list items — remove vertical rules between sector blocks */
aside.catalogue-panel .catalogue-tree-panel .rz-tree ul,
aside.catalogue-panel .catalogue-tree-panel .rz-treenode {
    border-left: none !important;
    border-right: none !important;
}

/* No vertical branch lines (Radzen DOM may not match a single “first ul” selector) */
aside.catalogue-panel .catalogue-tree-panel ul.rz-treenode-children {
    margin: 0 !important;
    padding: 0.05rem 0 0.05rem 0.35rem !important;
    border-left: none !important;
    list-style: none;
}

aside.catalogue-panel .catalogue-tree-panel ul.rz-treenode-children > li.rz-treenode {
    margin: 0;
    padding: 0;
}

aside.catalogue-panel .catalogue-tree-panel .rz-treenode-content {
    border-radius: 4px;
    padding: 0.2rem 0.35rem 0.2rem 0.45rem;
    align-items: flex-start;
}

aside.catalogue-panel .catalogue-tree-panel ul.rz-treenode-children .rz-treenode-content {
    padding: 0.08rem 0.35rem 0.08rem 0.4rem;
    margin-bottom: 0.1rem;
}

aside.catalogue-panel .catalogue-tree-panel ul.rz-treenode-children .rz-treenode-content-selected {
    background-color: transparent !important;
}

aside.catalogue-panel .catalogue-tree-panel .rz-tree > ul > li.rz-treenode > .rz-treenode-content.rz-treenode-content-selected {
    background-color: #163352 !important;
}

aside.catalogue-panel .catalogue-tree-panel .rz-tree-toggler {
    color: var(--ct-text-mid);
    margin-top: 0.1rem;
    margin-left: 0.1rem;
    flex-shrink: 0;
}

/* Indicators: + / − */
aside.catalogue-panel .catalogue-tree-panel ul.rz-treenode-children .rz-tree-toggler.rzi {
    font-family: "Source Sans 3", system-ui, sans-serif !important;
    font-size: 0.85rem !important;
    line-height: 1;
    min-width: 1.65rem;
    min-height: 1.5rem;
    padding: 0.18rem 0.16rem;
    box-sizing: border-box;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    cursor: pointer;
    color: var(--ct-text-mid);
}

aside.catalogue-panel .catalogue-tree-panel ul.rz-treenode-children .rz-tree-toggler.rzi::before {
    content: "+" !important;
    font-family: "Source Sans 3", system-ui, sans-serif !important;
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    font-style: normal !important;
}

aside.catalogue-panel .catalogue-tree-panel ul.rz-treenode-children .rz-tree-toggler.rzi.rzi-caret-down::before {
    content: "-" !important;
    font-weight: 800 !important;
}

aside.catalogue-panel .catalogue-tree-panel ul.rz-treenode-children .rz-tree-toggler.rzi::after {
    display: none !important;
    content: none !important;
}

/* Sectors */
aside.catalogue-panel .catalogue-tree-panel .rz-tree > ul > li.rz-treenode > .rz-treenode-content {
    background: var(--ct-navy);
    color: #fff;
    border-radius: 4px;
    padding: 0.45rem 0.55rem 0.45rem 0.55rem;
    margin-bottom: 0.45rem;
    align-items: center;
}

aside.catalogue-panel .catalogue-tree-panel .rz-tree > ul > li.rz-treenode > .rz-treenode-content .rz-tree-toggler.rzi {
    color: rgba(255, 255, 255, 0.95) !important;
    font-family: inherit !important;
    font-size: 0 !important;
    line-height: 1;
    min-width: 1.55rem;
    min-height: 1.45rem;
    margin-left: 0.12rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    opacity: 1;
}

aside.catalogue-panel .catalogue-tree-panel .rz-tree > ul > li.rz-treenode > .rz-treenode-content .rz-tree-toggler.rzi::before {
    content: "+" !important;
    font-family: "Source Sans 3", system-ui, sans-serif !important;
    font-size: 1.15rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    color: #fff !important;
}

aside.catalogue-panel .catalogue-tree-panel .rz-tree > ul > li.rz-treenode > .rz-treenode-content .rz-tree-toggler.rzi.rzi-caret-down::before {
    content: "-" !important;
    font-weight: 800 !important;
}

aside.catalogue-panel .catalogue-tree-panel .ct-sector-inner {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    flex: 1;
}

aside.catalogue-panel .catalogue-tree-panel .ct-sector {
    display: inline-block;
    background: transparent;
    border: none;
    color: #fff;
    padding: 0.1rem 0.2rem;
    border-radius: 0;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.02em;
}

aside.catalogue-panel .catalogue-tree-panel .ct-sector--expandable {
    cursor: pointer;
}

aside.catalogue-panel .catalogue-tree-panel .ct-sector--expandable:hover {
    color: rgba(255, 255, 255, 0.95);
}

/* Align leaf indicators (no expand) with rows that have +/− — spacer matches toggler column */
aside.catalogue-panel .catalogue-tree-panel .ct-indicator-row {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    min-width: 0;
    max-width: 100%;
}

aside.catalogue-panel .catalogue-tree-panel .ct-indicator-toggler-spacer {
    flex: 0 0 auto;
    box-sizing: border-box;
    /* margin-left on .rz-tree-toggler (0.1rem) + min-width (1.65rem) + horizontal padding (0.32rem) */
    width: 2.07rem;
    min-width: 2.07rem;
    min-height: 1.35rem;
    pointer-events: none;
}

aside.catalogue-panel .catalogue-tree-panel .ct-indicator {
    display: inline-block;
    background: var(--ct-sand);
    border: 1px solid var(--ct-border);
    color: var(--ct-text-mid);
    padding: 0.2rem 0.45rem;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.25;
}

aside.catalogue-panel .catalogue-tree-panel .ct-indicator--selected {
    color: var(--ct-teal) !important;
    font-weight: 600 !important;
    border-color: rgba(26, 127, 110, 0.35);
    background: rgba(26, 127, 110, 0.06);
}

aside.catalogue-panel .catalogue-tree-panel .ct-dataset {
    font-size: 8.5px !important;
    font-weight: 400 !important;
    font-style: italic !important;
    color: #8a9bab !important;
    line-height: 1.25 !important;
}
