.diff-btn-ghost{padding:6px 12px;border:none;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;background:var(--card-alt);color:var(--sub);transition:opacity .15s,transform .1s}.diff-btn-ghost:active{transform:scale(.96)}@media(max-width:640px){.diff-btn-ghost{min-height:44px;font-size:14px}}.diff-mode-btn{padding:6px 14px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;background:transparent;color:var(--sub);transition:all .15s}.diff-mode-btn.active{background:var(--card);color:var(--text);box-shadow:0 1px 4px #0000001a}.diff-mode-btn:disabled{opacity:.35;cursor:not-allowed}@media(max-width:640px){.diff-mode-btn{min-height:40px;font-size:13px}}.diff-dropzone.dragging textarea{opacity:.25;pointer-events:none}.diff-dropzone.dragging .diff-drop-overlay{display:flex}.diff-output{overflow-x:auto;border-radius:8px;border:1px solid var(--border);font-family:SF Mono,Fira Code,Consolas,monospace;font-size:12.5px}@media(max-width:640px){.diff-output{font-size:12px}}.diff-row{display:flex;align-items:stretch;min-height:22px}.diff-row:not(.diff-fold-row):hover{filter:brightness(.97)}.diff-row.diff-add{background:#f0fff4}.diff-row.diff-del{background:#fff5f5}.diff-row:not(.diff-add):not(.diff-del):not(.diff-fold-row){background:var(--card)}.diff-lnum,.diff-rnum{width:38px;min-width:38px;padding:3px 6px;text-align:right;color:var(--sub);font-size:11px;user-select:none;border-right:1px solid var(--border);background:var(--card-alt);line-height:1.6}.diff-pfx{width:22px;min-width:22px;text-align:center;padding:3px 0;font-weight:700;user-select:none;line-height:1.6}.diff-row.diff-add .diff-pfx{color:#2e7d32}.diff-row.diff-del .diff-pfx{color:#c62828}.diff-txt{flex:1;padding:3px 10px;white-space:pre-wrap;word-break:break-all;line-height:1.6}.diff-row.diff-add .diff-txt{color:#1b5e20}.diff-row.diff-del .diff-txt{color:#b71c1c}.diff-ic-add{background:#81c784;border-radius:2px}.diff-ic-del{background:#e57373;border-radius:2px;text-decoration:line-through}.diff-fold-row{display:flex;align-items:center;justify-content:center;padding:5px 12px;background:#f0f4ff;color:#5c6bc0;font-size:12px;font-weight:600;cursor:pointer;gap:6px;border-top:1px solid #dde4fa;border-bottom:1px solid #dde4fa;user-select:none}.diff-fold-row:hover{background:#e3e9f8}.diff-inline{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.9;white-space:pre-wrap;word-break:break-word;padding:14px 16px;background:var(--card)}.diff-add-inline{background:#c8e6c9;color:#1b5e20;border-radius:2px}.diff-del-inline{background:#ffcdd2;color:#b71c1c;text-decoration:line-through;border-radius:2px}.diff-equal-notice{display:flex;align-items:center;justify-content:center;gap:8px;padding:32px;color:#4caf50;font-size:15px;font-weight:600}.diff-truncate-notice{padding:10px 16px;color:var(--sub);font-size:12px;text-align:center;background:var(--card-alt);border-top:1px solid var(--border)}.diff-split-view{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:12.5px}.diff-split-panel{flex:1;overflow:auto;max-height:72vh}.diff-split-panel+.diff-split-panel{border-left:2px solid var(--border)}.diff-split-header{position:sticky;top:0;z-index:2;background:var(--card-alt);border-bottom:1px solid var(--border);padding:5px 10px 5px 48px;font-size:11px;font-weight:700;color:var(--sub);text-transform:uppercase;letter-spacing:.8px}.diff-split-row{display:flex;min-height:22px;white-space:pre}.diff-split-row:not(.diff-fold-row):not(.diff-empty):hover{filter:brightness(.97)}.diff-split-row.diff-add{background:#f0fff4}.diff-split-row.diff-del{background:#fff5f5}.diff-split-row.diff-empty{background:var(--card-alt)}.diff-split-row:not(.diff-add):not(.diff-del):not(.diff-empty):not(.diff-fold-row){background:var(--card)}.diff-split-lnum{width:38px;min-width:38px;padding:3px 6px;text-align:right;color:var(--sub);font-size:11px;user-select:none;border-right:1px solid var(--border);background:var(--card-alt);line-height:1.6;flex-shrink:0}.diff-split-pfx{width:18px;min-width:18px;text-align:center;padding:3px 0;font-weight:700;user-select:none;line-height:1.6;flex-shrink:0;font-size:11px}.diff-split-row.diff-add .diff-split-pfx{color:#2e7d32}.diff-split-row.diff-del .diff-split-pfx{color:#c62828}.diff-split-txt{flex:1;padding:3px 8px;line-height:1.6}.diff-split-row.diff-add .diff-split-txt{color:#1b5e20}.diff-split-row.diff-del .diff-split-txt{color:#b71c1c}.diff-split-row.diff-empty .diff-split-txt{color:transparent}@media(max-width:640px){.diff-split-view{flex-direction:column!important}}.diff-s-add{color:#2e7d32}.diff-s-del{color:#c62828}.diff-s-same{color:var(--sub)}.diff-s-eq{color:#4caf50;font-size:14px}#copyDiffBtn.diff-copied{background:#e8f5e9;color:#2e7d32}.diff-toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%) translateY(12px);padding:10px 22px;border-radius:20px;font-size:13px;font-weight:600;color:#fff;opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;z-index:999;white-space:nowrap}.diff-toast.diff-toast-show{opacity:1;transform:translate(-50%) translateY(0)}.diff-toast.diff-toast-ok{background:#43a047}.diff-toast.diff-toast-err{background:#f44336}[data-theme=dark] .diff-row.diff-add,[data-theme=dark] .diff-split-row.diff-add{background:#2e7d321f}[data-theme=dark] .diff-row.diff-del,[data-theme=dark] .diff-split-row.diff-del{background:#c628281f}[data-theme=dark] .diff-row.diff-add .diff-txt,[data-theme=dark] .diff-row.diff-add .diff-pfx,[data-theme=dark] .diff-split-row.diff-add .diff-split-txt,[data-theme=dark] .diff-split-row.diff-add .diff-split-pfx{color:#81c784}[data-theme=dark] .diff-row.diff-del .diff-txt,[data-theme=dark] .diff-row.diff-del .diff-pfx,[data-theme=dark] .diff-split-row.diff-del .diff-split-txt,[data-theme=dark] .diff-split-row.diff-del .diff-split-pfx{color:#ef9a9a}[data-theme=dark] .diff-ic-add{background:#2e7d3259}[data-theme=dark] .diff-ic-del{background:#c6282859}[data-theme=dark] .diff-add-inline{background:#2e7d3240;color:#81c784}[data-theme=dark] .diff-del-inline{background:#c6282840;color:#ef9a9a}[data-theme=dark] .diff-fold-row{background:#1e2a4a;color:#8ba4d4;border-top-color:#2a3a5c;border-bottom-color:#2a3a5c}[data-theme=dark] .diff-fold-row:hover{background:#243360}[data-theme=dark] .diff-s-add{color:#81c784}[data-theme=dark] .diff-s-del{color:#ef9a9a}[data-theme=dark] .diff-s-eq{color:#81c784}[data-theme=dark] #copyDiffBtn.diff-copied{background:#2e7d3233;color:#81c784}[data-theme=dark] .diff-equal-notice{color:#81c784}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .diff-row.diff-add,:root:not([data-theme=light]) .diff-split-row.diff-add{background:#2e7d321f}:root:not([data-theme=light]) .diff-row.diff-del,:root:not([data-theme=light]) .diff-split-row.diff-del{background:#c628281f}:root:not([data-theme=light]) .diff-row.diff-add .diff-txt,:root:not([data-theme=light]) .diff-row.diff-add .diff-pfx,:root:not([data-theme=light]) .diff-split-row.diff-add .diff-split-txt,:root:not([data-theme=light]) .diff-split-row.diff-add .diff-split-pfx{color:#81c784}:root:not([data-theme=light]) .diff-row.diff-del .diff-txt,:root:not([data-theme=light]) .diff-row.diff-del .diff-pfx,:root:not([data-theme=light]) .diff-split-row.diff-del .diff-split-txt,:root:not([data-theme=light]) .diff-split-row.diff-del .diff-split-pfx{color:#ef9a9a}:root:not([data-theme=light]) .diff-ic-add{background:#2e7d3259}:root:not([data-theme=light]) .diff-ic-del{background:#c6282859}:root:not([data-theme=light]) .diff-add-inline{background:#2e7d3240;color:#81c784}:root:not([data-theme=light]) .diff-del-inline{background:#c6282840;color:#ef9a9a}:root:not([data-theme=light]) .diff-fold-row{background:#1e2a4a;color:#8ba4d4;border-top-color:#2a3a5c;border-bottom-color:#2a3a5c}:root:not([data-theme=light]) .diff-fold-row:hover{background:#243360}:root:not([data-theme=light]) .diff-s-add{color:#81c784}:root:not([data-theme=light]) .diff-s-del{color:#ef9a9a}:root:not([data-theme=light]) .diff-s-eq{color:#81c784}:root:not([data-theme=light]) #copyDiffBtn.diff-copied{background:#2e7d3233;color:#81c784}:root:not([data-theme=light]) .diff-equal-notice{color:#81c784}}
