- Add max-height: 92vh and overflow-y: auto to .setup-card so it scrolls
instead of extending past the screen
- Widen .setup-card to 860px to accommodate 2-column deck grid
- Change .deck-assignment-grid from vertical stack to 2-column grid so
4 player panels fit in 2 rows instead of 4
- Reduce .deck-tab-content max-height to 170px and .deck-precon-list to
140px for tighter panels
- Make gradient bar sticky so it stays visible when scrolling
- Add responsive fallback to single column below 640px
- Generate lan-client/precons.js from precon-decks/precon-index.json so
PRECON_DATA is always available for local/offline mode (163 precons)
- Add scripts/generate-precons-js.js for regeneration when precons update
- Fix _loadBackendPrecons() to re-render the precon tab UI when backend
precons load successfully (was only updating status indicator text,
not populating the dropdown)
Without precons.js, PRECON_DATA was undefined and the dropdown showed
'No precon data loaded' even though 163 .dck files exist in the repo.