int logicalColumnAt(int visual) => _order.isEmpty ? visual : _order[visual.clamp(0, _order.length - 1)];