/* json.css — JSON 정리·검사 전용 */
.js-src{min-height:220px}
.js-opts{display:flex;flex-wrap:wrap;gap:8px 20px}
.js-result{margin-top:16px}
.js-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
.js-badge{font-size:12.5px;font-weight:800;padding:3px 10px;border-radius:999px;background:var(--card-2);border:1px solid var(--line);color:var(--muted)}
.js-badge.ok{color:var(--accent);border-color:rgba(111,207,151,.45);background:rgba(111,207,151,.1)}
.js-badge.bad{color:var(--danger);border-color:rgba(255,133,119,.45);background:rgba(255,133,119,.1)}
.js-outhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.js-viewseg button{min-width:70px;flex:none}
.js-out{max-height:520px;overflow:auto}
.js-snippet{white-space:pre;overflow-x:auto;margin:10px 0}
.js-line{min-height:1.6em}
.js-line.err{background:rgba(255,133,119,.1)}
.js-ln{display:inline-block;color:var(--dim);margin-right:12px;user-select:none}
.js-mark{background:var(--danger);color:#1a0703;border-radius:3px;padding:0 1px}

.js-tree{background:#0a0b16;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-family:var(--mono);font-size:13px;line-height:1.7;max-height:520px;overflow:auto;color:#dfe3ff}
.jt-kids{padding-left:18px;border-left:1px dashed var(--line);margin-left:5px}
.jt-node > summary{cursor:pointer;list-style-position:outside;white-space:nowrap}
.jt-node > summary:focus-visible{outline:2px solid rgba(var(--primary-rgb),.7);border-radius:4px}
.jt-leaf{white-space:pre-wrap;word-break:break-all;padding-left:14px}
.jt-key{color:#9fc2ff}
.jt-idx{color:var(--dim)}
.jt-colon{color:var(--dim)}
.jt-meta{color:var(--dim);font-size:12px}
.jt-str{color:#b8e6a0}
.jt-num{color:#ffc978}
.jt-bool{color:#f59ad8}
.jt-null{color:var(--muted);font-style:italic}
.jt-more{color:var(--dim);font-style:italic;padding-left:14px}
