/* Catalogue browser (view-catalogue). Reuses global tokens + .btn styles. */
.catalogue-root{flex:1;overflow:hidden;padding:16px;display:flex;flex-direction:column;gap:12px}

.cat-marker{font-size:11px;color:var(--txt-m);border:1px dashed var(--bdr);border-radius:4px;padding:7px 10px;background:var(--bg-el)}
.cat-error{font-size:12px;color:var(--crit);background:rgba(229,85,97,.1);border:1px solid rgba(229,85,97,.35);border-radius:4px;padding:8px 11px;line-height:1.45}

.cat-grid{flex:1;display:grid;grid-template-columns:320px 1fr;gap:14px;overflow:hidden;min-height:0}

/* ── Tree ── */
.cat-tree{border:1px solid var(--bdr);border-radius:6px;overflow-y:auto;background:var(--bg-surface);padding:6px}
.cat-node{}
.cat-children{margin-left:16px;border-left:1px solid var(--bdr);padding-left:4px}
.cat-row{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:4px;cursor:pointer;font-size:12px}
.cat-row:hover{background:var(--bg-el)}
.cat-caret{display:inline-block;width:12px;font-size:9px;color:var(--txt-m);transition:transform .12s}
.cat-caret.open{transform:rotate(90deg)}
.cat-dot{display:inline-block;width:12px;font-size:9px;color:var(--brand)}
.cat-lbl{flex:1;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-ent>.cat-row>.cat-lbl{font-weight:600}
.cat-count{font-size:10px;color:var(--txt-m);flex-shrink:0}
.cat-prog-row.sel{background:var(--brand-d)}
.cat-prog-row.sel .cat-lbl{color:var(--brand);font-weight:600}
.cat-leaf-empty{font-size:11px;color:var(--txt-m);padding:4px 10px}

/* ── Detail ── */
.cat-detail{border:1px solid var(--bdr);border-radius:6px;overflow-y:auto;background:var(--bg-surface);padding:16px;display:flex;flex-direction:column;gap:12px}
.cat-det-head{}
.cat-det-title{font-size:15px;font-weight:600}
.cat-det-sub{font-size:11px;color:var(--txt-m);margin-top:2px}

.cat-cmp-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cat-cmp-hint{font-size:11px;color:var(--txt-s)}

.cat-snaps{width:100%;border-collapse:collapse;font-size:12px}
.cat-snaps th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--txt-m);font-weight:600;padding:5px 8px;border-bottom:1px solid var(--bdr)}
.cat-snaps td{padding:6px 8px;border-bottom:1px solid var(--bdr);vertical-align:middle}
.cat-snap-picked{background:var(--brand-d)}
.cat-snap-name{font-weight:600;color:var(--txt)}
.cat-ver{color:var(--txt-m);font-family:var(--mono);font-size:11px}
.cat-mono{font-family:var(--mono);font-size:11px;color:var(--txt-s)}
.cat-snap-act{white-space:nowrap;display:flex;gap:5px}

.cat-badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;border:1px solid var(--bdr)}
.cat-b-ok{color:var(--acc);border-color:rgba(61,184,130,.4)}
.cat-b-err{color:var(--crit);border-color:rgba(229,85,97,.4)}
.cat-b-run{color:var(--brand);border-color:var(--brand)}
.cat-b-mut{color:var(--txt-m)}

.cat-wm-note{font-size:11px;color:var(--txt-m);font-style:italic}
.cat-dl-status{min-height:16px;font-size:11px}
.cat-dl-run{color:var(--txt-m)}
.cat-dl-ok{color:var(--acc)}
.cat-dl-err{color:var(--crit)}

/* ── Diff summary ── */
.cat-diff{margin-top:6px;display:flex;flex-direction:column;gap:10px}
.cat-diff-head{font-size:13px;font-weight:600}
.cat-nochange{font-size:12px;color:var(--txt-m)}
.cat-sec{border:1px solid var(--bdr);border-radius:5px;overflow:hidden}
.cat-sec-hd{font-size:11px;font-weight:600;padding:6px 12px;background:var(--bg-el);border-bottom:1px solid var(--bdr)}
.cat-sec-body{padding:8px 12px;display:flex;gap:16px;font-size:12px;flex-wrap:wrap}
.cat-sec-list{padding:8px 12px;display:flex;flex-direction:column;gap:4px;font-size:12px}
.cat-diff-more{margin-top:4px}

.cat-det-sec-hd{font-size:12px;font-weight:600;margin:12px 0 6px}
.cat-tag-changes{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}
.cat-tag-change{font-size:11px;color:var(--txt-s)}
.cat-tc-type{display:inline-block;font-size:9px;text-transform:uppercase;padding:0 5px;border-radius:8px;border:1px solid var(--bdr);margin-right:4px}
.cat-tc-added{color:var(--acc)}
.cat-tc-removed{color:var(--crit)}
.cat-tc-modified{color:var(--info)}
.cat-tc-scope{color:var(--txt-m)}

.cat-rung{margin-bottom:8px;border:1px solid var(--bdr);border-radius:5px}
.cat-rung-hd{font-size:11px;display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--bg-el)}
.cat-rung-cols{padding:8px 12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cat-rung-lbl{font-size:10px;color:var(--txt-m);margin-bottom:2px}
.cat-rung-before{font-size:10px;word-break:break-all;color:var(--crit)}
.cat-rung-after{font-size:10px;word-break:break-all;color:var(--acc)}

/* ── Past comparisons ── */
.cat-past{margin-top:12px;border-top:1px solid var(--bdr);padding-top:10px}
.cat-past-hd{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--txt-m);margin-bottom:8px}
.cat-past-row{border:1px solid var(--bdr);border-radius:5px;padding:8px 12px;margin-bottom:6px;cursor:pointer}
.cat-past-row:hover{background:var(--bg-el)}
.cat-past-title{font-size:12px;font-weight:600}
.cat-past-meta{font-size:10px;color:var(--txt-m);margin:2px 0 4px}
.cat-chips{display:flex;gap:5px;flex-wrap:wrap}
.cat-chip{font-size:10px;padding:1px 7px;border-radius:9px;background:var(--bg-el);border:1px solid var(--bdr);color:var(--txt-s)}
.cat-chip-mut{color:var(--txt-m)}
