/*
 * El catálogo por niveles (horizontal) del panel: las reglas de .nvs, .nvc, .nv…, sacadas de
 * panel.css para que las compartan el panel actual y el nuevo. Se estila sólo por tokens
 * (--raise, --line, --accent…); la vertical inyecta las suyas desde src/catalog-vertical.js.
 */
.nvs{display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));gap:1.6rem;min-width:1120px;align-items:start}
.nvc{background:var(--raise);border:1px solid var(--line);border-radius:9px;overflow:hidden;box-shadow:var(--shadow)}
.nvh{padding:.5rem .8rem;background:var(--sunk);border-bottom:1px solid var(--line);font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;gap:.5rem}
.nvh b{color:var(--ink)}.nvh span:first-child{white-space:normal;line-height:1.35}.nvh .r{letter-spacing:0;text-transform:none;white-space:nowrap}
.nv{padding:.45rem .8rem;border-top:1px solid var(--line-soft);cursor:pointer;font-size:.86rem;line-height:1.3}
.nv:first-of-type{border-top:0}.nv:hover{background:var(--hover)}
.nv.sel{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}
.nv.rel{background:color-mix(in oklab, var(--accent-soft) 32%, var(--raise))}.nv.off{opacity:.42}
.nv .t{font-weight:600;display:flex;gap:.4rem;align-items:baseline;flex-wrap:wrap}.nv .t .chip{font-size:.66rem;padding:.06em .4em}
.nv .d{color:var(--muted);font-size:.76rem;font-family:var(--mono);margin-top:.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nv.mas{color:var(--accent);font-weight:500;font-size:.8rem}
.nvs{position:relative}.nvs svg.lineas{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.nvs svg.lineas path{fill:none;stroke:var(--accent);stroke-width:1.5;opacity:.7}.nvs svg.lineas marker *{fill:var(--accent);stroke:none}
.nvh .acc{display:flex;gap:.35rem;letter-spacing:0;text-transform:none}
.nvh .acc button{border:0;background:none;color:var(--faint);padding:0 .15rem;font:inherit;line-height:1;cursor:pointer;display:inline-flex;align-items:center}
.nvh .acc button:hover,.nvh .acc button.on{color:var(--accent)}
.nvf{display:flex;flex-wrap:wrap;gap:.3rem;padding:.45rem .6rem;border-bottom:1px solid var(--line-soft);background:var(--hover)}
.nvf .fc{padding:.1rem .55rem;font-size:.76rem}
.nv .t .grow{flex:1;min-width:0;display:flex;gap:.4rem;align-items:baseline;flex-wrap:wrap}
.nv .i{flex:none;width:1.15rem;height:1.15rem;border-radius:50%;border:1px solid var(--line);background:var(--raise);color:var(--muted);font:600 .68rem/1 var(--mono);display:inline-flex;align-items:center;justify-content:center;opacity:.55;cursor:pointer}
.nv:hover .i,.nv.sel .i{opacity:1}.nv .i:hover{color:var(--accent);border-color:var(--accent)}
.nvc.plegada{writing-mode:vertical-rl;padding:.8rem .35rem;cursor:pointer;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--sunk);min-height:8rem;display:flex;align-items:center;gap:.5rem}
.nvc.plegada:hover{color:var(--accent)}
