Manual Attendance Upload
For employees with no biometric device - upload In/Out times in bulk.
Expected columns (first row = headers, any order):
employee_id, date, in_time, out_time, type (optional), location (optional), remarks (optional)
employee_id is the employee's code (e.g. M001) - not their name. date as YYYY-MM-DD. in_time/out_time as HH:MM (24-hour). type is one of site_work / manual_correction / official_duty (defaults to site_work if left blank). Re-uploading the same employee+date updates that entry rather than duplicating it.