A single malformed custom-station entry (missing uuid/url) used to wipe the ENTIRE list on next load, and an unparseable file was treated the same as an unreadable one -- both destroyed the user's saved stations with no way to recover the original bytes. Custom stations now parse per-entry via the shared persistencia_tolerante helper (survivors kept, bad entries skipped+logged); a file that reads but fails to decode is quarantined into a `.corrupt` sidecar instead of being dropped, clearing the live path so the next add/remove starts fresh. A file that cannot be READ at the OS level is left untouched and a _customDegradado flag suppresses writes for the session -- unlike alarms, this suppression is intentionally not lifted by an explicit add/remove, since the file may still be intact on disk.