[data-component="diff-file"] {
  content-visibility: auto;
  contain-intrinsic-size: auto 480px;
  margin-bottom: 18px;
  overflow: hidden;
  background: var(--bg-raised);
  border: 0.5px solid var(--border);
  border-radius: var(--rad);
  box-shadow: var(--shadow);

  > header {
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: space-between;
    padding: 0;
    background: var(--bg-sunken);
    border-bottom: 0.5px solid var(--border);

    > div {
      flex: 1;
      min-width: 0;

      > h2 {
        padding: 12px 16px;
      }

    }

    > a {
      display: inline-flex;
      gap: 4px;
      align-items: center;
      margin-right: 16px;
      padding: 5px 10px;
      color: var(--ink);
      background: var(--bg-raised);
      border: 0.5px solid var(--border-strong);
      border-radius: 6px;
      font-size: 13px;

      &:hover {
        background: var(--bg-sunken);
        text-decoration: none;
      }
    }
  }

  h2 {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 0;
    font-size: 15px;
    font-weight: 500;

    a {
      color: var(--ink);
    }
  }

  [data-status] {
    display: inline-flex;
    align-items: center;
    padding: 2px 6px;
    color: var(--ink-muted);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    vertical-align: middle;
    background: var(--bg-raised);
    border: 0.5px solid var(--border-strong);
    border-radius: 999px;
  }

  [data-status="added"] {
    color: var(--add-ink);
    background: var(--add-bg);
    border-color: var(--add-bar);
  }

  [data-status="deleted"] {
    color: var(--del-ink);
    background: var(--del-bg);
    border-color: var(--del-bar);
  }

  [data-status="renamed"] {
    color: var(--clay-deep);
    background: var(--replace-old-bg);
    border-color: var(--clay);
  }

  > p {
    padding: 8px 16px 0;
    margin: 0;
    color: var(--ink-muted);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
  }

  > p[data-rename-note] {
    padding: 7px 16px;
    color: var(--clay-deep);
    background: var(--replace-old-bg);
    border-bottom: 0.5px solid var(--clay);
    font-size: 12px;
    line-height: 1.35;

    span {
      color: var(--ink);
      font-family: var(--font-mono);
    }
  }

  section,
  details {
    font-family: var(--font-mono);
    font-size: 13px;
    line-height: 1.5;
  }

  .diff-notice {
    display: grid;
    gap: 3px;
    place-items: center;
    padding: 18px 16px;
    margin: 0;
    color: var(--ink-muted);
    background: var(--bg-raised);
    border-bottom: 0.5px solid var(--border);
    font-family: var(--font-sans);
    font-size: 13px;
    line-height: 1.4;
    text-align: center;

    strong {
      color: var(--ink);
      font-size: 14px;
      font-weight: 550;
    }

    :is(a, span) {
      color: var(--link);
      text-decoration: underline;
      text-underline-offset: 3px;
    }
  }

  section.diff-notice {
    border-bottom: none;
  }

  details {
    padding: 0;
    color: var(--ink-muted);
    background: var(--bg-raised);
    font-size: 13px;

    > summary {
      cursor: pointer;
      list-style: none;

      &::-webkit-details-marker {
        display: none;
      }
    }

    &[open] > summary {
      display: none;
    }
  }

  :is(section, details) > p {
    content-visibility: auto;
    contain-intrinsic-size: auto 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 0;
    margin: 0;
    border-bottom: 0.5px solid var(--border);

    &:last-child {
      border-bottom: none;
    }
  }

  :is(section, details) > p > :is(em, del, ins) {
    display: flex;
    align-items: flex-start;
    min-width: 0;
    padding: 2px 0;
    color: var(--ink);
    overflow-wrap: anywhere;
    text-decoration: none;
    white-space: pre-wrap;
    word-break: break-word;
  }

  :is(section, details) > p b {
    flex: 0 0 46px;
    padding: 0 6px;
    color: var(--ink-faint);
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    text-align: right;
    user-select: none;
    white-space: nowrap;
  }

  :is(section, details) > p code {
    flex: 1;
    min-width: 0;
    padding: 0 10px 0 4px;
    font-family: inherit;
  }

  :is(section, details) > p > :first-child {
    border-right: 0.5px solid var(--border);
  }

  :is(section, details) > p:has(> del:only-child),
  :is(section, details) > p:has(> ins:only-child) {
    background: var(--bg-sunken);
  }

  :is(section, details) > p > ins:only-child {
    grid-column: 2;
  }

  :is(section, details) > p > em {
    font-style: normal;
  }

  :is(section, details) > p > del {
    background: var(--del-bg);
    color: var(--del-ink);
  }

  :is(section, details) > p > ins {
    background: var(--add-bg);
    color: var(--add-ink);
  }

  :is(section, details) > p > del:has(+ ins) {
    background: var(--replace-old-bg);
  }

  :is(section, details) > p > del + ins {
    background: var(--replace-new-bg);
  }

  :is(section, details) > p s {
    padding: 0 1px;
    color: var(--del-ink);
    background: var(--del-bg);
    border-radius: 2px;
    text-decoration: none;
  }

  :is(section, details) > p u {
    padding: 0 1px;
    color: var(--add-ink);
    background: var(--add-bg);
    border-radius: 2px;
    text-decoration: none;
  }

  :is(section, details) > hr {
    height: auto;
    padding: 4px 0;
    margin: 0;
    border: 0;
    background: var(--bg-sunken);
    color: var(--ink-faint);
    letter-spacing: 0.3em;
    text-align: center;

    &::before {
      content: "⋯";
    }
  }

  .truncation,
  .elided-change-note {
    color: var(--ink-faint);
    font-size: 11px;
    font-style: italic;
    user-select: none;
  }

  .elided-change-note {
    margin-left: 4px;
    color: var(--ink-muted);
  }

  @media (max-width: 720px) {
    :is(section, details) > p {
      grid-template-columns: 1fr;
    }

    :is(section, details) > p > :first-child {
      border-right: none;
    }

    :is(section, details) > p > del {
      border-bottom: 0.5px dashed var(--del-bar);
    }

    :is(section, details) > p b {
      flex-basis: 46px;
      font-size: 10px;
    }
  }
}
