P1 #4 — ConfirmModal (новый src/renderer/src/components/ui/ConfirmModal.tsx)
с iOS-стилем + focus-trap (через Modal). Delete упражнения в Dashboard
теперь спрашивает «Удалить упражнение?» с destructive-кнопкой.
P1 #5 — Daily goal closed UI. ExerciseCard принимает doneToday prop
и при `done >= dailyGoal` показывает «Цель закрыта · 100/100»
вместо запутанного «25ч 13м» countdown'а. Цвет — success-зелёный.
P1 #6 — Meeting auto-pause indicator. Новый IPC.getMeetingActive +
evtMeetingChanged event. meeting-detect broadcast'ит изменения
состояния. Dashboard показывает info-баннер «Не дёргаем — ты на
встрече» когда meetingAutoPause включён и хотя бы один meeting
процесс запущен.
P1 #7 — Native window.confirm() заменён на ConfirmModal в Settings
DataCard для restore-операции. Теперь iOS-style с destructive
confirm-кнопкой и focus-trap'ом.
Заодно P2 #8: Brain-иконка-badge на ExerciseCard для adaptive
упражнений — пользователь видит почему «Next» не строго равен
intervalMinutes.
P2 #12: dailyReps/dailyRepsRange/totalDoneReps/repsDoneTodayForExercise
используют entry.reps как fallback — heatmap не теряет данные
после удаления упражнения.