.jd-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);margin-bottom:10px}.jd-bar-grow{flex:1}.jd-btn{padding:5px 12px;height:30px;font-size:12px;font-weight:500;color:var(--text);background:var(--card-alt);border:1px solid var(--border);border-radius:7px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.jd-btn:hover{background:var(--primary-muted);border-color:var(--primary);color:var(--primary)}.jd-btn:active{transform:translateY(1px)}.jd-btn-icon{width:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.jd-btn-group{display:inline-flex;align-items:center}.jd-btn-group .jd-btn{border-radius:0}.jd-btn-group .jd-btn:first-child{border-radius:7px 0 0 7px;border-right:none}.jd-btn-group .jd-btn:last-child{border-radius:0 7px 7px 0;border-left:1px solid var(--border);width:26px;color:var(--sub)}.jd-btn-group:hover .jd-btn{border-color:var(--primary)}.jd-btn-group .jd-btn:first-child:hover{border-right:none}.jd-btn-group .jd-btn:last-child:hover{border-left-color:var(--primary);color:var(--primary)}.jd-counts{display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums}.jd-count{display:inline-block;padding:2px 8px;font-size:11px;font-weight:600;border-radius:999px;line-height:1.6}.jd-count-add{color:#1a7f37;background:#dafbe1}.jd-count-del{color:#b42318;background:#ffe2e0}.jd-count-mod{color:#9a6700;background:#fff6d9}.jd-count-mov{color:#4f46b8;background:#ede9ff}[data-theme=dark] .jd-count-add{color:#7ee787;background:#0f2a18}[data-theme=dark] .jd-count-del{color:#ff7b72;background:#2a1015}[data-theme=dark] .jd-count-mod{color:#ffd666;background:#2a2108}[data-theme=dark] .jd-count-mov{color:#c7bfff;background:#1e1a40}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .jd-count-add{color:#7ee787;background:#0f2a18}:root:not([data-theme=light]) .jd-count-del{color:#ff7b72;background:#2a1015}:root:not([data-theme=light]) .jd-count-mod{color:#ffd666;background:#2a2108}:root:not([data-theme=light]) .jd-count-mov{color:#c7bfff;background:#1e1a40}}.jd-expr-bar{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);margin-bottom:10px}.jd-expr-input{flex:1;min-width:0;height:30px;padding:0 10px;font-family:Menlo,Consolas,SF Mono,monospace;font-size:12px;color:var(--text);background:var(--card-alt);border:1px solid var(--border);border-radius:7px;outline:none;transition:border-color .15s,background .15s}.jd-expr-input:focus{border-color:var(--primary);background:var(--card)}.jd-expr-input::placeholder{color:var(--sub);opacity:.7}.jd-expr-input.jd-expr-input-err{border-color:#e5484d;background:color-mix(in srgb,#e5484d 6%,var(--card-alt))}.jd-expr-input.jd-expr-input-err:focus{background:color-mix(in srgb,#e5484d 8%,var(--card))}.jd-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.jd-btn-primary:hover{filter:brightness(1.08);background:var(--primary);border-color:var(--primary);color:#fff}.jd-expr-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;margin-bottom:10px;background:color-mix(in srgb,#f59e0b 12%,var(--card));border:1px solid color-mix(in srgb,#f59e0b 40%,var(--border));border-radius:10px;font-size:13px;color:var(--text)}.jd-expr-banner[hidden]{display:none}.jd-expr-banner-msg{display:inline-flex;align-items:center;gap:8px}.jd-expr-banner-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 3px color-mix(in srgb,#f59e0b 30%,transparent);flex-shrink:0}.jd-editor-wrap{background:var(--card);border:1px solid var(--border);border-bottom:none;border-radius:10px 10px 0 0;overflow:hidden;box-shadow:var(--shadow)}.jd-editor-host{height:560px;position:relative}@media(max-width:768px){.jd-editor-host{height:620px}}.jd-editor-host .monaco-editor,.jd-editor-host .monaco-diff-editor{width:100%;height:100%}.jd-editor-host .monaco-editor .overflow-guard{outline:none}.jd-editor-host .diff-hidden-lines,.jd-editor-host [class*=diff-hidden-lines],.jd-editor-host [class*=unchanged-lines]{cursor:pointer}.jd-editor-host .jd-flash-line{animation:jd-flash 2.2s ease-out forwards}@keyframes jd-flash{0%{background-color:color-mix(in srgb,var(--primary) 55%,transparent)}40%{background-color:color-mix(in srgb,var(--primary) 48%,transparent)}to{background-color:color-mix(in srgb,var(--primary) 0%,transparent)}}.jd-stat-row{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-top:none;border-radius:0 0 10px 10px;overflow:hidden}@media(max-width:768px){.jd-stat-row{grid-template-columns:1fr}}.jd-stat{min-height:28px;padding:4px 12px;display:flex;align-items:center;font-size:12px;background:var(--card-alt);color:var(--sub);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jd-stat[data-kind=ok]{color:#22a06b}.jd-stat[data-kind=err]{color:#e5484d}.jd-tree-wrap{background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);margin-top:14px;overflow:hidden}.jd-tree-label{padding:10px 14px;font-size:12px;font-weight:700;color:var(--sub);letter-spacing:.5px;text-transform:uppercase;background:var(--card-alt);border-bottom:1px solid var(--border)}.jd-tree{max-height:320px;overflow-y:auto}.jd-tree-empty{padding:24px 16px;text-align:center;color:var(--sub);font-size:13px}.jd-row{width:100%;display:grid;grid-template-columns:52px minmax(0,1fr) minmax(0,1.4fr);align-items:center;gap:10px;padding:7px 14px;border:none;border-bottom:1px solid var(--border);background:transparent;text-align:left;font-family:Menlo,Consolas,SF Mono,monospace;font-size:12px;color:var(--text);cursor:pointer;transition:background .12s}.jd-row:hover{background:var(--primary-muted)}.jd-row-active{background:color-mix(in srgb,var(--primary) 18%,transparent)!important}@media(max-width:640px){.jd-row{grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto;row-gap:4px}.jd-row-val{grid-column:1 / -1;padding-left:58px}}.jd-row-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;font-size:11px;font-weight:600;border-radius:4px;line-height:1.4;white-space:nowrap}.jd-row-added .jd-row-badge{background:#dafbe1;color:#1a7f37}.jd-row-removed .jd-row-badge{background:#ffe2e0;color:#b42318}.jd-row-modified .jd-row-badge{background:#fff6d9;color:#9a6700}.jd-row-moved .jd-row-badge{background:#ede9ff;color:#4f46b8}[data-theme=dark] .jd-row-added .jd-row-badge{background:#0f2a18;color:#7ee787}[data-theme=dark] .jd-row-removed .jd-row-badge{background:#2a1015;color:#ff7b72}[data-theme=dark] .jd-row-modified .jd-row-badge{background:#2a2108;color:#ffd666}[data-theme=dark] .jd-row-moved .jd-row-badge{background:#1e1a40;color:#c7bfff}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .jd-row-added .jd-row-badge{background:#0f2a18;color:#7ee787}:root:not([data-theme=light]) .jd-row-removed .jd-row-badge{background:#2a1015;color:#ff7b72}:root:not([data-theme=light]) .jd-row-modified .jd-row-badge{background:#2a2108;color:#ffd666}:root:not([data-theme=light]) .jd-row-moved .jd-row-badge{background:#1e1a40;color:#c7bfff}}.jd-row-path{color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jd-row-val{display:inline-flex;align-items:center;gap:6px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.jd-v-old,.jd-v-new,.jd-v-mov{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0}.jd-v-old{color:#b42318}.jd-v-new{color:#1a7f37}.jd-v-mov{color:#4f46b8}.jd-arrow{color:var(--sub);flex-shrink:0}[data-theme=dark] .jd-v-old{color:#ff9e96}[data-theme=dark] .jd-v-new{color:#9cf0a8}[data-theme=dark] .jd-v-mov{color:#c7bfff}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .jd-v-old{color:#ff9e96}:root:not([data-theme=light]) .jd-v-new{color:#9cf0a8}:root:not([data-theme=light]) .jd-v-mov{color:#c7bfff}}.jd-toast{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-8px);padding:8px 16px;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:13px;box-shadow:0 4px 16px #00000026;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:100}.jd-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.jd-toast[data-kind=ok]{border-color:#22a06b;color:#22a06b}.jd-toast[data-kind=err]{border-color:#e5484d;color:#e5484d}
