Fix the text.Span.__repr__ method
diff --git a/rich/text.py b/rich/text.py
index 0ecdeae4b..52ecd1604 100644
--- a/rich/text.py
+++ b/rich/text.py
@@ -57,7 +57,7 @@ def __repr__(self) -> str:
         return (
             f"Span({self.start}, {self.end}, {self.style!r})"
             if (isinstance(self.style, Style) and self.style._meta)
-            else f"Span({self.start}, {self.end}, {str(self.style)!r})"
+            else f"Span({self.start}, {self.end}, {repr(self.style)})"
         )
 
     def __bool__(self) -> bool:

Fixes Issue #1676

## Type of changes

- [x] Bug fix
- [x] Tests

## Checklist

- [x] I've run the latest [black](https://github.com/psf/black) with default args on new code.
- [x] I've updated CHANGELOG.md and CONTRIBUTORS.md where appropriate.
- [x] I've added tests for new code.
- [x] I accept that @willmcgugan may be pedantic in the code review.