:root{--bg:#050810;--surface:#0c1120;--surface2:#111827;--surface3:#161f33;--border:#1e2d4a;--border2:#2a3a5c;--gold:#f5a623;--saffron:#ff6b1a;--blue:#3b82f6;--cyan:#06b6d4;--purple:#8b5cf6;--green:#10b981;--red:#f87171;--yellow:#fbbf24;--text:#e2e8f0;--muted:#64748b;--dim:#94a3b8;--r:14px;--r-sm:9px}.viz-brand-om{-webkit-text-fill-color:var(--gold);font-size:1.05rem;animation:4s ease-in-out infinite viz-float}.viz-live-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);background:#06b6d414;border:1px solid #06b6d440;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .7rem;font-family:JetBrains Mono,monospace;font-size:.62rem;display:inline-flex}.viz-live-dot{background:var(--green);border-radius:50%;width:7px;height:7px;animation:2s infinite viz-pulse}@keyframes viz-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.35)}}.lvz-app{z-index:1;grid-template-columns:.92fr 1.08fr;gap:1.25rem;max-width:1280px;margin:0 auto;padding:1.5rem 1.5rem 4rem;display:grid;position:relative}@media (width<=940px){.lvz-app{grid-template-columns:1fr}}.lvz-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.lvz-panel-head{border-bottom:1px solid var(--border);background:var(--surface2);justify-content:space-between;align-items:center;gap:.5rem;padding:.7rem 1rem;display:flex}.lvz-panel-title{font-family:var(--font-sans);color:var(--text);letter-spacing:.02em;font-size:.85rem;font-weight:700}.lvz-panel-hint{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-family:JetBrains Mono,monospace;font-size:.62rem}.lvz-code{padding:1rem .5rem 1rem 0;font-family:JetBrains Mono,monospace;font-size:.78rem;line-height:1.85;overflow-x:auto}.lvz-cline{border-left:2px solid #0000;gap:.5rem;padding:0 1rem 0 0;transition:background .2s,border-color .2s;display:flex}.lvz-cline .ln{text-align:right;color:#3a486a;user-select:none;flex:0 0 1.8rem}.lvz-cline.active{border-left-color:var(--gold);background:#f5a6231a}.lvz-win-dots{gap:.4rem;display:inline-flex}.lvz-wd{border-radius:50%;width:11px;height:11px}.lvz-wd-r{background:#ff5f57}.lvz-wd-y{background:#febc2e}.lvz-wd-g{background:#28c840}.lvz-code .kw{color:#c792ea}.lvz-code .fn{color:#82aaff}.lvz-code .str{color:#c3e88d}.lvz-code .num{color:#f78c6c}.lvz-code .cmt{color:#546e7a;font-style:italic}.lvz-code .cl{color:#ffcb6b}.lvz-code .prop{color:#89ddff}.lvz-explain{border-top:1px solid var(--border);background:var(--surface2);padding:.85rem 1rem}.lvz-explain-tag{letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:.35rem;font-family:JetBrains Mono,monospace;font-size:.6rem}.lvz-explain-text{color:var(--dim);font-size:.85rem;line-height:1.55}.lvz-right{flex-direction:column;gap:1.25rem;display:flex}.lvz-controls{padding:1rem}.lvz-ctrl-row{flex-wrap:wrap;align-items:flex-end;gap:.85rem;display:flex}.lvz-ctrl-actions{align-items:center;margin-top:.85rem}.lvz-field{flex-direction:column;gap:.3rem;display:flex}.lvz-field label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.62rem}.lvz-op-inputs{align-items:center;gap:.4rem;display:flex}.lvz-input{background:var(--bg);border:1px solid var(--border2);border-radius:var(--r-sm);color:var(--text);width:5.5rem;padding:.45rem .55rem;font-family:JetBrains Mono,monospace;font-size:.9rem}.lvz-input-sm{width:4rem}.lvz-input::placeholder{color:var(--muted)}.lvz-input:focus-visible{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}.lvz-btn{background:var(--surface3);color:var(--text);border:1px solid var(--border2);border-radius:var(--r-sm);cursor:pointer;letter-spacing:.03em;justify-content:center;align-items:center;gap:.3rem;padding:.5rem .85rem;font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:600;transition:all .18s;display:inline-flex}.lvz-btn:hover{border-color:var(--gold);color:var(--gold)}.lvz-btn:disabled{opacity:.45;cursor:not-allowed}.lvz-btn-primary{background:linear-gradient(135deg, var(--gold), var(--saffron));color:#000;border-color:#0000}.lvz-btn-primary:hover{color:#000;transform:translateY(-1px);box-shadow:0 0 18px #f5a62366}.lvz-btn-op{color:var(--cyan);background:#06b6d41f;border-color:#06b6d466}.lvz-btn-op:hover{color:var(--cyan);border-color:var(--cyan);background:#06b6d438}.lvz-err{color:var(--red);min-height:1em;margin:0;font-size:.78rem}.lvz-status{color:var(--dim);border-left:3px solid var(--border2);margin:.9rem 0 0;padding-left:.8rem;font-size:.82rem;line-height:1.5}.lvz-status strong{color:var(--text)}.lvz-status.hit{border-left-color:var(--green)}.lvz-status.miss{border-left-color:var(--red)}.lvz-status.evict{border-left-color:var(--saffron)}.lvz-structs{grid-template-columns:.82fr 1.18fr;gap:1rem;padding:1rem;display:grid}@media (width<=560px){.lvz-structs{grid-template-columns:1fr}}.lvz-sub{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);padding:.85rem}.lvz-sub-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.75rem;display:flex}.lvz-sub-title{color:var(--text);font-size:.8rem;font-weight:700}.lvz-sub-hint{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-family:JetBrains Mono,monospace;font-size:.58rem}.lvz-map{border-collapse:collapse;width:100%;font-family:JetBrains Mono,monospace;font-size:.78rem}.lvz-map th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);padding:.35rem .4rem;font-size:.6rem;font-weight:600}.lvz-map td{color:var(--dim);border-bottom:1px solid #94a3b814;padding:.4rem}.lvz-map code{color:var(--gold);background:#f5a6231f;border-radius:4px;padding:.05em .35em}.lvz-map-row.active td{background:#f5a6231a}.lvz-empty{color:var(--muted);font-size:.8rem;font-style:italic}.lvz-list-wrap{padding-bottom:.3rem;overflow-x:auto}.lvz-list{flex-wrap:wrap;align-items:stretch;gap:.2rem;min-height:100px;display:flex}.lvz-node{background:#06b6d414;border:1px solid #06b6d459;border-radius:10px;flex-direction:column;flex:none;gap:.2rem;min-width:74px;padding:.5rem .55rem;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s;display:flex}.lvz-node-badges{gap:.2rem;min-height:.9rem;display:flex}.lvz-tag{letter-spacing:.04em;border-radius:999px;padding:.07rem .3rem;font-family:JetBrains Mono,monospace;font-size:.52rem;font-weight:700}.lvz-tag-mru{color:var(--cyan);background:#06b6d424;border:1px solid #06b6d466}.lvz-tag-lru{color:var(--gold);background:#f5a62324;border:1px solid #f5a62366}.lvz-node-key{color:var(--text);font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:700}.lvz-node-val{color:var(--dim);font-family:JetBrains Mono,monospace;font-size:.68rem}.lvz-node.active{transform:translateY(-3px);box-shadow:0 0 0 2px #e7e9ee80}.lvz-node.moved,.lvz-node.enter{animation:.45s lvz-pop;box-shadow:0 0 0 2px #06b6d466}.lvz-node.evict{border-color:var(--red);background:#f8717129;animation:.45s lvz-shake}.lvz-conn{flex-direction:column;align-self:center;gap:.15rem;padding:0 .1rem;display:flex}.lvz-arr-n{color:var(--cyan);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:.54rem;line-height:1}.lvz-arr-p{color:var(--muted);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:.54rem;line-height:1}@keyframes lvz-pop{0%{opacity:.4;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes lvz-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.lvz-node,.lvz-node.moved,.lvz-node.enter,.lvz-node.evict{transition:none;animation:none}}.lvz-log{flex-direction:column;gap:.3rem;max-height:200px;margin:0;padding:.85rem 1rem;list-style:none;display:flex;overflow-y:auto}.lvz-log-li{color:var(--dim);align-items:baseline;gap:.5rem;font-family:JetBrains Mono,monospace;font-size:.74rem;line-height:1.4;display:flex}.lvz-log-tag{letter-spacing:.04em;color:var(--muted);background:#94a3b81a;border-radius:4px;flex:none;padding:.1rem .4rem;font-size:.58rem;font-weight:700}.lvz-log-li.hit .lvz-log-tag{color:var(--green);background:#10b9811f}.lvz-log-li.miss .lvz-log-tag{color:var(--red);background:#f871711f}.lvz-log-li.evict .lvz-log-tag{color:var(--saffron);background:#ff6b1a1f}.lvz-log-li.put .lvz-log-tag{color:var(--cyan);background:#06b6d41f}
