- Shipped
- September 4, 2026 at 8:26 PM UTC
- Author
- Kamo
- Commit
- 7d7f854
A fourth and fifth surface beside the home page, loading screen and KamoMeets overlays, sharing their thirteen-token vocabulary and their live swatches. Both are always offered, unlike the KamoMeets one: every org has a sign-in and a sign-up site whatever apps it runs, and an org with no domain of its own still reaches them on login./register.kamocrm.com painted in its own branding. They are also the only two overlays here that do not apply the moment they are saved. kamo-login and kamo-register have no OrgContext to read, so securityservice resolves the token and bakes the colour into the theme config.json those sites fetch; the change lands when provisioning rewrites that file, which the same save already triggers. Five near-identical dropdowns would have been five places to drift, so the editor block is now one renderOverlaySelect() the surfaces share - a sixth surface is one call rather than another twenty lines. The read-only rows already shared theirs. The two fields ride Organization.fromJSON like their siblings, with a round-trip test: the mapper runs twice on the way to the browser, and a field it cannot read back from its own output is a setting that silently reverts on its next load.