Implement parse_duration(text) that converts strings like "1h30m", "2d 4h", "45s" or "1.5h" into a number of seconds (as a float).
Units: d (days), h, m (minutes), s. Parts may be separated by spaces, numbers may have decimals, and each unit may appear at most once. Raise ValueError for anything else (unknown units, repeated units, leftover text, empty input).