generateCss cached the user css config in one module-level slot, filled from whichever root generated CSS first. Every later root got that root's shortcuts and theme, and its cache keys: a second app served by the same process, a build for another package, or the next test file.
In the full suite this made the five #2000 shortcut-precedence tests fail whenever another file had generated CSS first. CI passed only because of file order.
Fix: cache the config, its fingerprint and the on-disk cache directory per app root.