Line parsing
Each input line is split into a title and an optional time value, typically separated by a dash or a trailing 'min'/'minutes' token. Items are numbered sequentially starting at 1 regardless of whether a time was found, and each row is matched to an icon from a built-in set based on the item text or a default fallback.