Switch to MAD when Arabic is selected, EUR for French, USD for English.
Currency still overridable via the manual toggle.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add inline script to root layout that reads the stored theme preference
from cookie/localStorage synchronously before React hydrates, eliminating
the light→dark flash for users who prefer dark mode.
Also guard the theme storage write with the hydrated flag so the initial
render does not overwrite a stored 'dark' preference with 'light'.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove 'medium' theme from dashboard and marketplace; keep only light/dark
- Marketplace: move public pages into (public)/ route group so header/footer
persist across navigations without re-rendering (eliminates usePathname)
- MarketplaceShell is now a pure context provider; chrome lives in
(public)/layout.tsx which Next.js holds stable across navigations
- WorkspaceFrame: remove history.replaceState and standalone-route logic
- Docker API: bypass npm run dev to avoid node --env-file in containers
- Add scripts/run-with-env-file.cjs for Node.js < 20.6 compatibility;
update apps/api/package.json dev script to use it
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>