master
Импорт в разделы, статус-бар, до двух МОЛ, правка списания, скиллы
Этап 15: полировка UX и защита истории движений — горячие клавиши (Enter/Esc в диалогах, Ctrl+N/E/D в списках, Ctrl+I/R/J в движении МЗ, Ctrl+1..7 навигация), блокировка удаления ОС/МЗ/сотрудника при наличии записей в журнале движений, запрет смены состояния на 'Списан'/'К списанию' через редактирование, неотрицательный остаток МЗ, защита AutoFitColumns от пустого листа; инструкция, AGENTS.md, скиллы и задачи обновлены (89 тестов)
Бэкап, восстановление и очистка БД: DatabaseBackupService (SQLite Backup API, восстановление через временную копию, очистка всех записей), кнопки 'Бэкап БД', 'Восстановить БД', 'Очистить БД' внизу панели навигации MainForm, пересоздание разделов после изменений; AGENTS.md, скиллы и tasks.md обновлены (83 теста)
Этап 16: полировка UX по результатам ревью интерфейса — индикация активного раздела, единая кнопка назначения/снятия МОЛ, кликабельная шапка МОЛ, выделение опасных кнопок БД, выравнивание чисел по правому краю, пустое состояние списков, подсветка состояний ОС, сводка в AssetsForm, контекстные меню гридов, экспорт журнала в Excel, ErrorProvider в диалогах, StatusStrip-сообщения об успехе, tooltip'ы; инструкция, AGENTS.md и скиллы обновлены (91 тест)
Сортировка и поиск в списках, статусы в Движении, импорт с выбором файла, поле Отдел, скиллы
Этап 17: баги и UX-правки — фикс приоритета в авто-маппинге импорта, дата в ведомости МЗ из datepicker, экспорт только видимого (фильтрованного) списка, явное сообщение при возврате МЗ; подсветка МОЛ, экспорт сотрудников в Excel, авто-сброс StatusStrip-сообщения, Ctrl+F фокус на поиск, карточка сотрудника (пустые состояния/персистентность/сортировка), скрытие даты в нерелевантных отчётах; инструкция, AGENTS.md, скиллы и задачи обновлены (92 теста)