# T810 — single opportunity inbox shell

> Status: `done`
> Milestone: `M1`
> Est. change: `~180 lines`

## Goal

完成後使用者以 `/app/radar/opportunities` 作唯一商機入口，預設看到 pending＋today＋recommended，舊 today URL 會導向同一清單。

## Depends on

- T801、T802

## Inputs

- `apps/web/src/pages/RadarOpportunitiesPage.tsx`
- `apps/web/src/pages/RadarTodayPage.tsx`
- `apps/web/src/App.tsx`
- Plan M1、Spec §6.1、§7.4

## Outputs

### 程式變更（預期路徑）

| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/web/src/pages/RadarOpportunitiesPage.tsx` | edit | 單一入口 shell、tabs、時間與排序控制 |
| `apps/web/src/pages/RadarTodayPage.tsx` | edit | 舊路徑 redirect／相容 query |
| `apps/web/src/App.tsx` | edit | 導覽只保留商機入口 |
| `apps/web/src/styles/radar.css` | edit | 收件匣 layout 與 responsive 基礎 |

### 行為變更

- today／7d／all 是同頁 scope；不再維護兩份工作清單狀態。

### API / 契約（若有）

- 只呼叫 RadarRepo，不在頁面自行排序或猜空結果原因。

## Out of scope

- 不接 review state live endpoint、不改後端。

## Acceptance

- [ ] 舊 `/app/radar/today` 進入後保留 today＋pending 意圖。
- [ ] 導覽沒有第二個商機工作入口。
- [ ] 指令：

```bash
cd apps/web && npm run test -- RadarTodayPage RadarOpportunitiesPage && npm run build
```

## Notes

首屏只保留待處理數、時間、排序、篩選與清楚下一步。
