Change from 4-column to 2-column grid in the @media (min-width: 1200px)
block for body.normal, giving each departure card ~580px width on 1080p
monitors. Also add font-size increases for destination text (1.1em),
countdown numbers (1.4em), and next departures (0.9em) to improve
readability at the wider card size.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Redesign the landscape orientation for kiosk readability at 3-10m distance:
- Add dark kiosk background (#1a1a2e) with high-contrast light text
- Replace 2-column grid with 5-row full-width stacking layout
- Add compact weather bar (temp + sunrise/sunset) replacing full widget
- Enlarge countdown to 2em hero size in landscape
- Replace time ranges with next 2-3 absolute departure times
- Add 3-tier urgency colors: Nu (green), 1-2min (red), 3-5min (orange)
- Make site headers full-width blue gradient bars in landscape
- Tighten card spacing (65px min-height, 8px gap) for 4-stop visibility
- Add scrolling news ticker with /api/ticker fallback messages
- Fix daylight bar from position:fixed to relative in landscape grid
- Hide background overlay in landscape for maximum contrast
- Fix weather-section HTML missing closing div tags
All changes scoped behind body.landscape CSS selectors; other orientations unaffected.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Item 10: Convert to ES modules with import/export, single module entry point
- Item 11: Replace inline styles with CSS classes (background overlay, card
animations, highlight effect, config modal form elements)
- Item 12: Move ConfigManager modal HTML from JS template literal to
<template> element in index.html
- Item 13: Replace deprecated url.parse() with new URL() in server.js
and update route handlers to use searchParams
- Item 14: Replace JSON.parse/stringify deep clone with structuredClone()
- Item 15: Remove dead JSON-fixing regex code from departures.js route
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Split server.js routes into modular files (server/routes/)
- departures.js: Departure data endpoints
- sites.js: Site search and nearby sites
- config.js: Configuration endpoints
- Reorganized file structure following Node.js best practices:
- Moved sites-config.json to config/sites.json
- Moved API_RESPONSE_DOCUMENTATION.md to docs/
- Moved raspberry-pi-setup.sh to scripts/
- Archived legacy files to archive/ directory
- Updated all code references to new file locations
- Added archive/ to .gitignore to exclude legacy files from repo
- Updated README.md with new structure and organization
- All functionality tested and working correctly
Version: 1.2.0