/* Tree-only layout: appearance variables retain the selected palette and depth. */
.json-tree-scroll { max-width: 100%; min-width: 0; overflow: auto; overscroll-behavior-inline: contain; }
.json-tree-scroll:focus-visible { outline: 2px solid var(--accent2-ink, var(--accent2)); outline-offset: 3px; }
.json-tree-scroll .json-tree { width: 100%; min-width: min(100%, 18rem); margin-top: 24px; font-family: var(--font-code, Consolas, Monaco, monospace); }
.json-tree .json-line { min-width: 0; align-items: flex-start; }
.json-tree .json-indent { width: calc(var(--tree-depth, 0) * 1rem); max-width: 8rem; flex-shrink: 0; }
.json-tree .json-expand, .json-tree .tree-toggle-spacer { width: 24px; height: 28px; flex: 0 0 24px; margin: 0 4px 0 0; }
.json-tree .json-expand { display: inline-grid; place-items: center; padding: 0; border: 1px solid transparent; border-radius: 4px; background: transparent; font: inherit; color: var(--accent2-ink, var(--accent2)); cursor: pointer; }
.json-tree .json-expand:hover { background: var(--hover); border-color: var(--border); color: var(--accent-ink, var(--accent)); }
.json-tree .json-expand:focus-visible, .tree-page-button:focus-visible, .tree-page-status:focus-visible { outline: 2px solid var(--accent-ink, var(--accent)); outline-offset: 2px; }
.tree-line-content { min-width: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.json-tree .json-key { overflow-wrap: anywhere; }
.json-tree .json-collapsed { white-space: normal; }
.tree-truncated { color: var(--muted, #aaa); font-size: .8em; margin-left: .4em; }
.tree-pager, .tree-branch-status { margin: .45rem 0 .65rem; margin-left: calc(var(--tree-depth, 0) * 1rem + 28px); }
.tree-pager { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; padding: 9px 10px; border: 1px solid var(--border); border-radius: 7px; background: var(--panel); font-family: var(--font-ui, system-ui, sans-serif); }
.tree-page-button { min-height: 36px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 5px; background: var(--panel); color: var(--text); cursor: pointer; font: inherit; font-size: .78rem; }
.tree-page-button:hover:not(:disabled) { border-color: var(--accent2-ink, var(--accent2)); background: var(--hover); }
.tree-page-button:disabled { opacity: .5; cursor: default; }
.tree-page-status { color: var(--muted, #aaa); font-size: .75rem; white-space: normal; }
.tree-branch-status { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted, #aaa); font-size: .8rem; overflow-wrap: anywhere; }
.tree-branch-error { color: #ffaaaa; }
.tree-notice, .tree-file-status { color: var(--muted, #aaa); line-height: 1.65; font-size: .85rem; overflow-wrap: anywhere; }
.tree-notice { padding: 12px; border: 1px solid var(--border); border-radius: 7px; }
.tree-file-name { min-width: 0; overflow-wrap: anywhere; font-size: .8rem; color: var(--muted, #aaa); }
@media (max-width: 520px) {
    .json-tree .json-indent { width: calc(var(--tree-depth, 0) * .55rem); max-width: 4.4rem; }
    .tree-pager, .tree-branch-status { margin-left: calc(var(--tree-depth, 0) * .55rem + 12px); }
    .tree-pager { gap: 7px; padding: 8px; }
    .tree-page-status { flex-basis: 100%; order: 3; }
    .tree-page-button { min-height: 40px; }
}
@media (forced-colors: active) {
    .json-tree .json-expand:focus-visible, .tree-page-button:focus-visible, .tree-page-status:focus-visible { outline-color: Highlight; }
    .tree-page-button:disabled { color: GrayText; opacity: 1; }
}
