## 1. Icons - [x] 1.1 Finalize the ArbPulse master icon and derive `icon-192.png`, `icon-512.png`, `icon-maskable-512.png` (glyph within ~80% safe zone), and `apple-touch-icon.png` (180px) - [x] 1.2 Place all icons under `web/public/` ## 2. Manifest - [x] 2.1 Create `web/public/manifest.webmanifest` with `name`, `short_name`, `start_url: "/"`, `scope: "/"`, `display: "standalone"`, `theme_color`/`background_color` `#0a0e14`, and icon entries (192, 512, and 512 maskable with `"purpose": "maskable"`) ## 3. HTML head metadata - [x] 3.1 In `web/index.html`, add `viewport-fit=cover` to the viewport meta and a `theme-color` meta (`#0a0e14`) - [x] 3.2 Add ``, ``, and the `apple-mobile-web-app-capable` / `apple-mobile-web-app-status-bar-style` / `apple-mobile-web-app-title` tags ## 4. Responsive layout - [x] 4.1 `PriceMatrix.tsx`: render per-venue stacked cards (exchange + bid/ask/qty/ spread as label–value rows) below `sm`; keep the `