feat(app-render): add inlineCss: 'shared' mode for safer CSS inlining
Adds a new 'shared' option for the experimental inlineCss config that
only inlines root layout CSS while keeping page-specific CSS as <link>
tags. This is safer for client-side navigations because:
- Root layout CSS is guaranteed to be present on all pages
- Page-specific CSS may not be present after navigation
- Reduces RSC payload size by not re-sending shared CSS
Config options:
- `false`: No CSS inlining (default)
- `true`: Inline ALL CSS
- `'shared'`: Only inline root layout CSS
Changes:
- Update config types to support 'shared' value
- Add rootLayoutCSSPaths tracking in CollectedInlineCss
- Implement 'shared' mode logic in render-css-resource.tsx
- Add InlineCssConfig enum to Rust/Turbopack config
- Fix templates to preserve 'shared' value instead of Boolean()
- Add comprehensive tests for 'shared' mode