.jf{--jf-key:var(--accent-text);--jf-str:#8ee6b8;--jf-num:#7cc4ff;--jf-lit:#ffb36b;--jf-line:22px;--jf-code:14px}:root[data-theme=light] .jf{--jf-str:#0f7a52;--jf-num:#1b4fd1;--jf-lit:#a8460c}.jf-check{cursor:pointer;align-items:center;gap:8px;min-height:36px;font-size:.95rem;font-weight:600;display:inline-flex}.jf-check input{width:18px;height:18px;accent-color:var(--electric)}.jf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.jf-pane{border-radius:var(--radius);background:var(--card);border:1px solid var(--line);min-width:0;box-shadow:var(--edge);grid-template-rows:auto 1fr;display:grid;overflow:hidden}.jf-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}.jf-label{font-weight:650}.jf-size{font-family:var(--font-mono);color:var(--muted);font-size:.75rem}.jf-actions{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.jf-btn{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.jf-btn[disabled]{opacity:.45;cursor:not-allowed}.jf-btn:focus-visible,.jf-actions input:focus-visible+.jf-btn{outline:3px solid var(--focus);outline-offset:2px}.jf-view label{min-height:30px;padding:0 12px}.jf-editor{grid-template-columns:auto minmax(0,1fr);min-height:0;display:grid;position:relative}.jf-editor.is-over{outline:2px dashed var(--sky);outline-offset:-6px}.jf-gutter{border-right:1px solid var(--line);background:var(--bg-soft);min-width:3.4em;padding:12px 10px 12px 12px;overflow:hidden}.jf-gutter pre{font:400 var(--jf-code) / var(--jf-line) var(--font-mono);color:var(--muted);text-align:right;will-change:transform;margin:0}.jf-gutter .err{color:var(--danger);font-weight:700}.jf textarea{resize:vertical;width:100%;height:clamp(320px,56vh,620px);color:var(--ink);font-family:var(--font-mono);font-size:var(--jf-code);line-height:var(--jf-line);white-space:pre;tab-size:4;background:0 0;border:0;margin:0;padding:12px;display:block;overflow:auto}.jf textarea:focus-visible{box-shadow:inset 0 0 0 2px var(--sky);border-radius:0;outline:none}.jf textarea::placeholder{color:var(--muted)}@media (hover:none){.jf{--jf-code:16px;--jf-line:24px}}.jf-status{border-radius:var(--radius);border:1px solid var(--line);background:var(--card);color:var(--ink-2);gap:10px;padding:12px 16px;font-size:.95rem;display:grid}.jf-status.ok{border-color:color-mix(in srgb, var(--success) 45%, transparent);background:radial-gradient(80% 140% at 0% 0%, var(--success-soft), transparent 70%), var(--surface)}.jf-status.bad{border-color:color-mix(in srgb, var(--danger) 55%, transparent);background:radial-gradient(80% 140% at 0% 0%, var(--danger-soft), transparent 70%), var(--surface)}.jf-status p{margin:0}.jf-status .jf-verdict{color:var(--ink);align-items:flex-start;gap:10px;font-weight:600;display:flex}.jf-status .jf-verdict svg{flex:none;margin-top:2px}.jf-status.ok .jf-verdict svg{color:var(--success)}.jf-status.bad .jf-verdict svg{color:var(--danger)}.jf-status .jf-where{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--danger);font-size:.8rem}.jf-status .jf-facts{color:var(--muted);font-size:.88rem}.jf-status .jf-warn{color:var(--ink-2);font-size:.9rem}.jf-snippet{border-radius:var(--radius-sm);background:var(--bg-soft);border:1px solid var(--line);font:400 .85rem / 1.5 var(--font-mono);white-space:pre;margin:0;padding:10px 12px;overflow-x:auto}.jf-snippet .ln{color:var(--muted);user-select:none}.jf-snippet .caret{color:var(--danger);font-weight:700}.jf-status .small-btns .chip-btn{align-items:center;gap:6px;display:inline-flex}.jf-editor.is-held{grid-template-columns:minmax(0,1fr)}.jf-editor.is-held .jf-gutter,.jf-editor.is-held textarea{display:none}.jf-held{min-height:clamp(240px,42vh,620px);color:var(--ink-2);align-content:center;justify-items:start;gap:12px;padding:20px;display:grid}.jf-held p{margin:0}.jf-cut{border-top:1px solid var(--line);color:var(--muted);margin:0;padding:8px 12px;font-size:.85rem}.jf-out{min-width:0}.jf-tree-wrap{grid-template-rows:auto 1fr;min-width:0;display:grid}.jf-tree-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px 8px;padding:8px 12px;display:flex}.jf-path{align-items:center;gap:8px;min-width:0;margin:0 0 0 auto;display:flex}.jf-path code{max-width:34ch;font:400 .8rem var(--font-mono);color:var(--accent-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.jf-tree{height:clamp(272px,56vh - 48px,572px);font:400 .86rem / 1.6 var(--font-mono);padding:8px 6px 12px;overflow:auto}.jf-tree ul{border-left:1px solid var(--line);margin:0 0 0 10px;padding:0 0 0 18px;list-style:none}.jf-tree>ul{border-left:0;margin-left:0;padding-left:0}.jf-row{white-space:nowrap;border-radius:6px;align-items:baseline;gap:6px;min-width:0;padding:1px 4px;display:flex}.jf-row.is-picked{background:var(--primary-soft)}.jf-tw{width:20px;height:20px;color:var(--muted);background:0 0;border:0;border-radius:5px;flex:none;align-self:center;place-items:center;padding:0;display:inline-grid}.jf-tw svg{transition:transform var(--fast) var(--ease);transform:rotate(-90deg)}.jf-tw[aria-expanded=true] svg{transform:none}.jf-tw:hover{color:var(--ink);background:var(--primary-soft)}.jf-tw.leaf{visibility:hidden}.jf-k{font:inherit;color:var(--jf-key);cursor:pointer;background:0 0;border:0;padding:0}.jf-k.idx{color:var(--muted)}.jf-k:hover{text-decoration:underline}.jf-v{text-overflow:ellipsis;overflow:hidden}.jf-v.string{color:var(--jf-str)}.jf-v.number{color:var(--jf-num)}.jf-v.boolean,.jf-v.null{color:var(--jf-lit)}.jf-v.meta{color:var(--muted)}.jf-more{min-height:30px;margin:4px 0 4px 26px;font-size:.82rem}.jf-empty{color:var(--muted);font-family:var(--font-body);margin:16px}@media (width<=900px){.jf-grid{grid-template-columns:minmax(0,1fr)}.jf textarea,.jf-tree{height:clamp(240px,42vh,420px)}}@media (width<=520px){.jf-actions{margin-left:0}.jf-path{flex-basis:100%;margin-left:0}}@media (width<=640px){.jf-opts .seg{flex-basis:100%;grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.jf-opts .seg label{min-height:44px;padding:0 8px}.jf-check{min-height:44px}.jf-head{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;display:grid}.jf-head .jf-view{grid-auto-columns:1fr;grid-auto-flow:column;width:100%;display:grid}.jf-head .jf-view label{min-height:44px}.jf-actions{grid-column:1/-1;grid-auto-columns:1fr;grid-auto-flow:column;gap:8px;margin:0;display:grid}.jf-btn,.jf-status .small-btns .chip-btn{white-space:nowrap;justify-content:center;min-height:44px;padding:0 10px}.jf-status .small-btns{gap:8px;display:grid}.jf-tree-bar{grid-template-columns:1fr 1fr;gap:8px;display:grid}.jf-path{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;margin:0;display:grid}.jf-path code{max-width:none}.jf-btn svg{flex:none}.jf-opts .seg label{white-space:nowrap}}@media (width<=400px){.jf-opts .seg label,.jf-btn{padding:0 6px;font-size:.86rem}.jf-actions .jf-btn svg{display:none}}.jf-tools{border-radius:var(--radius);background:var(--card);border:1px solid var(--line);box-shadow:var(--edge);gap:12px;min-width:0;padding:12px;display:grid}.jf-tabs{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--bg-soft);gap:4px;padding:4px;display:flex}.jf-tabs [role=tab]{border-radius:var(--radius-pill);min-height:42px;color:var(--ink-2);white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:1 1 0;padding:0 14px;font-size:.95rem;font-weight:600}.jf-tabs [role=tab][aria-selected=true]{background:var(--surface-2);color:var(--ink);box-shadow:0 0 0 1px var(--line-strong), 0 0 24px -8px #7cc4ff80}.jf-tabs [role=tab]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.jf-tpanel{gap:10px;min-width:0;display:grid}.jf-tpanel[hidden]{display:none}.jf-q,.jf-rootname input{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface-2);width:100%;min-width:0;height:46px;color:var(--ink);font:400 .95rem var(--font-mono);padding:0 14px}.jf-q:focus-visible,.jf-rootname input:focus-visible,.jf .jf-tarea:focus-visible{border-color:var(--sky);outline:none;box-shadow:0 0 0 4px #7cc4ff2e}.jf-qx{flex-wrap:wrap;gap:6px;display:flex}.jf-qx .jf-btn{font-family:var(--font-mono);font-size:.8rem}.jf-thead{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.jf-tout{gap:8px;display:grid}.jf .jf-tarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-soft);height:clamp(220px,40vh,460px)}.jf .jf-schema{background:var(--surface-2);height:clamp(200px,32vh,380px)}.jf-tmsg{color:var(--muted);margin:0;font-size:.9rem}.jf-tmsg.ok{color:var(--success);font-weight:600}.jf-tmsg.bad{color:var(--danger);font-weight:600}.jf-vres{gap:8px;display:grid}.jf-verr{gap:6px;max-height:340px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.jf-verr li{border-left:3px solid var(--danger);background:var(--bg-soft);border-radius:10px;grid-template-columns:minmax(0,.45fr) minmax(0,1fr);gap:4px 12px;padding:8px 10px;font-size:.88rem;display:grid}.jf-verr code{font-family:var(--font-mono);color:var(--accent-text);overflow-wrap:anywhere}.jf-rootname{align-items:center;gap:8px;font-size:.9rem;font-weight:600;display:inline-flex}.jf-rootname input{width:9em;height:38px}.jf-short{display:none}@media (width<=640px){.jf-long{display:none}.jf-short{display:inline}.jf-tools{padding:10px}.jf-tabs [role=tab]{white-space:nowrap;min-height:44px;padding:0 6px;font-size:.86rem}.jf-qx{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.jf-thead{grid-template-columns:minmax(0,1fr);display:grid}.jf-thead .jf-view{grid-auto-columns:1fr;grid-auto-flow:column;width:100%;display:grid}.jf-thead .jf-view label{justify-content:center;min-height:44px;padding:0 6px}.jf-thead .jf-actions{grid-auto-columns:1fr;grid-auto-flow:column;margin:0;display:grid}.jf-rootname input{flex:1;width:0;height:44px}.jf-verr li{grid-template-columns:minmax(0,1fr)}}
