建設会社向けの施工管理アプリを作ってください。職人を現場と日付に割り当てる「手配ボード」と、協力会社が自分のスマホで現場の報告(現場・時間・午前/午後/1日)を入力する画面の2つが要ります。HTML1ファイル(CSSとJavaScriptも中に入れる)で、フレームワークなしで作ってください。

自動で試すため、次の関数をwindow.genbaに公開してください。これは動作確認のための窓口で、画面のつくりは自由です。
- addWorker({id, name, company}) と addSite({id, name})
- assign({workerId, siteId, date:'YYYY-MM-DD', part:'am'|'pm'|'day'}) → {ok:boolean, warnings:[文字列]}
- getAssignments() → 割り当ての配列
- issueLink({workerId, date}) → 協力会社に送る入力リンクのトークン文字列
- submitReport(token, {siteId, date:'YYYY-MM-DD', part:'am'|'pm'|'day', hours:数}) → {ok:boolean, error?:文字列}(同期でもPromiseでもよい)。送信先はPOST /api/reports(JSONで本文を送る。サーバーは別に用意済み)
- getReports() → 受け付けた報告の配列
- monthlyTally(workerId, 'YYYY-MM') → {days:数}(1日=1人工、午前または午後=0.5)

返答は、完成したHTML全体を1つのコードブロックで。説明は不要です。
