Pretty-print my BQN Arrays Marshall Lochbaum's online BQN REPL has an interesting(and aesthetically pleasing) method of displaying arrays. Your task is to implement a version with simpler rules.
[2,[3],4,[[[6,[5],7]]]]

becomes:
┌─                                 
· 2 ┌·    4 ┌·                     
    · 3     · ┌·                   
        ┘     · ┌─                 
                · 6 ┌·    7        
                    · 5            
                        ┘          
                            ┘      
                              ┘    
                                ┘  
                                  ┘

Rules for drawing

A singleton array has

┌· 
·

as its top left corner.

A non-singleton array has

┌─  
·

as its top left corner.
(In the actual BQN, this is used for rank-0, or &quot;unit&quot; arrays)

All arrays have

┘

as their bottom right corner.

Each element at a certain depth will be displayed at the same depth vertically.
For example, 2 and 4 are displayed 1 unit from the top since they are at depth 1.
Each further level of nesting depth moves 1 unit down in depth.
Numbers next to each other will be separated by a single space.

Other details

You may take a ragged numeric array in any way your language supports.
The input will only consist of integers and nested arrays containing integers.
If your language does not support arrays with depth, you may take a string/other equivalent that your language supports.
If your language's codepage does not contain the characters ┌ · ─ ┘, you can count them as 1 byte.
This is code-golf. Shortest answer in each language wins.
Since bacon strips are thin, your code must be thin and small as well.
Charcoal, 72 bytes
ＦＳ≡ι(«⊞υⅉＰ⌈┌´·↘→⊞υⅉ»)«≔⊕⊟υιＭ¹⁻ιⅉ┘Ｍ⁻ⅉ⊟υ↑¿υ⊞υ⌈⟦ι⊟υ⟧»,«↑≔ＫＤ⊕ⅈ←ι§≔ι⊖⌕ι┌¦─↘»ι

Try it online! Link is to verbose version of code. Uses lists rather than arrays because they're easier to input. Explanation:
ＦＳ≡ι

Switch over each character of the input as a string.
(«

For a (, ...
⊞υⅉ

... save the vertical position as the top margin, ...
Ｐ⌈┌´·↘→

... assume a single-element list, ...
⊞υⅉ

... and save the vertical position again, this time as the bottom margin.
»)«

For a ), ...
≔⊕⊟υι

... get the bottom margin of this list, plus 1, ...
Ｍ¹⁻ιⅉ

... move to that row, ...
┘

... close the list, ...
Ｍ⁻ⅉ⊟υ↑

... move to and forget the top margin of this list, ...
¿υ⊞υ⌈⟦ι⊟υ⟧

... and update the bottom margin of the containing list if necessary.
»,«

For a ,, ...
↑≔ＫＤ⊕ⅈ←ι

... grab the text on the previous row, ...
§≔ι⊖⌕ι┌¦─

... find the ┌ and change the character after it to a ─, ...
↘

... and move to the next column on the original row.
»ι

Otherwise, just output the current character.
Note that the · is in Charcoal's code page (so because it needs to be quoted it ends up costing me two bytes!) but the box-drawing characters are not. They would normally cost three bytes in Charcoal so as I use them four times I have subtracted 8 bytes from Charcoal's calculation.