- Grouped toolbar dropdown (ZTools_AppearanceMode) replaces two separate buttons
- Set Category command (ZTools_SetCategory) with popup menu for batch tagging
- Category changes wrapped in undo transactions
- Status bar indicator showing current mode, clickable to toggle
- Debounced recompute handling (Shape property changes batched at 100ms)
- Observer re-applies colors after recompute to prevent reset
Closes#21
Add configurable appearance mode system with two modes:
- Realistic: material passthrough (restores original ShapeColor)
- Engineering: colors parts by KindredCategory using Catppuccin Mocha palette
KindredCategory enum property (custom_body, fastener, structural, electrical,
seal_gasket, bearing_bushing, spring_compliant, moving_part) is added lazily
to Part::Feature objects when Engineering mode is activated.
Includes:
- AppearanceMode base class with apply/reset/apply_to_object interface
- AppearanceManager singleton with document observer for auto-coloring
- Palette loaded from JSON config (theme-overridable)
- View > Appearance Mode menu and toolbar integration
- Preference persistence at Kindred/AppearanceMode
Closes#20