:root {
	--flexColBorderWidth: 1px;
	--flexColBorderWidthHalf: calc(var(--flexColBorderWidth) / 2);
	--flexColBorderWidthHalfRoundUp: round(up, var(--flexColBorderWidthHalf), 1px);
	--flexColBorderWidthHalfRoundDown: round(down, var(--flexColBorderWidthHalf), 1px);
	--flexColBorderWidthMod:mod(var(--flexColBorderWidth), 2px);
	
	/*	--display-if-can-scroll:;*/
}

.flexRow {
	position:relative;
	--binaryCounter:0;
	--binaryCounterColSize2:0;
	--binaryCounterColSize3:0;
	--binaryCounterColSize4:0;
	--binaryCounterColSize5:0;
	--binaryCounterColSize6:0;
	--binaryCounterColSize7:0;
	--binaryCounterColSize8:0;
	--binaryCounterColSize9:0;
	--binaryCounterColSize10:0;
	--binaryCounterColSize11:0;
	--binaryCounterColSize12:0;
	--binaryCounterColSize13:0;
	--binaryCounterColSize14:0;
	--binaryCounterColSize15:0;
	--binaryCounterColSize16:0;
	--binaryCounterColSize17:0;
	--binaryCounterColSize18:0;
	--binaryCounterColSize19:0;
	--binaryCounterColSize20:0;
	--binaryCounterColSize21:0;
	--binaryCounterColSize22:0;
	--binaryCounterColSize23:0;
	--binaryCounterColSize24:0;
	--binaryCounterColSize25:0;
	--binaryCounterColSize26:0;
	--binaryCounterColSize27:0;
	--binaryCounterColSize28:0;
	--binaryCounterColSize29:0;
	--binaryCounterColSize30:0;
	--binaryCounterColSize31:0;

	--binaryCount0:0;
	--binaryCount0ColSize2:0;
	--binaryCount0ColSize3:0;
	--binaryCount0ColSize4:0;
	--binaryCount0ColSize5:0;
	--binaryCount0ColSize6:0;
	--binaryCount0ColSize7:0;
	--binaryCount0ColSize8:0;
	--binaryCount0ColSize9:0;
	--binaryCount0ColSize10:0;
	--binaryCount0ColSize11:0;
	--binaryCount0ColSize12:0;
	--binaryCount0ColSize13:0;
	--binaryCount0ColSize14:0;
	--binaryCount0ColSize15:0;

	--binaryCount1:0;
	--binaryCount1ColSize2:0;
	--binaryCount1ColSize3:0;
	--binaryCount1ColSize4:0;
	--binaryCount1ColSize5:0;
	--binaryCount1ColSize6:0;
	--binaryCount1ColSize7:0;
	--binaryCount1ColSize8:0;
	--binaryCount1ColSize9:0;
	--binaryCount1ColSize10:0;
	--binaryCount1ColSize11:0;
	--binaryCount1ColSize12:0;
	--binaryCount1ColSize13:0;
	--binaryCount1ColSize14:0;
	--binaryCount1ColSize15:0;

	--binaryCount2:0;
	--binaryCount2ColSize2:0;
	--binaryCount2ColSize3:0;
	--binaryCount2ColSize4:0;
	--binaryCount2ColSize5:0;
	--binaryCount2ColSize6:0;
	--binaryCount2ColSize7:0;

	--binaryCount3:0;
	--binaryCount3ColSize2:0;
	--binaryCount3ColSize3:0;

	--binaryCount4:0;
}


/*** Count Columns ***/

/*** Section of the first bit of all counters ***/

.flexRow:has(>:nth-child(2n-1 of .flexCol):nth-last-child(1 of .flexCol)) {
	--binaryCount0:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="2"]):nth-last-child(1 of .flexCol[data-colSize="2"])) {
	--binaryCount0ColSize2:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="3"]):nth-last-child(1 of .flexCol[data-colSize="3"])) {
	--binaryCount0ColSize3:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="4"]):nth-last-child(1 of .flexCol[data-colSize="4"])) {
	--binaryCount0ColSize4:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="5"]):nth-last-child(1 of .flexCol[data-colSize="5"])) {
	--binaryCount0ColSize5:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="6"]):nth-last-child(1 of .flexCol[data-colSize="6"])) {
	--binaryCount0ColSize6:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="7"]):nth-last-child(1 of .flexCol[data-colSize="7"])) {
	--binaryCount0ColSize7:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="8"]):nth-last-child(1 of .flexCol[data-colSize="8"])) {
	--binaryCount0ColSize8:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="9"]):nth-last-child(1 of .flexCol[data-colSize="9"])) {
	--binaryCount0ColSize9:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="10"]):nth-last-child(1 of .flexCol[data-colSize="10"])) {
	--binaryCount0ColSize10:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="11"]):nth-last-child(1 of .flexCol[data-colSize="11"])) {
	--binaryCount0ColSize11:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="12"]):nth-last-child(1 of .flexCol[data-colSize="12"])) {
	--binaryCount0ColSize12:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="13"]):nth-last-child(1 of .flexCol[data-colSize="13"])) {
	--binaryCount0ColSize13:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="14"]):nth-last-child(1 of .flexCol[data-colSize="14"])) {
	--binaryCount0ColSize14:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="15"]):nth-last-child(1 of .flexCol[data-colSize="15"])) {
	--binaryCount0ColSize15:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="16"]):nth-last-child(1 of .flexCol[data-colSize="16"])) {
	--binaryCounterColSize16:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="17"]):nth-last-child(1 of .flexCol[data-colSize="17"])) {
	--binaryCounterColSize17:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="18"]):nth-last-child(1 of .flexCol[data-colSize="18"])) {
	--binaryCounterColSize18:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="19"]):nth-last-child(1 of .flexCol[data-colSize="19"])) {
	--binaryCounterColSize19:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="20"]):nth-last-child(1 of .flexCol[data-colSize="20"])) {
	--binaryCounterColSize20:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="21"]):nth-last-child(1 of .flexCol[data-colSize="21"])) {
	--binaryCounterColSize21:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="22"]):nth-last-child(1 of .flexCol[data-colSize="22"])) {
	--binaryCounterColSize22:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="23"]):nth-last-child(1 of .flexCol[data-colSize="23"])) {
	--binaryCounterColSize23:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="24"]):nth-last-child(1 of .flexCol[data-colSize="24"])) {
	--binaryCounterColSize24:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="25"]):nth-last-child(1 of .flexCol[data-colSize="25"])) {
	--binaryCounterColSize25:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="26"]):nth-last-child(1 of .flexCol[data-colSize="26"])) {
	--binaryCounterColSize26:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="27"]):nth-last-child(1 of .flexCol[data-colSize="27"])) {
	--binaryCounterColSize27:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="28"]):nth-last-child(1 of .flexCol[data-colSize="28"])) {
	--binaryCounterColSize28:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="29"]):nth-last-child(1 of .flexCol[data-colSize="29"])) {
	--binaryCounterColSize29:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="30"]):nth-last-child(1 of .flexCol[data-colSize="30"])) {
	--binaryCounterColSize30:1;
}

.flexRow:has(>:nth-child(2n-1 of .flexCol[data-colSize="31"]):nth-last-child(1 of .flexCol[data-colSize="31"])) {
	--binaryCounterColSize31:1;
}
/*** End of section of the first bit of all counters ***/

/*** Section of the second bit of all counters ***/

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol),
	:nth-child(4n-2 of .flexCol)
):nth-last-child(1 of .flexCol)) {
	--binaryCount1:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="2"]),
	:nth-child(4n-2 of .flexCol[data-colSize="2"])
):nth-last-child(1 of .flexCol[data-colSize="2"])) {
	--binaryCount1ColSize2:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="3"]),
	:nth-child(4n-2 of .flexCol[data-colSize="3"])
):nth-last-child(1 of .flexCol[data-colSize="3"])) {
	--binaryCount1ColSize3:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="4"]),
	:nth-child(4n-2 of .flexCol[data-colSize="4"])
):nth-last-child(1 of .flexCol[data-colSize="4"])) {
	--binaryCount1ColSize4:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="5"]),
	:nth-child(4n-2 of .flexCol[data-colSize="5"])
):nth-last-child(1 of .flexCol[data-colSize="5"])) {
	--binaryCount1ColSize5:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="6"]),
	:nth-child(4n-2 of .flexCol[data-colSize="6"])
):nth-last-child(1 of .flexCol[data-colSize="6"])) {
	--binaryCount1ColSize6:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="7"]),
	:nth-child(4n-2 of .flexCol[data-colSize="7"])
):nth-last-child(1 of .flexCol[data-colSize="7"])) {
	--binaryCount1ColSize7:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="8"]),
	:nth-child(4n-2 of .flexCol[data-colSize="8"])
):nth-last-child(1 of .flexCol[data-colSize="8"])) {
	--binaryCount1ColSize8:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="9"]),
	:nth-child(4n-2 of .flexCol[data-colSize="9"])
):nth-last-child(1 of .flexCol[data-colSize="9"])) {
	--binaryCount1ColSize9:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="10"]),
	:nth-child(4n-2 of .flexCol[data-colSize="10"])
):nth-last-child(1 of .flexCol[data-colSize="10"])) {
	--binaryCount1ColSize10:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="11"]),
	:nth-child(4n-2 of .flexCol[data-colSize="11"])
):nth-last-child(1 of .flexCol[data-colSize="11"])) {
	--binaryCount1ColSize11:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="12"]),
	:nth-child(4n-2 of .flexCol[data-colSize="12"])
):nth-last-child(1 of .flexCol[data-colSize="12"])) {
	--binaryCount1ColSize12:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="13"]),
	:nth-child(4n-2 of .flexCol[data-colSize="13"])
):nth-last-child(1 of .flexCol[data-colSize="13"])) {
	--binaryCount1ColSize13:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="14"]),
	:nth-child(4n-2 of .flexCol[data-colSize="14"])
):nth-last-child(1 of .flexCol[data-colSize="14"])) {
	--binaryCount1ColSize14:1;
}

.flexRow:has(>:is(
	:nth-child(4n-1 of .flexCol[data-colSize="15"]),
	:nth-child(4n-2 of .flexCol[data-colSize="15"])
):nth-last-child(1 of .flexCol[data-colSize="15"])) {
	--binaryCount1ColSize15:1;
}

/*** End of section of the second bit of all counters ***/

/*** Section of the third bit of all counters ***/

.flexRow:has(>:is(
	:nth-child(8n-1 of .flexCol),
	:nth-child(8n-2 of .flexCol),
	:nth-child(8n-3 of .flexCol),
	:nth-child(8n-4 of .flexCol)
):nth-last-child(1 of .flexCol)) {
	--binaryCount2:1;
}

.flexRow:has(>:is(
	:nth-child(8n-1 of .flexCol[data-colSize="2"]),
	:nth-child(8n-2 of .flexCol[data-colSize="2"]),
	:nth-child(8n-3 of .flexCol[data-colSize="2"]),
	:nth-child(8n-4 of .flexCol[data-colSize="2"])
):nth-last-child(1 of .flexCol[data-colSize="2"])) {
	--binaryCount2ColSize2:1;
}

.flexRow:has(>:is(
	:nth-child(8n-1 of .flexCol[data-colSize="3"]),
	:nth-child(8n-2 of .flexCol[data-colSize="3"]),
	:nth-child(8n-3 of .flexCol[data-colSize="3"]),
	:nth-child(8n-4 of .flexCol[data-colSize="3"])
):nth-last-child(1 of .flexCol[data-colSize="3"])) {
	--binaryCount2ColSize3:1;
}

.flexRow:has(>:is(
	:nth-child(8n-1 of .flexCol[data-colSize="4"]),
	:nth-child(8n-2 of .flexCol[data-colSize="4"]),
	:nth-child(8n-3 of .flexCol[data-colSize="4"]),
	:nth-child(8n-4 of .flexCol[data-colSize="4"])
):nth-last-child(1 of .flexCol[data-colSize="4"])) {
	--binaryCount2ColSize4:1;
}

.flexRow:has(>:is(
	:nth-child(8n-1 of .flexCol[data-colSize="5"]),
	:nth-child(8n-2 of .flexCol[data-colSize="5"]),
	:nth-child(8n-3 of .flexCol[data-colSize="5"]),
	:nth-child(8n-4 of .flexCol[data-colSize="5"])
):nth-last-child(1 of .flexCol[data-colSize="5"])) {
	--binaryCount2ColSize5:1;
}

.flexRow:has(>:is(
	:nth-child(8n-1 of .flexCol[data-colSize="6"]),
	:nth-child(8n-2 of .flexCol[data-colSize="6"]),
	:nth-child(8n-3 of .flexCol[data-colSize="6"]),
	:nth-child(8n-4 of .flexCol[data-colSize="6"])
):nth-last-child(1 of .flexCol[data-colSize="6"])) {
	--binaryCount2ColSize6:1;
}

.flexRow:has(>:is(
	:nth-child(8n-1 of .flexCol[data-colSize="7"]),
	:nth-child(8n-2 of .flexCol[data-colSize="7"]),
	:nth-child(8n-3 of .flexCol[data-colSize="7"]),
	:nth-child(8n-4 of .flexCol[data-colSize="7"])
):nth-last-child(1 of .flexCol[data-colSize="7"])) {
	--binaryCount2ColSize7:1;
}

/*** End of section of the third bit of all counters ***/

/*** Section of the fourth bit of all counters ***/

.flexRow:has(>:is(
	:nth-child(16n-1 of .flexCol),
	:nth-child(16n-2 of .flexCol),
	:nth-child(16n-3 of .flexCol),
	:nth-child(16n-4 of .flexCol),
	:nth-child(16n-5 of .flexCol),
	:nth-child(16n-6 of .flexCol),
	:nth-child(16n-7 of .flexCol),
	:nth-child(16n-8 of .flexCol)
):nth-last-child(1 of .flexCol)) {
	--binaryCount3:1;
}

.flexRow:has(>:is(
	:nth-child(16n-1 of .flexCol[data-colSize="2"]),
	:nth-child(16n-2 of .flexCol[data-colSize="2"]),
	:nth-child(16n-3 of .flexCol[data-colSize="2"]),
	:nth-child(16n-4 of .flexCol[data-colSize="2"]),
	:nth-child(16n-5 of .flexCol[data-colSize="2"]),
	:nth-child(16n-6 of .flexCol[data-colSize="2"]),
	:nth-child(16n-7 of .flexCol[data-colSize="2"]),
	:nth-child(16n-8 of .flexCol[data-colSize="2"])
):nth-last-child(1 of .flexCol[data-colSize="2"])) {
	--binaryCount3ColSize2:1;
}

.flexRow:has(>:is(
	:nth-child(16n-1 of .flexCol[data-colSize="3"]),
	:nth-child(16n-2 of .flexCol[data-colSize="3"]),
	:nth-child(16n-3 of .flexCol[data-colSize="3"]),
	:nth-child(16n-4 of .flexCol[data-colSize="3"]),
	:nth-child(16n-5 of .flexCol[data-colSize="3"]),
	:nth-child(16n-6 of .flexCol[data-colSize="3"]),
	:nth-child(16n-7 of .flexCol[data-colSize="3"]),
	:nth-child(16n-8 of .flexCol[data-colSize="3"])
):nth-last-child(1 of .flexCol[data-colSize="3"])) {
	--binaryCount3ColSize3:1;
}

/*** End of section of the fourth bit of all counters ***/

/*** Section of the fifth bit of all counters ***/

.flexRow:has(>:is(
	:nth-child(32n-1 of .flexCol),
	:nth-child(32n-2 of .flexCol),
	:nth-child(32n-3 of .flexCol),
	:nth-child(32n-4 of .flexCol),
	:nth-child(32n-5 of .flexCol),
	:nth-child(32n-6 of .flexCol),
	:nth-child(32n-7 of .flexCol),
	:nth-child(32n-8 of .flexCol),
	:nth-child(32n-9 of .flexCol),
	:nth-child(32n-10 of .flexCol),
	:nth-child(32n-11 of .flexCol),
	:nth-child(32n-12 of .flexCol),
	:nth-child(32n-13 of .flexCol),
	:nth-child(32n-14 of .flexCol),
	:nth-child(32n-15 of .flexCol),
	:nth-child(32n-16 of .flexCol)
):nth-last-child(1 of .flexCol)) {
	--binaryCount4:1;
}

/*** End of section of the fifth bit of all counters ***/

/*** Defining colSizeAmount for each flexCol ***/

.flexCol:is([data-colSize="1"], :not([data-colSize])) {
	--colSizeAmount:1;
}
.flexCol:is([data-colSize="2"]) {
	--colSizeAmount:2;
}
.flexCol:is([data-colSize="3"]) {
	--colSizeAmount:3;
}
.flexCol:is([data-colSize="4"]) {
	--colSizeAmount:4;
}
.flexCol:is([data-colSize="5"]) {
	--colSizeAmount:5;
}
.flexCol:is([data-colSize="6"]) {
	--colSizeAmount:6;
}
.flexCol:is([data-colSize="7"]) {
	--colSizeAmount:7;
}
.flexCol:is([data-colSize="8"]) {
	--colSizeAmount:8;
}
.flexCol:is([data-colSize="9"]) {
	--colSizeAmount:9;
}
.flexCol:is([data-colSize="10"]) {
	--colSizeAmount:10;
}
.flexCol:is([data-colSize="11"]) {
	--colSizeAmount:11;
}
.flexCol:is([data-colSize="12"]) {
	--colSizeAmount:12;
}
.flexCol:is([data-colSize="13"]) {
	--colSizeAmount:13;
}
.flexCol:is([data-colSize="14"]) {
	--colSizeAmount:14;
}
.flexCol:is([data-colSize="15"]) {
	--colSizeAmount:15;
}
.flexCol:is([data-colSize="16"]) {
	--colSizeAmount:16;
}
.flexCol:is([data-colSize="17"]) {
	--colSizeAmount:17;
}
.flexCol:is([data-colSize="18"]) {
	--colSizeAmount:18;
}
.flexCol:is([data-colSize="19"]) {
	--colSizeAmount:19;
}
.flexCol:is([data-colSize="20"]) {
	--colSizeAmount:20;
}
.flexCol:is([data-colSize="21"]) {
	--colSizeAmount:21;
}
.flexCol:is([data-colSize="22"]) {
	--colSizeAmount:22;
}
.flexCol:is([data-colSize="23"]) {
	--colSizeAmount:23;
}
.flexCol:is([data-colSize="24"]) {
	--colSizeAmount:24;
}
.flexCol:is([data-colSize="25"]) {
	--colSizeAmount:25;
}
.flexCol:is([data-colSize="26"]) {
	--colSizeAmount:26;
}
.flexCol:is([data-colSize="27"]) {
	--colSizeAmount:27;
}
.flexCol:is([data-colSize="27"]) {
	--colSizeAmount:28;
}
.flexCol:is([data-colSize="29"]) {
	--colSizeAmount:29;
}
.flexCol:is([data-colSize="30"]) {
	--colSizeAmount:30;
}
.flexCol:is([data-colSize="31"]) {
	--colSizeAmount:31;
}


.flexRow {
	--binaryCounter:calc(var(--binaryCount0) + 2 * var(--binaryCount1) + 4 * var(--binaryCount2) + 8 * var(--binaryCount3) + 16 * var(--binaryCount4));

	--binaryCounterColSize2:calc(var(--binaryCount0ColSize2) + 2 * var(--binaryCount1ColSize2) + 4 * var(--binaryCount2ColSize2) + 8 * var(--binaryCount3ColSize2));
	--binaryCounterColSize3:calc(var(--binaryCount0ColSize3) + 2 * var(--binaryCount1ColSize3) + 4 * var(--binaryCount2ColSize3) + 8 * var(--binaryCount3ColSize3));
	--binaryCounterColSize4:calc(var(--binaryCount0ColSize4) + 2 * var(--binaryCount1ColSize4) + 4 * var(--binaryCount2ColSize4));
	--binaryCounterColSize5:calc(var(--binaryCount0ColSize5) + 2 * var(--binaryCount1ColSize5) + 4 * var(--binaryCount2ColSize5));
	--binaryCounterColSize6:calc(var(--binaryCount0ColSize6) + 2 * var(--binaryCount1ColSize6) + 4 * var(--binaryCount2ColSize6));
	--binaryCounterColSize7:calc(var(--binaryCount0ColSize7) + 2 * var(--binaryCount1ColSize7) + 4 * var(--binaryCount2ColSize7));
	--binaryCounterColSize8:calc(var(--binaryCount0ColSize8) + 2 * var(--binaryCount1ColSize8));
	--binaryCounterColSize9:calc(var(--binaryCount0ColSize9) + 2 * var(--binaryCount1ColSize9));
	--binaryCounterColSize10:calc(var(--binaryCount0ColSize10) + 2 * var(--binaryCount1ColSize10));
	--binaryCounterColSize11:calc(var(--binaryCount0ColSize11) + 2 * var(--binaryCount1ColSize11));
	--binaryCounterColSize12:calc(var(--binaryCount0ColSize12) + 2 * var(--binaryCount1ColSize12));
	--binaryCounterColSize13:calc(var(--binaryCount0ColSize13) + 2 * var(--binaryCount1ColSize13));
	--binaryCounterColSize14:calc(var(--binaryCount0ColSize14) + 2 * var(--binaryCount1ColSize14));
	--binaryCounterColSize15:calc(var(--binaryCount0ColSize15) + 2 * var(--binaryCount1ColSize15));

	--binaryCounterColSize1: calc(var(--binaryCounter) - (0
			+ var(--binaryCounterColSize2)
			+ var(--binaryCounterColSize3)
			+ var(--binaryCounterColSize4)
			+ var(--binaryCounterColSize5)
			+ var(--binaryCounterColSize6)
			+ var(--binaryCounterColSize7)
			+ var(--binaryCounterColSize8)
			+ var(--binaryCounterColSize9)
			+ var(--binaryCounterColSize10)
			+ var(--binaryCounterColSize11)
			+ var(--binaryCounterColSize12)
			+ var(--binaryCounterColSize13)
			+ var(--binaryCounterColSize14)
			+ var(--binaryCounterColSize15)
			+ var(--binaryCounterColSize16)
			+ var(--binaryCounterColSize17)
			+ var(--binaryCounterColSize18)
			+ var(--binaryCounterColSize19)
			+ var(--binaryCounterColSize20)
			+ var(--binaryCounterColSize21)
			+ var(--binaryCounterColSize22)
			+ var(--binaryCounterColSize23)
			+ var(--binaryCounterColSize24)
			+ var(--binaryCounterColSize25)
			+ var(--binaryCounterColSize26)
			+ var(--binaryCounterColSize27)
			+ var(--binaryCounterColSize28)
			+ var(--binaryCounterColSize29)
			+ var(--binaryCounterColSize30)
			+ var(--binaryCounterColSize31))
	);
	--binaryCounterTotal: calc(0
		+ var(--binaryCounterColSize1) * 1
		+ var(--binaryCounterColSize2) * 2
		+ var(--binaryCounterColSize3) * 3
		+ var(--binaryCounterColSize4) * 4
		+ var(--binaryCounterColSize5) * 5
		+ var(--binaryCounterColSize6) * 6
		+ var(--binaryCounterColSize7) * 7
		+ var(--binaryCounterColSize8) * 8
		+ var(--binaryCounterColSize9) * 9
		+ var(--binaryCounterColSize10) * 10
		+ var(--binaryCounterColSize11) * 11
		+ var(--binaryCounterColSize12) * 12
		+ var(--binaryCounterColSize13) * 13
		+ var(--binaryCounterColSize14) * 14
		+ var(--binaryCounterColSize15) * 15
		+ var(--binaryCounterColSize16) * 16
		+ var(--binaryCounterColSize17) * 17
		+ var(--binaryCounterColSize18) * 18
		+ var(--binaryCounterColSize19) * 19
		+ var(--binaryCounterColSize20) * 20
		+ var(--binaryCounterColSize21) * 21
		+ var(--binaryCounterColSize22) * 22
		+ var(--binaryCounterColSize23) * 23
		+ var(--binaryCounterColSize24) * 24
		+ var(--binaryCounterColSize25) * 25
		+ var(--binaryCounterColSize26) * 26
		+ var(--binaryCounterColSize27) * 27
		+ var(--binaryCounterColSize28) * 28
		+ var(--binaryCounterColSize29) * 29
		+ var(--binaryCounterColSize30) * 30
		+ var(--binaryCounterColSize31) * 31
	);
}

/*@keyframes detect-flexCol-scroll {*/
/*	from,*/
/*	to {*/
/*		--flexCol-can-scroll: ;*/
/*	}*/
/*}*/


.flexRow {
/*	--display-if-cant-scroll:var(--flexCol-can-scroll) flex;*/
/*	display: var(--display-if-can-scroll, var(--display-if-cant-scroll));*/

	display:flex;
	flex-direction: row;
}
.flexCol {

/*	overflow-y: auto;*/
/*	animation: detect-flexCol-scroll linear;*/
/*	animation-timeline: scroll(self);*/
/*	--bg-if-can-scroll: var(--flexCol-can-scroll) lime;*/
/*	--bg-if-cant-scroll: red;*/
/*	--display-if-can-scroll:var(--flexCol-can-scroll) flex;*/

/*	background: var(--bg-if-can-scroll, var(--bg-if-cant-scroll));*/

/*float: left;*/

/*	height: 40px;*/
	display: inline-flex;
	flex-direction: column;
	flex-shrink: 0;
/*	--totalColCount : calc();*/
/*	width: var(--col-width);*/
	width: calc(100% / var(--binaryCounterTotal) * var(--colSizeAmount));

	overflow-wrap:break-word;
	padding:0 5px;
}

.bordered.flexRow>.flexCol {
	border: var(--flexColBorderWidth) solid black;
	
}

.sticky.flexRow {
	position: sticky;
	top:0px;
	background: #cccc;
}

.flexRowOverlay {
	position: absolute;
	/*height: 100%;*/
	display: block;
	top: 0px;
	left: 0px;
	right: 0px;
	bottom: 0px;
	z-index:-1;
    backdrop-filter: blur(1.5px);
}

/**.flexRow:has(.flexCol :is(.flexRow) .markFlexRow:checked) .flexRowOverlay {*/ /* Incorrect but i need this, just inverted*/
/** .flexRow:has(.markFlexRow:checked):not(:has(.flexRow)) .flexRowOverlay {*/ /* Also incorrect. because it does not react as soon it has .flexRow */

/**.flexRow:has(:is(:not(.flexRow)) .markFlexRow) .flexRowOverlay {*/

.flexRow {
	--flexRowNesting:1;
	& .flexRow {
		--flexRowNesting:2;
		& .flexRow {
			--flexRowNesting:3;
			& .flexRow {
				--flexRowNesting:4;
				& .flexRow {
					--flexRowNesting:5;
					& .flexRow {
						--flexRowNesting:6;
						& .flexRow {
							--flexRowNesting:7;
							& .flexRow {
								--flexRowNesting:8;
								& .flexRow {
									--flexRowNesting:9;
									& .flexRow {
										--flexRowNesting:10;
										& .flexRow {
											--flexRowNesting:11;
											& .flexRow {
												--flexRowNesting:12;
												& .flexRow {
													--flexRowNesting:13;
													& .flexRow {
														--flexRowNesting:14;
														& .flexRow {
															--flexRowNesting:15;
															& .flexRow {
																--flexRowNesting:16;
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	--flexRowNestingFactor:calc(1 / var(--flexRowNesting));
}

.flexCol:not(:has(.flexRow .markFlexRow)):has( .markFlexRow:checked) ~ .flexRowOverlay {
	z-index:calc(1 + var(--flexRowNestingFactor) * 16);
	background:#B00B1355;
}
.flexCol:not(:has(.flexRow .markFlexRow)):has( .markFlexRow:checked) {
	z-index:calc(2 + var(--flexRowNestingFactor) * 16);
}

.bordered.flexRow>.flexCol + .flexCol {
  /*--floor: calc(var(--flexColBorderWidth)/2 - .5);/**/
  /*--mod: calc(var(--flexColBorderWidth) - 2*var(--floor));/**/
	border-left: var(--flexColBorderWidthHalfRoundDown) solid black;
}
.bordered.flexRow>.flexCol:has(+ .flexCol) {
	border-right: var(--flexColBorderWidthHalfRoundUp) solid black;
}

.bordered.flexRow + .flexRow>.flexCol {
	border-top: var(--flexColBorderWidthHalfRoundDown) solid black;
}

.bordered.flexRow:has(+ .flexRow)>.flexCol {
	border-bottom: var(--flexColBorderWidthHalfRoundUp) solid black;
}