.od-diff {
  --od-diff-border: var(--border-subtle, var(--border, color-mix(in srgb, currentColor 18%, transparent)));
  --od-diff-surface: var(--surface-raised, var(--surface, Canvas));
  --od-diff-muted: var(--text-muted, color-mix(in srgb, currentColor 68%, transparent));
  --od-diff-add: var(--status-success-surface, color-mix(in srgb, #2da44e 18%, transparent));
  --od-diff-delete: var(--status-danger-surface, color-mix(in srgb, #cf222e 18%, transparent));
  --od-diff-meta: var(--status-info-surface, color-mix(in srgb, #0969da 12%, transparent));
  display: grid;
  min-width: 0;
  overflow: hidden;
  color: var(--text-primary, CanvasText);
  background: var(--od-diff-surface);
  border: 1px solid var(--od-diff-border);
  border-radius: var(--radius-lg, 0.75rem);
}
.od-diff__toolbar,.od-diff__file-header {display:flex;align-items:center;justify-content:space-between;gap:var(--space-3,0.75rem);padding:var(--space-3,0.75rem) var(--space-4,1rem);border-bottom:1px solid var(--od-diff-border)}
.od-diff__selected,.od-diff__file-header span {margin-inline-start:var(--space-2,0.5rem);color:var(--od-diff-muted);font-size:var(--font-size-sm,0.875rem)}
.od-diff__view-toggle {display:inline-flex;border:1px solid var(--od-diff-border);border-radius:var(--radius-md,0.5rem);overflow:hidden}
.od-diff button {font:inherit;color:inherit}
.od-diff__view-toggle button,.od-diff__files button,.od-diff__gap button {border:0;background:transparent;cursor:pointer}
.od-diff__view-toggle button {padding:var(--space-2,0.5rem) var(--space-3,0.75rem)}
.od-diff__view-toggle button[aria-pressed=true],.od-diff__files button[aria-current=true] {background:var(--od-diff-meta)}
.od-diff__layout {display:grid;grid-template-columns:minmax(12rem,20rem) minmax(0,1fr);min-height:18rem}
.od-diff__files {display:flex;flex-direction:column;overflow:auto;border-inline-end:1px solid var(--od-diff-border)}
.od-diff__files button {display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2,0.5rem);align-items:center;text-align:start;padding:var(--space-2,0.5rem) var(--space-3,0.75rem);border-bottom:1px solid var(--od-diff-border)}
.od-diff__files button span:last-child {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.od-diff__status {display:grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:var(--radius-sm,0.25rem);font-size:var(--font-size-xs,0.75rem);font-weight:700}
.od-diff__status--added {background:var(--od-diff-add)} .od-diff__status--deleted {background:var(--od-diff-delete)} .od-diff__status--modified,.od-diff__status--renamed {background:var(--od-diff-meta)}
.od-diff__file-stack {min-width:0;overflow:hidden}.od-diff__file:focus-visible {outline:2px solid var(--focus-ring,Highlight);outline-offset:-2px}
.od-diff__file-header {position:sticky;top:0;z-index:1;background:var(--od-diff-surface)}
.od-diff__hunk-header {padding:var(--space-2,0.5rem) var(--space-3,0.75rem);background:var(--od-diff-meta);border-bottom:1px solid var(--od-diff-border);color:var(--od-diff-muted);overflow:auto}
.od-diff__table-scroll {overflow:auto}.od-diff__table {width:100%;border-collapse:collapse;table-layout:fixed;font-family:var(--font-family-mono,ui-monospace,SFMono-Regular,Consolas,monospace);font-size:var(--font-size-sm,0.875rem);line-height:var(--line-height-relaxed,1.5)}
.od-diff__number {width:4.25rem;padding:0 var(--space-2,0.5rem);text-align:right;vertical-align:top;color:var(--od-diff-muted);background:color-mix(in srgb,var(--od-diff-surface) 92%,currentColor);border-inline-end:1px solid var(--od-diff-border);user-select:none}
.od-diff__code {padding:0 var(--space-3,0.75rem);vertical-align:top;white-space:pre;overflow-wrap:normal}.od-diff__code code {font:inherit}
.od-diff__table--split .od-diff__code {width:calc(50% - 4.25rem)}.od-diff__table--unified .od-diff__code {width:auto}.od-diff__prefix {width:2rem;text-align:center;vertical-align:top;user-select:none}
.od-diff__row--addition .od-diff__code--new,.od-diff__row--addition .od-diff__code,.od-diff__row--modified .od-diff__code--new {background:var(--od-diff-add)}
.od-diff__row--deletion .od-diff__code--old,.od-diff__row--deletion .od-diff__code,.od-diff__row--modified .od-diff__code--old {background:var(--od-diff-delete)}
.od-diff__row--meta .od-diff__code {color:var(--od-diff-muted);font-style:italic}
.od-diff__gap td {padding:var(--space-2,0.5rem);text-align:center;background:var(--od-diff-meta);border-block:1px solid var(--od-diff-border)}.od-diff__gap button {text-decoration:underline;text-underline-offset:.2em}
.od-diff--empty {padding:var(--space-6,1.5rem);color:var(--od-diff-muted)}
.od-diff__sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width: 48rem) {.od-diff__layout{grid-template-columns:1fr}.od-diff__files{max-height:12rem;border-inline-end:0;border-bottom:1px solid var(--od-diff-border)}.od-diff__table--split{min-width:58rem}.od-diff__toolbar{align-items:flex-start;flex-direction:column}}
@media (prefers-reduced-motion: reduce) {.od-diff *{scroll-behavior:auto!important}}
.od-diff__warning { padding: var(--space-3,0.75rem); border-bottom: 1px solid var(--od-diff-border); color: var(--text-warning, currentColor); }
