Follow-up to #394, from two review passes on the tap-opens-editor change. - The edit form's view model is reused between opens, so work still running for a closed form could land on the next one. Backing out of a slow load and tapping another event showed the old event, and Save wrote to it. A delete finishing after back closed the next editor. Results from a closed form are now dropped. - Back is ignored while a save or delete runs. The write can't be called back, so the form waits for the result and then closes or reports the error. - Unsaved changes are now measured against the form as it opened, defaults included, instead of a flag every setter had to set. - Taps read the setting and whether the calendar takes writes when they happen, so a tap right after a cold start or a return to the app opens the right screen. - Without write access, the first tap asks once. A refusal opens the details from then on, until the permission is granted. - Pinning an event to the tapped occurrence lives in one helper (`EventDetail.atOccurrence`), used by the detail, edit and selection-bar paths. Closes #178 Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de> Reviewed-on: https://codeberg.org/jlmakiola/calendula/pulls/397