Build a personal habit tracker as ONE complete HTML file for Kapsula, with inline CSS and JavaScript. No Markdown fences, server, CDN, libraries or build step. Let me choose a start date, see completed calendar days and my best streak, write my own reason and rules, and restart with confirmation while keeping the best streak. Use neutral editable labels; no medical claims. Use a mobile-friendly dark UI, accessible controls and safe-area padding. In Kapsula, await window.kapsula.ready, then use await kapsula.storage.get('personal-habit-v1') and await kapsula.storage.set('personal-habit-v1', state). All bridge methods return Promises. Validate stored data and dates, reject future/invalid dates, and count calendar days without DST errors. Do not overwrite unreadable data or silently switch to localStorage after a bridge failure. Show save errors, preserve the input, allow retry, and block duplicate actions while saving. Display user text through textContent. In a plain browser, a labelled localStorage preview is allowed. Browser records do not transfer to Kapsula. Handle unavailable storage explicitly. Refresh the day count when the app becomes visible. Start without reminders. First verify saved data after reopening, restart/cancel, and best-streak preservation. For a later reminder feature, kapsula.notify.schedule({at: epochMs, title, body}) returns {id}; kapsula.notify.cancel(id) cancels it. These are one-shot notifications. JavaScript does not keep running in the background. Do not invent repeat/daily or Web Push APIs. A single next-evening reminder must be labelled as renewed when the tracker opens; handle permission errors and duplicates. Delivery depends on OS permissions and settings. When updating an existing source, preserve its storage key and saved-data compatibility. Do not clear history. Return the complete HTML only.