.diffv{display:flex;flex-direction:column;min-height:0;height:100%;background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;font-family:inherit}.diffv--identical{flex-direction:row;align-items:center;gap:8px;padding:14px 16px;color:var(--text-secondary)}.diffv-equal-mark{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--bg-raised);color:var(--text-primary);font-weight:700}.diffv--loading{flex-direction:row;align-items:center;gap:12px;padding:14px 16px;color:var(--text-secondary)}.diffv-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:diffv-spin .7s linear infinite}@keyframes diffv-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.diffv-spinner{animation:none}}.diffv-head{display:grid;grid-template-columns:1fr 1fr;background:var(--bg-surface);border-bottom:1px solid var(--border);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary)}.diffv-head-cell{padding:8px 12px}.diffv-head-cell--left{border-right:1px solid var(--border)}.diffv-scroll{flex:1;min-height:0;overflow:auto;background:var(--bg-canvas);font-family:var(--font-mono);font-size:12.5px;line-height:1.5;font-variant-numeric:tabular-nums}.diffv-row{display:grid;grid-template-columns:1fr 1fr;min-height:22px}.diffv-row+.diffv-row{border-top:1px solid transparent}.diffv-cell{display:flex;align-items:flex-start;gap:6px;padding:1px 8px 1px 4px;position:relative;border-right:1px solid var(--border);white-space:pre-wrap;word-break:break-word}.diffv-cell:last-child{border-right:0}.diffv-ln{flex:0 0 36px;text-align:right;color:var(--text-muted);-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:11px;padding-top:2px}.diffv-marker{flex:0 0 12px;font-weight:700;color:var(--text-muted)}.diffv-text{flex:1 1 auto;min-width:0}.diffv-row--add .diffv-cell--right{background:color-mix(in srgb,var(--success,#16a34a) 14%,transparent)}.diffv-row--add .diffv-cell--right .diffv-marker{color:var(--success,#16a34a)}.diffv-row--rem .diffv-cell--left{background:color-mix(in srgb,var(--danger,#dc2626) 14%,transparent)}.diffv-row--rem .diffv-cell--left .diffv-marker{color:var(--danger,#dc2626)}.diffv-row--add .diffv-cell--left,.diffv-row--rem .diffv-cell--right{background:var(--bg-surface);opacity:.55}.diffv-row--mod .diffv-cell--left{background:color-mix(in srgb,var(--danger,#dc2626) 7%,transparent)}.diffv-row--mod .diffv-cell--right{background:color-mix(in srgb,var(--success,#16a34a) 7%,transparent)}.diffv-row--mod .diffv-marker{color:var(--accent)}.diffv-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;background:var(--bg-surface);border-top:1px solid var(--border);font-size:12px;color:var(--text-secondary)}.diffv-summary{font-weight:500;color:var(--text-primary)}.diffv-collapsed{display:flex;align-items:center;gap:10px;padding:4px 14px;font-size:11px;color:var(--text-tertiary,var(--text-secondary));background:var(--bg-canvas);border-bottom:1px dashed var(--border-subtle,var(--border));-webkit-user-select:none;-moz-user-select:none;user-select:none}.diffv-collapsed-dots{font-weight:700;letter-spacing:2px;opacity:.6}.diffv-collapsed-count{font-style:italic;opacity:.7}.diffv-ln{opacity:.5}.diffv-stat{gap:8px}.diffv-pill,.diffv-stat{display:inline-flex;align-items:center}.diffv-pill{height:18px;padding:0 6px;border-radius:var(--radius-full);font-weight:700;font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.diffv-pill--add{color:var(--success,#16a34a);background:color-mix(in srgb,var(--success,#16a34a) 14%,transparent)}.diffv-pill--rem{color:var(--danger,#dc2626);background:color-mix(in srgb,var(--danger,#dc2626) 14%,transparent)}.diffv-pill--mod{color:var(--accent);background:var(--accent-subtle)}@media (max-width:639px){.diffv-head{grid-template-columns:1fr}.diffv-head-cell--left{border-right:0;border-bottom:1px solid var(--border)}.diffv-row{grid-template-columns:1fr}.diffv-cell{border-right:0}.diffv-cell--left{border-bottom:1px solid var(--border)}}