Add AttributeEditDialog with number input (min 1, max 10), validation error messages, and save/cancel buttons. Attribute cards now open the edit dialog on tap. Changes propagate through CharacterViewModel so derived attributes update immediately. Add withAttribute() to Attributes model for immutable attribute updates by type. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>