
.fvjv-shell{
    --fv-bg: rgba(255,255,255,.035);
    --fv-bg-2: rgba(255,255,255,.055);
    --fv-border: rgba(148,163,184,.22);
    --fv-text: inherit;
    --fv-muted: #94a3b8;
    --fv-accent: #3dd6d0;
    --fv-accent-2: #47a7ff;
    --fv-danger: #ff6b7a;
    --fv-success: #4fd1a5;
    width:100%;
    max-width:none;
    margin:0 auto;
    color:var(--fv-text);
}
.fvjv-shell *{box-sizing:border-box}
.fvjv-hero{
    display:flex;
    align-items:center;
    gap:24px;
    padding:26px 28px;
    margin-bottom:20px;
    border:1px solid var(--fv-border);
    border-radius:22px;
    background:linear-gradient(135deg,rgba(61,214,208,.09),rgba(71,167,255,.055) 45%,transparent);
}
.fvjv-hero-icon-wrap{
    flex:0 0 118px;
    width:118px;height:118px;
    display:grid;place-items:center;
}
.fvjv-hero-icon{
    width:108px;height:108px;
    object-fit:contain;
    display:block;
}
.fvjv-eyebrow{
    font-size:12px;
    letter-spacing:.16em;
    color:var(--fv-accent);
    font-weight:700;
    margin-bottom:6px;
}
.fvjv-hero h1{margin:0 0 7px;font-size:clamp(28px,4vw,42px);line-height:1.08}
.fvjv-hero p{margin:0;color:var(--fv-muted);max-width:900px;line-height:1.6}


.fvjv-main-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
    align-items:stretch;
}
.fvjv-shell.has-results .fvjv-main-grid{
    grid-template-columns:minmax(360px,2fr) minmax(0,3fr);
}
.fvjv-shell.has-results .fvjv-input-card,
.fvjv-shell.has-results .fvjv-workspace{
    min-width:0;
}
.fvjv-shell.has-results .fvjv-workspace{
    display:flex;
    flex-direction:column;
}
.fvjv-shell.has-results .fvjv-view-card{
    flex:1;
    display:flex;
    flex-direction:column;
}
.fvjv-shell.has-results .fvjv-content{
    flex:1;
    max-height:none;
    min-height:420px;
}

.fvjv-card{
    border:1px solid var(--fv-border);
    border-radius:20px;
    background:transparent;
    overflow:hidden;
}
.fvjv-input-card{padding:22px}
.fvjv-card-head{
    display:flex;align-items:flex-start;justify-content:space-between;
    gap:16px;margin-bottom:18px
}
.fvjv-card-head h2{margin:0 0 5px;font-size:20px}
.fvjv-card-head p{margin:0;color:var(--fv-muted);font-size:14px}

.fvjv-dropzone{
    min-height:68px;
    border:1.5px dashed rgba(61,214,208,.45);
    border-radius:14px;
    background:rgba(61,214,208,.025);
    display:flex;flex-direction:row;align-items:center;justify-content:center;
    gap:12px;text-align:left;padding:9px 12px;transition:.18s ease;
    outline:none;
}
.fvjv-dropzone:hover,.fvjv-dropzone:focus,.fvjv-dropzone.is-dragging{
    border-color:var(--fv-accent);
    background:rgba(61,214,208,.065);
}
.fvjv-drop-icon{
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
    font-size:22px;font-weight:800;color:var(--fv-accent);
    margin:0;line-height:1;
}
.fvjv-dropzone strong{font-size:13px;white-space:nowrap}
.fvjv-dropzone span{display:none}
.fvjv-dropzone small{display:none}

.fvjv-separator{
    display:flex;align-items:center;gap:12px;
    margin:18px 0;color:var(--fv-muted);font-size:12px
}
.fvjv-separator:before,.fvjv-separator:after{
    content:"";height:1px;background:var(--fv-border);flex:1
}
.fvjv-source{
    width:100%;min-height:220px;resize:vertical;
    border:1px solid var(--fv-border);border-radius:14px;
    background:rgba(2,6,23,.18);color:inherit;
    padding:16px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
    outline:none;
}
.fvjv-source:focus{border-color:rgba(61,214,208,.65);box-shadow:0 0 0 3px rgba(61,214,208,.08)}
.fvjv-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}

.fvjv-btn{
    appearance:none;border:1px solid var(--fv-border);border-radius:10px;
    background:rgba(148,163,184,.08);color:inherit;
    padding:10px 14px;font-weight:650;cursor:pointer;transition:.15s ease
}
.fvjv-btn:hover{transform:translateY(-1px);border-color:rgba(61,214,208,.45)}
.fvjv-btn-primary{
    border-color:rgba(61,214,208,.5);
    background:linear-gradient(135deg,rgba(61,214,208,.22),rgba(71,167,255,.18));
}
.fvjv-btn-ghost{background:transparent}
.fvjv-btn-small{padding:8px 10px;font-size:12px}

.fvjv-status{margin:14px 0}
.fvjv-alert{
    border:1px solid var(--fv-border);border-radius:14px;padding:12px 14px;
    background:transparent;font-size:13px
}
.fvjv-alert.is-success{border-color:rgba(79,209,165,.42);color:var(--fv-success)}
.fvjv-alert.is-error{border-color:rgba(255,107,122,.42);color:var(--fv-danger)}
.fvjv-alert code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}


.fvjv-stats{
    display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;margin-bottom:14px
}
.fvjv-stat{
    border:1px solid var(--fv-border);border-radius:15px;
    padding:13px 15px;background:transparent
}
.fvjv-stat span{display:block;color:var(--fv-muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.fvjv-stat strong{display:block;margin-top:4px;font-size:21px}

.fvjv-view-card{margin-bottom:20px}
.fvjv-toolbar{
    display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
    padding:13px;border-bottom:1px solid var(--fv-border);
    background:rgba(148,163,184,.025)
}
.fvjv-tabs{display:flex;gap:5px;flex-wrap:wrap}
.fvjv-tab{
    border:1px solid transparent;border-radius:9px;background:transparent;color:inherit;
    padding:8px 11px;cursor:pointer;font-weight:650
}
.fvjv-tab.is-active{border-color:rgba(61,214,208,.35);background:rgba(61,214,208,.09);color:var(--fv-accent)}
.fvjv-toolbar-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.fvjv-search{
    width:min(260px,60vw);padding:9px 11px;border:1px solid var(--fv-border);
    background:transparent;color:inherit;border-radius:9px;outline:none
}
.fvjv-content{min-height:320px;max-height:70vh;overflow:auto}
.fvjv-view{display:none}
.fvjv-view.is-active{display:block}
.fvjv-code{
    margin:0;padding:19px;background:transparent;color:inherit;
    font:13px/1.65 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
    white-space:pre-wrap;overflow-wrap:anywhere
}

.fvjv-tree-root{
    padding:16px 18px 24px;
    font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}
.fvjv-node{position:relative;margin:2px 0 2px 18px}
.fvjv-node > .fvjv-row{display:flex;align-items:flex-start;gap:5px;min-height:23px;padding:2px 5px;border-radius:6px}
.fvjv-row.is-match{background:rgba(255,213,79,.14);outline:1px solid rgba(255,213,79,.22)}
.fvjv-toggle{
    width:18px;height:18px;padding:0;margin-top:1px;border:0;background:transparent;
    color:var(--fv-muted);cursor:pointer;font-size:11px
}
.fvjv-toggle::before{content:"▾"}
.fvjv-node.is-collapsed > .fvjv-row .fvjv-toggle::before{content:"▸"}
.fvjv-node.is-collapsed > .fvjv-children{display:none}
.fvjv-spacer{display:inline-block;width:18px}
.fvjv-key{color:#77c7ff;font-weight:650}
.fvjv-string{color:#8de0b7}
.fvjv-number{color:#ffbd7a}
.fvjv-boolean{color:#c7a7ff}
.fvjv-null{color:#94a3b8;font-style:italic}
.fvjv-meta{color:var(--fv-muted);font-size:11px}
.fvjv-punct{color:var(--fv-muted)}
.fvjv-children{border-left:1px solid rgba(148,163,184,.15);margin-left:8px;padding-left:2px}
.fvjv-empty{color:var(--fv-muted);padding:14px}

@media (prefers-color-scheme: light){
    .fvjv-shell{--fv-muted:#5f6f84;--fv-border:rgba(15,23,42,.15)}
    .fvjv-source{background:rgba(15,23,42,.025)}
    .fvjv-key{color:#176fa9}.fvjv-string{color:#187a51}.fvjv-number{color:#aa560d}.fvjv-boolean{color:#6f48b7}
}
@media (max-width:800px){
    .fvjv-hero{align-items:flex-start;padding:20px}
    .fvjv-hero-icon-wrap{flex-basis:82px;width:82px;height:82px}
    .fvjv-hero-icon{width:76px;height:76px}
    .fvjv-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
    .fvjv-dropzone{min-height:86px;flex-wrap:wrap;gap:8px;padding:10px}
    .fvjv-dropzone strong{white-space:normal;text-align:center}

    .fvjv-hero{flex-direction:column;gap:10px}
    .fvjv-card-head{flex-direction:column}
    .fvjv-toolbar{align-items:stretch}
    .fvjv-toolbar-actions{width:100%}
    .fvjv-search-wrap,.fvjv-search{width:100%}
}

@media (min-width:1101px){
    .fvjv-shell.has-results .fvjv-dropzone{min-height:86px}
    .fvjv-shell.has-results .fvjv-source{min-height:240px}
    .fvjv-shell.has-results .fvjv-stats{grid-template-columns:repeat(5,minmax(90px,1fr))}
    .fvjv-shell.has-results .fvjv-toolbar{align-items:flex-start}
    .fvjv-shell.has-results .fvjv-toolbar-actions{justify-content:flex-end;flex:1}
}
@media (max-width:1100px){
    .fvjv-shell.has-results .fvjv-main-grid{grid-template-columns:1fr}
    .fvjv-shell.has-results .fvjv-content{min-height:360px;max-height:70vh}
}



/* v1.1.5 · jerarquía visual del árbol */
/* Árbol: el marco y la guía lateral siguen la profundidad del objeto */
.fvjv-tree-root{--tree-l1:61,214,208;--tree-l2:71,167,255;--tree-l3:167,139,250;--tree-l4:244,183,64;--tree-l5:148,163,184}
.fvjv-node{border-radius:7px}
.fvjv-node > .fvjv-row{border-left:3px solid transparent}
.fvjv-tree-level-1 > .fvjv-row{border-left-color:rgba(var(--tree-l1),.65);background:rgba(var(--tree-l1),.025)}
.fvjv-tree-level-2 > .fvjv-row{border-left-color:rgba(var(--tree-l2),.60);background:rgba(var(--tree-l2),.023)}
.fvjv-tree-level-3 > .fvjv-row{border-left-color:rgba(var(--tree-l3),.55);background:rgba(var(--tree-l3),.021)}
.fvjv-tree-level-4 > .fvjv-row{border-left-color:rgba(var(--tree-l4),.50);background:rgba(var(--tree-l4),.019)}
.fvjv-tree-level-5 > .fvjv-row{border-left-color:rgba(var(--tree-l5),.45);background:rgba(var(--tree-l5),.017)}
.fvjv-tree-level-1 > .fvjv-children{border-left-color:rgba(var(--tree-l1),.30)}
.fvjv-tree-level-2 > .fvjv-children{border-left-color:rgba(var(--tree-l2),.28)}
.fvjv-tree-level-3 > .fvjv-children{border-left-color:rgba(var(--tree-l3),.26)}
.fvjv-tree-level-4 > .fvjv-children{border-left-color:rgba(var(--tree-l4),.24)}
.fvjv-tree-level-5 > .fvjv-children{border-left-color:rgba(var(--tree-l5),.22)}
.fvjv-node > .fvjv-row:hover{background:rgba(148,163,184,.055)}

