```python
"""Report the stretches of a clinic's day that no appointment covers."""

def open_windows(span: str, booked: list[str]) -> str:
    def minutes(text: str) -> int:
        parts = text.split("-")
        if len(parts) != 2 or any(re.fullmatch(r"\d{2}:\d{2}", p) is None for p in parts):
            raise ValueError("a range must be written HH:MM-HH:MM")
        return (int(parts[0][:2]) * 60 + int(parts[0][3:]) +
               int(parts[1][:2]) * 60 + int(parts[1][3:]))

    def stamp(at: int) -> str:
        return f"{at // 60:02d}:{at % 60:02d}"

    if minutes(span) == 0:
        raise ValueError("span must not be empty")

    booked_minutes = sorted(sum(minutes(appointment).split("-")) for appointment in booked)

    free_start = 0
    free_end = minutes(span)
    free_stretches = []

    for book_end in booked_minutes:
        if book_end > free_start:
            free_stretches.append(stamp(free_start) + "-" + stamp(book_end))
        free_start = book_end

    if free_start < free_end:
        free_stretches.append(stamp(free_start) + "-" + stamp(free_end))

    return ", ".join(free_stretches) if free_stretches else "none"
```