- Redesigned MgGridInfoPanel to use a sticky, scroll-aware layout via JavaScript for better UX when scrolling.
- InfoPanel now uses a responsive CSS grid layout with container queries for 1/2/3 column display based on width.
- Added new toolbar icons using SVG masks for a modern, consistent look; updated toolbar item class names.
- Added "Prev Row" and "Next Row" navigation buttons to the grid toolbar, with corresponding methods in grid base classes.
- Unified edit state enum naming to MgGridEditState and updated all references.
- Improved InfoPanel cell rendering for better text overflow handling and tooltips.
- Updated CSS for InfoPanel and grid, including sticky pane support and icon styles.
- Registered mgGridInfoPanel.js in App.razor and index.html for JS interop.
- Minor UI/UX tweaks: InfoPanel header, background colors, and panel sizing.
- Switch FruitBankConstClient.BaseUrl to HTTPS for localhost.
- Pin DevExpress.Blazor to 25.1.3 in client project.
- Add Microsoft.Extensions.ObjectPool v9 to test project for SignalR.
- Reformat App.razor markup; comment out ResourcePreloader.
- Render @Body only if logged in or on login page in MainLayout.
- Redirect to /Login if not authenticated after auto-login.
- Add SandboxEndpointSimpleTests.cs for HTTP/SignalR endpoint tests against local sandbox.