.np-viz{display:flex;flex-direction:column;background:var(--color-bg);border-radius:var(--radius-md);overflow:visible;min-height:480px}.np-viz__toolbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--color-border);flex-shrink:0;flex-wrap:wrap;gap:8px}.np-viz__toolbar-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.np-viz__title{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-purple)}.np-viz__mode{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.np-viz__mode-btn{font-family:var(--font-mono);font-size:.65rem;padding:5px 14px;border:1px solid var(--color-border);background:0 0;color:var(--color-text-muted);cursor:pointer;border-radius:3px;transition:all .2s ease;letter-spacing:.06em}.np-viz__mode-btn:hover{border-color:var(--color-purple);color:var(--color-purple)}.np-viz__mode-btn--active{border-color:var(--color-purple);color:var(--color-purple);background:rgba(108,99,255,.1)}.np-viz__speed{display:flex;align-items:center;gap:8px}.np-viz__speed-label{font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-muted);letter-spacing:.08em}.np-viz__speed-btn{font-family:var(--font-mono);font-size:.6rem;padding:4px 10px;border:1px solid var(--color-border);background:0 0;color:var(--color-text-muted);cursor:pointer;border-radius:3px;transition:all .2s ease}.np-viz__speed-btn--active,.np-viz__speed-btn:hover{border-color:var(--color-purple);color:var(--color-purple)}.np-viz__speed-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.np-viz__canvas-wrap{flex:1 1 auto;position:relative;min-height:40px}.np-viz__canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.np-viz__log{padding:12px 24px;border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:.78rem;color:var(--color-purple);letter-spacing:.03em;min-height:60px;display:flex;align-items:center;flex-shrink:0;line-height:1.65}.np-viz__controls{display:flex;align-items:center;gap:10px;padding:12px 24px;border-top:1px solid rgba(108,99,255,.1);flex-shrink:0}.np-viz__btn{font-family:var(--font-mono);font-size:.75rem;padding:9px 22px;border:1px solid var(--color-border);background:0 0;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all .2s ease;letter-spacing:.06em}.np-viz__btn:hover{border-color:var(--color-purple);color:var(--color-purple)}.np-viz__btn--primary{border-color:var(--color-purple);color:var(--color-purple)}.np-viz__btn--primary:hover{background:var(--color-purple);color:#0f0f1a}.np-viz__btn:disabled{opacity:.35;cursor:not-allowed}@media (max-width:600px){.np-viz__toolbar{padding:12px 16px}.np-viz__log{padding:10px 16px;font-size:.72rem}.np-viz__controls{padding:10px 16px;gap:8px}.np-viz__btn{font-size:.7rem;padding:8px 16px}}