.jt-root { font-family: var(--font-mono); font-size: 0.88rem; line-height: 1.7; padding: 14px 16px; overflow: auto; max-height: 560px; }
.jt-item { display: block; }
.jt-row { display: flex; align-items: baseline; gap: 3px; padding: 1px 0; border-radius: 3px; }
.jt-row:hover { background: rgba(255,255,255,0.04); }
.jt-toggle { background: none; border: none; color: var(--text-muted); cursor: pointer; padding: 0; font-family: var(--font-mono); font-size: 0.78rem; width: 14px; flex-shrink: 0; line-height: 1; transition: color var(--t); }
.jt-toggle:hover { color: var(--accent); }
.jt-toggle-spacer { display: inline-block; width: 14px; flex-shrink: 0; }
.jt-key { color: var(--accent); cursor: pointer; background: none; border: none; font-family: var(--font-mono); font-size: inherit; padding: 0 2px; border-radius: 2px; line-height: inherit; }
.jt-key:hover { background: var(--accent-dim); text-decoration: underline; }
.jt-colon { color: var(--text-muted); }
.jt-string { color: #86efac; }
.jt-number { color: #fbbf24; }
.jt-boolean { color: #60a5fa; }
.jt-null { color: var(--text-muted); }
.jt-bracket { color: var(--text-secondary); }
.jt-count { color: var(--text-muted); font-size: 0.76rem; margin-left: 4px; }
.jt-children { margin-left: 20px; border-left: 1px solid var(--border); padding-left: 10px; }
.jt-children.jt-collapsed { display: none; }
.jt-copy-path { opacity: 0; margin-left: 6px; background: none; border: 1px solid var(--border); border-radius: 3px; color: var(--text-muted); font-size: 0.7rem; font-family: var(--font-mono); padding: 0 5px; cursor: pointer; transition: opacity var(--t), color var(--t); flex-shrink: 0; line-height: 1.6; }
.jt-row:hover .jt-copy-path { opacity: 1; }
.jt-copy-path:hover { color: var(--accent); border-color: var(--accent-border); }
[data-theme="light"] .jt-string { color: #16a34a; }
[data-theme="light"] .jt-number { color: #b45309; }
[data-theme="light"] .jt-boolean { color: #2563eb; }