- Replace the fixed min-width horizontal-scroll shell with a stacked
mobile layout (h-dvh) that keeps the desktop three-column layout at md+
- Add MobileTopBar with hamburger menu, brand, and theme toggle reachable
without opening the drawer
- Convert SideNav into shared content plus a left-sheet hamburger drawer;
close on navigation link tap, backdrop, or Escape
- Make the board swipeable on mobile: one lane per screen via snap paging,
with a CategoryChips rail that tracks the active lane (IntersectionObserver)
and glides to it on tap; lanes go full-width below md
- Turn the Scheduled panel into a bottom dock bar + bottom sheet on mobile
(keeps overdue/today urgency badges), desktop aside unchanged at md+
- Compact board chrome for phones: icon-only Summary/View buttons, smaller
title/padding, full-width AddCategoryLane as a snap page under empty state
- Allow tall dialogs to scroll within dvh so edit forms and the AI summary
stay usable on small screens; make admin user table horizontally scrollable
- Support configurable ThemeToggle menu side/align so it opens downward in
the mobile top bar instead of off-screen
- Add CDP-based screenshot script and reference shots for mobile/tablet/desktop
3D scene:
- Build a procedural world from seeded waypoint segments (per-segment
step/turn/altitude params) joined into kink-free Catmull-Rom curves,
using ghost points so boundaries stay smooth; world and textures are
derived from the session seed for consistency.
- Carve the flight corridor out of the terrain (gaussian dip plus a
height floor 32u below the path) and add city districts with instanced
buildings driven by seeded glowing-window textures, plus tunnel
segments rendered as textured tubes with light strips.
Board UI:
- Add a ViewSwitcher to the kanban header and a board view provider.
- Compact group cards place an inline "+" on the last visible to-do row
(shrink-0, so it sits at the row's right edge) that opens the new
TodoCreateDialog, alongside the existing AI-assisted creation flow.
Scheduled panel:
- Collapsed rail replaces the corner overdue dot with badges stacked
below the calendar icon: overdue (destructive, ping ring) and
due-today (neutral, calmer pulse). Today's count is a separate filter
that excludes already-completed occurrences, unlike the overdue count.