-td[colspan="2"] { width: calc(2 * 18mm); }
-td[colspan="3"] { width: calc(3 * 18mm); }
-td[colspan="4"] { width: calc(4 * 18mm); }
-td[colspan="5"] { width: calc(5 * 18mm); }
-td[colspan="6"] { width: calc(6 * 18mm); }
-td[colspan="7"] { width: calc(7 * 18mm); }
-td[colspan="8"] { width: calc(8 * 18mm); }
-tr { margin-bottom: 10mm; }
-table { border-spacing:0px; border-collapse: collapse; }
+
+/* wide modules */
+td[colspan="2" ] { width: calc(2 * 18mm); counter-increment: module_counter 2; }
+td[colspan="3" ] { width: calc(3 * 18mm); counter-increment: module_counter 3; }
+td[colspan="4" ] { width: calc(4 * 18mm); counter-increment: module_counter 4; }
+td[colspan="5" ] { width: calc(5 * 18mm); counter-increment: module_counter 5; }
+td[colspan="6" ] { width: calc(6 * 18mm); counter-increment: module_counter 6; }
+td[colspan="7" ] { width: calc(7 * 18mm); counter-increment: module_counter 7; }
+td[colspan="8" ] { width: calc(8 * 18mm); counter-increment: module_counter 8; }
+td[colspan="9" ] { width: calc(9 * 18mm); counter-increment: module_counter 9; }
+td[colspan="10"] { width: calc(10 * 18mm); counter-increment: module_counter 10; }
+td[colspan="11"] { width: calc(11 * 18mm); counter-increment: module_counter 11; }
+td[colspan="12"] { width: calc(12 * 18mm); counter-increment: module_counter 12; }
+td[colspan="13"] { width: calc(13 * 18mm); counter-increment: module_counter 13; }
+td[colspan="14"] { width: calc(14 * 18mm); counter-increment: module_counter 14; }
+td[colspan="15"] { width: calc(15 * 18mm); counter-increment: module_counter 15; }
+td[colspan="16"] { width: calc(16 * 18mm); counter-increment: module_counter 16; }
+
+/* indexing */
+tr { counter-reset: module_counter; }
+td { counter-increment: module_counter 1; }
+table.indexed * td::after {
+ content: counter(module_counter);
+ font-size: 1.8mm; line-height: 1.9mm;
+ top: 0px;
+ right: 0px;
+ position: absolute;
+
+ padding: 0px 1px 2px 1px;
+}
+table.fancyindex * td::after {
+ background-color: black; color: white;
+ width: 1.2em;
+ border-bottom-left-radius: 5px;
+}
+
+/* print layout */