Be as fair as possible Introduction

In this challenge you should split an integer into two pieces. Since nobody likes getting the smaller piece of cake, your goal is to be as fair as possible. For example if you wanted to split the integer 7129 into two pieces, there are 3 possible ways of doing so.

7,129, 71,29 and 712,9 are all possibilities, but 71,29 is the fairest way of splitting it into two pieces because it minimizes the difference between the two:

7 129 -&gt; |7-129| = 122
71 29 -&gt; |71-29| = 42
712 9 -&gt; |712-9| = 703


Challenge

Given an integer determine the best possible way of partitioning it as described above and report the resulting difference.

Rules


Splitting only makes sense for integers of length at least two, the input will always be ≥ 10
Input can be either an integer, list of digits or a string
You don't have to handle invalid input


Testcases

You only need to report the resulting difference, the partitioning is only here for illustration:

10 -&gt; 1,0 -&gt; 1
11 -&gt; 1,1 -&gt; 0
12 -&gt; 1,2 -&gt; 1
13 -&gt; 1,3 -&gt; 2
101 -&gt; 1,01 -&gt; 0
128 -&gt; 12,8 -&gt; 4
313 -&gt; 3,13 -&gt; 10
1003 -&gt; 1,003 -&gt; 2
7129 -&gt; 71,29 -&gt; 42
81128 -&gt; 81,128 -&gt; 47
999999 -&gt; 999,999 -&gt; 0
9999999 -&gt; 999,9999 or 9999,999 -&gt; 9000
Brachylog, 12 11 bytes
My first Brachylog answer
Take input as a string
{~cĊịᵐ-ȧ}ᶠ⌋

Try it online!
Explanation:
ᶠ will find all possible outputs for the predicate in {…} and store them in a list. ~c says that the output is a list that, when concatenated, is equal to the input. Next Ċ asserts that the the output of ~c has length 2.
ịᵐ converts both elements of the output into integers (this gets rid of leading 0s), -ȧ takes the absolute difference of the two elements.
Once we have our list of all possible outputs, we get the minimum element with ⌋