Checked viewport meta, container max-widths, grid collapse, overflow, and tap-target size at phone (≤430px), iPad mini (~768px), iPad (~1024px), and wide desktop (≥1440px).
| Surface | State across devices | Action |
|---|---|---|
| home.html | Mature. Bento collapses 4→2 col at 780px and 430px; launcher hexagons use % widths; wrap maxes at 1040px. No overflow, no fixed-px traps found. Dead CSS (.hive-nav, cockpit-style .pane) exists but is unused — harmless. | No change needed |
| mis-cockpit.html | 820px wrap; KPI + index grids collapse 4→2 at 560px; tab strip scrolls horizontally. Renders clean phone→desktop. | No responsive change (color/toggle pass — §2) |
| cashflow.html | 820px wrap; tilt bar scrolls-x; category bars use flex with ellipsis labels. Fine to desktop. Dark navy = correct app surface. | No change needed |
| mildred.html | 680px wrap; 2-col quick-links hold at 320px; chat thread capped at 42vh. Solid. | No change needed |
| today.html | was narrow Phone-perfect at 440px, but on iPad/desktop it floated as a thin column mid-screen — the "big computer messes it up" symptom. | Fixed: @media(min-width:900px){max-width:600px} — nothing below 900px changes |
| week.html | was narrow Same 480px-column-on-big-screen issue. (Also a calendar gap — see §3.) | Fixed: same ≥900px widen to 600px |
| scrapbook.html | tight on small phones 3-column masonry crammed the handwriting font on iPhone SE / mini (~100px columns). 1200px board fine on desktop. | Fixed: @media(max-width:379px){column-count:2} |
Honest note: I did not find blatant horizontal-overflow or broken-grid bugs — the earlier device work (the 6/12 desktop-comb pass, the safe-area padding) already hardened these. The fixes above are the real, safe deltas; all CSS-only, all scoped so the sizes you already like are byte-identical.
Design/color: keep the palette The dark navy (#13243f) + gold accent is the correct APP-surface language (per DESIGN_SYSTEM — this is a cockpit, not a daylight briefing, so it should NOT go light). It's cohesive: one token set, honest status colors (green live / amber stale / red risk), a working light toggle for daytime. It reads well phone→desktop. This is something to look at, not fight.
What I fixed: the ◐ toggle reset to dark on every load — your pick never stuck. It now persists to localStorage and restores on open, plus an accessibility label. Verify: tap ◐ → light → reload → stays light.
You said you're "unsure the content is right." My read: the cockpit currently answers "what's my book + today's movers + the one move," all live off /mis/brief and /mis/quotes. That's a good "morning glance." Before a content redesign (taste + trading-logic dependent, and the MIS scoring freeze was only lifted 7/1), decide which of these it should lead with:
These are decisions for you + the MIS operator, not a safe unilateral edit — flagged, not touched.
I traced the actual fetches and hit the live endpoint. Here's the real state, not a guess:
ops-api exposes GET /calendar, which aggregates iCal feeds: the two Airbnb listings (9312/9332), a GOOGLE_ICAL feed, and any extra feeds in the ICAL_FEEDS secret. scope=family returns everything except the Airbnb bookings; scope=business returns just the bookings.HS.calendar('business') + ('family')) → connected/calendar?scope=family and drives "Today's Focus" + a calendar card from it → connectedThe live family feed returned 206 events. It's a merged Google calendar that includes the kids' school calendar (BYAM), and TripIt-style travel: I can see your Orlando, FL, June 2026 block, flights B6547 ISP→MCO and AA2069 MCO→LGA, rental cars, plus New York, NY, November 2026 and flight IZ991 TLV→JFK (Oct 31). So trips DO flow through automatically when they're on the calendar.
Because there is no calendar event for this weekend. After June 30, the next future family events are July 21 (dentist) and Aug 20 (anniversary) — July 3–5 is empty in the feed. The June Orlando trip showed up precisely because it was on the calendar. This is a data-entry gap, not a wiring gap: put the weekend trip on your Google calendar (the one behind GOOGLE_ICAL) and it will surface on today.html, home.html, and Chanie's page within the 5-minute edge cache — no code change.
not connected week.html is 100% static — a hardcoded daven/Mildred/Shabbos rhythm with a single "highlight today's day" script. It does not call HS.calendar() at all, so a trip, a booking, or any real event never appears on the week view. That's the gap to close if you want the week page to reflect reality.
Two smaller truths worth knowing: (a) the iCal parser only reads the DATE of each event (\d{8}), so event times are dropped — a timed meeting shows as all-day; (b) an all-day multi-day trip has start/end dates, so a weekend range would render, but the pages filter "today" to start===today, so a Fri–Sun trip only lights up on its start day unless the page checks the range. Both are enhancement items, not blockers.
Cork-board masonry wall fed live from your command queue (/state). Each open card = a paper "scrap"; the paper color IS the topic (Legal/Money/Property/Family/Build/Other, keyword-classified, first-match-wins). Tap a topic chip to filter (with live counts); tap a scrap to mark it DONE (writes to /inbox, greys + strikes through); the sticky note at top lets you jot a new item (Enter → ACTION). It's genuinely functional and has a real personality — this is an APP surface, so the dark board is intentional (not a briefing).
I held off implementing swipe because it changes core interaction (and needs the undo safety net) — that's a "million times better" redesign best done with your thumb in the loop, not guessed.
| Commit | Change |
|---|---|
eee77a0 | Cockpit: persist light/dark toggle + a11y label |
ae3ff04 | Responsive: widen today/week on ≥900px screens; scrapbook 2-col on small phones |
All CSS/JS verified (node --check on the cockpit script). Nothing restructured; no content moved; the light-briefing rule honored (this doc is forced-light, the app surfaces stay dark).
C:\Users\ztrei\OneDrive\2. Hook Street\05. 2026 BH\outputs\2026-07-02_03-00_audit_surface-quality-sweep.htmlae3ff04 · Working dir: C:\Users\ztrei\OneDrive\2. Hook Street\05. 2026 BHGET https://ops-api.sam-0f0.workers.dev/calendar?scope=family (206 events, travel confirmed) · calendar handler ops-api/src/index.ts L2648–2703