## Summary ## Linked issue Closes # ## Type of change - [ ] Bug fix - [ ] New feature - [ ] Refactor / cleanup - [ ] Documentation - [ ] CI / tooling ## Architectural checklist - [ ] No `from PySide6` in `core/` or `services/` - [ ] No `import openseespy` in `core/` or `views/` - [ ] Public functions have type hints + docstrings - [ ] Heavy work runs off the GUI thread ## Testing