OpenDialog doesn't respect the DialogOption.Bottom Property. Looks like its not being copied to a new DialogOptions in DialogService.cs 's OpenDialog Line 173ish
Sample OpenOrder from DialogPage.razor:
public async Task OpenOrder()
{
await DialogService.OpenAsync<DialogCardPage>($"Order {orderID}",
new Dictionary<string, object>() { { "OrderID", orderID } },
new DialogOptions() { Width = "700px", Height = "570px",
Top = "20px",
Left = "20px",
Bottom = "20px",
Resizable = true,
Draggable = true });
}