想定する有効化方式: Always On（このワークスペースでの作業中は常に適用する）

# 単一HTMLの制約

議事録オーガナイザーは、単一のHTMLファイルだけで完結するアプリです。この形を崩さないでください。

## 外部依存を足さない

- CDN からライブラリを読み込まないでください。図の描画が必要な場合は、SVG のタグを自分で組み立ててください。
- Web フォントを読み込まないでください。font-family は `system-ui, -apple-system, "Segoe UI", "Noto Sans JP", sans-serif` を指定してください。
- 外部の API を呼ばないでください。仕分けはキーワード辞書と正規表現による判定だけで行います。
- API キー、アクセストークン、アカウント情報を要求しないでください。入力欄も設けないでください。
- 画像ファイルを参照しないでください。記号が必要な場合は、インライン SVG か記号文字で表現してください。
- `fetch`、`XMLHttpRequest`、`import` によるネットワークアクセスを書かないでください。ネットワークが切れた状態でも全機能が動く必要があります。

要望が上のいずれかに反する場合は、実装を始める前にその点を指摘し、制約の中で実現できる代案を出してください。黙って外部依存を足さないでください。

## 1ファイルで完結させる

- CSS は style タグ、JavaScript は script タグとして、同じ HTML ファイルの中に書いてください。
- 別ファイルへの分割を提案しないでください。受講者は HTML ファイルをダブルクリックしてブラウザで開いて動作を確認します。ビルドやサーバーの起動を必要としない状態を保ってください。
- 保存先は `output/` です。アプリ本体のファイル名は `output/meeting-organizer.html` で固定です。ファイル名を変えないでください。

## 既存のコードを壊さない

- 修正や機能追加のときは、指示された箇所だけを変更してください。関係のない箇所を整形し直したり、書き方を統一したりしないでください。
- 既存の関数名・変数名・DOM の id とクラス名を、指示がない限り変えないでください。他の処理から参照されています。
- 抽出ロジック（担当者・期日・分類の判定に使う正規表現とキーワード辞書）は仕様です。動作が変わる変更を加える場合は、変更前に何がどう変わるかを述べ、受講者の了解を得てから進めてください。
- `// 拡張ポイント: 〜` というコメントは、あとから機能を足すための目印です。消さないでください。機能を足したら、その位置に新しい拡張ポイントのコメントを残してください。
- 変更が既存の表示や保存の動きに影響しそうな場合は、影響する機能を名指しで挙げてください。

## 見た目の約束

- 配色は 2 系統までです。アクセントは #E60027、それ以外はウォームグレーの濃淡（背景 #F7F5F4、罫線 #E5E1DE、補助文字 #8A817C、本文 #3A3532、パネル #FFFFFF）で表してください。
- 赤と緑を対にした表現、3 色以上を並べたバッジを使わないでください。状態の違いは色相ではなく、濃淡と枠線で表してください。
- 絵文字を使わないでください。
- 本文の文字サイズは 14px、行間は 1.7 です。
